BUERLI
.IO
JS+CAD
Introduction
CAD whereever javascript reaches
npm install @buerli.io/classcadbuerli allows the developer to program 3D parts and assemblies. It is a headless API around ClassCAD that can be used in any javascript environment.
Effortless integration
Buerli geoemtry can be embedded in your existing apps, or customized to suit specific needs.
Buerli uses Threejs with full integration, and also offers components to be used with react-three-fiber. This allows you to utilize the React eco system: Viewcubes, Gizmos, etc.
Buerli based CAD apps can be packed with the WASM engine so that you can provide a scaleable CAD solution to all your customers via url. No hosting is required on your side anymore and app runs entirely in your cutomers browser. This allows true scaling is a enduser CAD system, we have developped that features all




Features
import { init, WASMClient } from '@buerli.io/classcad'
init((drawingId) => new WASMClient(drawingId, { appKey: "..." }))A wide range of possibilities
Buerli makes it easy to integrate and embed CAD functionality into your own applications with ease.
- Headless
- Buerli.io runs whereever javascript runs. It is a modern, API-driven CAD system that can be used in any javascript environment: Browsers, Electron, Node, ...
- You can use it to build, configure, visualize, test, or as a computation engine on platforms like Node.
- Instance management & Interfaces
- A WebSockets based instance manager enables basic user-management, re-use of instances and scaling.
- With WASM you can embed ClassCAD into your client app. Check it out on Buerligons.io.
APIs
All you need to build your CAD application.
Buerli features a wide variety of construction APIs that allow you to embed CAD functionality into your own applications.
import * as THREE from 'three'
import { BuerliCadFacade } from '@buerli.io/classcad'
// Set up threejs
const scene = new THREE.Scene()
const camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.z = 10
const renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
const cc = new BuerliCadFacade()
await cc.connect()
const api = cc.api.v1
// Create a part
const part = await api.part.create({ name: 'Flange' })
// Create a parametric box in it
const box = await api.part.box({ id: part, width: 10, depth: 10, height: 2 })
// Add ClassCAD world into Threejs
scene.add(await cc.createScene(part))- Part API
- Our history-based API enables parametric model creation. Modify features to auto-recalculate. API calls generate operations for replayable models.
- Assembly API
- Create 3D assemblies with constraints (fasten, revolute, slider). Programmatically add templates and instantiate in a scene.
- Sketch API
- SketcherAPI creates parametric sketches with 2D constraints solved by an embedded solver. Ideal for custom features like n-sided polygons.
- Solid API
- Our JavaScript API enables destructive, in-place solid generation with extrusions, revolves, booleans, slices, and more.
- Curve API
- Curve API creates and processes curves for Solid or Part API. Supports 2D booleans, scaling, and 3D transformations.
- Script API
- Script API allows you to run CCScripts. You can load them dynamically from a URL and execute in your process.
Pricing
A fair, value-oriented approach
We believe pricing should be fair, transparent, and aligned with the value our technology delivers. Solutions like ClassCAD and Buerli serve a wide spectrum of users — from individual designers to enterprise teams integrating advanced CAD capabilities into large-scale platforms. A one-size-fits-all pricing model simply doesn’t do justice to this diversity. Please read our blog about princing and contact us.