Open Source in AEC & Speckle
Speckle Team
November 6th 2020 opinion

oss-graphic

When Speckle started back in 2015, as part of Dimitrie’s research at UCL The Bartlett School of Architecture, the choice of licensing it under a permissive open source license followed naturally from the setting in which the project was created: a consortium of academic and industry stakeholders, financed by the EU’s Horizon 2020 programme, and tasked with the shared mission of moving the architecture, engineering and construction industry forward.

Not surpsingly, a shared mission focused on a common greater good, collaboration, and passion are key ingredients of open source. With this post, the team at Speckle would like to talk about what open source means for us, as well as the AEC industry, and how we’re attempting to transform the industry with those values in mind.

What is Open Source?

Let's start by saying what OSS (Open Source Software) is not: it's not a hype, a buzzword, a hippy movement, a charity, a left-wing anarchist movement, or an IP devouring spaghetti monster. Though may contain traces of some of those elements, here’s a more authoritative definition:

"Open-source software is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software to anyone and for any purpose." -Wikipedia

Licensing differences aside, in open source software, the code is open and visible to everyone. Moreover, anyone can contribute to it, use it, and share it free of charge. It is as if we could access the recipe for making sourdough bread - and we were even allowed to make it ourselves, improve upon it, and sell it to others. Shocking, isn’t it?

Contrary to popular belief, OSS allows for better security and transparency (more eyes on the code lead to better and more robust software), as well as longevity. For example, Speckle was born before Flux was revealed to the world, and is still alive and kicking five years later - two and a half years after Flux abruptly shut down. This, and many other reasons, is why OSS is becoming the norm rather than the exception in some parts of the tech industry.

Open source is already a key component of many other industries. For example, the open source blogging platform Wordpress - which is how both Matteo and Dimitrie learned PHP many years ago - powers an astounding 35% of the internet in 2020. In 2013, only 35% of database engines were open source; now they account for almost 50% of the market (source). Beyond this, there’s a host of open source technologies out there (e.g., Linux, React.js, Nginx, Kubernetes, PostgreSQL, GitLab, TensorFlow, Blender, FreeCAD etc.) that power the business logic of the world.

Software as a Competitive Advantage

In AEC the open source landscape is budding, but still quite fragmented. Most AEC companies and industry software vendors treat OSS with a measure of suspicion. Nevertheless, “brick & mortar” AEC companies treat whatever software or automation tools they produce as key differentiators that give them a competitive advantage.

In turn, this undermines the formation of a community and blocks innovation. From our first-hand experience, this is a fundamentally misguided approach. Why would AEC companies compete against each other in software and product development - domains outside their core expertise and skill sets, and for which they are culturally and technologically ill-equipped?

We can trace this behaviour to the desire of AEC companies to project an image of a digitally-ready and competent enterprise. Being digitally savvy is a key differentiator, and a necessary skill in today’s market. To achieve this, most AEC companies prefer to rely on curated press releases and presentations of the digital tools they produce rather than actually releasing them as software products that everybody can use - let alone open sourcing them.

This results in a lot of duplication of work across the industry: different companies solve the same problem over and over again as they cannot build on top of each other’s efforts. Moreover, because they are not culturally and operationally ready to maintain the software they produce (as much of the software development efforts are financed through project-based work), many times work is duplicated even within the same enterprise. Just ask a computational designer how many times they’ve had to automate Revit imports or exports from Rhino, an analytics dashboard for a project, or a 3D interactive visualisation with Unity or Unreal.

Nevertheless, the goal of becoming a digitally savvy enterprise is not at odds with the principles behind open source. Google, Facebook, and even Microsoft, are heavily investing in delivering and supporting open source software in order to extend their commercial interests, ensure a level playing field in key competitive areas, and, most importantly, gain market mindshare and project an image of a forward thinking enterprise. In essence, this is because being open source acts as a force multiplier extending the outreach, quality and longevity of software that benefits fairly both the authors of the code, as well as the adopters.

Changing this attitude in the AEC industry is a big reason why Speckle is open source. We believe in improving the industry as a whole, and we want to show that a collaborative and cooperative approach is a viable path to digital progress.

Dynamics of Open Source

Presently, the adversarial attitude towards software development in AEC results in a stagnating knowledge base as skills and experience do not accumulate into a greater whole. As a result, the industry is stuck with a slow, incremental at best, pace of innovation. This plays perfectly into the hands of software vendors servicing the industry, who are the ones exerting most control over the speed and efficiency with which AEC “digitalises”. In contrast, the dynamics of an open source ecosystem would work in the opposite direction by accelerating innovation and promoting healthy competition.

Usually, a well functioning open source project is surrounded by an ecosystem of other related software, open or proprietary, that depends upon, or extends, the original. The dynamics of this ecosystem are beneficial to all stakeholders involved. Linux, WordPress, Qt, various DBs, other frameworks and programming languages are all examples of this virtuous circle. Having a low level open source base on which to build on enables developers to focus on business needs rather than reinventing the wheel. The benefits go both ways: improvements to the open source base travel upstream, making it more robust and businesses achieve better results faster, with less investment and more time for refinement.

