Skip to content

About

Open-source BIM application for architectural modelling. Independent, built from scratch (Rust engine, Qt 6 shell). ALPHA demo - not a final product.

Topics

Resources

Contributing

Security policy

Stars

8 stars

Watchers

1 watching

Forks

Repository files navigation

ASTERION BIM

status: alpha licence: Apache-2.0 platform: Windows Discord

An independent, open-source building information modelling (BIM) application, built from scratch. Its goal is to let people model, document and exchange architectural projects with a tool they can inspect, extend and run without a proprietary licence.

This is an ALPHA demo, not a finished product. The project is opening to the public gradually, so that people can test it and tell us what is wrong. Expect missing features, rough edges and crashes. Do not use it for real project deliverables. Everything below says what works, what does not, and how we know.

Working name. "ASTERION" is a working name. Its availability as a trademark has not been confirmed and it may change.

What is this | Screenshots | Status at a glance | Measured numbers | Known limitations | What alpha means | Architecture | Try it | Community | Contributing | Roadmap | Legal position | Licence | En espanol

What is this

ASTERION BIM is a desktop BIM application for Windows. It has its own semantic building model (levels, walls, floors, roofs, openings, rooms, grids, views and so on), its own geometry kernel, its own native document format (.ast, a compact versioned binary format; the older .asterion.json text projects still open), a desktop shell with ribbon, properties palette and project browser, and a viewport that draws plans, 3D views, sections, elevations and schedules from the model.

Its modelling workflows and results are measured against one fixed reference: recorded observations of a single version of a leading commercial BIM application (see Legal position and NOTICE). Compatibility is a goal, not a claim: each statement below links to a number, and the numbers include the failures.

What it is not: it is not a plugin for another product, not an IFC viewer, not a web page, and it does not need any other BIM product installed to run.

Screenshots

All images are real captures of the ASTERION alpha window (1920 x 1080) showing the ASTERION Villa, a three-storey contemporary house created from scratch with ASTERION's own engine operations: 37 walls in six layered types plus a curtain-wall type (two curved glazed walls and a double-height curtain wall), 14 doors and 15 windows, floors, ceilings, a hipped roof with flat roofs and terraces, 13 named and numbered rooms, columns, a structural grid, stairs with railings, dimensions, tags and notes, two sections, four elevations, four schedules, two sheets and a site. No model from any other product or any third party is shown. A self-test rebuilds the villa, saves it, opens it again and reads every count back.

ASTERION BIM 3D view of the ASTERION Villa: a three-storey contemporary house with a double-height glazed facade, a timber box overhanging it on slim columns, a hipped roof, a studio wing with a roof terrace and a walled courtyard, on a lawn

Shaded 3D view of the whole building from the south-east.

Close-up of the ASTERION Villa: the curtain-wall facade with its grid and mullions, three columns carrying the overhanging second floor, and the roof terrace of the studio wing

Consistent-colours 3D view, zoomed on the double-height curtain wall, the columns and the overhang.

Ground floor plan of the ASTERION Villa: hall, living room, kitchen with a semicircular bay, studio and utility room, with room tags, door and window tags, grid lines, a dimension string and section marks

Ground floor plan, drawn from the model: rooms with name and number, tagged doors and windows, grids and dimensions.

First floor plan of the ASTERION Villa: bedroom, landing, master bedroom and lounge, the void over the living room and the roof terrace of the studio wing

First floor plan.

Cross section of the ASTERION Villa at 1:50: three storeys, floor slabs, cut walls, openings and the hipped roof

Cross section at 1:50 (outline line work: no hatching in this alpha).

South elevation of the ASTERION Villa: the glazed curtain-wall facade, the overhanging timber box, the studio wing and the courtyard wall

South elevation at 1:50 (outline line work, no hidden-line removal in this alpha).

Door schedule of the ASTERION Villa listing 14 doors by mark, type, width, height and level

A schedule read from the model on every refresh.

What the pictures do not show, honestly: the stairs of the villa are hidden inside its walls in these views, materials do not colour the 3D view, and sections and elevations are outline drawings. See Known limitations.

Status at a glance

