Package Exports
- @thatopen/fragments
- @thatopen/fragments/dist/index.cjs
- @thatopen/fragments/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@thatopen/fragments) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TOC | documentation | demo | community | npm package

Fragments 
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:
- web-ifc: the IFC parser and geometry engine.
- fragments: the open source format and 3D engine.
- components: a set of tools to build BIM software fast.
- ui components: our agnostic UI system.
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.