Technical Architecture Scope

IWPS Layout Generator

Automated furniture-level office layout generation with CAD export β€” the next evolution after the Zoning Generator on the IIP platform.

Platform Standalone β†’ IIP Integration
Output Level Furniture-Level Layout
Export Format DXF / DWG + Visual
Date April 2026
1

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.

πŸ“
Floor Plate Input
DXF boundary + core
β†’
πŸ—ΊοΈ
Zoning Output
Zone polygons + types
β†’
βš™οΈ
Layout Engine
Placement + routing
β†’
πŸͺ‘
Furniture Layout
Individual placement
β†’
πŸ“Š
Metrics + Export
WPI + DXF/DWG
Key Differentiator: Unlike generic space-planning tools, this generator encodes IWPS's proprietary design intelligence β€” adjacency rules, density standards, and workplace typologies derived from 12+ completed projects. The output includes WPI scoring, making it the only tool that generates AND evaluates layouts simultaneously.
2

System Architecture

INPUT LAYER Floor Plate Parser DXF/DWG β†’ Polygons Zoning Receiver Zone polygons + types Brief / Program Headcount + requirements Typology Selector Corporate / Lab / Creative PROCESSING CORE Rules Engine Density Β· Adjacency Β· Circulation Β· Compliance Β· MEP Clearance 500+ rules from 12 IWPS projects Furniture Library 2D blocks + metadata Grid System 1500mm planning grid Layout Generation Engine Constraint satisfaction + optimization Zone β†’ Furniture cluster β†’ Individual placement β†’ Routing Multi-pass: anchor β†’ fill β†’ adjust β†’ validate Circulation Router Primary + secondary paths Collision Detector Overlap + clearance check WPI Scoring Engine Real-time performance scoring during generation Accommodation Summary Generator Seats Β· Rooms Β· Ratios Β· Areas β€” auto-calculated OUTPUT LAYER DXF Export AutoCAD-compatible DWG Export Native AutoCAD 2D Rendered Floor Plan (SVG / PNG) Color-coded zones, furniture, labels, compass, scale Accommodation Summary Matching R18/R1 format β€” seats, rooms, ratios, sqft WPI Scorecard Workplace Performance Index β€” auto-evaluated Benchmark Comparison vs. Gensler / CBRE / JLL published standards Layout Variants 3 options: Density-optimized Β· Collaboration Β· Balanced
3

Core Modules β€” Detail

Click each module to expand its technical specification.

πŸ“

Floor Plate Parser

INPUT Β· Handles DXF/DWG ingestion and boundary extraction
β–Ό

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.

Inputs
DXF/DWG fileShell floor plate from architect
Layer mappingWhich CAD layers = walls, columns, core
Scale factorDrawing units β†’ millimeters
Outputs
Boundary polygonUsable floor area as coordinates
Column gridStructural column positions + sizes
Core zonesFixed/excluded areas
Gross / Carpet areaAuto-calculated sqft
Handling irregular plates: Your layouts show several non-rectangular floor plates (curved edges, angular cuts). The parser must handle arbitrary polygons β€” not just rectangles. We'll use computational geometry (Shapely/CGAL) for polygon operations.
πŸ—ΊοΈ

Zoning Integration Layer

INPUT Β· Receives zone assignments from Zoning Generator
β–Ό

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 TypeLayout BehaviorReference Projects
Open WorkstationsGrid-based desk placement, 1500Γ—1200mm or 1500Γ—750mm modulesAll 12 layouts
Executive CabinsL-desk + meeting table + storage, min 120-335 sqftHitachi, H&MV, R2
Meeting RoomsTable-centric, 2/4/6/8/10/14/20/25 pax configurationsAll layouts
CollaborationMixed informal seating β€” sofas, high tables, bean bagsHogarth, R18
Work CafΓ©CafΓ© tables + counter + kitchen adjacencyH&MV, Hitachi, Hogarth
Labs / SpecializedEquipment-first placement, bench clustersHitachi (CBTC, V&V, FAT)
Support / MEPServer, UPS, battery, AHU β€” fixed equipment blocksAll layouts
Arrival / ReceptionReception desk + waiting + ACD/securityAll layouts
πŸͺ‘

Furniture Library & Typology System

DATA Β· Parametric furniture blocks + workplace typologies
β–Ό

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.

