函式庫 / SDK
pascalorg/editor avatar
pascalorg/editor

Pascal Editor:基於WebGPU的3D建築編輯器

創建和共享 3D 建築項目。節點渲染器渲染器是 React 元件,為每個節點類型建立 Three.js 物件:模式:** 1。

23,906 個 Star2,963 個 ForkTypeScriptMIT

秒懂

它是什麼?
一個TypeScript單體儲存庫,將場景狀態、渲染、編輯工具和節點定義拆分為五個執行時套件。
適合誰用?
README展示了渲染、編輯和插件提供的節點定義之間的清晰分離,髒節點系統驅動幾何更新。MIT授權允許廣泛重用,但明確聲明不提供擔保和免責。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

pascalorg-editor-deep-analysis|基於 WebGPU 的建築編輯器與 Turborepo 佈局|1

Pascal Editor 是一個以 TypeScript 編寫的 3D 建築編輯器,基於 React Three Fiber 和 WebGPU 建置。這個儲存庫是 Turborepo 單體儲存庫:apps/editor 是 Next.js 宿主,packages 之下包含 core、viewer、editor、nodes 和 ui。README 將 viewer 描述為 3D 渲染執行時,將 editor 描述為加入互動工具和選取的層次。儲存庫中繼資料把專案描述為建立和分享 3D 建築專案的方式,但 README 本身沒有說明分享工作流程。

pascalorg-editor-deep-analysis|五個執行時套件及其邊界|2

@pascal-app/core 負責節點結構、基於 Zustand 的場景狀態、註冊表契約、空間查詢和事件匯流排。@pascal-app/viewer 提供基於 React Three Fiber 的渲染執行時、共用渲染系統、預設相機和控制以及後期處理。@pascal-app/editor 包含編輯工具、面板、選取和直接操作 UI。@pascal-app/nodes 提供內建註冊表外掛,包含節點定義、渲染器、幾何和系統。README 的責任表為每個套件分配一項職責,apps/editor 是獨立的 Next.js 宿主,將各部分組合在一起。

pascalorg-editor-deep-analysis|場景狀態與三個 Zustand 儲存|3

狀態分散在三個 Zustand 儲存中。@pascal-app/core 中的 useScene 儲存節點、根 ID、髒節點和 CRUD 操作;它持久化到 IndexedDB,並透過 Zundo 提供 50 步歷史的復原/重做。@pascal-app/viewer 中的 useViewer 追蹤目前選取的建築、樓層和區域 ID,樓層顯示模式(堆疊、展開、單獨)以及相機模式。apps/editor 中的 useEditor 追蹤目前工具、結構層可見性、面板狀態和編輯器特定偏好。README 展示了用於 React 元件的訂閱語法和用於 React 外部程式碼的 getState 呼叫。

pascalorg-editor-deep-analysis|節點、層級與場景註冊表|4

節點是場景的資料原語,所有節點都擴充 BaseNode,包含 id、type、parentId、visible、可選的已儲存相機和可選 JSON 中繼資料。層級為 Site、Building、Level,然後是 Wall 及其 Item 子節點、Slab、Ceiling 及其 Item 子節點、Roof、Zone、Scan 和 Guide。節點儲存在扁平字典 Record<id, Node> 中,而不是巢狀樹中;父子連結透過 parentId 和 children 陣列儲存。場景註冊表將節點 id 對應到 Three.js 物件,並按型別索引物件,因此系統無需遍歷場景圖即可解析物件。渲染器是 React 元件,建立佔位網格並使用 useRegistry 註冊。

pascalorg-editor-deep-analysis|系統根據髒節點重新計算幾何|5

系統是 React 元件,透過 useFrame 在渲染迴圈中執行以更新幾何和變換。當 createNode、updateNode 或 deleteNode 改變節點時,該節點會被加入 useScene 的 dirtyNodes 集合。每幀系統遍歷髒集合,查詢節點及其已註冊的 Three.js 物件,重新計算幾何,然後清除旗標。核心系統包括 WallSystem、SlabSystem、CeilingSystem、RoofSystem 和 ItemSystem;檢視器系統包括 LevelSystem、ScanSystem 和 GuideSystem。WallSystem 產生帶有斜接和門窗 CSG 挖孔的牆體幾何,ItemSystem 將物品定位到牆壁、天花板或地板上。髒集合也可以手動標記。

