rdp
Pure Python implementation of the Ramer-Douglas-Peucker algorithm
What it is and what it does
rdp is a pure Python implementation of the Ramer-Douglas-Peucker line simplification algorithm, which reduces the number of points needed to represent a curve while maintaining its overall shape. It accepts either plain Python lists of coordinate pairs or NumPy arrays, making it suitable for both simple scripts and numerical computing workflows.
The algorithm works by iteratively removing points that fall within a specified distance (epsilon) of the line connecting their neighbors. This is commonly used in cartography, GPS track simplification, and graphics rendering to reduce data size or computational cost without significant loss of fidelity. The package provides a straightforward functional interface—call rdp() with your point sequence and an optional epsilon parameter.
Use it for:
- Simplify GPS tracks or map polylines to reduce storage and transmission overhead while preserving route shape.
- Decimate dense point clouds from sensors or 3D scans before visualization or further processing.
- Reduce the complexity of hand-drawn curves or paths in graphics applications for cleaner rendering.
- Compress time-series trajectory data in robotics or motion capture systems.
- Preprocess geometric data for machine learning pipelines that are sensitive to point density.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements the Ramer-Douglas-Peucker algorithm to reduce the number of points in a 2D or 3D curve while preserving its shape, with a simple Python interface and optional NumPy support.
No. The package is abandoned (last release 2016-12-19, repository archived) with classifiers only for Python 2.5–3.4, all now end-of-life. High install friction and no runtime dependencies means you're taking on maintenance risk for a decade-old codebase. If you need line simplification, consider a maintained alternative or vendor the algorithm directly.
Install
rdp on PyPI
pip
pip install rdpuv
uv add rdppoetry
poetry add rdpInstalling rdp
Before you install
High install friction due to source distribution only (rdp-0.8.tar.gz). The package is abandoned—last release was 2016-12-19 and the repository is archived—so no maintenance or updates are expected.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions.
Quickstart
pip install rdp
from rdp import rdp
rdp([[1, 1], [2, 2], [3, 3], [4, 4]])
Classifiers indicate support only for Python 2.5–3.4, all end-of-life; compatibility with modern Python versions is unverified.
Verify before relying
- Whether the package works reliably on modern Python versions despite classifiers only listing up to 3.4.
- Whether NumPy is an optional or required dependency—description mentions NumPy interface but deps list shows zero runtime dependencies.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,525 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 90,363/month — #13,591 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rdp-0.8.tar.gz
Keywords: rdp, ramer, douglas, peucker, line, simplification, numpy
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
simplificationSimplify LineStrings using the…
unclear · top 15,000 on PyPI
kneedDetects knee (elbow) points in curves using the…
unclear · top 15,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI
lttbDownsamples time series data using the…
permissive · top 15,000 on PyPI
isosurfacesConstructs isolines and isosurfaces of 2D and…
permissive · top 15,000 on PyPI
topojsontopojson encodes spatial data into TopoJSON…
permissive · top 15,000 on PyPI
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
pyclothoidsPyclothoids provides a Python interface to…
unclear · top 15,000 on PyPI
transforms3dConverts between different 3D geometric…
permissive · top 15,000 on PyPI
ott-jaxOTT-JAX solves optimal transport…
permissive · top 15,000 on PyPI