forgekernel 0.1.0__tar.gz → 0.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- forgekernel-0.8.0/PKG-INFO +79 -0
- forgekernel-0.8.0/README.md +44 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/pyproject.toml +3 -4
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/__init__.py +1 -1
- forgekernel-0.8.0/src/forgekernel.egg-info/PKG-INFO +79 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel.egg-info/requires.txt +1 -1
- forgekernel-0.1.0/PKG-INFO +0 -82
- forgekernel-0.1.0/README.md +0 -47
- forgekernel-0.1.0/src/forgekernel.egg-info/PKG-INFO +0 -82
- {forgekernel-0.1.0 → forgekernel-0.8.0}/LICENSE +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/setup.cfg +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/brep.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/bsolid.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/csg.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/curve.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/exact.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/interval.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/io.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/kernel.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/loft.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/nurbs.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/profile2d.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/quadric.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/ssi.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/stepio.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/surd.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/surfacing.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/tess.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel/trim.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel.egg-info/SOURCES.txt +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel.egg-info/dependency_links.txt +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/src/forgekernel.egg-info/top_level.txt +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k1_exact.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k37_loft.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k38_profile.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k3_curves.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k3_ssi.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k3_step.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k6_surfacing.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k7_bsolid.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k7_stepexport.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k7_trim.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_k7_trimflux.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_rust_oracle.py +0 -0
- {forgekernel-0.1.0 → forgekernel-0.8.0}/tests/test_scaffold.py +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: forgekernel
|
|
3
|
+
Version: 0.8.0
|
|
4
|
+
Summary: Exact-arithmetic B-rep CAD kernel
|
|
5
|
+
Author-email: Dan Willis <danielcwillis@gmail.com>
|
|
6
|
+
Maintainer-email: Dan Willis <danielcwillis@gmail.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Project-URL: Homepage, https://github.com/gitcad-xyz/forge
|
|
9
|
+
Project-URL: Repository, https://github.com/gitcad-xyz/forge
|
|
10
|
+
Project-URL: Issues, https://github.com/gitcad-xyz/forge/issues
|
|
11
|
+
Project-URL: Design — ADR-0018, https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md
|
|
12
|
+
Project-URL: Benchmarks vs OCCT, https://github.com/gitcad-xyz/gitcad/blob/main/bench/RUST-vs-OCCT.md
|
|
13
|
+
Keywords: cad,b-rep,brep,geometry,kernel,nurbs,solid-modeling,computational-geometry,exact-arithmetic,rational-arithmetic,step
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Manufacturing
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
26
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
|
27
|
+
Requires-Python: >=3.11
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Provides-Extra: rust
|
|
31
|
+
Requires-Dist: forgekernel_rs>=0.8.0; extra == "rust"
|
|
32
|
+
Provides-Extra: test
|
|
33
|
+
Requires-Dist: pytest>=7; extra == "test"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# forge
|
|
37
|
+
|
|
38
|
+
An exact-arithmetic boundary-representation (B-rep) CAD kernel. Geometric and
|
|
39
|
+
topological decisions use exact rational arithmetic (ℚ, ℚ[π], ℚ[√d]) or
|
|
40
|
+
certified intervals; no result depends on a floating-point tolerance.
|
|
41
|
+
|
|
42
|
+
It ships as two PyPI packages:
|
|
43
|
+
|
|
44
|
+
- `forgekernel` — the kernel, pure Python.
|
|
45
|
+
- `forgekernel_rs` — a native (Rust) build of the performance-critical routines,
|
|
46
|
+
installed automatically when a wheel is available and returning the same
|
|
47
|
+
results.
|
|
48
|
+
|
|
49
|
+
## Capabilities
|
|
50
|
+
|
|
51
|
+
- Planar solids: rational linear algebra, plane-based B-rep, booleans,
|
|
52
|
+
divergence-theorem mass properties.
|
|
53
|
+
- Quadrics (cylinder, cone, sphere, torus) with closed-form intersections.
|
|
54
|
+
- NURBS curves and surfaces; surface–surface intersection with complete branch
|
|
55
|
+
detection and certified points.
|
|
56
|
+
- Procedural offsets and shells; edge blends (fillets); lofts.
|
|
57
|
+
- Exact volume, centroid, and inertia via the divergence theorem.
|
|
58
|
+
- STEP (AP203/AP214) import and export.
|
|
59
|
+
|
|
60
|
+
## Design
|
|
61
|
+
|
|
62
|
+
A Python reference implementation defines the exact semantics. A Rust build
|
|
63
|
+
provides the same operations for production use; each ported routine is
|
|
64
|
+
cross-checked against the reference. Design notes and decisions are recorded in
|
|
65
|
+
the gitcad repository (ADR-0018).
|
|
66
|
+
|
|
67
|
+
## Layout
|
|
68
|
+
|
|
69
|
+
- `src/forgekernel/` — the Python kernel.
|
|
70
|
+
- `rust/forge-core/` — the native build (`forgekernel_rs`).
|
|
71
|
+
|
|
72
|
+
## Install
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
pip install forgekernel # pure Python
|
|
76
|
+
pip install forgekernel[rust] # add the native build
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
License: Apache-2.0. Source: https://github.com/gitcad-xyz/forge
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# forge
|
|
2
|
+
|
|
3
|
+
An exact-arithmetic boundary-representation (B-rep) CAD kernel. Geometric and
|
|
4
|
+
topological decisions use exact rational arithmetic (ℚ, ℚ[π], ℚ[√d]) or
|
|
5
|
+
certified intervals; no result depends on a floating-point tolerance.
|
|
6
|
+
|
|
7
|
+
It ships as two PyPI packages:
|
|
8
|
+
|
|
9
|
+
- `forgekernel` — the kernel, pure Python.
|
|
10
|
+
- `forgekernel_rs` — a native (Rust) build of the performance-critical routines,
|
|
11
|
+
installed automatically when a wheel is available and returning the same
|
|
12
|
+
results.
|
|
13
|
+
|
|
14
|
+
## Capabilities
|
|
15
|
+
|
|
16
|
+
- Planar solids: rational linear algebra, plane-based B-rep, booleans,
|
|
17
|
+
divergence-theorem mass properties.
|
|
18
|
+
- Quadrics (cylinder, cone, sphere, torus) with closed-form intersections.
|
|
19
|
+
- NURBS curves and surfaces; surface–surface intersection with complete branch
|
|
20
|
+
detection and certified points.
|
|
21
|
+
- Procedural offsets and shells; edge blends (fillets); lofts.
|
|
22
|
+
- Exact volume, centroid, and inertia via the divergence theorem.
|
|
23
|
+
- STEP (AP203/AP214) import and export.
|
|
24
|
+
|
|
25
|
+
## Design
|
|
26
|
+
|
|
27
|
+
A Python reference implementation defines the exact semantics. A Rust build
|
|
28
|
+
provides the same operations for production use; each ported routine is
|
|
29
|
+
cross-checked against the reference. Design notes and decisions are recorded in
|
|
30
|
+
the gitcad repository (ADR-0018).
|
|
31
|
+
|
|
32
|
+
## Layout
|
|
33
|
+
|
|
34
|
+
- `src/forgekernel/` — the Python kernel.
|
|
35
|
+
- `rust/forge-core/` — the native build (`forgekernel_rs`).
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
pip install forgekernel # pure Python
|
|
41
|
+
pip install forgekernel[rust] # add the native build
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
License: Apache-2.0. Source: https://github.com/gitcad-xyz/forge
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "forgekernel"
|
|
7
7
|
dynamic = ["version"]
|
|
8
|
-
description = "Exact-arithmetic B-rep CAD kernel
|
|
8
|
+
description = "Exact-arithmetic B-rep CAD kernel"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "Apache-2.0"}
|
|
11
11
|
requires-python = ">=3.11"
|
|
@@ -13,8 +13,7 @@ authors = [{name = "Dan Willis", email = "danielcwillis@gmail.com"}]
|
|
|
13
13
|
maintainers = [{name = "Dan Willis", email = "danielcwillis@gmail.com"}]
|
|
14
14
|
keywords = [
|
|
15
15
|
"cad", "b-rep", "brep", "geometry", "kernel", "nurbs", "solid-modeling",
|
|
16
|
-
"computational-geometry", "exact-arithmetic", "rational-arithmetic",
|
|
17
|
-
"step", "occt", "opencascade",
|
|
16
|
+
"computational-geometry", "exact-arithmetic", "rational-arithmetic", "step",
|
|
18
17
|
]
|
|
19
18
|
classifiers = [
|
|
20
19
|
"Development Status :: 3 - Alpha",
|
|
@@ -44,7 +43,7 @@ Issues = "https://github.com/gitcad-xyz/forge/issues"
|
|
|
44
43
|
[project.optional-dependencies]
|
|
45
44
|
# Optional native accelerator (separate compiled wheels). forgekernel runs
|
|
46
45
|
# pure-Python and exact WITHOUT it; forgekernel_rs only speeds the hot paths.
|
|
47
|
-
rust = ["forgekernel_rs>=0.
|
|
46
|
+
rust = ["forgekernel_rs>=0.8.0"]
|
|
48
47
|
test = ["pytest>=7"]
|
|
49
48
|
|
|
50
49
|
[tool.setuptools.dynamic]
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: forgekernel
|
|
3
|
+
Version: 0.8.0
|
|
4
|
+
Summary: Exact-arithmetic B-rep CAD kernel
|
|
5
|
+
Author-email: Dan Willis <danielcwillis@gmail.com>
|
|
6
|
+
Maintainer-email: Dan Willis <danielcwillis@gmail.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Project-URL: Homepage, https://github.com/gitcad-xyz/forge
|
|
9
|
+
Project-URL: Repository, https://github.com/gitcad-xyz/forge
|
|
10
|
+
Project-URL: Issues, https://github.com/gitcad-xyz/forge/issues
|
|
11
|
+
Project-URL: Design — ADR-0018, https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md
|
|
12
|
+
Project-URL: Benchmarks vs OCCT, https://github.com/gitcad-xyz/gitcad/blob/main/bench/RUST-vs-OCCT.md
|
|
13
|
+
Keywords: cad,b-rep,brep,geometry,kernel,nurbs,solid-modeling,computational-geometry,exact-arithmetic,rational-arithmetic,step
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Manufacturing
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
26
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
|
27
|
+
Requires-Python: >=3.11
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Provides-Extra: rust
|
|
31
|
+
Requires-Dist: forgekernel_rs>=0.8.0; extra == "rust"
|
|
32
|
+
Provides-Extra: test
|
|
33
|
+
Requires-Dist: pytest>=7; extra == "test"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# forge
|
|
37
|
+
|
|
38
|
+
An exact-arithmetic boundary-representation (B-rep) CAD kernel. Geometric and
|
|
39
|
+
topological decisions use exact rational arithmetic (ℚ, ℚ[π], ℚ[√d]) or
|
|
40
|
+
certified intervals; no result depends on a floating-point tolerance.
|
|
41
|
+
|
|
42
|
+
It ships as two PyPI packages:
|
|
43
|
+
|
|
44
|
+
- `forgekernel` — the kernel, pure Python.
|
|
45
|
+
- `forgekernel_rs` — a native (Rust) build of the performance-critical routines,
|
|
46
|
+
installed automatically when a wheel is available and returning the same
|
|
47
|
+
results.
|
|
48
|
+
|
|
49
|
+
## Capabilities
|
|
50
|
+
|
|
51
|
+
- Planar solids: rational linear algebra, plane-based B-rep, booleans,
|
|
52
|
+
divergence-theorem mass properties.
|
|
53
|
+
- Quadrics (cylinder, cone, sphere, torus) with closed-form intersections.
|
|
54
|
+
- NURBS curves and surfaces; surface–surface intersection with complete branch
|
|
55
|
+
detection and certified points.
|
|
56
|
+
- Procedural offsets and shells; edge blends (fillets); lofts.
|
|
57
|
+
- Exact volume, centroid, and inertia via the divergence theorem.
|
|
58
|
+
- STEP (AP203/AP214) import and export.
|
|
59
|
+
|
|
60
|
+
## Design
|
|
61
|
+
|
|
62
|
+
A Python reference implementation defines the exact semantics. A Rust build
|
|
63
|
+
provides the same operations for production use; each ported routine is
|
|
64
|
+
cross-checked against the reference. Design notes and decisions are recorded in
|
|
65
|
+
the gitcad repository (ADR-0018).
|
|
66
|
+
|
|
67
|
+
## Layout
|
|
68
|
+
|
|
69
|
+
- `src/forgekernel/` — the Python kernel.
|
|
70
|
+
- `rust/forge-core/` — the native build (`forgekernel_rs`).
|
|
71
|
+
|
|
72
|
+
## Install
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
pip install forgekernel # pure Python
|
|
76
|
+
pip install forgekernel[rust] # add the native build
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
License: Apache-2.0. Source: https://github.com/gitcad-xyz/forge
|
forgekernel-0.1.0/PKG-INFO
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: forgekernel
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: Exact-arithmetic B-rep CAD kernel: topology decided in ℚ, never by floating-point epsilon
|
|
5
|
-
Author-email: Dan Willis <danielcwillis@gmail.com>
|
|
6
|
-
Maintainer-email: Dan Willis <danielcwillis@gmail.com>
|
|
7
|
-
License: Apache-2.0
|
|
8
|
-
Project-URL: Homepage, https://github.com/gitcad-xyz/forge
|
|
9
|
-
Project-URL: Repository, https://github.com/gitcad-xyz/forge
|
|
10
|
-
Project-URL: Issues, https://github.com/gitcad-xyz/forge/issues
|
|
11
|
-
Project-URL: Design — ADR-0018, https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md
|
|
12
|
-
Project-URL: Benchmarks vs OCCT, https://github.com/gitcad-xyz/gitcad/blob/main/bench/RUST-vs-OCCT.md
|
|
13
|
-
Keywords: cad,b-rep,brep,geometry,kernel,nurbs,solid-modeling,computational-geometry,exact-arithmetic,rational-arithmetic,step,occt,opencascade
|
|
14
|
-
Classifier: Development Status :: 3 - Alpha
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: Intended Audience :: Manufacturing
|
|
17
|
-
Classifier: Intended Audience :: Science/Research
|
|
18
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
|
-
Classifier: Operating System :: OS Independent
|
|
20
|
-
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
-
Classifier: Topic :: Scientific/Engineering
|
|
25
|
-
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
26
|
-
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
|
27
|
-
Requires-Python: >=3.11
|
|
28
|
-
Description-Content-Type: text/markdown
|
|
29
|
-
License-File: LICENSE
|
|
30
|
-
Provides-Extra: rust
|
|
31
|
-
Requires-Dist: forgekernel_rs>=0.1.0; extra == "rust"
|
|
32
|
-
Provides-Extra: test
|
|
33
|
-
Requires-Dist: pytest>=7; extra == "test"
|
|
34
|
-
Dynamic: license-file
|
|
35
|
-
|
|
36
|
-
# forge — the gitcad-native B-rep kernel
|
|
37
|
-
|
|
38
|
-
From-scratch, unencumbered (Apache-2.0), built to pass the bar OCCT
|
|
39
|
-
sets and then raise it — the plan and the decision record live in
|
|
40
|
-
gitcad ([ADR-0018](https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md),
|
|
41
|
-
[coverage plan](https://github.com/gitcad-xyz/gitcad/blob/main/docs/research/kernel-coverage-plan.md)).
|
|
42
|
-
|
|
43
|
-
## The three-oracle chain
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
forgekernel.ref Python + exact rational arithmetic — the executable
|
|
47
|
-
specification; topological decisions are EXACT, never
|
|
48
|
-
epsilon-guarded
|
|
49
|
-
⇅ differential
|
|
50
|
-
OCCT the 30-year-hardened independent oracle, driven from
|
|
51
|
-
the gitcad benchmark corpus through the Kernel seam
|
|
52
|
-
⇅ oracle
|
|
53
|
-
forge (Rust) the production port, added operator class by operator
|
|
54
|
-
class once ref has proven the semantics
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## How progress is measured
|
|
58
|
-
|
|
59
|
-
Not vibes: the [benchmark trend](https://github.com/gitcad-xyz/gitcad/blob/main/bench/TREND.md)
|
|
60
|
-
in the gitcad repo scores every backend on the shared corpus —
|
|
61
|
-
capability %, torture-case pass rate, correctness deltas, wall time.
|
|
62
|
-
Day-one baseline: OCCT scores 93.8%, failing `swept_channel`
|
|
63
|
-
(sharp-cornered sweep → invalid geometry). Beating that number with
|
|
64
|
-
exact arithmetic is the first milestone.
|
|
65
|
-
|
|
66
|
-
## Roadmap (gates, not dates)
|
|
67
|
-
|
|
68
|
-
- **K1** exact planar core: rational linear algebra, plane-based
|
|
69
|
-
polyhedral B-rep, epsilon-free booleans, divergence-theorem mass
|
|
70
|
-
properties, native lineage. Gate: planar corpus green vs OCCT.
|
|
71
|
-
- **K2** quadrics + torus with closed-form intersectors — most of
|
|
72
|
-
real mech. Gate: ≥80% corpus green.
|
|
73
|
-
- **K3** NURBS + branch-complete surface–surface intersection (the
|
|
74
|
-
crown jewel). **K4** procedural offsets/shell. **K5** G2 blends.
|
|
75
|
-
**K6** the surfacing suite — the SolidWorks-class end goal.
|
|
76
|
-
|
|
77
|
-
## Layout
|
|
78
|
-
|
|
79
|
-
- `src/forgekernel/` — the Python reference kernel (`ref`)
|
|
80
|
-
- `rust/` — the forge port (arrives with K1 stability)
|
|
81
|
-
- gitcad consumes both through its `Kernel` seam; nothing here depends
|
|
82
|
-
on gitcad
|
forgekernel-0.1.0/README.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# forge — the gitcad-native B-rep kernel
|
|
2
|
-
|
|
3
|
-
From-scratch, unencumbered (Apache-2.0), built to pass the bar OCCT
|
|
4
|
-
sets and then raise it — the plan and the decision record live in
|
|
5
|
-
gitcad ([ADR-0018](https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md),
|
|
6
|
-
[coverage plan](https://github.com/gitcad-xyz/gitcad/blob/main/docs/research/kernel-coverage-plan.md)).
|
|
7
|
-
|
|
8
|
-
## The three-oracle chain
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
forgekernel.ref Python + exact rational arithmetic — the executable
|
|
12
|
-
specification; topological decisions are EXACT, never
|
|
13
|
-
epsilon-guarded
|
|
14
|
-
⇅ differential
|
|
15
|
-
OCCT the 30-year-hardened independent oracle, driven from
|
|
16
|
-
the gitcad benchmark corpus through the Kernel seam
|
|
17
|
-
⇅ oracle
|
|
18
|
-
forge (Rust) the production port, added operator class by operator
|
|
19
|
-
class once ref has proven the semantics
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## How progress is measured
|
|
23
|
-
|
|
24
|
-
Not vibes: the [benchmark trend](https://github.com/gitcad-xyz/gitcad/blob/main/bench/TREND.md)
|
|
25
|
-
in the gitcad repo scores every backend on the shared corpus —
|
|
26
|
-
capability %, torture-case pass rate, correctness deltas, wall time.
|
|
27
|
-
Day-one baseline: OCCT scores 93.8%, failing `swept_channel`
|
|
28
|
-
(sharp-cornered sweep → invalid geometry). Beating that number with
|
|
29
|
-
exact arithmetic is the first milestone.
|
|
30
|
-
|
|
31
|
-
## Roadmap (gates, not dates)
|
|
32
|
-
|
|
33
|
-
- **K1** exact planar core: rational linear algebra, plane-based
|
|
34
|
-
polyhedral B-rep, epsilon-free booleans, divergence-theorem mass
|
|
35
|
-
properties, native lineage. Gate: planar corpus green vs OCCT.
|
|
36
|
-
- **K2** quadrics + torus with closed-form intersectors — most of
|
|
37
|
-
real mech. Gate: ≥80% corpus green.
|
|
38
|
-
- **K3** NURBS + branch-complete surface–surface intersection (the
|
|
39
|
-
crown jewel). **K4** procedural offsets/shell. **K5** G2 blends.
|
|
40
|
-
**K6** the surfacing suite — the SolidWorks-class end goal.
|
|
41
|
-
|
|
42
|
-
## Layout
|
|
43
|
-
|
|
44
|
-
- `src/forgekernel/` — the Python reference kernel (`ref`)
|
|
45
|
-
- `rust/` — the forge port (arrives with K1 stability)
|
|
46
|
-
- gitcad consumes both through its `Kernel` seam; nothing here depends
|
|
47
|
-
on gitcad
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: forgekernel
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: Exact-arithmetic B-rep CAD kernel: topology decided in ℚ, never by floating-point epsilon
|
|
5
|
-
Author-email: Dan Willis <danielcwillis@gmail.com>
|
|
6
|
-
Maintainer-email: Dan Willis <danielcwillis@gmail.com>
|
|
7
|
-
License: Apache-2.0
|
|
8
|
-
Project-URL: Homepage, https://github.com/gitcad-xyz/forge
|
|
9
|
-
Project-URL: Repository, https://github.com/gitcad-xyz/forge
|
|
10
|
-
Project-URL: Issues, https://github.com/gitcad-xyz/forge/issues
|
|
11
|
-
Project-URL: Design — ADR-0018, https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md
|
|
12
|
-
Project-URL: Benchmarks vs OCCT, https://github.com/gitcad-xyz/gitcad/blob/main/bench/RUST-vs-OCCT.md
|
|
13
|
-
Keywords: cad,b-rep,brep,geometry,kernel,nurbs,solid-modeling,computational-geometry,exact-arithmetic,rational-arithmetic,step,occt,opencascade
|
|
14
|
-
Classifier: Development Status :: 3 - Alpha
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: Intended Audience :: Manufacturing
|
|
17
|
-
Classifier: Intended Audience :: Science/Research
|
|
18
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
|
-
Classifier: Operating System :: OS Independent
|
|
20
|
-
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
-
Classifier: Topic :: Scientific/Engineering
|
|
25
|
-
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
26
|
-
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
|
27
|
-
Requires-Python: >=3.11
|
|
28
|
-
Description-Content-Type: text/markdown
|
|
29
|
-
License-File: LICENSE
|
|
30
|
-
Provides-Extra: rust
|
|
31
|
-
Requires-Dist: forgekernel_rs>=0.1.0; extra == "rust"
|
|
32
|
-
Provides-Extra: test
|
|
33
|
-
Requires-Dist: pytest>=7; extra == "test"
|
|
34
|
-
Dynamic: license-file
|
|
35
|
-
|
|
36
|
-
# forge — the gitcad-native B-rep kernel
|
|
37
|
-
|
|
38
|
-
From-scratch, unencumbered (Apache-2.0), built to pass the bar OCCT
|
|
39
|
-
sets and then raise it — the plan and the decision record live in
|
|
40
|
-
gitcad ([ADR-0018](https://github.com/gitcad-xyz/gitcad/blob/main/docs/adr/0018-native-kernel.md),
|
|
41
|
-
[coverage plan](https://github.com/gitcad-xyz/gitcad/blob/main/docs/research/kernel-coverage-plan.md)).
|
|
42
|
-
|
|
43
|
-
## The three-oracle chain
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
forgekernel.ref Python + exact rational arithmetic — the executable
|
|
47
|
-
specification; topological decisions are EXACT, never
|
|
48
|
-
epsilon-guarded
|
|
49
|
-
⇅ differential
|
|
50
|
-
OCCT the 30-year-hardened independent oracle, driven from
|
|
51
|
-
the gitcad benchmark corpus through the Kernel seam
|
|
52
|
-
⇅ oracle
|
|
53
|
-
forge (Rust) the production port, added operator class by operator
|
|
54
|
-
class once ref has proven the semantics
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## How progress is measured
|
|
58
|
-
|
|
59
|
-
Not vibes: the [benchmark trend](https://github.com/gitcad-xyz/gitcad/blob/main/bench/TREND.md)
|
|
60
|
-
in the gitcad repo scores every backend on the shared corpus —
|
|
61
|
-
capability %, torture-case pass rate, correctness deltas, wall time.
|
|
62
|
-
Day-one baseline: OCCT scores 93.8%, failing `swept_channel`
|
|
63
|
-
(sharp-cornered sweep → invalid geometry). Beating that number with
|
|
64
|
-
exact arithmetic is the first milestone.
|
|
65
|
-
|
|
66
|
-
## Roadmap (gates, not dates)
|
|
67
|
-
|
|
68
|
-
- **K1** exact planar core: rational linear algebra, plane-based
|
|
69
|
-
polyhedral B-rep, epsilon-free booleans, divergence-theorem mass
|
|
70
|
-
properties, native lineage. Gate: planar corpus green vs OCCT.
|
|
71
|
-
- **K2** quadrics + torus with closed-form intersectors — most of
|
|
72
|
-
real mech. Gate: ≥80% corpus green.
|
|
73
|
-
- **K3** NURBS + branch-complete surface–surface intersection (the
|
|
74
|
-
crown jewel). **K4** procedural offsets/shell. **K5** G2 blends.
|
|
75
|
-
**K6** the surfacing suite — the SolidWorks-class end goal.
|
|
76
|
-
|
|
77
|
-
## Layout
|
|
78
|
-
|
|
79
|
-
- `src/forgekernel/` — the Python reference kernel (`ref`)
|
|
80
|
-
- `rust/` — the forge port (arrives with K1 stability)
|
|
81
|
-
- gitcad consumes both through its `Kernel` seam; nothing here depends
|
|
82
|
-
on gitcad
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|