Kerf.Kernel.DataExchange
0.2.0-preview.2
See the version list below for details.
dotnet add package Kerf.Kernel.DataExchange --version 0.2.0-preview.2
NuGet\Install-Package Kerf.Kernel.DataExchange -Version 0.2.0-preview.2
<PackageReference Include="Kerf.Kernel.DataExchange" Version="0.2.0-preview.2" />
<PackageVersion Include="Kerf.Kernel.DataExchange" Version="0.2.0-preview.2" />
<PackageReference Include="Kerf.Kernel.DataExchange" />
paket add Kerf.Kernel.DataExchange --version 0.2.0-preview.2
#r "nuget: Kerf.Kernel.DataExchange, 0.2.0-preview.2"
#:package Kerf.Kernel.DataExchange@0.2.0-preview.2
#addin nuget:?package=Kerf.Kernel.DataExchange&version=0.2.0-preview.2&prerelease
#tool nuget:?package=Kerf.Kernel.DataExchange&version=0.2.0-preview.2&prerelease
Kerf.Kernel
A managed .NET CAD kernel derived from Open CASCADE Technology (OCCT) 8.0.1, ported to C# class for class and now being redesigned for .NET (phase 10: docs/phase10-plan.md). See docs/design.md for the design and docs/port-status.md for what has been ported.
- Pure managed code: no native libraries, no P/Invoke.
- .NET names (unit 10E): types are in namespaces by area (
Kerf.Geometry,Kerf.Topologyfor the public API,Kerf.Engine.<Area>for the algorithms), without OCCT's package prefixes, and members follow .NET's naming. docs/api/kerf.map says what each OCCT name became, so OCCT's documentation can still be found; each derived file names its OCCT source in a// Port of:header. - Immutable to callers: every value you get back is immutable.
using Kerf.Engine.Geometry;
using Kerf.Geometry;
Transform3D rotation = Transform3D.Rotation(Constants.OZ(), Math.PI / 2);
Point3D point = new Point3D(1, 0, 0).Transformed(rotation); // (0, 1, 0); the original is unchanged
The public API is still OCCT's classes renamed; units 10F to 10L reshape it as docs/api designs.
Assemblies
| Assembly | What |
|---|---|
Kerf.Kernel.Foundation |
Maths, geometric values (Point3D, Transform3D…), bounding boxes, the engine's foundations |
Kerf.Kernel.ModelingData |
Curves and surfaces, topology (Shape, Edge, Face…), adaptors, extrema |
Kerf.Kernel.ModelingAlgorithms |
Construction, Booleans, fillets, offsets, features, healing, meshing |
Kerf.Kernel.DataExchange |
STEP, STL, glTF, 3MF, OBJ and BREP |
Building
Requirements: the .NET 10 SDK and git.
./tools/get-occt.ps1 # OCCT V8_0_1 source into .deps/occt-src (for the corpus test and port status)
./tools/get-occt-testdata.ps1 # OCCT's test data (99 MB) into .deps/occt-testdata, for the Draw corpus
dotnet test
tests/Kerf.Kernel.Oracle.Tests compares the port with native OCCT's results, recorded when native OCCT was still built
(unit 10A) and frozen since it went (unit 10B): see docs/oracle-testing.md.
Contributing
docs/design-rules.md gives the rules for new and redesigned code (phase 10); docs/translation-rules.md says how C++ became C# until phase 10, and docs/porting-playbook.md the steps for porting a package.
Licence
GNU Lesser General Public License 2.1 with the Open CASCADE exception, as OCCT: see LICENSE,
OCCT_LGPL_EXCEPTION.txt and NOTICE. Kerf.Kernel is a modified version of OCCT 8.0.1
and isn't endorsed by Open Cascade SAS. Delabella's port (BRepMesh/delabella.cs) keeps its MIT licence: see
THIRD-PARTY-NOTICES.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Kerf.Kernel.ModelingAlgorithms (>= 0.2.0-preview.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Kerf.Kernel.DataExchange:
| Package | Downloads |
|---|---|
|
Kerf.Modeling
Kerf.Modeling: a code-first CAD modelling library for .NET, derived from build123d (the build123d contributors), over Kerf.Kernel. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.5.0 | 64 | 11/10/2026 |
| 0.4.0 | 101 | 11/9/2026 |
| 0.3.0 | 94 | 11/8/2026 |
| 0.2.0-preview.2 | 70 | 11/4/2026 |