Unfortunately, within AEC the key low level building blocks are all proprietary, be it geometry kernels, data or cloud infrastructure. Developers are, most of the time, tied to extending and building on top of the proprietary solutions offered by software vendors. Open source or not, the software they produce still enriches, and is dependent upon, a closed source core. This leads to an imbalance of power: developers do not participate on equal grounds in the creation of value, and are beholden to the interests of software vendors.

Speckle reverses this balance. Rather than providing a closed source core on which to build a flawed ecosystem, we provide an open source platform for handling data and interoperability on top of which we want to encourage the growth of a virtuous ecosystem that benefits all.

Open vs. Open Source

The AEC industry tends to sometimes use interchangeably the terms “open” and “open source” and, generally, muddle the distinction between them. This creates a false impression of “righteousness” which we believe is extremely detrimental to the industry at large; it degrades the principles of open source, while confusing and disorienting users.

One of the most clear examples of this semantic insecurity, and one that’s close to Speckle’s heart, is the term Open API. An API (application programming interface) is the instrument through which a library, or software communicates with the external world (other consuming services, an application built on top, or a website). First, calling an API “open” does not mean it is open source. In some cases, it simply means that it is documented according to a well established standard (called, not surprisingly, Open API). Most importantly, an “Open API” can be served by a proprietary application - either cloud or desktop based. In this case, the term “open” does not come with any of the freedoms and rights usually associated with open source.

There are other examples that make clear the importance to distinguish between “open” and “open source”. For example, in order to access the source (and use) of the libraries for reading common data formats in AEC authored by the Open Design Alliance, a yearly membership fee of 30.000 USD is required. If these libraries were genuinely open source, their source code would be freely available at no cost. Nevertheless, there are a growing number of examples of truly open source software. A well established project is Ladybug Tools; other notable examples are software packages such as Blender and FreeCAD. If you want to know more, Nick has put together a nice list of OSS in AEC, which complements the one put out by the Open-Source Architecture Community. We’re happy to see Speckle on these lists!

We've talked a lot about open source so far; but where's the Speckle Source? Here it is, and don't forget to give those repos a ⭐: Speckle Sharp - contains the .NET SDK and all connectors (Grasshopper, Revit, Dynamo, etc.) Speckle Server - contains the server and frontend applicaiton!

The Speckle Org is where other parts of Speckle will make their way into OSS.

What Does Open Source Mean for Speckle?

After setting up a company to work entirely on Speckle and deciding to go for a rewrite of most of its codebase, we asked ourselves: is open source still the right way?

Long story short: yes, it is. We see Speckle as a critical digital infrastructural piece on which we, as an industry, can build on top of and foster a dynamic ecosystem whose interactions are not a zero-sum game. Speckle, as a company, will follow the example of many other successful companies building open source. Our future monetisation plans do not compromise this; on the contrary, we will commercially succeed if the industry as a whole succeeds.

Our mission is to transform the AEC industry for the better by providing a truly open source data platform that everyone can use and extend. This implies more than just writing good code: we want to change the adversarial environment of software development in AEC to a collaborative one. How?

First, we practice what we preach: Speckle is the result of 3+ years of research coupled with several man years of development; it might not be the best answer to your interoperability and data problems, but it’s the best we’ve come up with so far. You can take it and use it to make a better one, or help us make Speckle better by contributing: it’s open source, and publicly available.

Second, Speckle 1.0 is licensed under MIT, and 2.0 under the Apache 2.0 licence. These are two of the most permissive, non-copyleft licenses currently available. There are no proprietary dependencies, or any hidden catches. Furthermore, we are committed to keep the core of Speckle as free as possible from closed source software.

Last, but most importantly, we’re building a community. Instead of just producing code in isolation, we’re having monthly community standups and dedicate time documenting our progress with Speckle 2.0. Anyone can join our meetings, follow the progress of our code, and jump in at any time! You can help in whatever way you can, from trying out the beta releases and sending bug reports and feedback to contributing with code and pull requests.

Being open source has had a huge impact in how we operate and it’s a big part of our success. For us, open source is the answer to proprietary software monopolies that lock their users into legacy solutions and artificially stall the pace of progress in our industry. Open source is not a hype: it's a progressive force of change from which we all can benefit.

Bonus content:

We've asked each of us to write a short sentence on how they see open source. Here's what we got:

Matteo:

For me open source means democratising the tools our industry needs to advance technologically as a whole, there is simply no way ahead without.

Izzy:

Open source is a beautiful force for collaborative innovation and an essential ingredient to a progressive and sustainable future for the industry.

Alan:

For me, open source is all about sharing knowledge with little limitations, and providing the tools for others to use and build upon your own work.

Dimitrie:

Working on open source is really satisfying. It encourages me to be a better person, a better coder, and build a better product - and a better world!