Open Source •

Wrapping up Google Summer of Code '25

A final update into my GSoC 2025 journey.

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:

Prologue

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.

Development

Prior Art

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!

Commits

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 Tailwind
  • 59db44f: Integrate IfcOpenShell WASM and implement IDS module (WIP)
  • cb420a5: Midterm update: Basic UI for creating specifications, editing facets, and opening IDS documents
  • 2fa92d0: Added Complex Restriction value types for Facets
  • 8c67aa5: Implemented Autocompletions to the UI
  • 33896d6: IFC auditing functionality against the active IDS document
  • d2ebbbe: Autocompletions for @dataType (suggested by mentor)
  • de65929: Notebook-style “Viewer” mode for IDS documents (suggested by mentor) + many small fixes
  • 4e91408: Audit report generation and support for viewing reports in Viewer mode
  • 3dc190d: A nice Splash Screen!
  • 3a113e0: Download Audit Reports as HTML (suggested by mentor)
  • 1afada9: Import specifications from open IDS docs in the editor
  • 41c066d: 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.

Preview

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.

Future scope

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:

  • Writing extensive documentation to make it easier to get started for potential contributors.
  • Converting the (quite complex) codebase to TypeScript. I usually don’t advocate for TypeScript, but types would make it much easier to understand this codebase.
  • Implementing even smarter autocompletions and value validation via regexes. There is a lot of remaining potential here.
  • Using the Bonsai integration to implement more features, such as importing user-defined property sets.

Wrapping up

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.