ClassCAD and SMLib Kernel
ClassCAD is built on top of SMLib, a NURBS-based geometry kernel. This page explains what the kernel provides, what ClassCAD adds above it, and why that separation matters when you build an application.
A Kernel Alone Is Not a CAD System
A geometry kernel is excellent at geometric operations:
- B-rep creation and editing
- Intersections, blends, offsets, tessellation
But a kernel does not provide application-level CAD behavior:
- Feature history and parametric rebuild
- Stable references across topology changes
- Assemblies, constraints, drawings, API contracts
Building directly on a kernel therefore means implementing most of the CAD platform yourself. ClassCAD addresses this by adding the system layer above the kernel.
Architecture Split: Who Owns What
ClassCAD and SMLib are intentionally separated.
SMLib owns geometry:
- Solids, faces, edges, vertices, surfaces, curves
ClassCAD owns semantics and system behavior:
- Object identity, parameters, history graph, references, runtime API
Integration path:
- Service functions send modeling intent from ClassCAD to the kernel
- Kernel callbacks (copy / split / merge) drive ClassCAD referencing updates
- Attributes provide back-links from kernel elements to ClassCAD references
- Tessellation returns a selectable mesh with topology identity preserved
The net effect is a clean boundary, controlled evolution, and stable application code.
Why Build on ClassCAD
Faster product development:
- Use high-level APIs instead of low-level kernel orchestration
Built-in CAD capabilities beyond geometry:
- Part feature modeling
- Assembly modeling and 3D constraints
- Sketch API with dedicated 2D constraint solving
- Drawing API and export workflows
Multi-language and deployment flexibility:
- TypeScript, Python, C#, ClassCAD language
- Backend / proxy and WebAssembly execution modes
Practical guidance: if the ClassCAD functionality is sufficient for your use case, build your application on the ClassCAD APIs and avoid the kernel complexity.
Tell Us What You Need
ClassCAD and especially the SMLib service functions are under active development, and we extend the system continuously with new features and APIs — often driven directly by concrete customer requirements. If you need a kernel capability that is not yet exposed through the ClassCAD APIs, or a modeling workflow that is missing, let us know. Talking to us early is usually faster than working around a gap: your requirements help us prioritise, and many of them end up as part of the next release.