Skip to main content


planex2d

Fast, exact 2D geometry for Python
Documentation · Installation · Examples · License and notices

planex2d is free software under the GNU Lesser General Public License, version 2.1 or (at your option) any later version. Its compiled module contains code from Eigen, pybind11 and Taskflow; its OpenCASCADE bindings, the package planex2d-occ, are linked to Netgen and Open CASCADE Technology and make use of facilities provided by the Open CASCADE Technology software. See License and notices and THIRD_PARTY_NOTICES.md.

What it is

planex2d is a 2D geometry kernel for Python, written in C++. You draw outlines from lines, arcs, circles and splines, combine them with exact Boolean operations, dimension them with constraints, and clean up drawings imported from other tools. The resulting faces go to OpenCASCADE, netgen/NGSolve, gmsh and other tools for 3D modeling, meshing and simulation.

Installation

pip install planex2d          # the core: sketches, faces, Booleans, drawings, files
pip install "planex2d[occ]"   # with the OpenCASCADE bindings and netgen

The quotes keep shells like zsh, the default on macOS, from reading the brackets as a file pattern.

planex2d comes as wheels for Linux (x86_64 and aarch64) and macOS (Apple silicon and Intel, macOS 13.3 or newer), for Python 3.11 to 3.14; Windows follows in a later release. The core runs on numpy alone. The extra occ installs planex2d-occ, the OpenCASCADE bindings built for the last netgen releases (on Linux x86_64 and macOS, where netgen has wheels), and netgen with it; planex picks the bindings for the installed netgen. The package is called planex2d on PyPI and planex in Python (import planex as px). See Installation for the optional packages and for building from source (a C++20 compiler, CMake; Xcode 16 on macOS).

A first sketch

A QuickSketch draws with a pen: Line draws along the current direction, Turn changes the direction, Arc continues with a tangent arc, and Close joins the outline to its start. Circle adds a hole. The result is an angle bracket with an inner fillet and two holes.

import planex as px

bracket = px.QuickSketch()
bracket.Line(60).Turn(90).Line(10).Turn(90).Line(40)
bracket.Arc(10, -90).Line(30).Turn(90).Line(10).Close()
bracket.Circle((45, 5), 2.5).Circle((5, 35), 2.5)
face = px.Face(bracket.Wires())
face.Plot()

The angle bracket drawn by the pen: two legs, an inner fillet of radius 10 and a hole in each leg

Where to go next

License

planex2d is Copyright (C) 2026 Sebastian Hirnschall.

planex2d is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

planex2d is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, the file LICENSE, for more details. The third-party notices are in THIRD_PARTY_NOTICES.md and on the page License and notices.

Metadata

Release files for planex2d 0.2.1

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

Source distribution (sdist)

Source distribution for planex2d 0.2.1
File Size Uploaded Provenance Actions
planex2d-0.2.1.tar.gz 2.6 MB With provenance Details for planex2d-0.2.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for planex2d 0.2.1
File Actions
planex2d-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for planex2d-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for planex2d-0.2.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.1-cp314-cp314-macosx_13_0_universal2.whl CPython 3.14 CPython 3.14 macOS 13.0+ universal2 (ARM64, x86-64) Details for planex2d-0.2.1-cp314-cp314-macosx_13_0_universal2.whl
planex2d-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for planex2d-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for planex2d-0.2.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.1-cp313-cp313-macosx_13_0_universal2.whl CPython 3.13 CPython 3.13 macOS 13.0+ universal2 (ARM64, x86-64) Details for planex2d-0.2.1-cp313-cp313-macosx_13_0_universal2.whl
planex2d-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for planex2d-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for planex2d-0.2.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.1-cp312-cp312-macosx_13_0_universal2.whl CPython 3.12 CPython 3.12 macOS 13.0+ universal2 (ARM64, x86-64) Details for planex2d-0.2.1-cp312-cp312-macosx_13_0_universal2.whl
planex2d-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for planex2d-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for planex2d-0.2.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.1-cp311-cp311-macosx_13_0_universal2.whl CPython 3.11 CPython 3.11 macOS 13.0+ universal2 (ARM64, x86-64) Details for planex2d-0.2.1-cp311-cp311-macosx_13_0_universal2.whl

Total release size: 69.5 MB

Release files / planex2d-0.2.1.tar.gz