Area State in this alpha
Walls (straight and arc), joins, location line, compound layers Works; the engine matches recorded reference scenarios on most fields, with known gaps in arc walls and joins at unusual angles (see numbers)
Doors and windows hosted in walls Works
Floors, ceilings, footprint roofs, sloped floors Works for the common cases
Rooms, levels, grids Works
Columns, curtain walls Works; not yet counted as validated against the reference
Views: plan, 3D, section, elevation, schedule, sheet Plan, 3D, section, elevation, callout and schedule views work (selection and Properties in every view type); sheets are basic
Annotation: aligned and linear dimension, tag, text Basic
Stairs and railings Straight runs, landings, supports, railings, balusters and top rails have a body in 3D, section and plan; spiral, winder and monolithic runs are not drawn yet, and two of the three railing types are approximations
Editing Move, copy, rotate, mirror, offset, scale, array, split, trim / extend, join geometry, wall joins, pin, delete, paste, match type, undo / redo work. Align, cut, split with gap, repeat, displace and similar are disabled with the reason
Saving Native .ast format (and the older .asterion.json text format); recovery copy after an abnormal exit
Structure, steel, precast, MEP (systems), analysis, collaboration Not supported. The tabs exist in the window; their commands are disabled
Windows installer Exists, unsigned
Other operating systems, other versions of the reference application Not supported

Every ribbon control that does not work is drawn in its place, disabled, with the reason in its tooltip. Nothing in the window is decorative and no value shown is sample data: what you see is read from the engine after every edit, undo and open.

Measured numbers

Every figure here comes from files the project generates itself, was produced on the date and commit shown, and is reproducible by the maintainers. A "commit" is a commit of the project's private development tree (the source is published module by module, see Legal position). Failures are listed, not hidden.

Engine versus the reference product (differential tests)

How it is measured: scenarios were run in a licensed installation of the reference product through its public programming interface, and their results recorded. The same scenarios are replayed in the ASTERION engine and compared field by field. This is a comparison against observations, run by the project; it is not endorsed, audited or certified by anyone else.

Measure (summary generated 2026-10-20, development-tree commit b51a55bc) Value
Recorded scenario rounds 55
Fields compared 921,013
Fields equal 918,405 (99.72 % of those compared)
Fields different 2,608
Fields missing on one side 211
Fields recorded but not compared 1,134,320

Read the last two rows as seriously as the first. "99.72 %" is of the fields that are compared, and more than a million recorded fields are not compared at all: mostly element kinds ASTERION does not model yet, parameter dumps, and part of the solid vertex data. They do not count as parity. Of the compared vertex data, 4,853 solid vertex sets (167,133 coordinates) are checked and 702 of those sets differ. The largest remaining groups of differences are arc walls and wall joins at other angles. The summary is regenerated on every build.

Application self-tests

Measure Result
Milestone verification, commit 02df9b7c, 2026-10-20 02:58 ALL PASS: 641 self-tests PASS, 0 FAIL; live performance 7 PASS; drawing-experience targets 20 of 20 met
Windows installer test, development-tree commit d4bf2bb6, 2026-10-21 silent install OK; .ast registration and removal OK; 1,194 edit self-tests and 41 demo steps run from the installed copy (0 FAIL); snapshot OK; uninstall removes the install folder. On the one test machine, which had earlier test builds installed, the Start-menu shortcut stayed after uninstall
"Build a house from scratch" demo script, part A, run 2026-10-20 on the build used for the screenshots (3d71d951) 26 steps, 26 PASS, 0 FAIL; 28 committing clicks, median 2.5 ms, 90th percentile 5.2 ms, worst 10.5 ms (press to end of redraw)

The self-tests drive the real window and read every result back from the engine. They show that the application does what its authors scripted. They do not show that every behaviour equals the reference product; the comparison above is what addresses that, and it is incomplete.

Commands and plan

Measure (regenerated 2026-10-20 at development-tree commit b51a55bc) Value
Commands drawn on the ribbon (architecture, modify, annotate, view) 154
... wired to the engine and working 83
... of those, validated against the reference behaviour 54
Internal roadmap items done / in progress / total 45 / 21 / 82 (54.9 % done)