BlockDimensions (mm)ClearanceCluster Config
5'Γ—4' Workstation1500 Γ— 1200900mm aisle (primary), 750mm (secondary)6-pack, 8-pack, linear rows
1500Γ—750 Height-adj1500 Γ— 750900mm primary aisleBack-to-back rows, 6-pack
Manager Cubicle2000 Γ— 2000 typical1200mm front clearanceSingle row with partition
Pedestal420 Γ— 560Under-desk1 per workstation
Room TypeMin Area (sqft)Table SizeEquipment
2 Pax Phone Booth45Round 600mmScreen optional
4 Pax100-1201200 Γ— 900Display + whiteboard
6 Pax150-1851800 Γ— 900Display + VC
8 Pax200-2102400 Γ— 1200Display + VC + whiteboard
10 Pax280-3103000 Γ— 1200Dual display + VC
14 Pax Board325-4004200 Γ— 1500Full AV, credenza
25+ Pax Board500-5356000+ Γ— 1800Full AV, 2Γ— credenza
Cabin TypeArea (sqft)Furniture SetFrom Project
Exec Cabin120-130L-desk, 4-pax round table, credenza, bookshelfHitachi, R2
Director Cabin150-200Executive desk, 6-pax table, sofa, credenzaHitachi R18
CEO Cabin335Executive desk, oval meeting table, lounge seatingH&MV R1
COO / MD Cabin169Executive desk, meeting table, storageH&MV R1
RoomTypical AreaFixed EquipmentAdjacency Rule
Server Room100-200 sqftRacks, raised floor, coolingNear electrical, away from water
UPS Room105-235 sqftUPS units, distribution panelAdjacent to server + battery
Battery Room70-145 sqftBattery banksAdjacent to UPS, ventilated
AHU Room165+ sqftAir handling unitsNear external wall / louver
Repro / Print4-6 stationsPrinters, plotters, shreddersCentral, accessible from all zones
Typology System: Beyond individual furniture, the library stores pre-configured "typologies" β€” complete room setups that can be instantiated as a unit. Example: "6-Pax Meeting Room Typology" includes table + 6 chairs + display + whiteboard + clearances, all pre-validated.
βš™οΈ

Layout Generation Engine

CORE Β· The main placement and optimization 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 Sequence
P1
Anchor Pass β€” Fixed & Major Elements
Places structural columns (from DXF), core areas, arrival zone, CEO/executive cabins near windows, server/UPS/battery cluster. These are "immovable" after placement. Column grid drives the planning grid.
P2
Circulation Pass β€” Primary Corridors & Paths
Routes primary corridors (2400-3000mm wide) from lift lobby to all zones. Establishes secondary passages (1500mm) along zone boundaries. Ensures fire egress compliance β€” min 2 exit paths from every point.
P3
Fill Pass β€” Workstations & Rooms
Populates each zone with the appropriate furniture typology. Workstation zones get desk rows aligned to the grid; meeting rooms get table + chairs; collaboration zones get mixed informal furniture. Density targets guide fill level.
P4
Optimize Pass β€” Adjust & Validate
Runs collision detection, adjusts furniture positions to resolve overlaps, ensures minimum clearances are met, verifies all rooms have door access, checks WPI compliance. Iterates until all constraints satisfied or reports conflicts.
🚢

Circulation Router

CORE Β· Pathway generation and fire egress compliance
β–Ό

Generates circulation paths at multiple scales β€” primary corridors connecting core to zones, secondary passages within zones, and tertiary aisles between desk rows.

Path TypeWidthPurposeDerived From
Main Corridor2400-3000mmPrimary spine connecting lift lobby to all departmentsH&MV, Hitachi layouts
Secondary Passage1500mmZone-to-zone connection, meeting room accessAll layouts β€” consistent standard
Tertiary Aisle900mmBetween desk rowsWorkstation zones
Fire Egress1200mm minClear path to nearest staircase/exitNBC compliance
Algorithm: Uses A* pathfinding on a discretized grid, with corridor width as a constraint. Primary corridors are placed first (P2), then secondary paths are routed around placed furniture (P3/P4). Dead-end detection ensures every workstation has at least 2 egress routes.
πŸ“Š

WPI Scoring Integration

OUTPUT Β· Real-time Workplace Performance Index calculation
β–Ό

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
Overall Score
1:15-30
Meeting Room Ratio
3.0
Meeting Seat Ratio
60-80
Sqft / Seat Target

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