Download URL planex2d-0.2.1.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
4d04beea2c289f252fbffd4dcf86a41a34df6ca2c35608b23eea22f4444da7aa
BLAKE2b-256 checksum
How to use checksums
bf9796cd8396a040d5e524933d3fb6c64efc24b4b80b7f1a07448b6f829e0349
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a42571b88915e24a4c81e853309e4eb48cfcb80b1f3b12661dc646b87dcc7d19
BLAKE2b-256 checksum
How to use checksums
431ef1ebb20e9df5cb7fb94304dd3b3ce1c01026f962707999bd5259324c7dfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 4.4 MB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9842d75c054a1d32b35ce0837423687841443be3b9aced663de5350526aa76a6
BLAKE2b-256 checksum
How to use checksums
a423ee2589267b95f82fc7b6b3bda6a465115812219286a70c3dc6cc7663599b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp314-cp314-macosx_13_0_universal2.whl

Download URL planex2d-0.2.1-cp314-cp314-macosx_13_0_universal2.whl
Size 7.3 MB
Tags CPython 3.14 macOS 13.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
a963d1c15b1d28daea710b2d0ee6b18989e9d86aa4af3a42b4d8ab4ca7672ce2
BLAKE2b-256 checksum
How to use checksums
75c5a6451cf6f66d90ec1d24cb7da2c60300ad04cfdc32bebafc70606e514b8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
91c6ccf82c08318cdc64370a4b2b76046e12844dd533d8e13537e07c1f694c6e
BLAKE2b-256 checksum
How to use checksums
c580cde30201e2c8963822978675a6985688cd2af71bbafbb3ce24d1ba34122e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 4.4 MB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
01864e9ab9a795f394c60edb1202dec6c392c13bf6bc936351496255749fef3b
BLAKE2b-256 checksum
How to use checksums
075d36dc98221fe3e3dee6903ee86c7456342375239ebb69bb8c86dc0fd15be9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp313-cp313-macosx_13_0_universal2.whl

Download URL planex2d-0.2.1-cp313-cp313-macosx_13_0_universal2.whl
Size 7.3 MB
Tags CPython 3.13 macOS 13.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9d92b0e6d9a587a0381b2155483c35c58876ecf0ce19b796845a97e1a2c53e87
BLAKE2b-256 checksum
How to use checksums
2c4a45e9f1369d4797f2a2751e2a8eb394abaf47b70a2576b06179081122c994
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
664c852da0e62e2408acd5f49a103748df31e9757b872fdb055dd6657173a16e
BLAKE2b-256 checksum
How to use checksums
1b95d0c1da4d317b4936fec664b24d3afd4fd46d39f07b1bd13c718e7faf09a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 4.4 MB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b1229132057468146e035edd850bf10035498446081713811013c52c686e376f
BLAKE2b-256 checksum
How to use checksums
9d566fddd23c52a8a4c1de7db7807e192769af0c59b4512710f479f7b1003a88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp312-cp312-macosx_13_0_universal2.whl

Download URL planex2d-0.2.1-cp312-cp312-macosx_13_0_universal2.whl
Size 7.3 MB
Tags CPython 3.12 macOS 13.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
e34421b924df3adb88fabdb52f499e6737e9b8edc32591f692d1fe98356dba57
BLAKE2b-256 checksum
How to use checksums
ee75020405c5c9f27cefef9e28ad5e6b41ac8d1050ecc53475002e5649d6e8aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
871fad76779ea3c38dbd6a9d06df1548820cd468678572da8fb8ad85e394e014
BLAKE2b-256 checksum
How to use checksums
96200ad6c96f4964236c780044937da6fb98cbcde2c3e42066b74a24e18ec3cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 4.4 MB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
80efe6be14f139a83e6fbc872a500fb594406daaa9900fec16196c77e1cfdcd6
BLAKE2b-256 checksum
How to use checksums
823001b4d73a5ee2efce5f55c0edd231cc1b095f746c3bfc5f2f0125ffe0e591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Release files / planex2d-0.2.1-cp311-cp311-macosx_13_0_universal2.whl

Download URL planex2d-0.2.1-cp311-cp311-macosx_13_0_universal2.whl
Size 7.2 MB
Tags CPython 3.11 macOS 13.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
510cd4af1a5beb2fdddf67a787f260d7219713130020f8e8eb7aa2ccc84d21d3
BLAKE2b-256 checksum
How to use checksums
c309b214186a361e1fd1b4c1a0b22e6ebd4d8b08cfc49dd1ead6da44cc2836a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 28, 2026.

Transparency log

Security for planex2d 0.2.1

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.

Full provenance

All 13 files in this release have been uploaded with provenance metadata.

Select from 13 files

Attestation for planex2d-0.2.1.tar.gz

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 Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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