Integration from Module Schemas to Full Model

From Open Source Ecology
Revision as of 06:26, 24 January 2026 by Marcin (talk | contribs) (→‎Howto)
Jump to navigation Jump to search

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:

  1. Module Schemas (single-module truth)
  2. Assembly Schema (topology truth: what connects to what)
  3. 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:

  1. Picks a root module and places it at origin.
  2. Walks the adjacency graph and places all modules by port alignment.
  3. Emits connection events (L-corner / T-intersection / splice).
  4. 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.