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 with version 0.2.1. 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.0

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.0
File Size Uploaded Provenance Actions
planex2d-0.2.0.tar.gz 2.6 MB With provenance Details for planex2d-0.2.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for planex2d 0.2.0
File Actions
planex2d-0.2.0-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.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.0-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.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.0-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.0-cp314-cp314-macosx_13_0_universal2.whl
planex2d-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for planex2d-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.0-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.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.0-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.0-cp313-cp313-macosx_13_0_universal2.whl
planex2d-0.2.0-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.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for planex2d-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.0-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.0-cp312-cp312-macosx_13_0_universal2.whl
planex2d-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for planex2d-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
planex2d-0.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for planex2d-0.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
planex2d-0.2.0-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.0-cp311-cp311-macosx_13_0_universal2.whl

Total release size: 69.4 MB

Release files / planex2d-0.2.0.tar.gz

Download URL planex2d-0.2.0.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
f5556f228fc58cefb591efdd8409cd8ae1b690636a19e2357529fcccd95faae9
BLAKE2b-256 checksum
How to use checksums
d099a2208449a4038565f779f425783b9d29c3fb57239bc017ed432682ac5cc4
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.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.0-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
494c65d7667b184808edbe58e8702d0751924cdf20ecb14a18937ce74bd9655c
BLAKE2b-256 checksum
How to use checksums
b43991174062d50029a3baf374994d96a83f0ec14fcf7e083488acbf350dd028
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.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.0-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
febe4de18cf643cd87d6a1c64f5582d6caf57c692f6d07de810beef51a20885f
BLAKE2b-256 checksum
How to use checksums
92795e58dee68a0bc2ec5396ffe5dfbfa627819bf0fa7b3957811912eb61031c
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.0-cp314-cp314-macosx_13_0_universal2.whl

Download URL planex2d-0.2.0-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
7e412c0f8f6f68d9cbe0e9ea58510e8aadfc643ce442d934719d2a1dcdd71582
BLAKE2b-256 checksum
How to use checksums
393a0c650ce546bba8955a2b669a6973b10a587cf30bf7d40cd915c52de253e6
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.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.0-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
3019d6f38e70ddc92a0dce236db72c9387669fbae9c5aa2ef7662a4b36600d5c
BLAKE2b-256 checksum
How to use checksums
e7ac5e55d0d0d9ac37b23c646bd81402e3218013d3fb0ba3ec1e08041043fbc3
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.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.0-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
7294c0fe2db392e284493ca4998be2a46bb1614162f8effa6b63ed15b374f680
BLAKE2b-256 checksum
How to use checksums
8825cb425d622d5acf1b4c314c490bd2b04217bc866c3177a1328a02f43824cd
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.0-cp313-cp313-macosx_13_0_universal2.whl

Download URL planex2d-0.2.0-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
39c65bbdee853d86c8fa84bd8907246f4ce354d06a93812372db5ca0d0e7b7ee
BLAKE2b-256 checksum
How to use checksums
f7a300315dcddb5756b2ba79abfd2375daadb396bf65cabc481892aa5a02db02
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.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.0-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
0251e1ee0fbcf112b9fc5f9ddd5be0ae2bf532e0a37e77ee313a2b80970c6bc0
BLAKE2b-256 checksum
How to use checksums
6a050a245dde3f344dd01903a9259132c9a57d253945d93b463fbaaf1ae0714d
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.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.0-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
1681dcd7bbe4c2d56244340a40f46fa190f6ecc2e5b8efeac0ac4a3024c8cc48
BLAKE2b-256 checksum
How to use checksums
f04835865b4093df5d82d520fcf99228d0c8cf516730c5d4a0f0175458e5efe4
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.0-cp312-cp312-macosx_13_0_universal2.whl

Download URL planex2d-0.2.0-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
27dc5a7c50bb5092c92674905c741cc136589ab7da570db101465902d2c02e1e
BLAKE2b-256 checksum
How to use checksums
28fc1ced425958c72522394a17e2bc3ced275c8b71e0fbf08e9e96568ff73e8c
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.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL planex2d-0.2.0-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
f2377ca4250de2aa97a229b1ea62de8a379e53a57cab58c7c10b0669634ee490
BLAKE2b-256 checksum
How to use checksums
c0c7d7e1d05cd4a034165f7d316f754afb2e2e17c9a92d61d3369810dfa6e8cd
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.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL planex2d-0.2.0-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
b59c2a169a0e08ce4b4ff8d8c10fdaa889ca333293305dd5ea87f3bece7f1fd2
BLAKE2b-256 checksum
How to use checksums
32699d470aab54388c84c4b2e27c2402976a4f7830e3b28f2d5fb518c9e83b6a
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.0-cp311-cp311-macosx_13_0_universal2.whl

Download URL planex2d-0.2.0-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
612c01593f5d221163f257b06e1005368213ac49aaa82ef004936d53eae33d76
BLAKE2b-256 checksum
How to use checksums
5a50bd078f50bb47fb92121c0c85ef232622796a9e6052f20be8f9a19c75f4aa
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.0

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.0.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