Generation Pipeline
The Layout Generator sits downstream of the Zoning Generator. It receives zone assignments and populates them with furniture-level detail, producing CAD-ready output with accommodation metrics.
System Architecture
Core Modules β Detail
Click each module to expand its technical specification.
Floor Plate Parser
Parses incoming floor plate files to extract the usable area boundary, structural columns, core locations (lift lobbies, staircases, toilets, MEP shafts), and fixed elements. This is the foundation geometry everything builds upon.
| DXF/DWG file | Shell floor plate from architect |
| Layer mapping | Which CAD layers = walls, columns, core |
| Scale factor | Drawing units β millimeters |
| Boundary polygon | Usable floor area as coordinates |
| Column grid | Structural column positions + sizes |
| Core zones | Fixed/excluded areas |
| Gross / Carpet area | Auto-calculated sqft |
Zoning Integration Layer
Ingests the output from the IWPS Zoning Generator β a set of named zone polygons with assigned functions. Each zone becomes a container that the Layout Engine populates with furniture.
Zone Types Supported| Zone Type | Layout Behavior | Reference Projects |
|---|---|---|
| Open Workstations | Grid-based desk placement, 1500Γ1200mm or 1500Γ750mm modules | All 12 layouts |
| Executive Cabins | L-desk + meeting table + storage, min 120-335 sqft | Hitachi, H&MV, R2 |
| Meeting Rooms | Table-centric, 2/4/6/8/10/14/20/25 pax configurations | All layouts |
| Collaboration | Mixed informal seating β sofas, high tables, bean bags | Hogarth, R18 |
| Work CafΓ© | CafΓ© tables + counter + kitchen adjacency | H&MV, Hitachi, Hogarth |
| Labs / Specialized | Equipment-first placement, bench clusters | Hitachi (CBTC, V&V, FAT) |
| Support / MEP | Server, UPS, battery, AHU β fixed equipment blocks | All layouts |
| Arrival / Reception | Reception desk + waiting + ACD/security | All layouts |
Furniture Library & Typology System
A structured library of 2D furniture blocks with dimensional metadata, clearance requirements, and grouping rules. Each block is parametric β it can scale within defined constraints.
| Block | Dimensions (mm) | Clearance | Cluster Config |
|---|---|---|---|
| 5'Γ4' Workstation | 1500 Γ 1200 | 900mm aisle (primary), 750mm (secondary) | 6-pack, 8-pack, linear rows |
| 1500Γ750 Height-adj | 1500 Γ 750 | 900mm primary aisle | Back-to-back rows, 6-pack |
| Manager Cubicle | 2000 Γ 2000 typical | 1200mm front clearance | Single row with partition |
| Pedestal | 420 Γ 560 | Under-desk | 1 per workstation |
| Room Type | Min Area (sqft) | Table Size | Equipment |
|---|---|---|---|
| 2 Pax Phone Booth | 45 | Round 600mm | Screen optional |
| 4 Pax | 100-120 | 1200 Γ 900 | Display + whiteboard |
| 6 Pax | 150-185 | 1800 Γ 900 | Display + VC |
| 8 Pax | 200-210 | 2400 Γ 1200 | Display + VC + whiteboard |
| 10 Pax | 280-310 | 3000 Γ 1200 | Dual display + VC |
| 14 Pax Board | 325-400 | 4200 Γ 1500 | Full AV, credenza |
| 25+ Pax Board | 500-535 | 6000+ Γ 1800 | Full AV, 2Γ credenza |
| Cabin Type | Area (sqft) | Furniture Set | From Project |
|---|---|---|---|
| Exec Cabin | 120-130 | L-desk, 4-pax round table, credenza, bookshelf | Hitachi, R2 |
| Director Cabin | 150-200 | Executive desk, 6-pax table, sofa, credenza | Hitachi R18 |
| CEO Cabin | 335 | Executive desk, oval meeting table, lounge seating | H&MV R1 |
| COO / MD Cabin | 169 | Executive desk, meeting table, storage | H&MV R1 |
| Room | Typical Area | Fixed Equipment | Adjacency Rule |
|---|---|---|---|
| Server Room | 100-200 sqft | Racks, raised floor, cooling | Near electrical, away from water |
| UPS Room | 105-235 sqft | UPS units, distribution panel | Adjacent to server + battery |
| Battery Room | 70-145 sqft | Battery banks | Adjacent to UPS, ventilated |
| AHU Room | 165+ sqft | Air handling units | Near external wall / louver |
| Repro / Print | 4-6 stations | Printers, plotters, shredders | Central, accessible from all zones |
Layout Generation Engine
The heart of the system. Uses a multi-pass placement algorithm that progresses from macro to micro: first anchoring major elements, then filling with workstations, then optimizing circulation and resolving conflicts.
Four-Pass Generation SequenceCirculation Router
Generates circulation paths at multiple scales β primary corridors connecting core to zones, secondary passages within zones, and tertiary aisles between desk rows.
| Path Type | Width | Purpose | Derived From |
|---|---|---|---|
| Main Corridor | 2400-3000mm | Primary spine connecting lift lobby to all departments | H&MV, Hitachi layouts |
| Secondary Passage | 1500mm | Zone-to-zone connection, meeting room access | All layouts β consistent standard |
| Tertiary Aisle | 900mm | Between desk rows | Workstation zones |
| Fire Egress | 1200mm min | Clear path to nearest staircase/exit | NBC compliance |
WPI Scoring Integration
The generated layout is automatically scored against the Workplace Performance Index. This creates a feedback loop β the engine can generate multiple variants and rank them by WPI score.
WPI parameters extracted from your layouts: the Hitachi R18 achieved a meeting room ratio of 27.1 with meeting seat ratio of 3.0 across 244 total seats. The H&MV R1 achieved a ratio of 16.2 with 97 meeting seats across 291 headcount. The engine uses these as calibration benchmarks.
CAD Export Engine
Exports the generated layout as production-quality CAD files that designers can immediately open in AutoCAD and refine. Proper layer organization is critical for this to be useful.
Layer Structure| Layer Name | Color | Contents |
|---|---|---|
| A-WALL-FULL | White | Full-height walls (meeting rooms, cabins, core) |
| A-WALL-PART | Cyan | Partitions, half-height screens |
| A-FURN-DESK | Green | All workstation blocks |
| A-FURN-CHAIR | Green | Seating β task, meeting, lounge |
| A-FURN-TABLE | Magenta | Meeting tables, cafΓ© tables |
| A-FURN-STOR | Yellow | Pedestals, credenzas, lockers, filing |
| A-CIRC | Red | Circulation paths (reference) |
| A-ZONE | Blue | Zone boundaries (reference) |
| A-DIMS | White | Dimension annotations |
| A-TEXT | White | Room labels, seat counts, area callouts |
| A-EQUIP | Orange | Printers, AV equipment, ACD |
| A-CORE | Gray | Structural columns, core walls (from input) |
ezdxf (Python). DWG output via ODA File Converter (DXF β DWG conversion). Block definitions for furniture ensure file size stays manageable β each desk type is defined once and inserted as references with rotation/position.
Rules Engine β Codified Design Intelligence
These rules are extracted from your 12 reference layouts and represent IWPS's proprietary design standards. They constrain the generation engine to produce layouts that match your design quality.
Density
| Open workstation density | 60β80 sqft/seat |
| Exec cabin min area | 120 sqft (standard) / 335 sqft (CEO) |
| Meeting room per seat ratio | 1 room per 15β30 seats |
| Meeting seat ratio | 3.0 (meeting seats Γ· total pax Γ 100) |
| Collaboration seats | 10β15% of total headcount |
| Work cafΓ© seats | 15β25% of total headcount |
Adjacency
| CEO/MD cabin | β Near arrival zone + board room |
| Executive cabins | β Window-facing, near team workstations |
| Server + UPS + Battery | β Clustered together, near electrical room |
| Kitchen / wet pantry | β Near service lift, away from workstations |
| Work cafΓ© | β Central, accessible from all zones |
| Arrival zone | β Adjacent to main lift lobby |
| Repro / print stations | β Distributed, max 30m walking distance |
Circulation
| Main corridor width | 2400β3000mm |
| Secondary passage | 1500mm minimum |
| Desk aisle (primary) | 900mm clear |
| Desk aisle (secondary) | 750mm minimum |
| Meeting room door clearance | 1000mm swing + 900mm clear |
| Fire egress max travel | 30m to nearest exit |
| Dead-end corridor max | 6m |
Compliance
| NBC fire safety | 2 exits from every occupied zone |
| Accessible route | 1200mm min clear width |
| All lab doors | 1000mm wide minimum |
| UPS / Battery doors | 1200mm wide minimum |
| Warehouse doors | 2000mm wide minimum |
| Window access | Workstations within 8m of window preferred |
| Daylight penetration | Min 60% of workstations in daylight zone |
Data Models
Algorithm Deep Dive
Placement Algorithm β Constraint Satisfaction with Optimization
The core challenge: place N furniture items within irregularly-shaped zones such that all clearance, adjacency, circulation, and density constraints are satisfied, while maximizing seat yield and WPI score.
Density-optimized (maximize seats, tighter clearances) Β· Collaboration-heavy (more collab area, lower density) Β· Balanced (IWPS recommended ratios).
Desk Row Filling Algorithm
The most frequently used sub-algorithm. Places workstation rows within a zone polygon, maximizing seat count while maintaining aisle widths.
CAD Export Architecture
DXF Generation
Primary export format. Uses ezdxf Python library for precise control over entities, layers, blocks, and dimensions.
| Library | ezdxf v1.x |
| DXF Version | R2018 (AC1032) |
| Units | Millimeters |
| Block Strategy | 1 block definition per furniture type β INSERT references |
| Hatching | Zone fills as HATCH entities with transparency |
| Dimensions | Auto-placed for rooms, corridors, key distances |
| Text | Room names, seat counts, area annotations |
DWG Conversion
Native AutoCAD format. Generated by converting the DXF output using ODA File Converter.
| Converter | ODA File Converter (free CLI tool) |
| Pipeline | Generate DXF β Run ODA β Output DWG |
| Fallback | LibreCAD CLI as secondary converter |
| Validation | Auto-open check via ezdxf audit |
Technology Stack
| Language | Python 3.11+ |
| Geometry | Shapely + CGAL bindings |
| CAD I/O | ezdxf (DXF read/write) |
| Optimization | OR-Tools (constraint solver) |
| Pathfinding | NetworkX (graph-based routing) |
| API Framework | FastAPI |
| Framework | React + TypeScript |
| 2D Rendering | Fabric.js or Konva |
| SVG Export | Built-in canvas β SVG |
| UI Components | Tailwind + shadcn/ui |
| State | Zustand |
| Hosting | Standalone Docker β later IIP |
| Database | PostgreSQL + PostGIS |
| File Storage | S3-compatible (Supabase Storage) |
| DWG Convert | ODA File Converter (CLI) |
| Auth | Supabase Auth (matches IIP) |
Implementation Roadmap
Phase 1 β Foundation Weeks 1β4
Build floor plate parser (DXF ingestion via ezdxf), implement planning grid system, create furniture block library with all types from your 12 layouts, build the rules engine with density/adjacency/circulation constraints. Deliverable: Can parse a DXF floor plate and overlay a zone grid.
Phase 2 β Generation Engine Weeks 5β8
Implement the 4-pass generation algorithm (anchor β circulate β fill β optimize). Build the desk row filling algorithm, meeting room placement, exec cabin placement. Create basic React viewer to visualize output. Deliverable: MVP β generates a furniture-level layout from zones + brief, viewable in browser.
Phase 3 β CAD Export + WPI Weeks 9β12
Build the DXF export engine with proper layering and block definitions. Integrate ODA File Converter for DWG output. Wire up WPI scoring engine. Auto-generate accommodation summary matching your R18/R1 format. Deliverable: Full standalone tool with CAD export.
Phase 4 β Polish + Variants Weeks 13β16
Implement variant generation (density/collaboration/balanced). Add industry benchmark comparison (Gensler/CBRE/JLL standards). Refine collision resolution and edge cases (irregular floor plates, very small zones). Prepare API contracts for future IIP integration. Deliverable: Production-ready standalone tool.
Technical Risks & Mitigations
Several of your layouts have curved edges, angular cuts, and non-convex shapes. The placement algorithm must handle arbitrary polygons without generating furniture outside the boundary.
Mitigation: Use Shapely polygon clipping for all placement operations. Every furniture item's bounding box is intersection-tested against the zone polygon before confirming placement.
The DXF β DWG conversion via ODA can occasionally lose certain entity types or properties. Designers need pixel-perfect CAD output.
Mitigation: Stick to well-supported DXF entity types (LINE, CIRCLE, ARC, POLYLINE, INSERT, HATCH, TEXT, MTEXT, DIMENSION). Avoid complex entities. Run automated audit after conversion.
A* pathfinding on discretized grids can produce non-optimal paths in irregular floor plates, especially around curves and angles.
Mitigation: Use visibility graph pathfinding as a secondary algorithm for complex geometries. Fall back to manual corridor placement for extreme cases.
The optimizer (Pass 4) may not converge for some input combinations β e.g., too many seats requested for available area.
Mitigation: Pre-validate inputs against density ranges before generation. If optimizer doesn't converge in 100 iterations, report specific conflicts to user with suggested adjustments.
Confidential β Internal Use Only