"Validated" is a stricter bar than "works": the behaviour has been specified from observation and the engine's result has been compared with the reference. The 29 working-but-not-validated commands are labelled implemented internally, never counted as parity.

Known limitations

This list is deliberately long. If something you need is not here, assume it is missing.

  • Spiral, winder and monolithic stair runs have no 3D body yet, and two of the three railing types are approximations (only the pipe railing follows measured data).
  • Many ribbon commands are disabled, each with its reason in the tooltip: all remaining annotation kinds (spot elevations, detail items, legends, scope boxes, matchlines, area plans, ramps, model text and more), most of the View tab beyond plan / 3D / section / elevation / schedule / sheet, loadable-family authoring, and a long tail of flyout commands.
  • Selection and properties: click, hover pre-selection, Tab cycling, add / remove and window / crossing selection work in plan, section, elevation, callout and 3D views, and the Properties palette follows the selection. 3D window / crossing selection ignores occlusion; railing types have no Type Properties page; viewports on a sheet cannot be dragged yet; there are no selection filters.
  • No MEP, structure, steel, precast, analysis or collaboration. Architecture only.
  • One reference version only. No other version of any product is a target.
  • Windows only (tested on Windows 11, x64, with a GPU that supports DirectX 12 or Vulkan). No Linux, no macOS.
  • The installer is unsigned. Windows SmartScreen will warn you. Check the SHA-256 listed in the release notes.
  • No IFC, DWG, DXF or PDF export or import yet. The native .ast format may change between alpha builds.
  • Several behaviours are the engine's own choice, not matched to the reference: the frame of an elevation view, which elements a section cuts, how a schedule names itself, the arc-wall drawing gesture, and what a plain duplicate copies. They are marked as such inside the project and are not counted as parity.
  • Columns, curtain walls and the default 3D view work but are not counted as validated yet.
  • The visual line of the window follows the layout conventions of the reference product's workflow on purpose, so its users do not have to relearn it. It has not been audited by a third party, and the icons and artwork are ASTERION's own drawings.
  • Crashes and data loss are possible. Save often and keep your originals.

What alpha means

  • Features are incomplete and may change or disappear. File formats may change without migration.
  • Numbers above are a snapshot, not a promise. They move every day, in both directions.
  • There is no support and no warranty (see the licence). Bug reports are welcome and read, but not on a schedule.
  • It is for testing, learning and feedback. Do not use it on projects that matter.
  • "Opening gradually" means: first this README and the project's rules, then alpha builds for testers, then source code module by module as each one's origin can be documented. Nothing is hidden on purpose, and nothing is published before it can be explained.

Architecture

flowchart TB
    subgraph Shell["Desktop shell (C++ / Qt 6, LGPL, dynamically linked)"]
        UI["Ribbon, Properties, Project Browser, view tabs, status bar"]
        VP["Viewport (Rust, wgpu)"]
    end
    FFI["C ABI between shell and engine"]
    subgraph Engine["Engine (Rust)"]
        BIM["BIM semantic engine: levels, walls, floors, roofs, openings, rooms, views, schedules, annotations"]
        GEO["Geometry kernel: curves, regions, booleans, sweeps, exact area and volume"]
        CORE["Core: identity, transactions (commit, rollback, undo, redo), units, diagnostics"]
        PER["Persistence: native .ast document"]
    end
    subgraph Verify["Verification (not part of the product)"]
        CMP["Differential comparator"]
        OBS["Recorded observations of the licensed reference product"]
    end
    UI --> FFI
    VP --> FFI
    FFI --> BIM
    BIM --> GEO
    BIM --> CORE
    BIM --> PER
    OBS --> CMP
    BIM -.replayed scenarios.-> CMP
Loading

Design rules that the project holds itself to:

  • Derived state is never stored. Geometry and computed parameters are a pure function of the semantic model, so they cannot go stale. The window shows what the engine says after every edit.
  • Deterministic local kernels. Rust for the engine (no garbage-collection pauses), no services in the modelling loop.
  • One source for every view. Plan, 3D, section, elevation and schedule are drawn from the same element geometry.
  • The product never depends on another BIM product. The verification tools sit outside it and are never shipped.
  • Every claim has a number, and the number includes the failures.
  • The engine has 184 transactional operations (count at development-tree commit 3bb125f); every edit is undoable.

