Over the past few months, I’ve been working towards building a brand new web application for creating IDS (Information Delivery Specification) documents and running audits against IFC (Industry Foundation Classes) models, as part of the Google Summer of Code 2025 program under the BRL-CAD organisation.
As GSoC 2025 is nearing it’s end, it’s time to wrap things up and make a final submission of all the work I did over the summer.
TL;DR Here are the relevant links:
IDS is a standard for defining information requirements in a computer-understandable form, written in XML. For the regular BIM user, manually writing XML in compliance with the IDS schema can be a difficult or tedious task; This gave rise to the need for a web interface to compose IDS specifications in a user-friendly manner and abstract away the need to deal with XML source code directly.
My project is a from-scratch implementation of the IfcTester web app in modern Svelte 5, shadCN/ui
, and depends on the IfcOpenShell WASM build for the core functionality and running IFC audits.
The majority of my proposal was designed in collaboration with my mentor (which is why it was so good 🙂). During the proposal submission phase, I created a simple playground as a proof-of-concept of using the IfcOpenShell WASM build for running IFC audits in the browser. This is made possible thanks to the excellent Pyodide library - running Python in the browser!
The commit log found at the development repository should be fairly self-descriptive, but I’ve compiled a list of notable commits and milestones for reference:
a1deebf
: Implemented the basic app layout using shadcn-ui and Tailwind59db44f
: Integrate IfcOpenShell WASM and implement IDS module (WIP)cb420a5
: Midterm update: Basic UI for creating specifications, editing facets, and opening IDS documents2fa92d0
: Added Complex Restriction value types for Facets8c67aa5
: Implemented Autocompletions to the UI33896d6
: IFC auditing functionality against the active IDS documentd2ebbbe
: Autocompletions for @dataType
(suggested by mentor)de65929
: Notebook-style “Viewer” mode for IDS documents (suggested by mentor) + many small fixes4e91408
: Audit report generation and support for viewing reports in Viewer mode3dc190d
: A nice Splash Screen!3a113e0
: Download Audit Reports as HTML (suggested by mentor)1afada9
: Import specifications from open IDS docs in the editor41c066d
: Bonsai Integration - allows running audits against the loaded IFC model in Bonsai (Blender).After the above commits, I sent the codebase upstream to the IfcOpenShell repository in one giant pull request.
The app is designed to run fully-offline and work either from a webpage or embedded in the Bonsai (Blender) extension.
The latest web app is available for preview at: https://ifctester.pages.dev (hosted by Cloudflare Pages). In the near future, a hosted version of IfcTester web app will be present under the ifcopenshell.org
domain.
In it’s current state, the app is fully functional and allows creating, importing and viewing IDS files with a variety of specifications and facets. Powered by IfcOpenShell, it can load and run IFC audits directly in the browser, and audit reports are neatly integrated into the “Viewer” mode. When launched from Bonsai, it can conveniently connect and run audits against the IFC model loaded in Bonsai.
Future development could focus on:
It was an awesome experience contributing to the open-source BIM ecosystem and connecting with the Open Source Architecture community over the summer. As a guy who loves diving into new areas in tech, learning about IFC, IDS and how they are driving the AEC industry was incredibly cool.
Special thanks to my mentor Dion Moult, for being so understanding, patient & humble, and without whose guidance, this project would not be possible.