Skip to main content

NGK

NGK is the Nales Geometry Kernel: an experiment in building a geometry kernel around generalized maps, or GMaps.

The project explores how geometric modeling operations can be represented by a combinatorial topological structure first, with geometry attached as payload data. In a GMap, shapes are decomposed into small topological elements called darts. Involutions link those darts across dimensions, so vertices, edges, faces, shells, and higher-dimensional cells are described by traversal through the map rather than by ad hoc mesh records. This makes operations such as sewing, unsewing, extrusion, and cell traversal explicit in the topology, while coordinates and geometric data stay layered on top.

This repository currently contains:

  • A Rust kernel under src/.
  • Python bindings built with Maturin.
  • WebAssembly bindings for browser experiments.
  • A React Three Fiber visualization app under visualization/.

NGK is pre-alpha software. The public API, file compatibility, and modeling coverage will change as the kernel evolves.

Python package

Install the minimal native package with:

pip install ngk

The optional OCP viewer bridge is kept out of the core dependency set. Install it when you want to display shapes through ocp_vscode:

pip install "ngk[ocp]"

The Python API follows the kernel's domain structure. Primitive solid builders and the current solid Boolean operations live under ngk.modeling; the latter are intentionally solid-only for now.

from ngk.geometry import Frame, Point, Vector
from ngk.modeling import booleans, solids
from ngk.viz import ocp

frame = Frame.from_xy(
    Point(0, 0, 0),
    Vector(1, 0, 0),
    Vector(0, 1, 0),
)
base = solids.block(40, 30, 20, frame=frame)
tool = solids.cylinder(8, 30)
result = booleans.cut(base, tool)

ocp.show(result)

ngk.viz.debug.show can send objects to the NGK debug viewer, but the viewer is not bundled with the wheel: start it separately from an NGK checkout before using that bridge.

The current Python surface is useful for primitive solids, solid Booleans, topology inspection, experimental STEP exchange, and visualization. It is not yet a complete build123d or OCCT replacement.

Experiments

The visualization playground is published with GitHub Pages:

https://jojain.github.io/ngk/

It displays small interactive experiments for inspecting generated geometry and topology-backed modeling operations. The app is intentionally a playground: it is useful for trying ideas, checking behavior visually, and making the kernel's internal structures easier to reason about.

Local Development

From the repository root, the Rust checks are:

cargo fmt
cargo clippy --all-targets --all-features
cargo test --all-targets --all-features

To run the visualization app locally:

cd visualization
npm install
npm run dev

See visualization/README.md for details about adding new experiments.

Python releases

Prepare the next version with the repository helper:

uv tool install --editable ./release
bump

To let the tool create the commit and annotated tag from a clean master checkout, use --release directly:

bump patch --release
git push origin master --follow-tags

The --release command changes Cargo.toml and pyproject.toml, refreshes uv.lock, commits those files, and creates vX.Y.Z; it never pushes or uploads to PyPI itself.

Architecture Notes

License

NGK is licensed under the MIT License. See LICENSE.

Metadata

Release files for ngk 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ngk 0.0.7
File Size Uploaded
ngk-0.0.7.tar.gz 1.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for ngk 0.0.7
File
ngk-0.0.7-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
ngk-0.0.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
ngk-0.0.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
ngk-0.0.7-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
ngk-0.0.7-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 9.6 MB

Release files / ngk-0.0.7.tar.gz

Download URL ngk-0.0.7.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
72a6e39d0a2f3692374db93cacb0b515cf3838deed637c6623497008480adf21
BLAKE2b-256 checksum
How to use checksums
3a9173391a87a3a468c1f3645b1d9bc2dc92de757b8cc3846ecf3cef566f3223
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ngk-0.0.7-cp312-abi3-win_amd64.whl

Download URL ngk-0.0.7-cp312-abi3-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
65adc06400f1a40f90d78e85f6be4a2862a5c05641a617ac1d2dee44b213ab60
BLAKE2b-256 checksum
How to use checksums
d2a41985822e70181da37b47e53735510e42935befbf6e0d6e2481a0a0eae363
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ngk-0.0.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ngk-0.0.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
3d46ce50ddb488917674eaf6f42c587f3b8a346113ba8c656317b650dadffb80
BLAKE2b-256 checksum
How to use checksums
880d1a71a252405febbb9ad51280057c245744b4c50c45bdb2ca390f78f0d309
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ngk-0.0.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ngk-0.0.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
c419766b28ecec8870fcdb6e2d89fc279d852ef915144bbd7db86784d6e7c338
BLAKE2b-256 checksum
How to use checksums
46729d0a1d069b41e39509fa8a9cb613a1035968fe2c414fbf5f0a649622f056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ngk-0.0.7-cp312-abi3-macosx_11_0_arm64.whl

Download URL ngk-0.0.7-cp312-abi3-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b6b368aa78ba40c7ef0fafbfae7da11622dc32b131b5eddecb70de291b582c23
BLAKE2b-256 checksum
How to use checksums
6a917f47ec2e4557ff92a4fdbf4e02dbebda6bf51bbdcb6edf1d5cfb16182beb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ngk-0.0.7-cp312-abi3-macosx_10_12_x86_64.whl

Download URL ngk-0.0.7-cp312-abi3-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c12694781234e085767f2603c8ca045523f9aa5be7e927be4863daf54495f5bc
BLAKE2b-256 checksum
How to use checksums
c9fd0e313fa9d74ab5967a59859255c6d82d49d42d32e86640c7a96d0cafcf27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.0.13

6 release files

0.0.12

6 release files

0.0.11

6 release files

0.0.9

6 release files

0.0.8

6 release files

This release

0.0.7 This release

6 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page