Why contributing to open-source software makes a difference? The example of IFC.js

The benefits of contributing to open-source far outweigh the ones holding you back. With OSS you get to improve the software you rely on. You also get to meet interesting people that may share the same vision

Why contributing to open-source software makes a difference? The example of IFC.js

My first interaction with open source projects, and even the idea of them goes back to a book by Carlo Ratti called Open Source Architecture given to me by my good friend Max Rudolph (co-founder of Form Follows You).

I'm not going to dive into the book but I highly recommend it to anyone that finds themselves wondering about open-source in architecture. Open-Source Software (OSS) in architecture, in my opinion, partly reflects to what is known as citizen participation in the design phases of urban planning. The need to contribute to the world, from a single building to a whole neighborhood.

How is that going to benefit my company?

The biggest question(s) every founder asks when it comes to contributing to open-source is: 'How is that going to benefit my company? It sounds like open-source can ruin us since any big or small competitor can get the source-code and commercialise it for their own benefit without contribution, at least in development.

My simple answer to that is: It can only harm your company if you are not creative and fast enough to introduce services that increase the value for your clients in other ways and forms, and you are relying 100% on software, of any kind, for that matter.

The benefits of contributing to open-source far outweigh the ones holding you back. With OSS you get to improve the software you rely on. You also get to meet interesting people that may share the same vision. The most important aspect of OSS in architecture for me is that you get to build public artifacts that can ultimately change the built environment as we know it.

Why OpenBIM ?

OpenBIM is where formats, standards and software meet. For a long time, there were no clear guidelines on how we design, build and handover construction projects, or at least there were no standarised methods to do so. This is where BIM comes into play and OpenBIM promotes interoperability and collaboration as a fundamental principle.

As explained in buildingSmart, the principles of openBIM recognise that:

  1. Interoperability is key to the digital transformation in the built asset industry
  2. Open and neutral standards should be developed to facilitate interoperability
  3. Reliable data exchanges depend on independent quality benchmarks
  4. Collaboration workflows are enhanced by open and agile data formats
  5. Flexibility of choice of technology creates more value to all stakeholders
  6. Sustainability is safeguarded by long-term interoperable data standards
What is openBIM? BIMConnect.org
Creating model data in a native format is called nativeBIM. If we exchange this model data with an open standard, such as IFC, then we are in openBIM. - Mark Baldwin, BIMConnect.org

You can always read more about openBIM and it's benefits on buildingSmart's article on: What is openBIM?

Let's talk about IFC.js

At this point I would like to pass on the word to Harry Collin, our Lead Software Developer @Parametricos that contributes to IFC.js by Antonio González Viegas

What is IFC.js, who made it, and how is it used?

IFC.js is a JavaScript library to load, display and edit IFC models in a web browser. It was started by Antonio González Viegas back in late 2020, back then it was written purely in JavaScript. The library proved to be quite popular, being the first of it's kind.

Shortly after it's inception, Tom van Diggelen, who had been working on a similar solution, joined the project. Tom's approach to loading the IFC was to use WebAssembly. For those who aren't familiar, WebAssembly (abbreviated Wasm), is a new programming language for the web. It is also very fast, comparable to native applications. This proved to be extremely useful for loading IFC files. The problem with JavaScript was that it's just too slow to be scalable. Loading times with the Wasm solution were more than 80% faster than JavaScript alone.

Fast forward to August 2021. IFC.js has a growing community of followers and contributors. The library has grown into 3 distinct modules, web-ifc, web-ifc-three and web-ifc-viewer.

  • web-ifc is the IFC parser and geometry engine. This can be used on it's own to load geometry, property set & spatial information.
  • web-ifc-three is a three.js adapter for web-ifc. This provides an easy way to load the geometry from the IFC inside a three.js application.
  • web-ifc-viewer is an viewer framework built on-top of web-ifc-three. It comes packaged with the basics you'd expect to find in any good BIM viewer. This enables you to build BIM viewers with a couple of lines of code.

Where can I find IFC.js and it's community?

You can find all of the repositories on Github, where we've got a growing list of example implementations to get you started. We've also got a Discord community server where you'll find the latest announcements and ideas from the community. Click here to join.

Is open-source software our saviour for a better built environment?

Marios M: In an ideal world yes, but I would like us to take a look at few that can go wrong and some other issues that can be easily fixed with a great community backing the open-source.

  1. Intellectual Property: In the world of Open-Source Software, Intellectual Property is complex and should be studied carefully before you involve yourself in any existing project.
  2. Security issues: It's true that there is some risk associated with using open-source software but I believe it's no different to any kind of software. The great thing about the open-source projects is that you can audit the code and examine it for any vulnerabilities yourselves.
  3. Reliability: Open-source software rely heavily on the community's work and if it's not strong enough you might not see the issues reported getting solved. That is why, when you choose to use any kind of open-source software I suggest to contribute to it, in any way that you can.

At this point I'd like to note that these issues reflect our own reality and understanding of open-source software from our point of view, here at Parametricos Ltd.

Is IFC.js used on the Studio 3DX?

Yes, IFCjs is now used in Studio 3DX and is part of the primary BIM viewer.

Are you new to Studio 3DX?

Coordinate your BIM projects in real-time with Studio 3DX. Get started for free at app.studio3dx.com 📐