Bentley goes open, open source that is

Dec 7, 2018 | Hot Topics

In October, at its Year in Infrastructure event, Bentley Systems announced that part of its vision for AEC industry interoperability would go open source. It was a big deal announcement and deserves more than the mention I was able to give it at the time.

First, what did Bentley announce? That the iModel.js library of JavaScript packages is now available on GitHub for anyone to use to develop applications within Bentley’s iModel concept.

And what is that? iModels are containers that can represent all sorts of data, AEC and otherwise. I saw one cool example in which an iModel represented an Excel spreadsheet of radiation data and locations, but it is more likely to be a CAD model representing a road, or an Excel file that’s a schedule or work plan. The point is that the container doesn’t know (and doesn’t care) what the data is, as long as it is adequately described. In its latest release, iModels are synchronized by Bentley’s iModelHub so that they always reflect the most recent updates made by authorized project participants, so that all can rely on the accuracy and timeliness of the data. (They can also analyze changes between points in time or between versions, which is cool and important but could be considered an advanced topic at this moment. But remember this; it’ll come back.) Most Important: iModelHub controls which users and applications are granted access.

And now we enter the world of open source. Because these are containers with such broad applicability, it’s not possible for Bentley to create all possible applications that AEC projects could need. By putting the source on GitHub, Bentley is saying “Here, world, have at it. Imagine use cases, try them out, play with the code, suggest improvements, build on one another’s ideas. Customers, partners, competitors, all are welcome.”

But, you ask, how can Bentley make money on this? (Because Bentley is, after all, a for-profit company that employs people who need to be paid, who work in buildings that need to be heated, and so on.) Bentley makes money when projects use iModelHub to manage data and transactions, and when the data is used in a Bentley product like OpenRoads. Too, as digital twins become more widely considered in the AEC world, Bentley sees infinite possibility for iModels via its iTwin subscription service, where data from reality capture (laser scans, photographs and so on) exist side-by-side with iModels, CAD models and data from asset operations.

iModel.js has the potential to engage far more users and user categories with Bentley products than might be possible if Bentley alone were making apps. After all, it can only serve the most common cases; many AEC firms have unique processes that can best be mapped by an in-house team using iModel.js to craft a DIY app. And many third parties have creative ideas for connections in the AEC world that can best be created by those experts.

GitHub, the Microsoft site, hosts thousands (millions?) of projects and libraries with the ethos that software developers are most successful when they work on the details and leave the platform to others. So deployment options (cloud, mobile, desktop, etc.), integrations and other nitty gritty issues magically go away (through other people’s hard work) leaving the app developer to figure out the particulars of nuclear radiation mapping, for example.

Bentley says that iModel.js is relies on the “most open, popular, and flexible standards for modern cloud and web development. It is written in TypeScript, and leverages open technologies including SQLite, Node.js, NPM, WebGL, Electron, Docker, Kubernetes, and of course HTML5 and CSS.” That’s alphabet soup to me, but to my developer friends, it’s music: it means they don’t have to worry about the base line and can concentrate on the melody.

The MIT licensing scheme used by GitHub and enabled by Bentley for this project means that third-party developers can create applications and services using the iModel.js libraries. They can distribute, license, execute, and charge for those applications in any way they choose, without explicit permission from Bentley. The only caveat is that those applications have to check that the iModel’s owner has a valid Bentley iTwin subscription and has granted permission for the program and user. That matters because of the permissions — only Bentley will know who has permission to access what data.

In all, I think it’s a cool idea. I haven’t spoken yet to anyone who’s actually created an iModel.js-based app, so can’t address how easy or complex it is to create an app, but the concept of having an AEC industry firm’s IT department quickly create an application that connects something digital about their asset to the rest of their digital organization is powerful. And since Bentley sees iModel.js as the cornerstone of its iTwin vision, this has legs — it’s not going away any time soon. Bentley truly believes that its combination of CAD models, reality model data, and operating data, all managed via iModelHub, is the future.

This is just rolling out –the GitHub is here, if you’re interested in giving it a try– but the YII attendees I spoke to about it are very, very interested. They see themselves becoming able to chunk the mountains of data that make up an AEC project into user-specific sets, making just the schedule available to some stakeholders (complete with some sense of the 3D scale of the schedule, called 4D in AEC-speak) but the full immersive experience of the construction project to abutters, for example. It’s all the same data, just viewed from different perspectives.

One incredibly important aspect of all of this is the versioning iModelHub enables. I could see iModel.js being used to develop apps that let a project manager roll backwards and forwards though progress data, to see when something went wrong that affects the project. Or for an operator to see when performance data on a specific piece of equipment started to go bad. The ability to look at data, in a context that includes time, lends itself to all sorts of applications that can be realized via iModel.js.

And then, of course, there’s Keith Bentley, founder and CTO of Bentley Systems. I hung out with Mr. Bentley a bit at YII and this is, absolutely, his baby. Mr. Bentley is a bit like a rock star to this crowd (stand with him and be prepared to step out of the way for selfie-takers), and his peeps listen carefully when he speaks. He is convinced that making this open source is the way to go: Bentley will invest its resources in making iModel.js and the foundational code as open and powerful as possible, which isn’t going to be cheap. But it’s important, since it will attract customers and their IT organizations, strategic partners, and third-parties to join Bentley in building an ecosystem around iModels. And that, in turn, will make the data that represents AEC industry assets even more valuable, which benefits Bentley, too.

Have you tried iModel.js? Leave a comment telling us what your app is/does and how you found the experience.

Note: Bentley graciously covered some of the expenses associated with my participation in the Year in Infrastructure event in October but did not in any way influence the content of this post. The cover image is of Keith Bentley, courtesy of Bentley’s photographer.