Run full Blender 5.2 LTS headless in android for agentic workflows.
  • Shell 41.9%
  • Python 37.9%
  • HTML 19%
  • Makefile 1.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-04 23:31:22 +02:00
.pi Sync blender skill: SBF v3 blockout gate + evidence quality loop 2026-09-04 23:31:22 +02:00
config release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
docs release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
examples/scenes release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
patches release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
runtime Support fresh Blender project launches 2026-08-30 16:51:17 +02:00
scripts release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
viewer Add one-prompt Blender Pi skill 2026-08-30 16:21:17 +02:00
.gitattributes release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
.gitignore release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
CHANGELOG.md release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
LICENSE release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
Makefile release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
README.md Add canonical SBF template 2026-08-30 17:13:05 +02:00
sbf.md Add canonical SBF template 2026-08-30 17:13:05 +02:00
THIRD_PARTY.md release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00
VERSION release: Android Agentic Blender MVP 0.1.0 2026-08-29 14:07:39 +02:00

Android Agentic Blender

Native ARM64 Blender, authenticated Geometry Agent automation, MCP integration, and a phone-friendly live viewport/gallery—running locally on Android through Termux and Debian proot.

MVP features

  • Native Blender 5.2.1 LTS ARM64 (9e2066aef7ef7e20c142ad7bd3303138a4304c93)
  • Headless CPU Cycles with Embree, Python, bpy, geometry operations, and image output
  • Authenticated Geometry Agent JSON-RPC server bound to 127.0.0.1
  • Optional stdio MCP bridge
  • Native Android viewer with touch orbit/pan/zoom, render settings, and gallery
  • Browser viewer with a fast software CAD wireframe preview
  • Automatic scene-change refresh without spending Cycles samples
  • Final-render tab and an auto-indexed render gallery
  • Reproducible example scenes and day/night portfolio scripts

This is intentionally headless. It does not provide Blender's desktop UI, Eevee, Workbench, CUDA, HIP, OptiX, or oneAPI. Cycles is used for final CPU renders; the web viewer handles progress previews.

Tested platform

  • ARM64 Android phone
  • Termux from F-Droid/GitHub (not the obsolete Play Store build)
  • Debian trixie under proot-distro
  • Several GB of free storage; source/build trees alone can use about 3 GB
  • Long build time and active cooling recommended

Quick start from source

git clone ssh://git@git.cyfrowynomada.com:2222/CyfrowyNomada/android-agentic-blender.git
cd android-agentic-blender
JOBS=4 ./scripts/setup.sh
./viewer/start.sh

Open http://127.0.0.1:8088. setup.sh is incremental: rerun it after an interrupted build. Lower JOBS to 2 or 3 if the phone overheats or runs out of memory.

For an already-built /opt/blender-native, install only the integration layer:

./scripts/40-install-geometry-agent.sh
./scripts/50-install-mcp.sh   # optional
./viewer/start.sh

Installation stages

Script Purpose
00-bootstrap-termux.sh Install Termux tools and Debian proot
10-install-debian-deps.sh Install ARM64 compiler and system libraries
20-build-third-party.sh Build pinned SSE2NEON, Eigen, OCIO 2.5, and OIIO 3.1
30-build-blender.sh Configure, compile, install, and verify native Blender
40-install-geometry-agent.sh Clone the pinned agent, apply headless extensions, create token
50-install-mcp.sh Install the optional MCP server in /opt/geometry-mcp-venv
doctor.sh Verify architecture, linking, Python files, and installation

See docs/BUILD.md for versions, feature flags, recovery, and storage cleanup.

Daily use

./viewer/start.sh             # starts Blender + viewer and opens the browser
./runtime/status.sh           # JSON-RPC agent status
./viewer/status.sh            # viewer status
./viewer/refresh.sh           # regenerate software solid preview
./viewer/publish-final.sh /sdcard/Documents/render.png
./viewer/stop.sh              # viewer only
./runtime/stop-blender.sh     # Blender agent

