Metadata-Version: 2.4
Name: geomcore
Version: 0.1.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Rust
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Mathematics
Summary: A pure, standalone geometric kernel for CAD-grade curves and surfaces: parametric evaluation, transformations, and curve-on-surface parametrization.
Keywords: geometry,cad,curves,surfaces,nurbs
License-Expression: MIT OR Apache-2.0
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/GabrielJMS/geomcore/blob/main/CHANGELOG.md
Project-URL: Repository, https://github.com/GabrielJMS/geomcore
Project-URL: Roadmap, https://github.com/GabrielJMS/geomcore/blob/main/ROADMAP.md

# geomcore (Python bindings)

Python bindings for [geomcore](https://github.com/GabrielJMS/geomcore), a
pure, standalone geometric kernel for CAD-grade curves and surfaces —
parametric evaluation, rigid transformations, and analytic curve-on-surface
parametrization, implemented in Rust.

```python
from geomcore import Point3, Vector3
from geomcore.curves import Circle3D
import math

circle = Circle3D.new(Point3.origin(), Vector3.z(), 2.0)
point = circle.eval_point(math.pi / 4)
```

## Install

```sh
pip install geomcore
```

Pre-built wheels are published for Linux (x86_64, aarch64), macOS, and
Windows, for Python 3.9+ (abi3 — one wheel covers all versions).

## What's inside

- Parametric evaluation for lines, circles, ellipses, parabolas, hyperbolas,
  and B-spline curves (rational and periodic), plus planes, cylinders, cones,
  spheres, tori, and B-spline surfaces.
- Bulk evaluation (`eval_points`) with a single native call per batch.
- Rigid transformations via a single `Transform` type.
- Analytic curve-on-surface parametrization (`parametrize_on`) for lines and
  circles on the five elementary surfaces.

All numeric results are validated against golden fixtures at CAD-kernel-grade
tolerances (1e-7). See the [repository](https://github.com/GabrielJMS/geomcore)
for full documentation, the [roadmap](https://github.com/GabrielJMS/geomcore/blob/main/ROADMAP.md),
and the Rust crate.

## License

Dual-licensed under MIT or Apache-2.0, at your option.

