three.js 是一套以 JavaScript 撰寫的開源 3D 圖形函式庫,截至二零二六年十月在 GitHub 累積 116,195 顆星標與 36,607 次複製,採用 MIT 授權,最新版本為 r186。該專案自二零一零年由 Ricardo Cabello 建立後持續維護至今,是網頁 3D 領域累積時間最長、應用範圍最廣的開源基礎之一。
three.js 是一套 JavaScript 3D 圖形函式庫,GitHub 星標達 116,195 顆,採用 MIT 授權,最新版本為 r186。

three.js 是什麼?
three.js 是一套跨瀏覽器的 3D 圖形函式庫,讓開發者以少量 JavaScript 程式碼建立場景、相機與幾何物件,並搭配 WebGL 或 WebGPU 渲染器輸出。
three.js 的官方定位相當簡潔,它是一套易於使用、輕量、跨瀏覽器且通用的 3D 函式庫。開發者無需直接面對底層圖形介面的繁複設定,只需組合場景、相機與網格物件三項基本元素,即可在瀏覽器中渲染出可互動的立體畫面。專案在 README 中以一段不到二十行的程式碼示範了旋轉立方體的範例,完整呈現其低門檻的設計取向。
目前建置版本內含 WebGL 與 WebGPU 兩套渲染器,而 SVG 與 CSS3D 渲染器則以 addons 形式另外提供。這種分層方式讓核心保持精簡,同時保留各種特殊輸出需求的擴充空間。
three.js 的開發歷史與社群規模如何?
three.js 由 Ricardo Cabello 於 2010 年 3 月建立,至今累積超過 2,500 位貢獻者,是網頁 3D 領域最具代表性的開源專案之一。
專案最早的版本發布於二零一零年三月,由曾參與多家知名數位工作室的開發者 Ricardo Cabello(社群帳號 mrdoob)建立。當時瀏覽器端的 3D 繪圖仍屬實驗性質,WebGL 標準才剛起步,three.js 的出現讓網頁開發者能以接近一般 JavaScript 的方式操作圖形硬體。
經過十餘年的迭代,專案已從單一渲染函式庫成長為完整生態。除了核心程式庫外,官方維護大量範例、文件與教學手冊,社群亦延伸出各式外掛與整合工具。專案累積超過 2,500 位貢獻者與三萬六千餘次複製,這種規模在同類專案中並不常見。
three.js 的核心技術特色有哪些?
核心特色包括輕量且跨瀏覽器的 API、模組化的 addons 生態、支援 WebGL 與 WebGPU 雙渲染器,並內建數學、動畫與載入器工具鏈。
第一項特色是 API 的一致與精簡。three.js 把繪圖硬體的操作抽象成物件導向的介面,開發者以新增物件的方式組合場景,不必處理著色器編譯與緩衝區綁定等細節。這使得同一個專案在 Chromium、Firefox 與 WebKit 等不同核心的瀏覽器上都能維持一致行為。
第二項特色是模組化的擴充體系。專案將非核心功能移入 addons 目錄,涵蓋各類模型載入器、控制器、後處理效果與著色器工具。使用者依需求引入對應模組,避免主程式庫體積無謂膨脹。
第三項特色是完整的附屬工具鏈。程式庫內建向量與矩陣等數學工具、關鍵影格動畫系統,以及模型與貼圖載入器,形成從資料匯入到畫面輸出的完整流程。
three.js 的 WebGL 與 WebGPU 渲染架構如何運作?
專案以 WebGLRenderer 與 WebGPURenderer 兩個後端抽象渲染流程,並內建 TSL 著色語言,讓同一份場景程式碼可跨後端與裝置執行。
three.js 採用渲染後端抽象層的設計,把場景描述與實際繪圖指令分離。使用者撰寫的場景程式碼不直接綁定特定圖形介面,而由後端負責轉譯。現行版本同時提供以 WebGL 為基礎的 WebGLRenderer,以及對應新一代 WebGPU 標準的 WebGPURenderer。
為解決兩套後端之間著色器語言的差異,專案另外發展出 TSL 著色語言。開發者以 JavaScript 撰寫的著色邏輯,會在編譯階段轉換為對應後端的程式碼。這讓專案能在保留舊有瀏覽器相容性的同時,逐步導入 WebGPU 帶來的效能與功能優勢。
版本 r186 的更新說明顯示,多數變更集中在後端狀態管理、資源釋放與幾何資料序列化等底層細節。這類維護工作雖然不若新功能吸睛,卻是長壽命函式庫得以穩定演進的基礎。
three.js 的專案數據與版本節奏如何?
截至二零二六年十月,three.js 擁有 116,195 顆星標、36,607 次複製、2,570 位貢獻者與 257 項開啟議題,最新版本 r186 於九月二十四日發布。
- 116,195GitHub 星標
- 36,607複製次數
- 2,570貢獻者
- 257開啟議題
- JavaScript主要語言
- MIT授權條款
上述數字反映的是一套成熟且仍高速演進的專案。最新正式版本 r186 發布於二零二六年九月二十四日,距離前一個主要版本約三個月;儲存庫最近一次提交則在十月三日,顯示維護節奏並未因專案年資而放緩。
下圖為專案儲存庫首頁頂部,可見專案名稱、主要語言標示、星標數與授權資訊。

下圖為專案貢獻統計頁,顯示近三個月各主要貢獻者的提交分布。

