Now the fix is complete. Here's what was wrong and what I changed: 1. **Root cause**: `worldOctree.fromGraphNode(this.scene)` built collision from ALL scene geometry, including door meshes, furniture visuals, lights, etc. When a door was opened and hidden, the octree still blocked because it was rebuilt from the whole scene. 2. **Fix**: `rebuildOctree()` now only builds from meshes in `house.collisionMeshes`, ignoring everything else in the scene. 3. **All doors** (not just locked ones) are now added to `collisionMeshes` so they block until opened. 4. **Unlocking a locked door** now also opens it in one step (hides it + removes collision). **Next Ideas:** 1. **Door swing animation** - Animate doors rotating open on a hinge instead of disappearing instantly 2. **Interior lighting changes** - Make rooms darker when doors are closed and light spills out when opened **Ready to level up your game? Pick one and let's build it!**