English version: What is SMLib, and how does it relate to OCCT?.
NVIDIA zette in oktober 2026 een kernel open source onder de naam USD BRep. Die kernel heet SMLib en zat ruim twintig jaar in het commerciële ClassCAD. Daarmee is er naast OCCT een tweede open-source kernel voor B-rep-modelleren. Hieronder staat wat SMLib is, wat ClassCAD en OCCT zijn, en waarin ze feitelijk verschillen.
Wat SMLib is
SMLib staat voor Solid Modeling Library. Het is een kernel voor B-rep-modelleren die met NURBS rekent: exacte oppervlakken, booleans, fillets en chamfers, sweeps, offset en shell, plus het repareren en trianguleren van modellen. Naast NURBS gaan er ook analytische oppervlakken in, zoals vlakken, cilinders, kegels, bollen en torussen.
De kernel komt van Solid Modeling Solutions. NVIDIA nam dat bedrijf in mei 2022 over en publiceerde de code op 9 oktober 2026 onder de Apache-2.0-licentie, als onderdeel van USD BRep. Wat SMLib niet is: een CAD-programma. Het is de rekenkern; functiegeschiedenis, schets-oplossing en samenstellingen zitten in de applicatie erboven.
Wat ClassCAD is
ClassCAD is de CAD-engine waarin SMLib al die jaren draait, van AWV Informatik uit Sankt Gallen. Je start het niet als een programma met een eigen venster: de engine draait op een server of in de browser en wordt via een API aangestuurd, om CAD in andere software te bouwen. De engine levert de functiegeschiedenis en de schetsen, SMLib levert de geometrie eronder. Om die engine heen hangen producten als Buerligons (een modelleerprogramma in de browser), de Buerli-SDK en ClassCAD.ai.
Wat OCCT is
OCCT, Open CASCADE Technology, is een C++-bibliotheek voor 3D CAD, CAM en CAE. Matra Datavision maakte hem in 1999 open source, en sinds 2004 heet hij zo. Het bedrijf erachter, Open Cascade SAS, hoort sinds 2014 bij Capgemini. De licentie is LGPL 2.1 met een uitzondering, sinds versie 6.7.0 uit 2013; de nieuwste versie is 8.0.1. OCCT rekent net als SMLib met analytische oppervlakken en NURBS, doet booleans en fillets, en heeft vertalers voor uitwisselformaten zoals STEP. Ook OCCT is een kernel, geen CAD-programma.
Waar ze van elkaar verschillen
| OCCT | SMLib | |
|---|---|---|
| Licentie | LGPL 2.1 met uitzondering; commerciële licentie mogelijk via Open Cascade | Apache-2.0 |
| Open source sinds | 1999 | Oktober 2026 |
| Herkomst | Matra Datavision, nu Open Cascade SAS onder Capgemini | Solid Modeling Solutions, sinds 2022 NVIDIA |
| Draait in | FreeCAD, KiCad 3D, Salome, CadQuery, build123d en meer | ClassCAD; als open source nog geen breed gebruik |
Het grootste feitelijke verschil zit in de licentie. Verder lijken ze op elkaar: beide zijn kernels voor B-rep-modelleren, met analytische oppervlakken en NURBS, booleans en fillets.
Het licentieverschil
Apache-2.0, die van SMLib, geeft je de volle vrijheid. Je mag de code gebruiken, aanpassen en verspreiden, ook in een gesloten product. Belangrijker: ook je eigen verbeteringen aan de kernel mag je voor jezelf houden. Je hoeft alleen de licentie- en auteursrechtmeldingen te laten staan en aan te geven wat je gewijzigd hebt, en je krijgt er patentrechten bij.
LGPL 2.1 met uitzondering, die van OCCT, werkt anders. Je applicatie mag gesloten blijven en aan de kernel linken, maar de kernel zelf blijft onder de LGPL. Verbeter je de kernel en verspreid je die aanpassing, dan moet ze onder dezelfde licentie openbaar worden. En de gebruiker moet de kernel kunnen vervangen door een eigen bouw. De uitzondering verruimt alleen het linken, niet die twee plichten. Wie ze helemaal niet wil, kan bij Open Cascade een commerciële licentie kopen.
Mijn oordeel: dat verschil is geen toeval. OCCT staat open source onder een licentie die het commerciële bedrijf erachter ten goede komt: wie de kernel aanpast en verspreidt, moet die aanpassing delen, en zo komt verbeterwerk gratis terecht bij een bedrijf dat er ook commerciële licenties op verkoopt. Wie zijn eigen kernelwerk wil houden in plaats van weg te geven, zit met Apache-2.0 beter.
Wat dat betekent als je een kernel kiest
Naast de licentie telt hoe lang een kernel al in open source meedraait. OCCT heeft een lange lijst programma’s die erop draaien, met jaren aan documentatie en gereedschap. SMLib heeft een lange commerciële staat van dienst, maar is pas net open source. Voor SolidCraft loopt er een port naar een nieuwe kernel, Solidcore, die nog niet af is.
De code van SMLib staat op GitHub, de licentie van OCCT op de projectwiki. Hoe Solidcore zich verhoudt tot OCCT, staat in de eerdere vergelijking.