Try it

Requirements: Windows 11 x64 and a GPU that supports DirectX 12 or Vulkan. The installer is about 22 MB; installed size has not been measured. Tested on one machine configuration so far (one discrete NVIDIA GPU), so other hardware is unknown territory.

  1. Download. The latest alpha build, AsterionBim-0.1.0-alpha.3-setup.exe (about 24 MB), is on this repository's Releases page.
  2. Check the file. The release notes list its SHA-256. In PowerShell: Get-FileHash .\AsterionBim-0.1.0-alpha.3-setup.exe -Algorithm SHA256.
  3. Install. The installer is unsigned, so SmartScreen will ask for confirmation. It installs per machine into C:\Program Files\ASTERION by default; MSIINSTALLPERUSER=1 installs for the current user without elevation. Uninstall from Windows "Installed apps".
  4. Try the 10-minute tour (the full alpha testing guide lists what to test per ribbon tab and what not to expect). File > New, then with the real tools: draw four walls (Wall tool), an arc wall, a door and a window, a floor, a ceiling and a roof, a room, a column, a curtain wall, a stair with railings, a level and a grid, a dimension, a tag and a text note; make a section and an elevation; open the 3D view; make a schedule of walls; save and reopen. The shell ships the same script as a self-check: asterion-shell.exe --selftest-demo runs it through the real window and prints one PASS or FAIL line per step (it runs in an off-screen window and takes about 20 seconds).
  5. Tell us what happened. Open an issue with: the build, what you did, what you expected, what you saw, and a screenshot if it helps. The build is the version shown in the window title. Do not attach files you have no right to share, and never attach models that belong to a client or employer.

The engine crates are published as source (see Build the engine); the desktop shell, the viewport and the native-format crates are not published yet and arrive module by module (see Legal position).

Build the engine

The workspace holds three crates: asterion-core (identity, transactions, diagnostics), asterion-geom (geometry kernel) and asterion-bim (the semantic engine). They need Rust 1.80 (declared) or newer and no system libraries.

cargo build --workspace --locked
cargo test --workspace --locked

Verified locally with cargo test --workspace --locked --offline (Rust 1.99.0, Windows): 774 tests passed (asterion-core 20, asterion-geom 222, asterion-bim 532) and 1 ignored (a timing probe), none failed. The continuous-integration workflow in .github/workflows has not run yet, and the declared minimum Rust version has not been tested.

Behavioural rules are cited in the code as Spec <id> and stated in docs/specs/engine-rules.md; what is not known is listed in docs/open-questions.md. Third-party crates: THIRD_PARTY_NOTICES.md.

Community

Come and talk to us: ASTERION on Discord. It is the place for questions, feedback on the alpha, and showing what you built. Bug reports with a reproduction are still best as GitHub issues, so they are not lost.

Contributing

Right now the most valuable contributions are test reports, bug reports and sharp questions. Open an issue.

Code contributions are welcome as modules are published, under rules designed to keep the project clean:

  • Read CONTRIBUTING.md and docs/PROVENANCE_POLICY.md first.
  • Do not submit anything derived from proprietary code, binaries, SDK files, icons, fonts or resources you are not licensed to redistribute, from the output of a decompiler or disassembler, or from leaked or confidential material.
  • Behaviour you observed in a product you are licensed to use may be described in your own words in a specification (docs/specs/). Say how you observed it. Do not paste proprietary text or data.
  • Every commit carries a Signed-off-by: line (Developer Certificate of Origin 1.1).
  • Run python tools/provenance_gate.py before opening a pull request. A passing gate is necessary, not sufficient.

Security reports: see SECURITY.md; please use private vulnerability reporting, not a public issue.

Roadmap

Honest and ordered by dependency; dates are targets, not promises.

