blr

blr builds Blender scenes from Rust. Its upcoming version generates typed bindings from Blender’s own schema with pyo3_bindgen and wraps them in an idiomatic Rust API, so a misspelled property or a wrong type fails at compile time instead of halfway through a script.

Live demo

Scenes built in Rust with blr: a textured prism, a Geometry Nodes extrusion at two heights and a Cycles turntable

Pick one of three scenes built in Rust: compare Blender’s renders, inspect it in 3D or download it as a GLB model or a Blender file. The experimental playground runs Blender 5.2 itself in your browser: edit a Rust or Python example and see what it builds. One Asteroid in Blender and the Browser runs one Rust recipe in both.

Features

  • Generated types: classes, enums and typed collections generated from the schema of Blender 5.2’s Python API and checked for drift.
  • Idiomatic layer: a project workflow, extension traits for objects and meshes, typed math and scene import and export.
  • Escape hatch: raw PyO3 and dynamic bpy access wherever the typed layer does not reach.

Status

The latest release is blr 0.1.0 (April 2024) on crates.io, dual-licensed under MIT or Apache 2.0; it uses PyO3 directly and targets Blender 3.6. The upcoming version is not public yet.