How anikakesavan/reconstruct works
Reconstruct turns room photos or video into an editable 3D room, then lets users redesign and compare it in the browser. The scan path accepts uploads, prepares frames, estimates and fuses geometry, fits the room, and detects furniture and openings; the browser presents the result and supports editing, catalog placement, material changes, measurement, and local saves. The graph preserves these major capabilities, but some service stages are represented at their module level because their implementation was not excerpted.
Main entry points: pipeline.py Reconstruction pipeline · store.ts Design state · Studio.tsx Studio shell · Furniture.tsx Furniture models
Components 22
Browser studio
- Studio shell
apps/web/components/studio/Studio.tsx - Scan upload
apps/web/components/studio/UploadDialog.tsx - Service API client
apps/web/lib/api.ts
Design and rendering
- Design state
apps/web/lib/store.ts - Placement rules
apps/web/lib/placement.ts - Furniture catalog
apps/web/lib/catalog.ts - Furniture inspector
apps/web/components/studio/Inspector.tsx - Room controls
apps/web/components/studio/RoomPanel.tsx - 3D viewport
apps/web/components/scene/Viewport.tsx - Room shell
apps/web/components/scene/Room.tsx - Furniture models
apps/web/components/scene/Furniture.tsx - Material recoloring
apps/web/components/scene/recolor.ts - Room and scan data
apps/web/lib/types.ts
Reconstruction service
- HTTP service
services/reconstruction/app/main.py - Scan jobs
services/reconstruction/app/jobs.py
Scan processing
- Frame preparation
services/reconstruction/app/frames.py - Reconstruction pipeline
services/reconstruction/app/pipeline.py - Geometry fusion
services/reconstruction/app/fuse.py
Room and furniture analysis
- Room fitting
services/reconstruction/app/roomfit.py - Object detection
services/reconstruction/app/objects.py - Scan quality
services/reconstruction/app/quality.py
Other components
- Room designer
Connections 26
- Room designer → Studio shell: edits room
README.md - Studio shell → Scan upload: opens
apps/web/components/studio/Studio.tsx - Studio shell → Furniture inspector: renders
apps/web/components/studio/Studio.tsx - Studio shell → Room controls: renders
apps/web/components/studio/Studio.tsx - Studio shell → 3D viewport: renders
- Scan upload → Service API client: calls
apps/web/components/studio/UploadDialog.tsx - Scan upload → Design state: opens scan
apps/web/components/studio/UploadDialog.tsx - Service API client → HTTP service: HTTP requests
- HTTP service → Scan jobs: queues and reads
services/reconstruction/app/main.py - Scan jobs → Reconstruction pipeline: runs
services/reconstruction/app/jobs.py - HTTP service → Reconstruction pipeline: reports health
services/reconstruction/app/main.py - Reconstruction pipeline → Frame preparation: prepares views
services/reconstruction/app/pipeline.py - Reconstruction pipeline → Geometry fusion: fuses views
services/reconstruction/app/pipeline.py - Reconstruction pipeline → Room fitting: fits room
services/reconstruction/app/pipeline.py - Reconstruction pipeline → Object detection: detects objects
services/reconstruction/app/pipeline.py - Reconstruction pipeline → Scan quality: assesses quality
services/reconstruction/app/pipeline.py - Design state → Placement rules: checks placement
apps/web/lib/store.ts - Design state → Furniture catalog: uses definitions
apps/web/lib/store.ts - Furniture inspector → Design state: edits design
- Room controls → Design state: edits room
apps/web/components/studio/RoomPanel.tsx - 3D viewport → Room shell: renders
apps/web/components/scene/Viewport.tsx - 3D viewport → Furniture models: renders
apps/web/components/scene/Viewport.tsx - Furniture models → Furniture catalog: loads models
apps/web/components/scene/Furniture.tsx - Furniture models → Material recoloring: recolors materials
apps/web/components/scene/Furniture.tsx - Furniture models → Design state: reads selection
apps/web/components/scene/Furniture.tsx - Design state → Room and scan data: stores typed data
apps/web/lib/store.ts