Experimental · runs locally in your browser
Write code. Run Blender.
Rust compiles in your browser to bounded scene commands. Python runs in Blender’s embedded Python. Open the resulting scene in the Blender editor or as a GLB preview.
- Rust
wasm32-wasip1guest- Scene commands
- Blender 5.2
- GLB
Runnable workspace
Rust + Python · Blender 5.2.2
Rust source
Drafts save per example and language in this browser
Choose Scene function for a scene-building function or Full program for a standalone program. Press Ctrl/⌘ + Enter to run.
Loading BLR…
Run output
Compile and runtime diagnostics
- 1Rust compile
- 2Blender run
- 3Mesh preview
- Rust compile
- —
- Guest execution
- —
- Blender execution
- —
- Preview (GLB/snapshot)
- —
- Guest Wasm
- —
- Scene commands
- —
- GLB
- —
About this playground and its limits
Rust examples compile to bounded scene commands. Python examples execute in Blender's embedded Python runtime with access to bpy and the current scene. A successful Rust or Python run replaces the previous generated scene; separately created Blender objects remain outside that lease. Canceling a dispatched Python run closes Blender because Python code cannot be safely interrupted. Snapshot / Update GLB exports the generated objects. The headless path also creates GLB previews.
Scene-function examples use shared blr recipe values compiled with a browser adapter into bounded Blender scene commands. The browser supports six primitive kinds, transforms, tint metadata and up to 64 objects. It does not expose the full native API or arbitrary Cargo dependencies; native source remains private. Blender's Workbench viewport uses gray Solid shading, while GLB previews turn tint metadata into browser materials. These views do not provide EEVEE or Cycles rendering. Compiler and Blender assets load only after you start the editor or run a program.
Python is trusted code with access to the Blender process, filesystem and other process side effects. Source and output limits do not make it a sandbox. Headless runs use a disposable Blender runtime. Editor runs cannot roll back arbitrary changes Python makes to pre-existing objects or other Blender state. Cleanup tracks IDs created by the run; cleanup uncertainty is reported as an error.
The demo is experimental and does not provide general .blend round trips or the full native API. Browser support requires cross-origin isolation and WebGPU for the editable Blender workspace; the GLB preview is the available fallback.