BUI(Blender's User Interface)是一個開源 UI 框架,把 Blender 這套 3D 軟體用了數十年、經過優化的介面程式碼解耦出來,重新包裝成一個獨立函式庫,讓其他開發者的應用程式也能使用同樣靈敏、好操作的介面設計,而不用從零打造。
技術上,核心是一層用 C 語言寫的輕量執行環境,負責處理元件樹、版面配置、輸入事件與 Blender 風格的繪製邏輯,這部分直接改編自 Blender 的原始介面程式碼。在這個 C 核心之上,專案提供多種語言的綁定,包括 Python(支援 tkinter、Qt 等語法)、Rust(支援 rsx 與 gpui 風格寫法)、JavaScript/React,以及 C/C++ 搭配 Dear ImGui。渲染預設用 CPU 軟體光柵化,也可以選擇 GPU 加速。
社群討論的焦點是效能:根據專案的基準測試,同樣的程式碼用 Rust 編譯後,啟動時間約 38 毫秒、閒置時幾乎不佔用 CPU,和另一套同類框架 gpui 相比,首幀顯示的延遲少了 5 倍。專案已經發佈到 PyPI、crates.io、npm 等主要套件庫,在 GitHub 上累積超過 1000 個星標與 26 個分支,並有活躍的 Discord 社群。
這則新聞比較偏產業面,牽涉的是跨語言綁定與底層繪圖效能這類進階主題,對剛開始學程式的孩子來說不是立即能上手的東西。但如果家裡的孩子已經在玩 Python 或 Rust,這個案例可以當作一個很好的例子,說明一套好的介面設計可以被拆出來、重複用在完全不同的程式語言裡,這正是「開源」與「模組化」精神的具體示範。
開源UI 框架開發工具