Integration from Module Schemas to Full Model
About
This must be done not by gurus—by clerks following specs.
Why? Because of this - [1]. In short: The real risk is not skill level—it’s unconscious substitution. The danger is not incompetence. The danger is: “I know a better way to do this.”
Howto
The core simplification: Assembly is not geometry. Assembly is topology. Geometry already exists at the module level. Assembly is simply how modules are connected.
If you accept that, everything downstream becomes tractable.
Induction-Grade House Compiler Process (Modules → Assembly → Post-Compilers)
Canonical Principle
All downstream artifacts are generated from:
- Module Schemas (single-module truth)
- Assembly Schema (topology truth: what connects to what)
- Post-Compiler Passes (feature injection + routing + schedules)
No manual CAD edits. Every output must be regenerable from schemas.
0. Inputs and Conventions (Lock These In)
0.1 Coordinate and Reference Convention
- Each module has a local coordinate frame (CSYS) and published ports/faces.
- The assembly has a world CSYS and places modules via topology constraints.
- Every placed object is referenced by:
* module_id * host reference (stud_id / bay_id / distance-along-wall s) * level (z) reference (finish floor, top plate, etc.)
0.2 Module Interface Contract (Minimum)
Each module generator must publish:
- Ports: left_end, right_end, top, bottom
- Faces: interior, exterior, centerline
- Stud map: stud centerlines + IDs (queryable by distance along wall)
- No-go zones: openings, headers, shear zones, MEP prohibited zones
- Feature lanes: permissible regions for blocking + services
1. Generate Base Modules (Module Compilers)
This stage produces clean, reusable modules with metadata. No building-level logic.
1.1 Wall Modules
- Inputs: width (nominal 4'), height (8–10'+), thickness, stud spacing, sheathing side(s)
- Outputs:
* Framing geometry (studs/plates) * Sheathing geometry * Tags: studs, plates, sheathing, cavity volumes * Ports/faces + stud map + lanes
1.2 Door Modules
- Inputs: rough opening width/height, door type, header rule, king/jack rules
- Outputs:
* Framing + header + cripples + tags * Door opening volume (clearance/RO solid) * Ports/faces + stud map
1.3 Window Modules
- Inputs: rough opening width/height, sill height, header rule
- Outputs:
* Framing + header + sill + cripples + tags * Window opening volume (RO solid) * Ports/faces + stud map
2. Generate House Assembly (Assembly Compiler)
Assembly schema contains ONLY:
- module instances (id, type, parameters, orientation)
- connections (what connects to what)
The assembly compiler:
- Picks a root module and places it at origin.
- Walks the adjacency graph and places all modules by port alignment.
- Emits connection events (L-corner / T-intersection / splice).
- Outputs the full placed assembly + adjacency graph.
2.1 Assembly Schema (Topology Truth)
- modules[]:
* module_id, module_type, params, orientation, level
- connections[]:
* A.port → B.port (and connection type if explicit)
3. Post-Compiler Passes (Feature Injection + Routing)
Each pass is deterministic and idempotent:
- Re-running a pass must not duplicate features.
- Each pass outputs "feature objects" + materialized CAD + BOM deltas.
Pass Order (Recommended MVP → Full Build)
4. Pass A — Interior Blocking (Framing & Drywall Backing)
Purpose: Ensure fastening surfaces and required blocking exist based on assembly joints and finish requirements.
4.1 A1: Corner Blocking (L-Corners)
Input facts:
- Connection events of type L-corner
Actions:
- Add ladder blocking / corner backing per OSE standard
- Tag as blocking; add to BOM
4.2 A2: T-Wall Drywall Backing (Partitions into Walls)
Input facts:
- Connection events of type T-intersection
Actions:
- Add backing members to host wall at partition line
- Maintain no-go zones (openings, headers, shear zones)
4.3 A3: Drywall Seam Backing (Optional)
Input facts:
- Drywall layout rule set (sheet size, seam strategy)
Actions:
- Compute seam lines; add backing where seams fall off-stud
5. Pass B — Rough Plumbing + Water Lines
Purpose: Place plumbing fixtures and route drain/vent/water within allowed zones.
5.1 B1: Fixture Placement (Schema-Driven)
Place fixtures as feature objects with anchor references:
- Showers
- Toilets
- Bath cabinets/vanities
- Kitchen island cabinet
- Kitchen cabinets (runs)
Fixtures are placed relative to rooms/walls and reference planes.
5.2 B2: Rough Drain/Waste/Vent (DWV) Routing
Actions:
- Create DWV route graph:
* fixture drains → main stack(s) → building drain * vent paths → roof/termination
- Emit:
* pipe segments with diameters * slopes * penetrations (top/bottom plates, floors) * hanger points (optional)
- Validate:
* slope feasibility * collision checks * no-go zones
5.3 B3: Rough Water Lines (Hot/Cold)
Actions:
- Route hot/cold from water heater/manifold to fixtures
- Emit:
* pipe segments * penetrations * insulation requirements (optional)
6. Pass C — Bath Vent Fans + Ducts (Bath + Kitchen + Washer)
Purpose: Place fans/hoods and route ducts to exterior terminations.
6.1 C1: Device Placement
- Bath vent fans (per bathroom)
- Kitchen hood (or recirc decision explicitly)
- Washer vent (dryer vent if applicable)
6.2 C2: Duct Routing
Actions:
- Route ducts through predefined duct lanes (top plate, soffit zone, service cavity)
- Emit:
* duct sizes * elbows/lengths * penetrations (walls/roof) * termination caps locations
- Validate:
* max equivalent length constraints (as defined by OSE rules) * clearance zones
7. Pass D — Electrical Boxes
Purpose: Place all device boxes deterministically based on rules.
7.1 D1: Room/Perimeter Inference (Minimum Viable)
- Infer exterior wall loops and interior partitions
- Identify room boundaries (coarse is OK for MVP)
7.2 D2: Receptacle Placement
Actions:
- Along each interior wall run, place receptacles by spacing rule
- Avoid openings and no-go zones
- Attach each box to a host wall stud bay + height ref
7.3 D3: Switch Placement
Actions:
- Place switches at doors per rule set
- Place 3-way/4-way only if explicitly specified
7.4 D4: Special Loads
Actions:
- Add dedicated circuits/boxes for:
* fridge * dishwasher * oven/range * microwave (if any) * washer * dryer * water heater(s)
- Place per appliance schema anchors
8. Pass E — Wiring + Drilling Plan
Purpose: Route wires and generate stud drilling/hole schedules.
Actions:
- Build wiring graph:
* panel → devices → lights → fans → appliances
- Route in permissible zones:
* top plate runs, service cavities, chase zones
- Emit:
* cable runs and lengths * drill points per stud ID * nail plate requirements per rule set
- Validate:
* prohibited zones * spacing/derating rules as defined by OSE canon
9. Pass F — Drywall System
Purpose: Generate drywall layout and penetrations.
9.1 F1: Drywall Sheet Layout (Optional MVP+)
Actions:
- Compute sheet placement and seams per strategy
- Emit:
* sheet count * cut list * seam map
- Inject backing (if Pass A3 enabled)
9.2 F2: Drywall Penetrations (Derived)
Inputs:
- Plumbing penetrations
- Vent duct penetrations
- Electrical boxes
Actions:
- Generate drywall cutouts (with tolerances)
- Emit:
* penetration schedule by wall module * cut templates (optional)
10. Pass G — Finish Fixtures, Devices, and Cabinets
Purpose: Place finish components and final electrical components.
10.1 G1: Showers / Toilets / Bath Cabinets
Actions:
- Place fixture solids and clearances
- Emit:
* anchor points * mounting heights * fastener/backing requirements
10.2 G2: Kitchen Cabinets + Island
Actions:
- Place cabinet runs and island modules
- Inject required backing bands in walls (if not present)
- Emit:
* cabinet BOM * layout drawings
10.3 G3: Final Electrical (Devices + Covers + Lights)
Actions:
- Place:
* receptacles/switches/covers * light fixtures (ceiling) * bath fan grilles
- Output:
* device schedule * lighting plan
11. Pass H — Appliances
Purpose: Place appliances and confirm services align.
Appliances to place:
- Fridge
- Washer
- Dishwasher
- Dryer
- Oven/range
- Water heater(s)
Actions:
- Place appliance solids + clearances
- Validate:
* electrical box locations * water hookups * drain hookups * vent hookups (dryer/hood if applicable)
12. Pass I — Flooring
Purpose: Generate flooring layout, cuts, and transitions.
Actions:
- Compute floor areas per room
- Emit:
* flooring quantities * cut layout (optional) * transition strips + underlayment schedule
13. Outputs (Every Run)
Each full compile produces:
- 3D CAD assembly
- Per-module fabrication drawings (framing/sheathing)
- Feature schedules:
* blocking schedule * electrical device schedule * plumbing schedule * duct schedule * drywall penetration schedule * cabinet/appliance placement schedule
- BOM (base + deltas by pass)
- QA checklist per pass (validation report)
14. Validation Rules (Fail Loudly)
The pipeline must fail when:
- A required feature cannot be placed without violating no-go zones
- A route cannot be found within permissible lanes
- Intersections are inconsistent with topology
- Regeneration produces non-identical topology-derived outputs
15. Minimum Viable Release (MVR)
MVR includes:
- Modules: wall, door, window
- Assembly: topology placement
- Pass A: interior blocking (L + T)
- Pass D: electrical box placement (basic)
- Pass E: basic wiring routes + drilling plan (basic)
- Output: CAD + BOM + schedules
Everything else is incremental passes.