Skip to content

blox-eng/ifc-lite

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

301 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IFClite

Open, view, and work with IFC files. Right in the browser.

Try it Live

Build Status License npm parser crates.io


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_LFS_SKIP_SMUDGE=1 git clone https://github.com/louistrue/ifc-lite.git
cd ifc-lite
pnpm install && pnpm build && pnpm dev   # opens viewer at localhost:5173

If you need large IFC fixtures for benchmarks or stress tests, fetch only the files you need:

git lfs pull --include="tests/models/ara3d/AC20-FZK-Haus.ifc"

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


Made with ❤️ for the AEC industry

About

Browser-native IFC viewer with WebGPU rendering and Rust/WASM parser for high-performance BIM visualization

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 73.5%
  • Rust 21.0%
  • JavaScript 4.1%
  • HTML 1.0%
  • CSS 0.3%
  • Shell 0.1%