This is the English reading version of the Dutch news item 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, the OCCT licence on the project wiki. How Solidcore relates to OCCT is in the earlier comparison.
