toppra
toppra: time-optimal parametrization of trajectories for robots subject to constraints.
Decision gist · record as of 2026-08-14
Yes, if you need to compute time-optimal trajectories for robots with kinematic or dynamic constraints and are comfortable with Python. The library is actively maintained, has no known vulnerabilities, and offers a straightforward API. However, note the deprecation warning: the project is transitioning to a C++ version with bindings, so for new long-term projects, evaluate whether that alternative is ready for your use case.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires scipy, numpy, and matplotlib as runtime dependencies; compiled wheels available for Linux x86_64 only (manylinux2014 and musllinux).
- Medium install friction due to compiled wheels for multiple Python versions (3.9–3.14).
- Active maintenance with a recent release 17 days ago.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
last release 2026-07-28 (17 days) · last repo commit 2026-07-28 · 917 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 94,528 downloads/mo, #13,324 on PyPI
Alternatives
Verify before relying
pip install toppra
import toppra
import numpy as np
# Define a geometric path and constraints, then compute time-optimal parameterization
# Example: path_s = toppra.compute_parameterization(path, constraints)- Whether the C++ version with bindings is production-ready and recommended as a replacement for new projects.
- Specific robot platforms or constraint types this version handles (joint velocity, Cartesian velocity, etc.).
- Performance characteristics or scalability limits for complex paths or constraint sets.
What it is and what it does
toppra is a library for computing time-optimal path parameterization—the fastest way to traverse a geometric path while respecting robot kinematic and dynamic constraints. Given a path and a list of constraints (joint velocity, joint acceleration, Cartesian velocity, etc.), it returns a parameterization function that describes how fast the robot should move at each point along the path. This allows you to generate the quickest feasible trajectory that satisfies all physical and operational limits.
The library depends on scipy, numpy, and matplotlib for numerical computation and visualization. It is actively maintained and distributed as compiled wheels for Python 3.9–3.14 on Linux x86_64. However, the description notes that Python support will be dropped in favor of a C++ version with bindings, so new projects should evaluate whether the C++ alternative is appropriate.
Use it for
- Generate fastest robot arm trajectories that respect joint velocity and acceleration limits for pick-and-place tasks.
- Optimize mobile robot paths subject to dynamic constraints like maximum speed and turning radius.
- Compute time-optimal tool trajectories in Cartesian space while satisfying kinematic singularity avoidance.
- Parameterize pre-planned geometric paths to meet real-time execution deadlines on production robots.
- Research and validate trajectory optimization algorithms against benchmark constraint sets.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to compute time-optimal trajectories for robots with kinematic or dynamic constraints and are comfortable with Python.
The library is actively maintained, has no known vulnerabilities, and offers a straightforward API. However, note the deprecation warning: the project is transitioning to a C++ version with bindings, so for new long-term projects, evaluate whether that alternative is ready for your use case.
Install
toppra on PyPI
Before you install
Medium install friction due to compiled wheels for multiple Python versions (3.9–3.14). Active maintenance with a recent release 17 days ago. Note: the description warns that Python support will be dropped in favor of a C++ version with bindings.
Requires scipy, numpy, and matplotlib as runtime dependencies; compiled wheels available for Linux x86_64 only (manylinux2014 and musllinux).
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install toppra
import toppra
import numpy as np
# Define a geometric path and constraints, then compute time-optimal parameterization
# Example: path_s = toppra.compute_parameterization(path, constraints)
Verify before relying
- Whether the C++ version with bindings is production-ready and recommended as a replacement for new projects.
- Specific robot platforms or constraint types this version handles (joint velocity, Cartesian velocity, etc.).
- Performance characteristics or scalability limits for complex paths or constraint sets.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesscipynumpymatplotlib |
| Maintenance | Actively maintained 17 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 94,528 / month, #13,324 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: toppra-0.6.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp310-cp310-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp311-cp311-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp312-cp312-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp313-cp313-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp314-cp314-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp314-cp314t-musllinux_1_2_x86_64.whl; toppra-0.6.9-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; toppra-0.6.9-cp39-cp39-musllinux_1_2_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “time-optimal path planning”
- toppraComputes time-optimal path parameterization for robots subject to…
- python-motion-planningImplements motion planning algorithms including path planners for N-D…
- mplibMPlib provides motion planning algorithms for robot manipulation,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also gtsam · mplib · python-motion-planning · dex-retargeting · pin-pink · evo · libpinocchio · drake · pin · mink