pascalorg-editor-deep-analysis|編輯器工具、選取與外掛擴充|6

編輯器透過一組從工具列啟動的工具擴充檢視器:SelectTool、WallTool、ZoneTool、ItemTool 和 SlabTool。自訂選取管理器遍歷 Site、Building、Level、Zone 和 Items 層級,每個深度都有各自的懸停和點擊策略。編輯器特定系統包括 ZoneSystem 和聚焦節點的自訂相機控制。外掛是擴充新節點種類和左側面板的路徑;README 連結到開發者指南,並指出 pascalorg/plugin-trees 作為範例。外掛使用與內建外掛相同的 Plugin 清單,沒有單獨的內部 API。

pascalorg-editor-deep-analysis|開發指令與 MIT 授權|7

開發使用 Bun 作為套件管理器。在儲存庫根目錄執行 bun install 然後 bun dev,會建置 @pascal-app/core 和 @pascal-app/viewer,啟動兩個套件的監視模式,並在 http://localhost:3002 執行 Next.js 編輯器。生產建置使用 turbo build,可選按套件篩選。README 還展示了用於發佈 core 和 viewer 的 npm publish 指令。該儲存庫採用 MIT 授權,版權歸 Pascal Group Inc. 所有。授權授予使用、複製、修改、合併、發佈、散佈、再授權和銷售副本的權利,前提是包含版權聲明。它明確聲明不提供擔保和免責責任,並且沒有提及支援、安全保證或生產就緒性。

pascalorg-editor-deep-analysis|採用前的專案專屬檢查|8

針對 pascalorg-editor-deep-analysis,應依 README 已列出的檔案、命令與設定逐項核對。若來源未說明某項行為,本文保留為未知,不把推測寫成保證。測試紀錄應包含實際輸入、輸出與錯誤訊息,方便釐清是環境差異還是專案本身的限制。

先看 pascalorg-editor-deep-analysis 的 README 入口,再把其中列出的名詞對應到實際檔案。這一步能分清楚倉庫目錄、文件連結與可執行程式,不把展示頁文字誤當成介面承諾。(檢查項 1)

若 README 提到命令,核對命令所在的目錄與輸入形式,將成功輸出和錯誤輸出分開保存。對 pascalorg-editor-deep-analysis 而言,這是檢查環境依賴與資料流向的最短路徑。(檢查項 2)

設定檔的作用必須以專案文件為準。沒有明示的預設值就保留未知,尤其是資料位置、網路暴露、憑證處理與權限邊界,不能由專案名稱推導。(檢查項 3)

閱讀 pascalorg-editor-deep-analysis 的功能清單時,應把每一項拆成可觀察結果,例如產生的檔案、命令列回應、資料庫變化或介面狀態。只有能觀察,才有辦法與 README 逐項比對。(檢查項 4)

版本核對要落在該倉庫的分支、標籤或套件版本。若來源只列出 main 或 dev,便記下這個事實,不把未提供的相容矩陣補成推論。(檢查項 5)

對外部服務、模型、容器或資料庫的依賴,應沿著 pascalorg-editor-deep-analysis 已列出的連結逐一確認。素材沒有描述的供應商行為,不在本文替它作保證。(檢查項 6)

若要把 pascalorg-editor-deep-analysis 放進團隊流程,先以最小輸入跑一次 README 的示例,再用一個已知結果重跑。觀察日誌、輸出檔和返回碼,才能定位問題是在設定還是在程式。(檢查項 7)

安全與授權是兩個不同檢查面。即使 pascalorg-editor-deep-analysis 的授權允許使用,也不代表敏感資料、網路服務或第三方內容已經符合你的部署政策。(檢查項 8)

維護時對照 README 的目錄名稱與 release 頁面,確認文件連結仍指向同一專案。連結失效、命令改名或設定鍵改動,都應成為升級紀錄的一部分。(檢查項 9)

編輯結論

README展示了渲染、編輯和插件提供的節點定義之間的清晰分離,髒節點系統驅動幾何更新。MIT授權允許廣泛重用,但明確聲明不提供擔保和免責。 本文適合需要評估 pascalorg-editor-deep-analysis README 所列能力的開發者,不適合把來源摘要當成完整的生產保證;先執行專案明示的命令並核對其輸出、設定檔與限制,再決定是否納入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記