Skip to main content

GeomPP — Python Bindings

Python bindings for geompp — a C++ 2D/3D geometry library.

Changelog — full release notes for every version.

Install

pip install geompp

Pre-built wheels are available for:

Platform Python versions
Linux x86_64 3.8 · 3.9 · 3.10 · 3.11 · 3.12 · 3.13 · 3.14
Windows x64 3.8 · 3.9 · 3.10 · 3.11 · 3.12 · 3.13 · 3.14

If your platform or Python version is not in the table above, pip will compile from source — you will need CMake ≥ 3.15 and a C++20-capable compiler.

Classes

2D 3D
Point2D Point3D
Vector2D Vector3D
Line2D Line3D
Ray2D Ray3D
LineSegment2D LineSegment3D
Polyline2D Polyline3D
Triangle2D Triangle3D
Polygon2D Polygon3D
BBox2D BBox3D
BBall2D BBall3D
BRect2D
BPrism3D
GeometryCollection2D GeometryCollection3D
Plane
View2D

Free functions

Function Description
are_collinear(p1, p2, p3) Three points on the same line
are_coplanar(points) List of Point3D on the same plane
closest_world_plane_to(points) XY / YZ / ZX plane nearest to the point cloud
are_ccw(points[, ref_plane]) Counter-clockwise winding (2D or 3D)
are_cw(points[, ref_plane]) Clockwise winding (2D or 3D)
remove_collinear(points) Drop collinear intermediate points
remove_duplicates(points) Drop duplicate points
average(points) Arithmetic mean
linear_combination(points, weights) Weighted sum
has_intersections(segments) Shamos–Hoey: True if any two segments in list[LineSegment2D] cross
find_intersections(segments) Bentley–Ottmann: returns list[Point2D] — every crossing point, sorted left-to-right
convex_hull(points) Andrew's monotone chain: convex hull of a list[Point2D], returned in CCW order
convex_hull(points, normal=None) Convex hull of a coplanar list[Point3D]; optional Vector3D normal (auto-detected if omitted)
principal_axes(points) PCA on a list[Point3D]: returns CoordinateFrame (.x primary, .y secondary, .z best-fit normal)
principal_normal(points) Best-fit plane normal of a list[Point3D] (PCA eigenvector with smallest eigenvalue)
principal_direction(points) Dominant direction of a list[Point3D] (PCA eigenvector with largest eigenvalue)
tangents_to(polygon, point_or_polygon) PolygonTangents2D/PolygonTangents3D (.left/.right) — tangent segments to a point, or common outer tangents to another polygon

How to use it

You can look at the test suite to see detailed usage.

A quick list of code examples per topic is provided here.

👉 View Full Code Examples on Github

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geompp-0.14.0.tar.gz (52.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

geompp-0.14.0-cp313-cp313-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.13Windows x86-64

geompp-0.14.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geompp-0.14.0-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

geompp-0.14.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geompp-0.14.0-cp311-cp311-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.11Windows x86-64

geompp-0.14.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geompp-0.14.0-cp310-cp310-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10Windows x86-64

geompp-0.14.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geompp-0.14.0-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

geompp-0.14.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

geompp-0.14.0-cp38-cp38-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.8Windows x86-64

geompp-0.14.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file geompp-0.14.0.tar.gz.

File metadata

  • Download URL: geompp-0.14.0.tar.gz
  • Upload date:
  • Size: 52.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0.tar.gz
Algorithm Hash digest
SHA256 d80ad76f2d8e53837c2992c1a5e151742f8057a437d36f3723dbf221eb726ace
MD5 1173cd897c1293f9cc3f5331fd9a185d
BLAKE2b-256 e6ed587b6e7fbfe825e9565799aacd217983666165371ef271d29e223f7ba83e

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4656c315a37450028d41eeb7fd91c4ed3b4e5b5ca6406d51dcc6a55f932994b4
MD5 99253349ec3c9d3f7474e0189a208525
BLAKE2b-256 0b1be0bcac9fd5ee6c933337042974e47a418b1219e56ffc4c20fb9522e792a5

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64e234f8f8552e6048f9aab8bb639d6f1cd820da00c683e57e4ed141eee7db1b
MD5 3b8b1d7821c5f15131029dedd83dc39e
BLAKE2b-256 f3e6b21d0211be1e755d61102fa83cfc4761161b73e4b0bb754acdc3e4965ed6

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0c37dfbc1ac2797fe9d67bd94fcbec62d64811b0e72441492ac70fc4ab8cbc2e
MD5 4583982c746d31fbee115241003767fb
BLAKE2b-256 17612794154dd2834a335147172fb6c08c65610cc705983306e2cd796c827a99

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40952da1b76d5fe9c98d0ee63facacfa8766d9f0d136bf526009bdeb18829903
MD5 d612bc0dd6518342fba8e7ed6a25b126
BLAKE2b-256 e54b2b52bbad64cbca5c5ebbec10f85144499a2343795331044254d961a5d1f8

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d21a89f1bf2818918e72c2f9eda04a3122ef3152b4115c8a5974efa0e6d80f92
MD5 0e6d5b586c962b8e40f3fba67464cdab
BLAKE2b-256 da6cf4ab57589d6d3a3a99f3076c0442440047aa49ce7ce7c69b20554ef7e78a

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02a8e2252a685c770e373409e4f4cd1abdad77a0f8963824a5c58b5cda18954d
MD5 6ed5c54c599ff93658e96054f45c5a12
BLAKE2b-256 8c23335c20c689f2517fdd6add5f96ab70d9dfbcd6c9846721ec6a6c00012e03

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4f3bb8e9210f8b0afc226fd765c9966acdd421b3eccd59dc9210bc09cc927e96
MD5 4f2b8fa488d23cb31efa142a63efc865
BLAKE2b-256 1b8e3f05b5a7946e24e5ecc71c9469ca8f5d051e985df6731cfad1dcf21d0c88

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8711de4548e513ab7742d471846481a03dbad940016a4bdf35b94312533eaed7
MD5 84c35de63e458318e157c2ef4d615fc0
BLAKE2b-256 70377b4e372c8f6ae2f6b9d046cde4a9049f2c37e1a1563608cefd69f8b7ff20

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4bd44fabdbe3369a1aa4412cdf8161ae72816c0b0d74d35e68d2ad3f0df670ea
MD5 98e81d878365da56b9e98c5b5135addf
BLAKE2b-256 0529c56d04b775f675a1a0ecd177f52b9edd1dbebe4d59e0fa89ec1c6a3f9359

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83788f493327952cd88736ef79d787b3b9c86f8669bb6f823197bb698785db2b
MD5 286be80fe955cddaa9408975d8602755
BLAKE2b-256 07a1c3b0e976d0be9b3ee409a057a6fc5e7df66c2f46155e847b1ec693dca7ca

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: geompp-0.14.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for geompp-0.14.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 98d71384be71633e4f57cbfdad31bd5eb1be433662beb2c78eef5430eaf5802e
MD5 81e2292bd8eca8c36fa01ce1cba1f9d6
BLAKE2b-256 4947f3b9bdd1b4683af298d56cd9a2e0798796ada09149365fab0307bd786ee7

See more details on using hashes here.

File details

Details for the file geompp-0.14.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for geompp-0.14.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28e6b991d089787b78443754dcd4e03e8dbd6613b2e0edd951646ee515ea103f
MD5 7ea0e9932c0ab1aa6e3b1e57f5413694
BLAKE2b-256 07858c1838fe5838773922817cfd02ad076e05f68246b0d79becc8aa31fe280b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page