將 Blender 介面邏輯抽離為獨立 C 核心

BUI 專案的核心是一個名為「kit」的小型 C 語言執行環境,它負責管理元件樹、佈局計算、輸入處理以及繪製工作。這部分代碼源自 Blender 自身的 widget 繪製程式碼移植,並嚴格遵循 Blender 的互動規則。

在此核心之上,開發者建立了多層綁定,允許 Python、Rust、JavaScript、C++ 和 Dear ImGui 等語言調用該介面庫。這意味著開發者可以使用這些語言構建應用程式,但底層的繪製與互動邏輯仍由原生 C 代碼處理,以確保效能。

BUI 明確指出它不是 Blender 軟體本身,也不需要安裝 Blender;同時它也不是瀏覽器環境,雖然 Rust 和 JavaScript 端支援 HTML/CSS 語法作為介面描述語言,但內部沒有瀏覽器引擎、Webview 或網路功能。

主打低資源消耗與高效渲染技術

專案宣稱其設計重點在於效率,採用「損壞渲染」機制,即僅重繪畫面中發生變化的部分。在閒置狀態下,CPU 佔用率為 0%,滑鼠懸停時也僅重繪受影響的單一元件。

根據開發者提供的基準測試數據,BUI 在每幀處理上比 gpui-fast 少使用 2 至 4 倍的 CPU 資源,且記憶體佔用更低,首幀渲染時間約為 5 毫秒。這些數據基於特定的硬體與軟體配置,並非適用於所有情境的通用保證。

對於圖片與影片處理,BUI 採用非同步解碼與記憶體預算緩存機制。例如,滾動瀏覽 1,000 張縮圖時,宣稱 p99 幀時間為 2.9 毫秒且僅佔用 100 MB 記憶體,相較於在 UI 執行緒上直接解碼的 96 毫秒與 2.5 GB 用量有顯著差異。

多語言支援與開發者體驗

BUI 提供多種介面編程方式以適應不同開發習慣。Python 使用者可以透過 `pip install blenderui` 安裝,並選擇使用 tkinter、Qt 語法或直接調用 Blender 原生元件(如 NumberSlider, PieMenu)。

Rust 開發者可以使用 HTML/CSS 語法搭配 Tailwind CSS,或使用類似 GPUI 的 builder 模式。JavaScript/React 支援則透過 npm 套件提供,允許 React 19.3 與 Svelte 5 組件直接渲染到原生視窗中,無需瀏覽器環境。

專案也支援 Dear ImGui,可透過一個建置標誌將 ImGui 的元件替換為 Blender 風格的元件,或僅套用 Blender 的主題顏色與度量標準。C/C++ 開發者則可直接連結底層 kit 進行開發。

功能限制與社群反應

目前 BUI 存在明顯的功能限制,包括尚未支援無障礙功能(Accessibility)、缺乏輸入法支援,且介面外觀強制為 Blender 風格,不會自動適配作業系統的原生主題。開發者建議在正式產品中使用前需審慎評估這些限制。

社群討論中出現不同觀點。部分使用者讚賞 README 文件的清晰度與專案對 Blender 高效介面的移植努力,認為這對於熟悉 Blender 操作的藝術家或開發者具有吸引力。

另一方面,也有用戶強烈表達對 Blender 介面風格的排斥,表示不希望在其他軟體中看到相同的 UI 設計。此外,有評論指出 GPUI 並非最快的 Rust GUI 框架,暗示 BUI 與 GPUI 的比較基準可能需要更多獨立驗證。