Type:Haus — infrastructure-as-code for residential houses. Pre-alpha.
Project description
typehaus
The Type:Haus engine — infrastructure-as-code for residential houses. Author a house plan as
typed, declarative Python; resolve topology, stacking, and framing; emit an IFC4 model,
model.json, and assembly section cards; and run integrity / code / structural checks.
Pre-alpha. APIs, schema, and outputs change without notice. Not for production use.
This is the Python package behind the haus CLI. See the repository root and docs/plan/
for the full design documentation and monorepo layout.
Install
pip install -e packages/engine # from the repo root
CLI
haus ls houses/starter --summary # compact plan digest
haus build houses/starter # -> out/model.json (+ IFC when ifcopenshell present)
haus check houses/starter # integrity/code/advisory/structural findings
haus explain HOUSE_WALL_2X6_WITH_ZIPR houses/starter --card
haus explain transitions houses/starter # derived boundary conditions
# M2 — the loop closes
haus new my-house --name "My House" # scaffold a self-contained house
haus serve houses/starter # FastAPI: model.json, PATCH /plan, undo/redo, live reload
haus render houses/starter --view plan # -> out/render/plan_*.png (agent eyes, #52)
haus print houses/starter # -> out/sheets/plan_*.dxf + .pdf (AIA layers)
haus fmt houses/starter # assign missing uids (merge-friendly canonical)
haus diff architect.ifc houses/starter # semantic diff -> out/diff.json + table
IFC emission (and haus diff's external-IFC read) requires ifcopenshell (pin 0.8.x);
when it is absent, haus build still writes model.json and reports the skipped IFC step.
The server is an optional extra: pip install -e 'packages/engine[server]'.
The model.json contract + write safety (M2)
haus serve exposes the resolved model.json (revision hash, per-element provenance, live
findings). Every PATCH /plan carries the project revision as a precondition (stale → 409),
applies element-level ops through the libcst writeback (comments/formatting preserved),
stages + validates the whole project, then writes each file atomically. Undo/redo is
server-owned (the file is the state); an external VSCode/Claude edit seals the journal.
License
MIT © Colin Catlin.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file typehaus-0.1.0a0.tar.gz.
File metadata
- Download URL: typehaus-0.1.0a0.tar.gz
- Upload date:
- Size: 6.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eace4743cd46896ec7c6b8a11d2ab4b1a2a170be54bea5107c509087bfee815a
|
|
| MD5 |
e847c04fe39c5989860f472fd254e92e
|
|
| BLAKE2b-256 |
4c4b3c92d10a4e1456e13786291b06436b956477025a5022bcec170390e0ca7e
|
File details
Details for the file typehaus-0.1.0a0-py3-none-any.whl.
File metadata
- Download URL: typehaus-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 701.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eae2dc136571d7328ef88713ef1fc994b54e384bdfca45c3b42d37d81c87a4e8
|
|
| MD5 |
f9d458f396c941026b7eb042fbfed65a
|
|
| BLAKE2b-256 |
81e2fad11cd0cbffd91aa7338d800efc765d857572a958c4188aa66e3e8e5dbc
|