3D AECO authoring in the browser. Modular. Open.
Don't waste time re-building an editor from scratch: olympus is here!
A lightweight web framework (1.4MB js build + tool dependencies) for build or prototyping 3D web applications for the architecture, engineering, construction, and operations (AECO).
Olympus removes the overhead of building a 3D viewer from scratch.
- Node.js 18+
- npm 9+
- pip
- python 3.10+
# Clone the repository
git clone <repository-url>
cd Olympus
# Install dependencies
npm install
# Build the project
npm run build
# Start the development server
npm run serveServe the repository root, then open directory URLs (for example npm run serve on port 3000, or python -m http.server 8080):
Features are additive: each row includes everything to its left.
| Mode | Viewport | IFC Geometry | IFC editing | Code editor | Python prototyping |
|---|---|---|---|---|---|
| AECO_Vanilla | ✓ | ✓ | — | — | — |
| AECO_Power | ✓ | ✓ | ✓ | ✓ | — |
| AECO_SuperPower | ✓ | ✓ | ✓ | ✓ | ✓ |
Any Business Usecase in the AEC industry can be built with Olympus.
We already cover some construction use cases and plan to cover more in the future. ( Community Powered !)
You can freely create your own app with Olympus:
- Slap your logo and call it a day
- Modify core to your liking
- Create addons for your own application
There are two hosted examples. Both load template IFC samples from external/ifc, run in-browser Python (Pyodide) and the Monaco scripting UI, and turn on BIM-related modules (project, attributes, property sets, and related toggles in each app’s configuration/config.modules.js). They differ in purpose, not in “lite versus full” runtime.
| Example | Role |
|---|---|
| HelloWorld | Reference application — the default app layout in the repo; use it for first run, tutorials, and to see core module defaults. |
| Addons | Host application pattern — same stack as HelloWorld, plus a configuration/ layout and custom addons under examples/Addons/addons/; use it as the template for your own product or internal tool. |
Changing src/ or regenerating dist/index.js and dist/pyodide.worker.js uses Node.js and npm. Use npm run setup for install, full vendor sync, and build in one step, or see Repository setup.
Examples: http://localhost:3000/examples/HelloWorld/. The project server sets MIME types suitable for Pyodide and .mjs loads. For Pyodide or module load issues behind a minimal static server, use npm run serve or Build and runtime troubleshooting.
Olympus is data agnostic. It currently implements the IFC standard for Building Information Modeling. Other data schemas will be supported in the future ( BrickSchema for Operations, Google Buildings Schema).
This page summarizes orientation, quick paths, and a documentation index. Procedures, configuration, tutorials, and API detail live under docs/.
- Quick start — Hosted demos, local static serve, development workflow
- Examples in this repository — HelloWorld (reference app) and Addons (host app pattern); both use template IFC, Python, and BIM modules
- Features — Viewport, scripting, IFC, modules
- Repository setup — Layout, vendors,
dist/, build, serve, scripts - Configure and deploy —
Settingsbase URLs for deployment - Minimal host application —
AECOandinitWorldembedding - Build and runtime troubleshooting — Build and runtime faults
- Installation — Development environment
- HelloWorld tutorial — First application
- Project structure — Codebase layout
- First addon — Custom module
- Writing operators — Operators and undo/redo
- Building UI — UI components
- Using LayoutManager — Workspaces and tabs
- API overview — Layers and imports
- UI components —
UIComponentsfactories - LayoutManager — Panel layout
- Operators — Registry and base class
Canonical prose and API notes are maintained under docs/getting-started/, docs/guides/, and docs/api/. The static pages under docs/olympus/ can be previewed with a static server (for example npx serve docs/olympus).
- Olympus doc hub — Entry point for the site bundle
- How the app works — Architecture overview
- Configuration — Application configuration
- Creating addons — Addon development
- Getting started — Onboarding (site)
- Reference:
core-api.md,modules.md,operators.md,tools.md,editors.md(indocs/olympus/after generation)
- HelloWorld example — reference application
- Addons example — building a host app and addons
Working on it - feel free to contribute!
Licensed under the terms in LICENSE. Contact: contact@aeco.dev. Issues: github.com/myoualid/olympus/issues.


