opensim-blender is a containerized Blender runtime for the OpenSim AI stack.
Note, there is current no working arm64 build for this, docker contain is Intel only
It runs Blender with a virtual display (xvfb) and the Blender MCP add-on enabled.
The upstream add-on/server pair uses stdio + a local TCP bridge, not native MCP-over-HTTP. This image adds an mcp-proxy sidecar process in-container so upstream services can connect using HTTP (/mcp).
This is part of the opensim-stack and is intended to be used in conjunction with other parts of the stack. See Docs for full details.
- Installs Blender and virtual display support
- Installs the Blender MCP add-on
- Starts Blender with the add-on TCP protocol server enabled (internal only)
- Runs
blender-mcp(stdio MCP server) connected to that internal TCP server - Exposes MCP over HTTP via
mcp-proxyon container port8996(/mcp) - Uses
/workspaceas the default project directory
BLENDER_MCP_HOST=0.0.0.0BLENDER_MCP_PORT=8996BLENDER_TCP_PROTOCOL_HOST=127.0.0.1BLENDER_TCP_PROTOCOL_PORT=9876BLENDER_PROJECT_DIR=/workspace- MCP HTTP listen endpoint:
http://<container>:8996/mcp
opensim-workspace->/workspaceblender-config->/root/.config/blenderblender-cache->/root/.cache/blenderblender-data->/root/.local/share/blender
docker build -t opensim-blender:local .docker run --rm \
-e BLENDER_MCP_HOST=0.0.0.0 \
-e BLENDER_MCP_PORT=8996 \
-p 8996:8996 \
-v opensim-workspace:/workspace \
-v blender-config:/root/.config/blender \
-v blender-cache:/root/.cache/blender \
-v blender-data:/root/.local/share/blender \
opensim-blender:localBLENDER_MCP_HOSTMCP HTTP bind host (default0.0.0.0)BLENDER_MCP_PORTMCP HTTP bind port (default8996)BLENDER_TCP_PROTOCOL_HOSTinternal Blender add-on TCP host used byblender-mcp(default127.0.0.1)BLENDER_TCP_PROTOCOL_PORTinternal Blender add-on TCP port (default9876)BLENDER_PROJECT_DIRoverride startup directory (default/workspace)BLENDER_EXTRA_ARGSextra flags appended to the Blender command
Compatibility notes:
BLENDER_BRIDGE_HOSTandBLENDER_BRIDGE_PORTare still accepted as legacy aliases.BLENDER_MCP_ENDPOINTis accepted for compatibility, but MCP HTTP is currently exposed at/mcp.
Create/use a buildx builder once:
docker buildx create --name multiarch --use
docker buildx inspect --bootstrapBuild and push Linux AMD64 + ARM64:
docker buildx build \
--platform linux/amd64 \
-t bithatch/opensim-blender:latest \
-t bithatch/opensim-blender:$(date +%Y%m%d) \
--push \
.- Main AI Stack (
opensim-ai-docker): https://github.com/opensim-stack/opensim-ai-docker - Blender MCP add-on: https://github.com/ahujasid/blender-mcp
- Related projects:
opensim-console2mcp: https://github.com/opensim-stack/opensim-console2mcpopensim-metaverse2mcp: https://github.com/opensim-stack/opensim-metaverse2mcpopensim-opencode: https://github.com/opensim-stack/opensim-opencode