classcad-ai

Everything that lets AI agents build and verify CAD models.

Describe a part in plain language. An agent writes a ClassCAD program, runs it live, proves the result, and hands you a model that lives inside any app. Scroll through it: every picture on this page is drawn live, by the same code that renders the film.

classcad-mcp · add it to your agent*

in a terminal

claude mcp add classcad --scope user -- npx -y @awv-informatik/classcad-mcp

* Or just point your agent at this site, and it will install it for you.

01 Describe · 02 Execute · 03 Verify · 04 Embed · 05 Anatomy Scroll

01 · Describe

Describe it.

Plain language in. Verified geometry out.

› ↵

Thinking…

  1. docsv1.solid.* · recipes/direct-modeling-eif · recipes/verification
  2. run_scriptwriting the program

02 · Execute

One way to execute.

The agent writes a program. ClassCAD runs it live.

run_scriptlive ClassCAD session

    Constrained sketches, dimensions, expressions.

    ClassCAD solves the constraints. Dimensions bind to named expressions, so one value drives the whole shape, and the agent knows how to set them up.

    It returns the model, not a status.

    return
    api.tree()
    api.graphic()

    03 · Verify

    Verification is built in.

    Proof by numbers and deterministic renders, not status codes.

    • view: 'iso'
    • lines: true
    • section: { origin, normal }
    • highlightAt + markers
    • drawing: 'first-angle'

    calculateMassProperties()

    volume18 338.53mm³✓
    cog−0.11 · −0.20 · −0.13✓
    extents44.4 × 44.1 × 34.6✓

    04 · Embed

    Part of any app.

    Traditional CAD bolts buttons and dialogs onto its own modeler. ClassCAD is a headless engine: it runs inside your product.

    runs as
    cross platform C++WebAssembly
    API wrappers
    JavaScript · Node.jsPython.NET
    deploys to
    webserverclouddesktopmobile

    Change it live.

    your app@buerli.io/react
    1. // your app · @buerli.io/react
    2. const { api, Geometry } =
    3. useBuerliCadFacade('with-claude-sprocket')
    4. useEffect(() => {
    5. updateSprocket(api, partId, {
    6. teeth: 13,
    7. strands: 2,
    8. })
    9. })
    10. return (
    11. <Canvas>
    12. <Geometry />
    13. </Canvas>
    14. )

    05 · Anatomy

    Four branches, one repository.

    What knows the API, what runs the program, what proves the result, and where the agent lives. Every package is open on GitHub.

    classcad-ai

    Knowledge

    The Skill

    @classcad/skill

    every method of the API, verified, and its recipes

    Discovery

    @classcad/skill/discovery

    search, describe, and the docs tool

    Execution

    The Script

    @classcad/script

    one way to execute: a program, run_script

    The Engine

    classcad-cli · wasm

    ClassCAD itself, on a worker or in the page

    classcad-cli

    worker · ws://localhost:9094

    on your machine, in Docker, or hosted

    download

    ClassCAD WASM

    in the browser, or inside the MCP

    the same engine, no server

    Proof

    The Renderer

    @classcad/renderer

    views, drawings, sections and diffs

    The Numbers

    the engine

    mass properties and geometry probes

    Hosts

    The MCP Server

    @awv-informatik/classcad-mcp

    Claude Code, Codex, OpenCode, Cursor, VS Code

    The In-App Agent

    @buerli.io/ai

    a chat panel in buerli apps

    Knowledge · @classcad/skill

    The knowledge.

    The ClassCAD API, whole: 264 methods, each documented and verified against a live engine, and the recipes that combine them into parts and assemblies. One search serves it all: BM25-ranked, camelCase split, plurals folded, and fluent in CAD.

    Seen in 01 Describe: the agent reads the docs ↑

    Methods, by domain

    1. part76
    2. assembly63
    3. sketch50
    4. common22
    5. curve21
    6. solid21
    7. drawing2d11

    In all264

    Execution · @classcad/script

    The medium.

    An agent never dictates one call per turn. It writes a program, with variables, loops and geometry filtered by plain arithmetic, against api.v1, api.tree() and api.graphic(), and runs it through run_script: the same in the browser, in the MCP and in Node.

    browser · @buerli.io/aiMCP · classcad-mcpNode · runScript

    Seen in 02 Execute: the sprocket's program ↑
    a scriptrun_script
    1. const { result: part } =
    2. await api.v1.part.create({ name: 'Plate' })
    3. await api.v1.part.box({
    4. id: part, length: 80, width: 50, height: 10 })
    5. const { result: { volume } } = await api.v1
    6. .part.calculateMassProperties({ id: part })
    7. return { part, volume }

    returns{ part: 4, volume: 40000 }

    and runs it@classcad/script/node
    1. import { connectSession, runScript } from '@classcad/script/node'
    2. const session = await connectSession() // a classcad-cli worker, :9094
    3. const res = await runScript(script, session)
    4. // res → { ok: true, returned: { part: 4, volume: 40000 } }

    Proof · @classcad/renderer

    The eyes.

    Images of the live model, the same every time: no GPU, no camera state. Named views and turntable cameras; technical drawings in either projection, hidden edges dashed; sections capped and hatched; highlights, probe markers and pixel diffs.

    iso viewslineshidden edgessectionsx-raydrawingsmarkerspixel diffs

    Seen in 03 Verify: iso, lines, section, markers, drawing ↑
    from below from the right front from the left from behind from above

    The two methods

    First-angleISO E · Europe
    Third-angleISO A · the Americas

    Hosts · @awv-informatik/classcad-mcp · @buerli.io/ai

    The envoys.

    Two envoys make the part: the MCP server, which serves any agent host and joins any ClassCAD app, or works on its own; and the assistant, which lives inside the app, with any tool-calling LLM.

    Seen in 04 Embed: the part inside an app ↑

    Any MCP host

    • Claude Code
    • Codex
    • OpenCode
    • Claude Desktop
    • VS Code
    • Cursor
    mcpone daemon
    per machine
    • On its owna worker, or its own WASM
    • Joins any ClassCAD appby invite

    The in-app assistant

    Make a flanged bushing.

    Done: a 60 mm flange with a flat, a 30 mm hub, bolt holes and a port.

    your ClassCAD app