# What is SMLib, and how does it relate to OCCT?

- Link: https://opensourcecad.nl/en/what-is-smlib-and-how-does-it-relate-to-occt/
- Published: 2026-10-22T21:43:19+02:00
- Author: Marijn van den Heuvel \+ AI

_This is the English reading version of the Dutch news item [Wat is SMLib, en hoe verhoudt het zich tot OCCT?](https://opensourcecad.nl/vibecoded-apps/wat-is-smlib-en-hoe-verhoudt-het-zich-tot-occt/)._

NVIDIA open-sourced a kernel in October 2026 under the name USD BRep. That kernel
is called SMLib and spent more than twenty years inside the commercial ClassCAD.
So next to OCCT there is now a second open-source kernel for B-rep modelling. Below
is what SMLib is, what ClassCAD and OCCT are, and how they actually differ.

## What SMLib is

SMLib stands for Solid Modeling Library. It is a kernel for B-rep modelling that
computes with NURBS: exact surfaces, booleans, fillets and chamfers, sweeps, offset
and shell, plus repairing and triangulating models. Alongside NURBS it takes analytic
surfaces too, such as planes, cylinders, cones, spheres and tori.

The kernel comes from Solid Modeling Solutions. NVIDIA took that company over in
May 2022 and published the code on 9 October 2026 under the Apache-2.0 licence, 
as part of USD BRep. What SMLib is not: a CAD program. It is the computing core;
feature history, sketch solving and assemblies sit in the application above it.

## What ClassCAD is

ClassCAD is the CAD engine SMLib has been running in all those years, from AWV Informatik
in Sankt Gallen. You do not start it as a program with a window of its own: the 
engine runs on a server or in the browser and is driven through an API, to build
CAD into other software. The engine provides the feature history and the sketches,
SMLib provides the geometry underneath. Products such as Buerligons (a modelling
program in the browser), the Buerli SDK and ClassCAD.ai hang around that engine.

## What OCCT is

OCCT, Open CASCADE Technology, is a C++ library for 3D CAD, CAM and CAE. Matra Datavision
open-sourced it in 1999, and since 2004 it carries that name. The company behind
it, Open Cascade SAS, has been part of Capgemini since 2014. The licence is LGPL
2.1 with an exception, since version 6.7.0 from 2013; the newest version is 8.0.1.
Like SMLib, OCCT computes with analytic surfaces and NURBS, does booleans and fillets,
and has translators for exchange formats such as STEP. OCCT is a kernel too, not
a CAD program.

## Where they differ

|  | OCCT and SMLib | 
| Licence | OCCT: LGPL 2.1 with an exception; a commercial licence is possible through Open Cascade. SMLib: Apache-2.0. | 
| Open source since | OCCT: 1999. SMLib: October 2026. | 
| Origin | OCCT: Matra Datavision, now Open Cascade SAS under Capgemini. SMLib: Solid Modeling Solutions, part of NVIDIA since 2022. | 
| Runs in | OCCT: FreeCAD, KiCad 3D, Salome, CadQuery, build123d and more. SMLib: ClassCAD; as open source not yet in wide use. |

The biggest factual difference is in the licence. Beyond that they resemble each
other: both are kernels for B-rep modelling, with analytic surfaces and NURBS, booleans
and fillets.

## The licence difference

Apache-2.0, the one SMLib carries, gives you full freedom. You may use, modify and
distribute the code, including in a closed product. More importantly: you may also
keep your own improvements to the kernel to yourself. You only have to leave the
licence and copyright notices in place and state what you changed, and you get patent
rights with it.

LGPL 2.1 with an exception, the one OCCT carries, works differently. Your application
may stay closed and link to the kernel, but the kernel itself stays under the LGPL.
If you improve the kernel and distribute that change, it has to be published under
the same licence. And the user must be able to replace the kernel with a build of
their own. The exception widens the linking only, not those two duties. Anyone who
wants to avoid them entirely can buy a commercial licence from Open Cascade.

**My verdict:** that difference is no coincidence. OCCT is open source under a licence
that benefits the commercial company behind it: whoever changes the kernel and distributes
it has to share that change, so improvement work ends up free of charge with a company
that also sells commercial licences for it. If you want to keep your own kernel 
work instead of giving it away, you are better off with Apache-2.0.

## What that means when you choose a kernel

Besides the licence, what counts is how long a kernel has been running in open source.
OCCT has a long list of programs running on it, with years of documentation and 
tooling. SMLib has a long commercial track record, but has only just become open
source. For SolidCraft there is a port to a new kernel, Solidcore, running, and 
that is not finished yet.

The SMLib code is on [GitHub](https://github.com/NVIDIA-Omniverse/usd-brep), the
OCCT licence on the [project wiki](https://github.com/Open-Cascade-SAS/OCCT/wiki/license).
How Solidcore relates to OCCT is in the [earlier comparison](https://opensourcecad.nl/en/solidcore-vs-occt/).
