How r3nesh/root works
plot-to-plan turns plot dimensions, orientation and room requirements into a buildable house plan, then presents it as an editable 3D design. The main workflow runs from frontend inputs through the solve client and FastAPI to the CP-SAT solver, then uses the returned layout for visualization and walkthrough. The product also supports AI-assisted text and image inputs, local project recovery, design customization and cost/export tools. Some implementation excerpts are partial, so links between solver internals and unsampled feature modules are limited to documented or evident calls.
Main entry points: page.tsx Design workspace · main.py FastAPI endpoints · Scene.tsx 3D scene · model.py CP-SAT layout
Components 24
Design interface
- Design workspace
frontend/app/page.tsx - Design controls
frontend/components/TopRibbonTaskbar.tsx - Solve state
frontend/lib/useSolve.ts
Plan generation
- Solve client
frontend/lib/solve.ts - Prompt planning
frontend/lib/aiPlan.ts - Plan image input
frontend/lib/aiPlanImage.ts - FastAPI endpoints
backend/api/main.py - Prompt resolver
backend/prompt_to_plan.py - AI plan parsing
backend/ai/plan_from_image.py - Facade analysis
backend/ai/facade_from_image.py - CP-SAT layout
backend/solver/model.py - Room connectivity
backend/solver/connectivity.py - Plan realism
backend/solver/realism.py - Zoning rules
backend/zoning.py - Plan quantities
backend/solver/quantities.py
3D design
- 3D scene
frontend/components/Scene.tsx - Walkthrough controls
frontend/lib/walkthrough.ts - Materials and models
frontend/lib/materialsCatalog.ts - Procedural furniture
frontend/lib/aiFurnitureEngine.ts
Project outputs
- Local projects
frontend/lib/projectStorage.ts - Cost estimate
frontend/lib/boqEngine.ts - Blueprint export
frontend/lib/blueprintExport.ts - Design schedule
frontend/lib/designSchedule.ts
Other components
- Plot owner
Connections 26
- Plot owner → Design workspace: enters requirements
- Design workspace → Design controls: opens controls
- Design workspace → Solve state: requests layout
- Solve state → Solve client: sends constraints
- Solve client → FastAPI endpoints: POST /solve
- FastAPI endpoints → CP-SAT layout: solves layout
- Design workspace → Prompt planning: submits prompt
- Prompt planning → FastAPI endpoints: requests plan
- FastAPI endpoints → Prompt resolver: resolves prompt
- Design workspace → Plan image input: submits image
- Plan image input → FastAPI endpoints: requests analysis
- FastAPI endpoints → AI plan parsing: parses plan image
- FastAPI endpoints → Facade analysis: analyzes facade
- CP-SAT layout → Room connectivity: enforces access
- CP-SAT layout → Plan realism: adds constraints
- CP-SAT layout → Zoning rules: applies zoning
- FastAPI endpoints → Plan quantities: derives quantities
- Solve state → 3D scene: provides layout
- Design workspace → 3D scene: renders design
- 3D scene → Walkthrough controls: uses movement rules
- 3D scene → Materials and models: applies finishes
- 3D scene → Procedural furniture: builds furniture meshes
- Design workspace → Local projects: loads and saves
- Design workspace → Cost estimate: estimates cost
- Design workspace → Blueprint export: exports blueprint
- Design workspace → Design schedule: creates schedule