OUTPUT Β· DXF/DWG generation with proper layering
β–Ό

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 NameColorContents
A-WALL-FULLWhiteFull-height walls (meeting rooms, cabins, core)
A-WALL-PARTCyanPartitions, half-height screens
A-FURN-DESKGreenAll workstation blocks
A-FURN-CHAIRGreenSeating β€” task, meeting, lounge
A-FURN-TABLEMagentaMeeting tables, cafΓ© tables
A-FURN-STORYellowPedestals, credenzas, lockers, filing
A-CIRCRedCirculation paths (reference)
A-ZONEBlueZone boundaries (reference)
A-DIMSWhiteDimension annotations
A-TEXTWhiteRoom labels, seat counts, area callouts
A-EQUIPOrangePrinters, AV equipment, ACD
A-COREGrayStructural columns, core walls (from input)
Technical approach: DXF output via 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.
4

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 density60–80 sqft/seat
Exec cabin min area120 sqft (standard) / 335 sqft (CEO)
Meeting room per seat ratio1 room per 15–30 seats
Meeting seat ratio3.0 (meeting seats Γ· total pax Γ— 100)
Collaboration seats10–15% of total headcount
Work cafΓ© seats15–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 width2400–3000mm
Secondary passage1500mm minimum
Desk aisle (primary)900mm clear
Desk aisle (secondary)750mm minimum
Meeting room door clearance1000mm swing + 900mm clear
Fire egress max travel30m to nearest exit
Dead-end corridor max6m

Compliance

NBC fire safety2 exits from every occupied zone
Accessible route1200mm min clear width
All lab doors1000mm wide minimum
UPS / Battery doors1200mm wide minimum
Warehouse doors2000mm wide minimum
Window accessWorkstations within 8m of window preferred
Daylight penetrationMin 60% of workstations in daylight zone
5

Data Models

