ifc-lite-wasm 1.14.1

WebAssembly bindings for IFC-Lite
Documentation

What is IFClite?

IFClite is an open-source toolkit for working with IFC files. It lets you load, view, query, and export BIM models from a web browser, a server, or a desktop app. No plugins or installs needed.

Try it at ifclite.com to see it in action.

  • View 3D models in the browser with a fast WebGPU renderer
  • Extract data like properties, quantities, spatial structure, and relationships
  • Check compliance against IDS (Information Delivery Specification) rules
  • Generate 2D drawings like floor plans, sections, and elevations from 3D
  • Collaborate with BCF (BIM Collaboration Format) for issues and viewpoints
  • Create IFC files programmatically: walls, slabs, columns, beams, stairs, roofs with properties and quantities
  • Look up bSDD (buildingSMART Data Dictionary) to discover and add standard properties for any IFC entity
  • Export to IFC, CSV & JSON, glTF or Parquet

Works with IFC4 / IFC4X3 and the new Alpha IFC5 (IFCX).

Why IFClite?

  • Fast. First triangles on screen in ~200ms. Geometry processing up to 5x faster than the next best option. See benchmarks.
  • Small. ~260 KB gzipped. Designed to stay lightweight so your app stays lightweight.
  • Complete. Full IFC4X3 schema (876 entities), IFC5, BCF, IDS, bSDD, 2D drawings, federation, IFC creation, property editing, and export. Parsing is just the start.
  • Built for the web. Rust + WASM core, WebGPU rendering, streaming pipelines, consistent TypeScript API across all packages.

Get Started

Create a project in one command:

npx create-ifc-lite my-app
cd my-app && npm install && npm run parse

This parses an IFC file and logs what it finds. From here you can start building.

Want a 3D viewer? Pick a template:

npx create-ifc-lite my-viewer --template react       # WebGPU viewer
npx create-ifc-lite my-viewer --template threejs      # Three.js (WebGL)
npx create-ifc-lite my-viewer --template babylonjs    # Babylon.js (WebGL)

Want a server backend?

npx create-ifc-lite my-backend --template server
cd my-backend && npm run server:start

Or add to an existing project:

npm install @ifc-lite/parser
import { IfcParser } from '@ifc-lite/parser';

const parser = new IfcParser();
const result = await parser.parse(ifcBuffer);
console.log(`Found ${result.entityCount} entities`);

See Installation for all options including Cargo (Rust) and Docker.

Choose Your Setup

IFClite runs in four different environments. Pick what fits:

Setup Best for You get
Browser (WebGPU) Viewing and inspecting models Full-featured 3D viewer, runs entirely client-side
Three.js / Babylon.js Adding IFC support to an existing 3D app IFC parsing + geometry, rendered by your engine (Babylon.js)
Server Teams, large files, repeat access Rust backend with caching, parallel processing, streaming
Desktop (Tauri) Offline use, very large files (500 MB+) Native app with multi-threading and direct filesystem access

Not sure? Start with the browser setup. You can add a server or switch to Three.js/Babylon.js later.

What Do I Install?

You don't need all 25 packages. Here's what to grab for common tasks:

I want to... Packages
Parse an IFC file @ifc-lite/parser
View a 3D model (WebGPU) + @ifc-lite/geometry + @ifc-lite/renderer
Use Three.js or Babylon.js + @ifc-lite/geometry (you handle the rendering)
Query properties and types + @ifc-lite/query
Validate against IDS rules + @ifc-lite/ids
Generate 2D drawings + @ifc-lite/drawing-2d
Create IFC files from scratch @ifc-lite/create
Export to glTF / IFC / Parquet + @ifc-lite/export
Connect to a server backend + @ifc-lite/server-client

Full list: API Reference (25 TypeScript packages, 4 Rust crates)

Examples

Ready-to-run projects in the examples/ folder:

Documentation

Start here Quick Start · Installation · Browser Requirements
Guides Parsing · Geometry · Rendering · Querying · Exporting
BIM features Federation · BCF · IDS Validation · bSDD · 2D Drawings · IFC Creation · Property Editing
Tutorials Build a Viewer · Three.js · Babylon.js · Custom Queries
Deep dives Architecture · Data Flow · Performance
API TypeScript · Rust · WASM

Contributing

We welcome contributions! No Rust toolchain needed, WASM comes pre-built.

git clone https://github.com/louistrue/ifc-lite.git
cd ifc-lite
pnpm install && pnpm build && pnpm dev   # opens viewer at localhost:5173

See the Contributing Guide and Release Process for details.

Community Projects

Project Description
bimifc.de Pure Rust/Bevy IFC viewer by @holg

Built something with IFClite? Open a PR to add it here!

License

Mozilla Public License 2.0