pyclothoids
A library for clothoid curves in Python
What it is and what it does
Pyclothoids wraps state-of-the-art numerical algorithms for clothoid curve geometry into a simple, immutable Python API centered on a single Clothoid class. Clothoid curves are spirals with the mathematical property that curvature increases linearly with arc length—a property valuable in physics and engineering but expensive to compute because Cartesian coordinates require Fresnel integral evaluation. The library aims to hide that complexity behind an intuitive interface so you can use clothoids without mastering the underlying numerical methods.
The package is designed for minimalism: the top-level API consists of one class, Clothoid, which is immutable—any transformation returns a new instance rather than modifying the original. This design prevents common errors and keeps the learning curve shallow. The description notes that clothoids are not always well-behaved and recommends considering simpler curves first unless clothoid properties are genuinely required for your problem.
Use it for:
- Road and railway design: clothoids are standard in civil engineering for smooth transitions between straight and curved sections.
- Robot path planning: computing smooth, curvature-continuous trajectories for autonomous systems.
- Optical and wave physics: modeling light paths and wave propagation where linear curvature growth is relevant.
- Computer graphics and animation: generating smooth spiral curves for visual effects or motion paths.
- Numerical geometry research: prototyping and experimenting with clothoid-based algorithms without low-level implementation overhead.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pyclothoids provides a Python interface to compute and manipulate clothoid curves—mathematical curves parameterized by arc length with closed-form tangent and curvature expressions, evaluated via Fresnel integrals.
Yes, if you need clothoid curves and are comfortable with aging maintenance. The package is stable (no known vulnerabilities, last release April 2025), has reasonable platform coverage via pre-built wheels, and solves a specialized but real problem in engineering and physics. The main caveat is the unclear license—verify it matches your project's requirements before committing. Not recommended if simpler curves will solve your problem.
Install
pyclothoids on PyPI
pip
pip install pyclothoidsuv
uv add pyclothoidspoetry
poetry add pyclothoidsInstalling pyclothoids
Before you install
Medium install friction: the package ships as pre-built wheels across macOS, Linux (manylinux and musl), and Windows, but depends on pybind11 at runtime. Last release was in April 2025; the repository is active but aging (493 days since last release).
License in practice
License status is unclear—no SPDX identifier or raw license text is recorded. Before adopting this package in a commercial or copyleft-sensitive project, verify the actual license terms in the repository.
Quickstart
pip install pyclothoids
from pyclothoids import Clothoid
# Create a clothoid curve
clothoid = Clothoid.StandardParams(curvature_start=0.0, curvature_end=0.1, arc_length=10.0)
print(clothoid)
pybind11 is listed as a runtime dependency; verify it is installed or included with the wheels for your platform.
Verify before relying
- Minimum Python version requirement is unspecified; wheels exist but earlier support is unknown.
- Whether pybind11 must be installed separately or is bundled with the wheels.
- Actual license identifier and terms (SPDX and raw text both missing from metadata).
Package facts
| License | not declared (unclear) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — pybind11 |
| Maintenance | aging — 493 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 106,770/month — #12,640 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyclothoids-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl; pyclothoids-0.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; pyclothoids-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyclothoids-0.2.0-cp310-cp310-musllinux_1_1_i686.whl; pyclothoids-0.2.0-cp310-cp310-musllinux_1_1_x86_64.whl; pyclothoids-0.2.0-cp310-cp310-win32.whl; pyclothoids-0.2.0-cp310-cp310-win_amd64.whl; pyclothoids-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl; pyclothoids-0.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; pyclothoids-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyclothoids-0.2.0-cp311-cp311-musllinux_1_1_i686.whl; pyclothoids-0.2.0-cp311-cp311-musllinux_1_1_x86_64.whl; pyclothoids-0.2.0-cp311-cp311-win32.whl; pyclothoids-0.2.0-cp311-cp311-win_amd64.whl; pyclothoids-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl; pyclothoids-0.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl; pyclothoids-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyclothoids-0.2.0-cp312-cp312-musllinux_1_2_i686.whl; pyclothoids-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl; pyclothoids-0.2.0-cp312-cp312-win32.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
kneedDetects knee (elbow) points in curves using the…
unclear · top 15,000 on PyPI
svg.pathParses SVG path definitions and provides…
permissive · top 5,000 on PyPI
svgpathtoolsReads, writes, and analyzes SVG Path objects…
permissive · top 5,000 on PyPI
cu2quConverts cubic Bézier curves to quadratic…
permissive · top 15,000 on PyPI
ocp-gordonInterpolates networks of curves into smooth…
permissive · top 15,000 on PyPI
isosurfacesConstructs isolines and isosurfaces of 2D and…
permissive · top 15,000 on PyPI
shapelyShapely provides Python tools for creating,…
permissive · top 1,000 on PyPI
piecewise-rationalPerforms shape-preserving piecewise rational…
permissive · top 15,000 on PyPI
rdpImplements the Ramer-Douglas-Peucker algorithm…
permissive · top 15,000 on PyPI
svgelementssvgelements parses SVG files and provides…
permissive · top 5,000 on PyPI