Last updated: 2026-03-31
This guide collects the practical startup paths that were previously spread across the README: local setup, single-worker and multi-worker startup, and Docker entry points.
Required baseline:
- Python 3.11+
- Blender 3.6+
- Node.js 18+ for the frontend
- Redis for recommended persistence and multi-worker coordination
Optional:
- Nginx for local multi-worker gateway flows
- Docker for containerized deployment and external tool services
git clone --recurse-submodules https://github.com/3DSceneAgent/Vibe3DScene
cd Vibe3DScene
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# edit .envFor local multi-worker setup:
brew install redis nginxFor local multi-worker setup:
sudo apt install -y redis-server nginxRecommended for the web frontend and most automated scene-building flows.
./scripts/run_headless.shEquivalent manual entry:
python main.py --mode api --port 8000Typical .env requirements:
BLENDER_MODE=headless- one provider API key
- headless Blender command variables if your Blender binary is not on the default path
- optional:
SCENE_AGENT_ENABLE_PENETRATION_VERIFY=trueto add geometry penetration checks inside the single-agentverifystep
Use this when Blender is already running locally with the addon socket server available.
./scripts/run_local_client.shTypical .env requirements:
BLENDER_MODE=local-clientBLENDER_HOSTBLENDER_PORT- optional:
SCENE_AGENT_ENABLE_PENETRATION_VERIFY=trueif you want verify-time geometry penetration checks in addition to VLM verification
This path is useful for testing owner-proxy behavior, Redis-backed thread ownership, and gateway routing.
Start:
./scripts/run_multiprocess_local.shStop:
./scripts/stop_multiprocess_local.shNotes:
- the local multi-worker flow expects Redis and Nginx to be available
- the script prefers
docker/.env.multiprocesswhen present and falls back to.env - each API worker still behaves as a single logical owner worker for the threads it owns
cp docker/.env.singleprocess.example docker/.env.singleprocess
# edit docker/.env.singleprocess
docker compose -f docker/docker-compose.singleprocess.yml upcp docker/.env.multiprocess.example docker/.env.multiprocess
# edit docker/.env.multiprocess
docker compose -f docker/docker-compose.multiprocess.yml upThe multi-worker compose stack uses:
- Nginx gateway
- multiple API workers
- Redis-backed coordination
cd web
npm install
npm run devThen point the frontend to the backend URL, typically http://localhost:8000.
Run the automated Python test suite:
pytestOptional local multi-worker smoke test:
python scripts/smoke_multiprocess_local.py \
--gateway-url http://127.0.0.1:8000 \
--worker1-url http://127.0.0.1:18001 \
--worker2-url http://127.0.0.1:18002Optional topology validation:
python scripts/validate_prompt.py \
--mode api \
--base-url http://127.0.0.1:8000 \
--prompt "Build a living room scene from the reference style." \
--topology-run compareIf you want retrieval, reconstruction, or generation services beyond the core Blender runtime, install and start the sibling 3DAgentTools stack:
git clone --recurse-submodules https://github.com/3DSceneAgent/3DAgentTools ../3DAgentTools
cd ../3DAgentTools
cp .env.example .env
# edit .env
./start_tool_servers.shSee Tool Servers for more detail.