Skip to main content

classcad 21.2.0·headless

ClassCAD is CAD without the screen. Your program asks, and it answers with exact, parametric geometry, on a server, in a worker, or as WebAssembly in a browser tab.

264 methods7 domains3 runtimes5 platforms →

05Kernel & solverSMLib NURBS · LGS constraints04Services35 plugins: STEP, DXF, glTF…CCVM03CCVMbytecode on its own VM02Its own CAD language696 classes, compiledapi.v1.part.assembly.sketch.solid.curve.common.drawing2d01api.v1264 methods, 7 domains

01One API

api.v1.<domain>.<method>({ … }): 264 methods in seven domains. The same names from JavaScript, Python and .NET, the same on every runtime.

api.v10 methods

  • .part0
  • .assembly0
  • .sketch0
  • .common0
  • .curve0
  • .solid0
  • .drawing2d0
api.v1.part.booleanapi.v1.part.boxapi.v1.part.calculateMassPropertiesapi.v1.part.chamferapi.v1.part.circularPatternapi.v1.part.coneapi.v1.part.createapi.v1.part.cylinderapi.v1.part.expressionapi.v1.part.extrusionapi.v1.part.filletapi.v1.part.importFeatureapi.v1.part.linearPatternapi.v1.part.mirrorapi.v1.part.revolveapi.v1.part.rotationapi.v1.part.sketchapi.v1.part.sliceapi.v1.part.sliceBySheetapi.v1.part.sphereapi.v1.part.translationapi.v1.part.twistapi.v1.part.updateExpressionapi.v1.part.workAxisapi.v1.part.workCSysapi.v1.part.workPlaneapi.v1.part.workPoint
The reference, method by method →

02Any runtime

Run it as a server your apps connect to, as a worker beside your code, or as WebAssembly inside a browser tab. Where it runs is one line; the program doesn't change.

your programjs
  1. const { SocketIOClient } = require('@classcad/api-js-connector')
  2. const client = new SocketIOClient({ url: 'ws://127.0.0.1:9091' })
  3. await client.connect()
  4. const api = client.getApiU()
  5. const part = await api.v1.part.create({ name: 'My First Part' })

03Parametric

Any number in a model can be an expression, and every feature remembers how it was made. Drag a value below: the bolt circle, the holes and the section all follow, as they would in ClassCAD.

Ø 926 × Ø 8.3 on Ø 6012A–A

Expressionsdrag a value

od
bore
n
t
pcd
(od + bore) / 260
d
0.09 * od8.3
≤
bore ≤ od − 48holds

part.updateExpression · the history replays

04Exact, and out

Models are boundary representations on NURBS, not meshes. Read the files your customers already have; write the ones their machines and drawings want.

In · common.load

  • OFBits own: the whole history
  • STEPfrom any CAD system
  • STLas a mesh, for display

Out · common.save · drawing2d

  • OFBhistory, expressions, all of it
  • STEPAP203 · AP214 · AP242
  • DXFR2000 to 2013, and drawings
  • SVGdrawings, hidden lines removed
  • STLfor printing
  • SCG

05Lineage

ClassCAD was never a startup’s first draft. It grew up inside other people’s CAD, kernel by kernel, and stayed.

RevDescriptionDate
AAn extension inside AutoCAD, written on ObjectARX.—
BOnto the ACIS kernel.—
COnto SMLib, a NURBS kernel. Still its kernel, twenty years on.—
DEvery line kept in git: 9,265 commits in the runtime, 4,487 in the classes.since 2010
EInside TDM’s tool data management, for thousands of users.—
F21.0.02025-12-12
G21.1.02026-04-01
H21.2.0: Windows, Linux x64 and arm64, WebAssembly, Docker.2026-06-25
ClassCADAWV Informatik AG · St. Gallensheet 1 / 1

06Get it

01 · Key

A key in a minute.

Sign up, confirm your email, and make a key: native for your servers, WebAssembly for the origins you name.

Get a free key

02 · Download

Every platform it runs on.

windows · x64linux · x64linux · arm64wasm32docker

Downloads

03 · Plan

Priced to be used.

  • Freenon-commercial use
  • CHF 100a year, commercial use
  • CHF 5,000a year, to ship it in your product
PlansWhy it's priced this way →