← На главную

BUI превращает интерфейс Blender в отдельную UI-библиотеку

06.11.2026 07:40 · hackernews

BUI отделяет пользовательский интерфейс Blender от самого редактора и предлагает его как standalone UI library. Небольшой C kit хранит дерево виджетов, выполняет layout, обрабатывает клавиатуру и мышь и рисует элементы по правилам Blender. Для работы не нужны установленный Blender или знание его внутреннего устройства. Проект распространяется под GPL-2.0-or-later.

Поверх общего runtime расположены bindings для Python, Rust, JavaScript, C/C++ и Dear ImGui. Существующие tkinter/ttk-программы можно запускать без изменений, Qt-style Python покрывает часть API, а 45 Blender components включают panels, number sliders, pie menus, color tools и node editor. Rust использует HTML, CSS, Tailwind, rsx!/view! или gpui-совместимые builders. JavaScript поддерживает DOM-like API и React 19.3 через napi-rs. Настоящий Dear ImGui 1.93 работает на BUI windows, а опциональная сборка заменяет его виджеты элементами Blender.

HTML и CSS здесь не означают embedded browser: browser engine, webview и сеть отсутствуют. Окна являются native Win32 и X11; Cocoa host для macOS пока экспериментален, а JavaScript на macOS работает только headless. CPU renderer используется по умолчанию, GPU Direct3D 11 и OpenGL 3.3 подключаются опционально.

Damage rendering перерисовывает только изменённый widget и не расходует CPU в idle. Поля поддерживают drag с непрерывным курсором, математические выражения, точный режим Shift, snapping Ctrl, undo и fuzzy search меню. Изображения декодируются вне UI thread в размере отображения, кешируются с бюджетом памяти и при загрузке перерисовывают только собственный прямоугольник.

В опубликованном автором тесте один gpui-syntax файл запускался на BUI, gpui и gpui-fast. Медианный first frame на BUI CPU составил 40 мс против 231 и 226 мс, startup CPU — 27 мс против 226 и 217 мс, idle memory — 15 МБ против 29 и 31 МБ. На сцене из 3000 animated cells BUI GPU показал 59,9 FPS против 31,5 у gpui-fast и 19,9 у gpui. Это результаты конкретного Windows benchmark с воспроизводимыми скриптами, а не обещание одинакового ускорения любого приложения.

Читать оригинал →