![]()
一個并不常被普通用戶提起的開源項目,剛剛刷新了自己的歷史紀錄。
近日,Three.js 官方 X 賬號公布:Three.js 每周下載量突破 400 萬。
![]()
鏈接:https://x.com/threejs/status/2013044943909191680
你或許沒用過 Three.js ,也未必聽過它的名字,但你大概率已經見過它的作品。
那些可以旋轉的 3D 商品展示頁、會隨鼠標晃動的官網首頁、可交互的數據可視化,甚至一些看似只是酷炫動畫的 Web 頁面背后,Three.js 正默默地承擔著核心的 3D 渲染工作。
注:Three.js 是一個基于 WebGL 的 JavaScript 3D 圖形庫,由 Ricardo Cabello(網名 Mr.doob)于 2010 年創建。它的核心目標是讓開發者能夠在瀏覽器中輕松創建和展示 3D 內容,而無需直接處理復雜的 WebGL 底層 API。

在官網示例里,同一個圖形界面你可以選擇不同的狀態如跑、跳。


來源:https://threejs.org/examples/#webgl_loader_gltf_transmission
我們再回到官方發布的那張圖,其展示了 Three.js 從 2016 年到 2026 年的周下載量變化,呈現出非常典型的指數級增長曲線:
- 2016-2018:起步階段,下載量很低
- 2019-2020:開始緩慢爬升,達到約 20-50 萬 / 周
- 2021-2022:增長明顯加速,突破 100 萬大關
- 2023-2024:進入快速增長期,從 100 萬攀升至 200 萬
- 2025-2026:爆發式增長,從 200 萬直沖 400 萬
Three.js 快速增長的時間點很微妙,在 2022 年末,正好是 ChatGPT 問世之后,此后生成式 AI 快速爆發,Three.js 也趁著這股熱潮瘋狂吸引用戶。
回想一下,在 AI 介入之前,用 Three.js 開發 3D 內容簡直是一場勸退之旅。光是理解四元數、矩陣變換這些數學概念,再加上手工建模、展 UV、調材質的繁瑣流程,就足以把 90% 的前端開發者擋在門外。那時候,一個簡單的光照渲染或材質效果,往往需要耗費數小時調試。
但 AI 的出現徹底改變了游戲規則。你只需要在 ChatGPT 等大模型里隨口描述需求:「用 Three.js 寫一個賽博朋克風格的旋轉發光立方體,背景要動態粒子星空」。AI 不僅能秒懂你的意圖,還能在幾秒鐘內生成 95% 可用的代碼,讓那些原本只存在于腦海中的創意,瞬間在瀏覽器里轉起來。
這樣一來,AI 大模型極大地降低了 Three.js 的準入門檻,讓大量前端開發者(而非圖形學專家)敢于嘗試 3D 開發。這也是 Three.js 下載量暴增的原因之一。
Ricardo Cabello 介紹
Ricardo Cabello,以網名 Mr.doob 更為人熟知。是 Three.js 的創始人和長期核心維護者,也是 Web 前端與創意編程領域最具影響力的人物之一。可以說,他一個人,直接改變了 Web 世界對 3D 的理解方式。
![]()
但與今天清晰的技術標簽不同,他的成長路徑并不循規蹈矩,甚至可以用他自己的話來形容 —— 有點災難。
Ricardo 在一次采訪中表示,他讀完小學后,在后期還同時進入了一所學院學習漫畫繪畫;中學階段一度轉向電子工程,后來又改讀藝術方向。然而那段時間并不適合系統性學習,最終在進入大學之前便選擇了退學。
相比教育體系,真正塑造他的,是長期活躍于 demoscene(演示場景) 社群的經歷。在那個以技術與創意競賽為核心的文化中,創作者必須不斷拿出新作品,逼著自己把想法真正做出來。
這段經歷深刻影響了他后來的創作風格,追求用精簡代碼實現驚艷的視覺效果。正是在 demoscene 的環境里,Cabello 系統性地學習了計算機圖形學,從最初的視覺創作,到逐漸理解其背后的技術原理,再到最終回到編程本身。藝術與代碼不再是對立的兩端,而是開始在他身上匯合。
工作之余,Cabello 也會關注一些關于藝術、插畫、裝置藝術的博客,這會時不時的激發他的創作靈感:能不能把這些東西做成實時的?而在實現的過程中,又會衍生出更多新的點子。
此外,Ricardo Cabello 還是 Web 創意文化的重要推動者。他長期維護的個人網站 mrdoob.com 匯集了大量實驗性項目,涵蓋物理模擬、粒子系統、交互藝術和聲音可視化等方向。這些作品并不以商業化為目的,而是持續探索瀏覽器作為創意與表達平臺的邊界,這種對可玩性和表達力的重視,也深刻塑造了 Three.js 的氣質,實用、開放,同時鼓勵創造。
在開源上,Ricardo 以風格克制、標準嚴格著稱。在他看來,把代碼分享出來,讓整個互聯網都能受益,是一件非常有成就感的事。
他長期親自把控 Three.js 的 API 設計與代碼質量,寧可引入破壞性更新,也避免無序堆疊功能和歷史包袱。這種近乎守門人的角色,使 Three.js 在十余年的演進中始終保持清晰的結構和一致的設計理念,避免了許多大型開源項目常見的復雜化和碎片化問題。
而這種工程上的克制,其實可以追溯到 Three.js 誕生之初的動機。Ricardo 曾回憶,創建 Three.js 一方面源于他的好奇心,如果親手寫一個 3D 引擎,究竟能做到什么程度;另一方面也是對自我能力的一次挑戰。從 ActionScript 時代開始,他便反復嘗試搭建 3D 引擎,在不斷試錯中學習圖形學基礎,并逐步摸索出更合理、可擴展的架構方式。更重要的影響則來自 demoscene 的經歷:在那個圈子里,創作者往往為一兩個 demo 臨時寫一套引擎,用完即棄。Ricardo 覺得這種方式過于浪費,于是產生了一個更長期的想法,做一個真正可以被反復使用、不斷演進的 3D 引擎。這一想法,最終催生了 Three.js,也奠定了它至今仍在堅持的設計哲學。
直到今天,隨著 AI 生成內容、WebXR 和 3D 可視化的興起,Three.js 依然處在 Web 技術棧的關鍵位置。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.