Basics to advanced · 30+ minutes
Make your own Room.
A Room is a self-contained 3D space with at least one place to sit. Build and review it in your preferred 3D tool, then connect the finished USDZ to Locus with four small companion files.
Basic
Build the smallest working Room
The public minimal Room builder starts from an empty Blender scene. It creates one desk, one calibrated seat, two walls, a roof, a controlled pendant light, a thumbnail, and seated review images.
You need: macOS, Blender 5.2, Python 3, and a local copy of the public Locus support repository. The builder runs Blender in the background; no Blender MCP connection is required.
- Run the minimal Room builder. Choose a new output folder. The builder refuses to overwrite an existing one.
- Inspect every image in review/. Check the desk height, eye position, clearance, direction, materials, and light from the actual seat.
- Pack and validate the Room. The public tools create one flat ZIP and check its files, metadata, model, and limits.
- Import the exact ZIP. In Locus, choose Library → Import Your Own → Import a Room → Files.
- Try the seat on Apple Vision Pro. Pair the Room with a View, enter Virtual Space, sit at Reading Desk, and test Room Lights.
blender --background --factory-startup --python-exit-code 1 \
--python tools/build_minimal_room.py -- \
--output /absolute/path/to/minimal-reading-room
python3 tools/pack_locus_asset.py \
/absolute/path/to/minimal-reading-room/room \
/absolute/path/to/minimal-reading-room.zip
python3 tools/validate_locus_asset.py \
/absolute/path/to/minimal-reading-room.zipUse the absolute path to Blender if the blender command is not available in Terminal.
The contract
Understand the five files
my-room.zip
├── space.json
├── provenance.json
├── teleport-points.json
├── scene.usdz
└── thumbnail.jpg- scene.usdz contains the self-contained, meter-scale, +Y-up Room.
- space.json names the Room and connects optional openings, surfaces, lights, rendering roles, and animations.
- teleport-points.json gives Locus at least one usable eye position and facing direction.
- provenance.json records creator, rights, requested credit, changes, and AI use truthfully.
- thumbnail.jpg shows the Room in Places. Locus does not create it for you.
Keep the ZIP flat. Put all five files at its root. Do not include a parent folder, Blender file, source textures, GLB, caches, or review images.
Advanced
Turn your architecture into a production Room
- Design around use. Give every official seat a usable table or counter surface, comfortable clearance, and a deliberate sightline.
- Work in meters and export +Y up. Locus uses world -Z as forward. Keep every metadata-referenced entity name stable and unique.
- Declare openings and seats. Model windows and openings in the geometry; metadata describes how the finished Room connects to the selected View.
- Add only the controls the Room needs. Optional metadata can map tabletops, visitor-controlled lights, softened View reflections, UI fade permissions, and experimental ambient animations.
- Fix source problems in the source. Correct geometry, UVs, materials, textures, scale, and light direction in the editable asset, then export again.
- Validate and test every declared seat. A valid ZIP can still feel too large, cramped, blocked, or uncomfortable. Final placement and comfort checks require Apple Vision Pro.
Advanced Room integration guideSeats, openings, surfaces, lighting, rendering controls, animation, validation, and device checks.Optional AI Room-building skillGive a coding agent the contract, design language, Blender workflow, and delivery checks.Room and View ZIP referenceSupported imports, examples, provenance, and packaging.Complete format referenceExact fields, coordinates, defaults, limits, and migrations.