Skip to content

Roadmap ​

This page names the directions the project is heading in and links the issues that track them. It deliberately carries no task lists or counts: open work lives in GitHub issues, what exists today is on the capability matrix and the coverage page, and what changed is in the changelog.

Milestones group the issues a release depends on:

Umbrella issues carry the tracking label; accepted capabilities the capability label.

Harden authoring and codecs ​

Authoring by attribute name, transactional edits, STEP and ifcXML are implemented. What remains is making them dependable for applications that write files others will read: schema-checked updates of existing entities, deterministic STEP output across scalar edge cases, and strict ifcXML namespace profiles with path-rich diagnostics. Tracked in #7.

Exact geometry interpretation ​

Every IFC4 representation item is addressed (see coverage), but several are lowered only in part and a few are refused with a typed reason. The goal is exact neutral geometry for all of them, without approximation or silent substitution. Tracked in #19.

Deriving plan drawings from solids needs a plane section, which is a kernel capability: it belongs in Axiolid, not here.

Georeferencing and alignment ​

ifc-georef and ifc-alignment are partial by design: their version profiles are pinned before their coverage grows. Tracked in #8.

More schema versions ​

IFC2X3 TC1, IFC4 ADD2 TC1, IFC4X1 FINAL, IFC4X2 FINAL and IFC4X3 ADD2 are bundled for validation; domain views state per crate which releases they read. IFC4X1 and IFC4X2 (#33) are recognised and validated against their own tables, and every domain crate refuses them until it verifies its layouts. The scope of IFC5/IFCX (#35) is an open question. Domain crates that read one release only are being bound to the model's declared release one by one.

Bindings and packaging ​

JavaScript, Python and C bindings ship from this repository (see install); the npm package carries tested Node, bundler and browser builds. Broader platform coverage and CMake packaging are tracked in #34.

Scale ​

Lazy reads keep large files cheap. A committed harness measures the STEP codec (eager, lazy and mapped reads, decode_all, write) and the entity graph (construction, lookup, iteration, by-type queries, traversal, heap retained and peak) at three synthetic scales and on redistributable fixtures; the baseline records the machine, load and method it was taken with, and benchmarks/README.md how to compare a change against it. A cross-backend geometry benchmark is tracked in #31.

Proposing work ​

Ideas and unresolved ownership questions start in Discussions. Concrete bugs and feature requests use the issue forms. Priority among unfinished work is demand-driven: an issue that describes a real use case moves faster. See the contributing guide.

Released under the AGPL-3.0-or-later licence. ISO and CEN standards material is not redistributed.