interface FloorPlate { id: string; boundary: Polygon; // Outer boundary as coordinate ring cores: CoreElement[]; // Lift lobbies, stairs, toilets, shafts columns: Column[]; // Structural columns with position + size fixedWalls: LineSegment[]; // Immovable walls from shell grossArea: number; // Total area in sqft carpetArea: number; // Usable area after core exclusion windowEdges: LineSegment[]; // Edges with windows β€” drives daylight calc orientation: CompassBearing; // North direction for compass rose gridSpacing: number; // Planning grid in mm (default 1500) }
interface Zone { id: string; name: string; // "Engineering Dept", "Work CafΓ©", etc. type: ZoneType; // WORKSTATION | EXECUTIVE | MEETING | COLLAB | CAFE | LAB | SUPPORT | ARRIVAL polygon: Polygon; // Zone boundary within floor plate area: number; // Calculated area in sqft targetHeadcount: number; // How many seats this zone should hold adjacencyRequired: string[]; // Zone IDs this must be near adjacencyAvoid: string[]; // Zone IDs to keep distance from windowAccess: boolean; // Does this zone touch a window edge? furnitureTypology: string; // Which typology template to apply densityTarget: number; // Sqft per seat target for this zone }
interface FurnitureBlock { id: string; category: string; // DESK | CHAIR | TABLE | STORAGE | EQUIPMENT name: string; // "5x4_workstation", "6pax_meeting_table" width: number; // In mm depth: number; // In mm clearance: { front: number; // Required clearance in mm back: number; left: number; right: number; }; seatCount: number; // Seats this block provides canRotate: boolean; // Can be placed at 0/90/180/270 cadBlockName: string; // Reference name in DXF block table cadLayer: string; // Target layer for CAD export clusterWith: string[]; // Other block IDs that form a group }
interface GeneratedLayout { id: string; floorPlate: FloorPlate; zones: Zone[]; placements: FurniturePlacement[]; // Every placed item with position + rotation walls: WallSegment[]; // Generated partition walls doors: DoorPlacement[]; // Door positions in walls circulation: CirculationPath[]; // Generated corridors and aisles accommodationSummary: { totalSeats: number; workstations: number; meetingRooms: number; meetingSeats: number; meetingRoomRatio: number; meetingSeatRatio: number; collabSeats: number; cafeSeats: number; lineItems: AccommodationLineItem[]; // Matches R18/R1 format }; wpiScore: WPIScorecard; variant: string; // "density_optimized" | "collaboration" | "balanced" generatedAt: Date; }
6

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.

Approach: Hybrid CSP + Greedy Optimization
// Pseudocode: Main generation loop function generateLayout(floorPlate, zones, brief) { // PASS 1: Anchor immovable elements grid = createPlanningGrid(floorPlate, 1500); // 1500mm grid placeCore(floorPlate.cores, grid); placeColumns(floorPlate.columns, grid); // PASS 2: Route primary circulation mainCorridors = routeCorridors( floorPlate.cores.liftLobby, zones.centroids(), width: 2400, // mm algorithm: "weighted_astar" ); secondaryPaths = routeSecondaryPaths(zones, width: 1500); markCirculationZones(mainCorridors, secondaryPaths, grid); // PASS 3: Fill zones with furniture for (zone of zones.sortByPriority()) { typology = furnitureLibrary.getTypology(zone.type); if (zone.type === "WORKSTATION") { // Determine optimal desk orientation (parallel vs perpendicular to window) orientation = calcOptimalOrientation(zone, floorPlate.windowEdges); // Fill with desk rows, respecting aisle widths fillWithDeskRows(zone, typology, orientation, grid); } if (zone.type === "MEETING") { // Place meeting rooms as enclosed typologies placeMeetingRooms(zone, brief.meetingRoomMix, grid); } if (zone.type === "EXECUTIVE") { // Place cabins along windows, sorted by seniority placeExecCabins(zone, brief.execCabinList, grid); } // ... other zone types } // PASS 4: Optimize conflicts = detectCollisions(grid); while (conflicts.length > 0 && iterations < 100) { resolveConflicts(conflicts, grid); validateClearances(grid); validateEgress(grid, floorPlate); conflicts = detectCollisions(grid); } // Score and generate output wpi = calculateWPI(grid, brief); summary = generateAccommodationSummary(grid); return { grid, wpi, summary }; }
Variant Generation: The engine runs 3 times with different weight parameters to produce 3 layout options:
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.

// Desk row filling β€” the "bread and butter" algorithm function fillWithDeskRows(zone, typology, orientation, grid) { deskModule = typology.primaryDesk; // e.g., 1500Γ—1200mm aisleWidth = 900; // mm, primary aisle // Calculate row pitch: desk_depth Γ— 2 (back-to-back) + aisle rowPitch = (deskModule.depth * 2) + aisleWidth; // e.g., 3300mm // Sweep across zone in orientation direction scanLines = generateScanLines(zone.polygon, orientation, rowPitch); for (line of scanLines) { // Clip scan line to zone boundary segments = clipToPolygon(line, zone.polygon); for (seg of segments) { // Place desks along segment, snapping to 1500mm grid count = Math.floor(seg.length / deskModule.width); for (i = 0; i < count; i++) { pos = seg.start + (i * deskModule.width); placeFurniture(deskModule, pos, orientation, grid); placeFurniture(deskModule, pos + deskModule.depth, orientation + 180, grid); // Back-to-back } } } }
7

CAD Export Architecture

DXF Generation

Primary export format. Uses ezdxf Python library for precise control over entities, layers, blocks, and dimensions.

Libraryezdxf v1.x
DXF VersionR2018 (AC1032)
UnitsMillimeters
Block Strategy1 block definition per furniture type β†’ INSERT references
HatchingZone fills as HATCH entities with transparency
DimensionsAuto-placed for rooms, corridors, key distances
TextRoom names, seat counts, area annotations

DWG Conversion

Native AutoCAD format. Generated by converting the DXF output using ODA File Converter.

ConverterODA File Converter (free CLI tool)
PipelineGenerate DXF β†’ Run ODA β†’ Output DWG
FallbackLibreCAD CLI as secondary converter
ValidationAuto-open check via ezdxf audit
Note: True DWG generation without ODA requires licensing from Autodesk (RealDWG SDK). The DXF β†’ DWG pipeline via ODA is the industry-standard workaround used by most non-Autodesk CAD tools.
8

Technology Stack

Backend / Engine
LanguagePython 3.11+
GeometryShapely + CGAL bindings
CAD I/Oezdxf (DXF read/write)
OptimizationOR-Tools (constraint solver)
PathfindingNetworkX (graph-based routing)
API FrameworkFastAPI
Frontend / Viewer
FrameworkReact + TypeScript
2D RenderingFabric.js or Konva
SVG ExportBuilt-in canvas β†’ SVG
UI ComponentsTailwind + shadcn/ui
StateZustand
Infrastructure
HostingStandalone Docker β†’ later IIP
DatabasePostgreSQL + PostGIS
File StorageS3-compatible (Supabase Storage)
DWG ConvertODA File Converter (CLI)
AuthSupabase Auth (matches IIP)
9

Implementation Roadmap

16
Weeks Total
4
Phases
MVP
Week 8 Target
CAD
Week 12 Target

Phase 1 β€” Foundation Weeks 1–4

Core geometry engine + rules database

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

Core placement algorithm + basic viewer

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

DXF/DWG export, WPI scoring, accommodation summary

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

3 layout variants, benchmark comparison, IIP prep

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.

10

Technical Risks & Mitigations

HIGH
Irregular floor plate handling

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.

MED
DWG export fidelity

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.

MED
Circulation routing in complex geometries

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.

LOW
Constraint satisfaction convergence

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.

IWPS Global Γ— wx1.ai
Layout Generator Technical Architecture β€” April 2026
Confidential β€” Internal Use Only