Onder elke CAD-app zit een geometrische kernel: de bibliotheek die de vormen werkelijk maakt, opslaat en bewerkt. Elke fillet, boolean en STEP-export is de kernel die rekent. Gebruikers zien hem nooit, maar hij bepaalt hoe robuust, nauwkeurig en uitwisselbaar een tool echt is.
Op deze pagina leg ik uit wat NURBS is, waarom kernels belangrijk zijn, en — het belangrijkste — wat de voor- en nadelen zijn van de kernels die vandaag beschikbaar zijn voor open-source werktuigbouw.
Wat is een modeling kernel?
Een kernel is een softwarebibliotheek die 3D-vormen definieert en de bewerkingen daarop uitvoert: primitieven, booleans (union/subtract/intersect), fillets en chamfers, offsets, sweeps, lofts, doorsneden, massa-eigenschappen en bestandsuitwisseling. Applicaties als FreeCAD, CadQuery en Build123d zijn in feite een gebruikersinterface op een kernel.
Er bestaan wereldwijd maar een handvol productieklare B-rep kernels. Daarom licentiëren bijna alle commerciële CAD-pakketten er een, in plaats van er zelf een te bouwen.
NURBS in 60 seconden
NURBS (Non-Uniform Rational B-Splines) is de wiskundige taal die 3D CAD spreekt. Een NURBS-curve of -oppervlak wordt gedefinieerd door controlespunten, gewichten en een knooppuntenvector — goed voor drie eigenschappen die in de techniek echt uitmaken:
- Exactheid — cirkels, cilinders, kegels en bollen worden exact weergegeven (met rationale gewichten), niet benaderd door kleine driehoekjes
- Lokale controle — één controlepunt verplaatsen verandert alleen een lokaal gebied; dat maakt interactief modelleren voorspelbaar
- Compactheid en vloeiendheid — krommingscontinue oppervlakken kosten heel weinig data, ideaal voor aerodynamische en gespoten onderdelen
Bijna elk industrieel uitwisselformaat — STEP, IGES, ACIS — is op NURBS-geometrie gebouwd. Als een kernel NURBS goed spreekt, overleven je modellen de rondrit naar andere tools.
Het kernellandschap
| Kernel | Eigenaar / licentie | NURBS | Volwassenheid | Bekende gebruikers |
|---|---|---|---|---|
| Parasolid | Siemens — commercieel | Ja (NURBS + analytisch) | De industriestandaard | SolidWorks, NX, Onshape, Shapr3D |
| ACIS | Spatial / Dassault — commercieel | Ja | Zeer volwassen, uitbreidbaar | Veel mid-range CAD/CAM |
| CGM | Dassault — commercieel | Ja | Zeer volwassen | CATIA, SolidWorks (hybride) |
| C3D | C3D Labs — commercieel | Ja | Volwassen, incl. visualisatie en uitwisseling | Diverse ISV’s |
| Granite | PTC — commercieel | Ja | Volwassen | Creo-ecosysteem |
| OpenCASCADE (OCCT) | Open Cascade SAS — LGPL-2.1 | Ja — volledige B-spline-infrastructuur | ~30 jaar; de enige volwassen open-source B-rep kernel | FreeCAD, CadQuery, Build123d, KiCad 3D, Gmsh, Salome |
| Truck | ricosjp — MIT/Apache | Ja (oppervlakken) | Vroeg / nog niet productieklaar | CADmium |
| SMLib | Solid Modeling Solutions — source-available | Ja (NURBS-native) | Lange historie, niche | 200+ bedrijven (volgens leverancier) |
| openNURBS | McNeel — open source | Ja (lezen/schrijven 3DM) | Uitwisseltoolkit, geen volledige kernel | Rhino-bestandsinteroperabiliteit |
| CGAL | Open source | Nee (polyedrisch) | Volwassen voor computationele geometrie | Robotica, GIS, meshing |
Open source: de stand van zaken
OpenCASCADE (OCCT) is de enige productieklare open-source B-rep kernel. De NURBS-kern is decennia oud en oprecht compleet: een homogene B-spline-formulering voor alle curves en oppervlakken, interpolatie- en approximatie-algoritmen, non-manifold modelleren en een shape-healing toolkit om geïmporteerde geometrie te repareren. Als mensen “open-source CAD” zeggen, bedoelen ze bijna altijd OCCT.
Een nieuwe golf kernels komt snel op — vooral Rust-projecten zoals Truck, plus de applicaties die erop bouwen (CADmium) en code-first tools als SolidCraft. Ze mikken op moderne talen, WebAssembly en schone API’s, waar OCCT’s dertig jaar oude C++-interface moeite mee heeft. Ze gaan snel, maar staan nog vroeg: booleans, fillets en robuustheid bij grote samenstellingen blijven de moeilijke punten.
Het leeftijdsverschil is groot: OCCT wordt ontwikkeld sinds begin jaren ’90 (open source sinds 1999) en is veruit de veteraan. Vrijwel elke andere open-source kernel is pas een paar jaar oud — Truck bijvoorbeeld draait zo’n vier jaar mee en dekt de basis al, maar dat is nog heel jong naast een kernel met drie decennia verharding achter zich.
Dat gezegd: de kloof wordt sneller gedicht dan ooit. AI-ondersteunde ontwikkeling — codegeneratie, geautomatiseerd testen en LLM-agents die geometrie-algoritmen opzetten en kernelbugs opsporen — verlaagt de inspanning om een nieuwe kernel te bouwen en te harden enorm. Werk waar een team vroeger jaren over deed, is nu in weken te prototypen. Verwacht dat dit veld er over een paar releases heel anders uitziet.
Voor- en nadelen
NURBS / B-rep versus mesh (polygoon) modelleren
✅ Voordelen van NURBS/B-rep
- Exacte analytische geometrie — cirkels en boringen blijven zuiver
- Parametrische feature-historie (schets aanpassen, alles regenereert mee)
- Productieklare output (CAM-toolpaths, tekeningen, toleranties)
- Compacte, vloeiende en krommingscontinue oppervlakken
- Standaard STEP/IGES-uitwisseling
❌ Nadelen van NURBS/B-rep
- De moeilijke problemen zijn echt moeilijk — robuuste booleans, fillets en offsets blijven het eeuwige zwakke punt
- Zwaarder om te bouwen en te onderhouden dan een mesh-kernel
- Geïmporteerde geometrie vraagt vaak shape healing
- Vrij-vorm oppervlakkenwerk is in open source minder volwassen dan in Rhino-klasse tools
Een kernel kiezen
✅ OpenCASCADE (OCCT)
- Volwassen, beproefd, groot ecosysteem (FreeCAD, CadQuery, Build123d, Gmsh)
- Volledige NURBS/B-spline + non-manifold modelleren + shape healing
- Gratis (LGPL-2.1) en platformonafhankelijk
Nadelen: grote, legacy C++-API, gedateerde ergonomie, af en toe een edge-case bij booleans en fillets, en een migratie naar modern C++ (17) die nog loopt.
✅ Opkomende kernels (Truck, e.a.)
- Moderne talen (Rust), schone API’s, WebAssembly-vriendelijk
- Permissieve licenties (MIT/Apache)
- Actieve ontwikkeling en momentum
Nadelen: vroege fase, onvolledige feature-dekking, booleans en fillets nog niet productiebetrouwbaar, kleine community’s. Geschikt voor experimenten en de browser — nog niet voor kritisch productiewerk.
Mijn visie
Voor echt werktuigbouwkundig werk is OCCT vandaag de pragmatische keuze — de enige open-source kernel die een model van schets tot productie kan dragen. De nieuwe kernels zijn het volgen en testen waard, want op het moment dat één van hen robuuste booleans en fillets combineert met een moderne API, verandert het open-source CAD-landschap. Ik volg ze hier terwijl ze volwassen worden.
Verder lezen
- Mechanisch ontwerp & productontwikkeling — de tools waar ik mee werk
- Tests & Benchmarks — hoe ik STEP/IGES-fidelity en kernelrobuustheid meet