Integration from Module Schemas to Full Model: Difference between revisions
No edit summary |
(→Howto) |
||
| Line 9: | Line 9: | ||
If you accept that, everything downstream becomes tractable. | If you accept that, everything downstream becomes tractable. | ||
<nowiki> | |||
= 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. | |||
</nowiki> | |||
Revision as of 06:26, 24 January 2026
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.