Skip to content

ThatOpen/engine_fragment

Repository files navigation

TOC | documentation | demo | community | npm package

cover

Fragments

NPM Package NPM Package

Fragments is an open-source library designed to store, display, navigate, and edit massive amounts of BIM data with exceptional efficiency—on any device.

This repository contains the format and a whole toolkit to start building on top.

🤝 Want our help?

Are you developing a project with our technology and would like our help? Apply now to join That Open Accelerator Program!

🧩 Integration with components

As you might know, we have 4 open source libraries:

Components doesn't work with this new version of Fragments yet. In the next release, at the end of Q2, all components will be updated to work with this new version of Fragments. In the meantime, you have 3 options:

  • Work with Fragments and build your own BIM components from scratch.
  • Work with Components (which don't use this new version of Fragments).
  • Check out our Accelerator Program to get previous access to the upcoming components.

Once the release at the end of Q2 is made, Components will work natively with this new version of Fragments.

🧩 The Format

Fragments defines an open BIM format optimized for handling large datasets efficiently.

  • Binary and compact for performance

  • Free and open source

  • Supports geometries, properties, and relationships

The format is built with Google's FlatBuffers, an efficient cross-platform serialization library. This means you can create your own Fragments importer/exporter in any programming language. Just refer to the FlatBuffers documentation to get started.

📄 You can find the Fragments schema here. It defines what kind of data Fragments can store—anything the schema supports, you can include.

This library also includes a TypeScript/JavaScript importer/exporter, so you can get up and running fast. But feel free to build your own!

That said, the easiest way to generate Fragments is by using the built-in IfcImporter, described below.

🚀 The 3D Engine

Fragments comes with a high-performance 3D viewer built on top of Three.js. It’s designed to handle millions of elements in seconds, making it ideal for web-based BIM applications.

With it, you can:

  • Display large BIM models efficiently on any device

  • Highlight, filter, raycast, and snap elements

  • Retrieve properties and interact with the model

🔄 Importers and exporters

This library includes an IfcImporter that works both in the frontend and backend. It makes it simple to bring your IFC data into the Fragments ecosystem.

We're planning to release more importers/exporters to help integrate Fragments into a wide variety of BIM workflows.


Whether you're building a lightweight BIM viewer, a full-scale application, or just exploring the future of open BIM formats, Fragments gives you the tools to do it—fast, open, and free.

For more information and tutorials, check out our documentation.