Install BUI

Get BUI for Python, Rust, JavaScript, C or Dear ImGui. Most people are one command away from a Blender-style window.

  • Python
  • Rust
  • JavaScript
  • C
  • Dear ImGui

Good news first: for Python and JavaScript, installing BUI is one command. Rust is one line in Cargo.toml, and C is a normal CMake build.

Pick your language below. The page remembers your choice, so every other page shows the same tab.

Install

You need CPython 3.11 or newer. Wheels are published for Windows, Linux and macOS, so there’s nothing to compile.

pip install blenderui

That one package gives you all four Python APIs: tkinter syntax, Qt syntax, the Blender components and Dear ImGui.

Check that it worked:

python -c "import blenderui; print(blenderui.__version__)"

Platform notes

Windows Linux macOS
Window Native (Win32) Native (X11; Wayland through XWayland) Native (Cocoa), experimental
Python wheels Yes Yes Yes
Rust Yes Yes Yes, experimental
JavaScript and React Yes, prebuilt Yes, build the addon Headless for now
C, C++, Dear ImGui Yes Yes Yes, experimental
GPU renderer Direct3D 11 OpenGL 3.3 Not yet: CPU raster

“Experimental” means written but not yet run on a real Mac.

  • macOS Experimental: the Cocoa window host is a port of Blender’s own Cocoa code. It’s written but hasn’t run on a real Mac yet. Python can use the standard Tk window instead: set BUI_HOST=tk (this needs Python’s tkinter, for example from python.org or brew install python-tk).
  • Linux: libX11 and libGL load when the first window opens, so BUI imports and renders headless on servers and in containers without them. Where OpenGL is missing, it falls back to the CPU renderer.
  • HiDPI: BUI follows the display’s scale (per-monitor DPI on Windows, Xft.dpi on Linux, Retina on macOS). To force a scale, set BUI_UI_SCALE=1.5.

If something goes wrong

Symptom Fix
ImportError: buipy You’re probably running from a source checkout without a build. Build first (cmake --build build), or set BUIPY_BUILD_DIR. The extension must match your Python version.
The window never appears Start the event loop: mainloop(), app.exec() or App.run().
Blurry or tiny UI Set BUI_UI_SCALE, for example BUI_UI_SCALE=1.25.
gpu=True does nothing Run with BUI_GPU_DEBUG=1 to see why the GPU device didn’t start. Without Direct3D 11 or OpenGL 3.3, BUI stays on the CPU renderer, which draws the same pixels.

Next steps

Edit this page on GitHub

Last updated