three.js 與其他 3D 網頁方案相比有何差異?
與 Babylon.js 等完整引擎相比,three.js 更貼近底層且保持輕量,社群規模與範例數量明顯較大,但遊戲引擎所需的完整編輯器與物理系統須自行整合。
差異首先體現在定位。Babylon.js 等方案以完整遊戲引擎自居,內建編輯器、物理模擬與動畫狀態機,開箱即可開發互動內容;three.js 則選擇保持抽象層的精簡,把特定領域的實作留給社群外掛或使用者的程式碼。
其次是社群的量體差距。three.js 的星標數與貢獻者人數在同類專案中居於前列,官方範例庫涵蓋材質、光照、後處理與各式載入器,開發者遇到問題時能找到的參考資料相對充足。
第三是學習曲線的取捨。three.js 以接近原生 JavaScript 的寫法操作場景,對具備前端基礎的開發者而言上手快速;但若要實作接近商業遊戲的複雜邏輯,則須自行整合物理與場景管理等外部元件。選擇何者取決於專案對「開箱即用」與「高度掌控」兩種需求之間的權衡。
three.js 有哪些實際應用場景?
常見場景包括產品 3D 展示、資料視覺化、互動網站、建築與空間預覽、線上教育演示,以及 WebXR 沉浸式體驗。
最普遍的應用是產品展示。品牌可在網頁上呈現可旋轉、可縮放的立體模型,讓使用者在購買前檢視細節,無需安裝額外軟體。這類需求在零售與工業設備領域尤為常見。
其次是資料視覺化與互動敘事。開發者以三維空間呈現網路拓撲、地理資訊或抽象資料關係,並結合滾動與滑鼠操作提供沉浸式閱讀體驗。新聞媒體與研究機構的互動專題經常採用此類手法。
第三是教育與沉浸式體驗。three.js 支援 WebXR 標準,可用於瀏覽器端的擴增實境與虛擬實境內容,涵蓋線上教學、空間導覽與訓練模擬等用途。
如何快速開始使用 three.js?
可透過 npm 安裝 three 套件,或直接以 CDN 引入模組;官方網站提供大量 examples 與文件,從建立場景、相機與渲染器即可跑出第一個 3D 畫面。
入門方式相當直接。專案以 npm 套件形式發布,開發者可透過套件管理器安裝,或直接由 CDN 載入模組版本。官方網站提供完整的文件與教學手冊,並附上大量可即時執行的範例。
最基本的流程只需三個步驟:建立場景物件、設定透視相機,再產生渲染器並掛載到頁面元素上。之後在動畫迴圈中更新物件狀態並重新渲染,即可得到可互動的立體畫面。專案 README 示範的旋轉立方體僅需約二十行程式碼。
import * as THREE from 'three';
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 70, innerWidth / innerHeight, 0.01, 10 );
camera.position.z = 1;
const mesh = new THREE.Mesh(
new THREE.BoxGeometry( 0.2, 0.2, 0.2 ),
new THREE.MeshNormalMaterial()
);
scene.add( mesh );
const renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setSize( innerWidth, innerHeight );
renderer.setAnimationLoop( time => {
mesh.rotation.x = time / 2000;
mesh.rotation.y = time / 1000;
renderer.render( scene, camera );
} );
document.body.appendChild( renderer.domElement );
對於已有前端經驗的開發者,從官方範例出發並逐步替換內容,通常是效率最高的學習路徑。
出處連結有哪些?
本文資訊來源為 three.js 的 GitHub 儲存庫、官方網站與官方文件,包含專案說明、版本發布紀錄與貢獻者資料,讀者可透過下列連結查證原始資料。
- GitHub 儲存庫:https://github.com/mrdoob/three.js
- 官方網站與文件:https://threejs.org/
常見問題有哪些?
three.js 的常見疑問集中在授權、瀏覽器支援與前置知識三方面;由於採用 MIT 授權,商業使用無須付費,入門只需基本 JavaScript 基礎。
three.js 是免費的嗎?
程式庫採用 MIT 授權,可自由用於個人與商業專案,包括修改與再散布,只需保留原始授權聲明。
three.js 支援哪些瀏覽器?
透過 WebGL 後端可在多數現代瀏覽器運作;新一代 WebGPU 後端則需瀏覽器支援該標準,專案同時保留兩條路徑。
使用 three.js 需要什麼前置知識?
具備基本 JavaScript 與前端模組概念即可開始,官方範例與文件涵蓋從入門到進階的多數主題。
three.js 可以用於商業專案嗎?
可以。MIT 授權允許商業使用、修改與再散布,開發者可依產品需求自由整合,無須支付授權費用。
總結:three.js 適合什麼團隊?
three.js 適合需要在網頁呈現 3D 內容的產品與前端團隊,其龐大社群與完整範例可降低開發門檻;若需求接近完整遊戲引擎,則須評估額外整合成本。
three.js 的價值在於把瀏覽器端的 3D 繪圖從專業門檻轉化為一般前端開發可掌握的技術。專案擁有 116,195 顆星標、超過 2,500 位貢獻者與長達十五年的維護歷史,並在近期同步推進 WebGPU 與 TSL 著色語言等新一代標準。對於需要在網頁呈現立體內容的產品與前端團隊,它提供了成熟且資料充足的起點;若專案需求已接近完整遊戲引擎,則應先評估額外整合物理與場景管理元件的成本,再決定是否採用。