Configuration is generated at config/agent.env and is deliberately ignored by Git. It contains the RPC bearer token. To open a scene on startup, set:

BLENDER_START_FILE=/data/data/com.termux/files/home/my_scene.blend

Geometry Agent and MCP

The headless runtime imports the extension directly from .deps/blender-geometry-agent/blender_addon; no GUI interaction is required. The installer pins upstream commit da940ba499139337c96cfa7f1da65c9a2b2c8fa5 and applies patches/geometry-agent-headless.patch, adding:

  • per-preview Cycles sample override
  • safe object render visibility
  • procedural environment controls
  • safe area/point/sun/spot light creation

Arbitrary Python RPC remains disabled. To expose the agent through MCP:

./runtime/run-mcp.sh

See docs/GEOMETRY_AGENT.md.

Viewer

The viewer is a dependency-free Python HTTP application on loopback only. Its live preview uses scene bounds supplied by Geometry Agent and performs a software CAD projection. It does not invoke Cycles. PNG/JPEG/WebP files in BLENDER_OUTPUT_DIR appear in Gallery automatically; files containing _test are omitted.

BlendScope Android companion

BlendScope uses the same loopback service as the browser viewer. It provides touch orbit/pan/zoom, Cycles render settings, final-render preview, and the indexed render gallery. It is a companion only: Blender lifecycle and creation remain owned by this toolkit and Pi.

Run Pi from this trusted checkout and start work with one prompt:

/blender Create a modular industrial gate with working doors and three-quarter QC renders

The bundled Pi skill combines the request with the canonical sbf.md template, starts Blender, Geometry Agent, and the viewer, sends structured operations through the authenticated plugin, validates and saves the scene, and leaves the services running. Open BlendScope while it works; Connect becomes orange when the server is ready.

Build and install BlendScope with:

git clone ssh://git@git.cyfrowynomada.com:2222/CyfrowyNomada/BlendScope.git android
gradle -p android :app:assembleDebug
adb install -r android/app/build/outputs/apk/debug/app-debug.apk

The APK has no third-party runtime dependencies. You can also use ./viewer/start.sh manually and then tap Connect.

Pi Blender Plugin

Pi Blender Plugin is the prompt-side companion. It packages the /blender template, Blender skill, SBF template, and authenticated Geometry Agent RPC helper as an installable Pi package:

pi install ssh://git@git.cyfrowynomada.com:2222/CyfrowyNomada/pi-blender-plugin.git

Use /blender <creation prompt> from Pi to start and steer creation; use BlendScope to inspect the live viewport, renders, and gallery.

Examples

python examples/scenes/build_cute_room.py
python examples/scenes/build_cute_kitchen.py
python examples/scenes/build_sims_house.py
python examples/scenes/finalize_sims_house.py
python examples/scenes/render_portfolio.py

Run examples from Termux while the agent is active. They demonstrate authenticated JSON-RPC batching, materials, lighting, scene checkpoints, Cycles finals, day/night variants, and gallery publishing.

Security

  • Services bind to 127.0.0.1 by default.
  • Every Geometry Agent request requires a random token.
  • config/agent.env, logs, PIDs, scenes, and renders are ignored.
  • Arbitrary Python execution is disabled in runtime/launch_geometry_agent.py.
  • Do not bind either service to a public interface without adding a proper authenticated reverse proxy.

Repository layout

config/       example configuration (real token ignored)
docs/         build, architecture, and agent documentation
examples/     procedural scene and portfolio scripts
patches/      tracked extensions to pinned upstream projects
runtime/      headless Blender/agent lifecycle
scripts/      installation and verification
viewer/       local Blender bridge and browser viewer
android/      native touch viewport, render controls, and gallery app

Release status

MVP 0.1.0. Blender and third-party dependencies retain their own licenses. Review THIRD_PARTY.md before redistributing binaries.