Open building modeling, built in Rust.
Rustit is an experimental, Rust-first, IFC-based BIM authoring tool with scheduling and 4D built into the project model. It asks what construction software could look like if building objects, schedule activities, classifications, and the links between them had open, stable identities instead of belonging to whichever application created them.
Rustit is not currently a Revit replacement. The first milestone is intentionally small enough to finish and understand.
The current scaffold proves a narrow foundation:
- a desktop executable opens a native window;
- a semantic
LevelandWallexist independently of the UI; - an
ActivityandActivityRelationshipform an open schedule model; ElementActivityLinkmakes 4D a first-class relationship;- the model targets IFC 4.3.2.0 concepts such as
IfcBuildingStorey,IfcWall,IfcTask,IfcRelSequence, andIfcRelAssignsToProcess; - elements and activities accept IFC-aligned MasterFormat and UniFormat classification references;
- a small CPM engine calculates early/late timings and critical path in working-hour units;
- PostgreSQL and vendor integration are expressed as interfaces, not embedded assumptions; and
- all domain objects use strongly typed UUID identities that survive serialization.
Development has begun on v0.0.2. The desktop app now takes its semantic Wall, asks the replaceable Truck kernel for a neutral triangle mesh, and renders that mesh with wgpu over a ground plane. The first wall is no longer a hardcoded cube. Authoring controls, selection, and camera navigation remain next.
Install a current stable Rust toolchain on a machine with a WebGPU-compatible graphics adapter, then run:
cargo run -p rustit-appValidate the complete workspace with:
cargo fmt --all -- --check
cargo check --workspace --all-targets
cargo test --workspace --all-targets| Crate | Responsibility |
|---|---|
rustit-geometry |
Kernel-neutral geometry primitives and contracts |
rustit-geometry-truck |
Experimental Truck B-rep, tessellation, Boolean, and STEP implementation |
rustit-ifc |
IFC schema target, rooted identity, entities, and classifications |
rustit-model |
Semantic BIM authoring model (Level, Wall) |
rustit-schedule |
Activities, relationships, and deterministic CPM |
rustit-core |
Unified project and vendor-independent 4D links |
rustit-postgres |
PostgreSQL persistence interfaces and optimistic-version contract |
rustit-adapters |
IFC, P6, OPC, SYNCHRO, and future adapter boundaries |
rustit-app |
Native desktop shell and neutral-mesh GPU renderer |
The dependency direction is deliberate: domain crates know nothing about the windowing toolkit, PostgreSQL driver, or vendor APIs.
IFC 4.3.2.0 is Rustit's semantic baseline. Level, Wall, Activity, activity relationships, and 4D assignment links state their corresponding IFC entity families. Rustit keeps an ergonomic, transaction-friendly Rust representation rather than pretending a STEP exchange file is an authoring engine; IFC import/export serializes that model without inventing a separate proprietary meaning.
MasterFormat and UNIFORMAT II are modeled as edition-aware IfcClassificationReference-style associations. Rustit uses UniFormat as the internal system name and accepts project-specific labels. It does not bundle copyrighted classification tables. Projects and adapters supply the applicable edition and preserve its code, title, and source.
P6, Oracle Primavera Cloud, Bentley SYNCHRO, and future scheduling systems are adapters around Rustit's open, IFC-aligned schedule. IFC STEP and future serializations are adapters around the IFC-based authoring model. PostgreSQL/PostGIS is the planned shared persistence implementation, not the definition of the domain.
An external system may call the same activity A1040, 781992, or something else. Rustit keeps its own UUID and records the external identity at the adapter boundary.
- Vision
- Architecture
- Roadmap
- RFC 0001: The Rustit Project Model
- RFC 0002: Truck Geometry Kernel Evaluation
- Contributing
Started as a joke. Built as a serious open-source experiment.
The app assigns each new project one harmless development codename drawn from Space King, Aqua Teen Hunger Force, or The Big Lez Show territory—including Sassy the Sasquatch, Big Lez, Mike Nolan, Clarence, and Donny. These are affectionate cultural Easter eggs, not project dependencies or endorsements.