When What
Now Public foundations (this repository), provenance gate and CI; first alpha installer for testers in preparation
Target 2026-10-23 Alpha demo of the core architecture scope: straight and arc walls, doors, windows, floors, roofs, ceilings, rooms, stairs, railings, columns, curtain walls, levels, grids, plan / 3D / section / elevation / sheet / basic schedules, with every item in scope either validated against the reference or listed here as unverified
Next Close the listed differences (arc walls, joins at other angles), draw spiral and winder stairs, widen selection and annotation, regenerate the numbers on every build
Then Publish source modules one by one with specification, tests and provenance entry; build instructions verified from a clean checkout; signed installer
Later, one discipline at a time Structure, then MEP, then the rest. IFC and other open exchange formats. Nothing here is started

Legal position

  • Independent project. ASTERION is not affiliated with, endorsed by or sponsored by any commercial software vendor. Third-party product names are trademarks of their owners; they are used only to describe which workflows ASTERION is made to be compatible with (nominative use) and are listed in NOTICE. No certification and no completeness of compatibility is implied.
  • Independent implementation, clean-room policy. ASTERION's code is written for this project. The product contains no third-party vendor code, binaries, SDK files, fonts or other resources, and its icons and artwork are ASTERION's own. Behaviour is described in written specifications in the project's own words and verified by differential tests against observations of the licensed reference product. The project does not circumvent any licence, activation or access control.
  • What we do and do not claim about provenance. The rules are in docs/PROVENANCE_POLICY.md and are enforced by an automated gate in CI. Under those rules a module is called independently developed only when its entry in provenance/LEDGER.md shows who wrote it, from what, and the separation from excluded material. That ledger has an entry for each of the three engine crates published so far (asterion-core, asterion-geom, asterion-bim); none of those entries claims the separation that rule 5 requires, so none of the crates is described as independently developed. We do not claim a formally certified clean-room process, and a passing gate is not a legal opinion.
  • Third-party components. The shell uses Qt 6 under LGPL-3.0, dynamically linked; Rust dependencies are permissively licensed. Each release lists them in a third-party notice.
  • Trademark of the name. Not confirmed (see the top of this page).
  • No private data. No project of any third party is used or shown. Images in this repository are captures of ASTERION running on its own demo model.

Licence

Source code: Apache License 2.0. Documentation, images, fonts, names and trademarks are not automatically covered by that licence; each is addressed explicitly when added. The images in docs/images/ are captures of the ASTERION application and may be reused to describe ASTERION, with the name "ASTERION" subject to the trademark note above. See NOTICE.

En espanol

ASTERION BIM es una aplicacion BIM de codigo abierto e independiente (licencia Apache-2.0), escrita desde cero. Sus flujos de trabajo y resultados se miden contra una referencia fija (una sola version de una aplicacion BIM comercial) y se demuestran con mediciones. Es una demo ALPHA, no un producto final: el proyecto se abre poco a poco al publico para que se pruebe y se reporten fallos.

  • Estado medido (2026-10-20): 918.405 de 921.013 campos comparables coinciden con las observaciones del producto de referencia (99,72 %), pero hay 2.608 diferencias, 211 ausentes y 1.134.320 campos registrados que no se comparan y por tanto no cuentan como paridad. De 154 comandos dibujados, 83 funcionan y 54 estan validados.
  • Limites: escaleras y barandillas sin cuerpo 3D; secciones y alzados importados no se dibujan; muchos comandos de la cinta estan deshabilitados con su motivo; sin MEP ni estructura; una sola version de referencia; solo Windows; instalador sin firmar.
  • Posicion legal: proyecto independiente, sin afiliacion ni respaldo de ningun proveedor comercial; los nombres de productos de terceros son marcas de sus duenos y solo se usan para describir la compatibilidad (ver NOTICE). El nombre ASTERION es provisional y su disponibilidad como marca no esta confirmada.
  • Como colaborar: abre un issue con tu informe de prueba; lee CONTRIBUTING.md y docs/PROVENANCE_POLICY.md antes de proponer codigo.

About

Open-source BIM application for architectural modelling. Independent, built from scratch (Rust engine, Qt 6 shell). ALPHA demo - not a final product.

Topics

Resources

Contributing

Security policy

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages