What is pyRANSAC-3D?
pyRANSAC-3D is an open source Python implementation of the Random Sample Consensus (RANSAC) method. It fits primitive shapes such as planes, cuboids, and cylinders to point clouds for applications including 3D SLAM, 3D reconstruction, object tracking, and more.
Features
Installation
Requirement: NumPy
Install from PyPI:
pip install pyransac3d
For a complete introduction see the Getting Started guide.
Quick start
Example 1 - Planar RANSAC
import pyransac3d as pyrsc
points = load_points(.) # Load your point cloud as a NumPy array with shape (N, 3)
plane1 = pyrsc.Plane()
best_eq, best_inliers = plane1.fit(points, 0.01)
The result is the plane equation Ax + By + Cz + D = 0:
[0.720, -0.253, 0.646, 1.100]
Example 2 - Spherical RANSAC
To fit a noisy sphere with r = 5 centered at the origin, use:
import pyransac3d as pyrsc
points = load_points(.) # Load your point cloud as a NumPy array with shape (N, 3)
sph = pyrsc.Sphere()
center, radius, inliers = sph.fit(points, thresh=0.4)
Results:
center: [0.010462385575072288, -0.2855090643954039, 0.02867848979091283]
radius: 5.085218633039647
More examples
Runnable examples of every shape are in the examples folder.
When should I use pyRANSAC-3D?
Use pyRANSAC-3D when you need to:
- Fit a plane to a 3D point cloud in Python, such as a floor, wall, roof, or tabletop.
- Detect cylinders in LiDAR or depth-sensor data, such as pipes, poles, trunks, or columns.
- Segment geometric shapes from noisy point clouds with RANSAC.
- Fit spheres, cuboids, circles, lines, or point clusters from NumPy-compatible
(N, 3)arrays. - Combine lightweight NumPy-based shape fitting with optional Open3D visualization.
Documentation and other links
- Read the documentation.
- Browse the source code in the GitHub repository.
- Install the PyPI package.
- Explore the animation examples to watch each RANSAC fitter update through its callback.
License
Citation
Was this repository useful for your work? Please cite it:
@software{Mariga_pyRANSAC-3D,
author = {Mariga, Leonardo},
doi = {10.5281/zenodo.7212567},
month = {8},
title = {{pyRANSAC-3D}},
url = {https://github.com/leomariga/pyRANSAC-3D},
version = {v0.7.0},
year = {2026}
}
Contributing is awesome!
See CONTRIBUTING
Contact
Developed with :heart: by the internet
Maintainer: Leonardo Mariga
Did you like it? Remember to click the :star2: button.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyransac3d-0.7.0.tar.gz.
File metadata
- Download URL: pyransac3d-0.7.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a481475e8490589c8194e4c2512d6777fe66e74195809fad23fbf6c136206e4
|
|
| MD5 |
da7f6553ec0161facc51e63294e6dce9
|
|
| BLAKE2b-256 |
24513df11e0a2acd10fb7584c306150d23cd9f7058c2af9708fe4cf4deef7ba6
|
File details
Details for the file pyransac3d-0.7.0-py3-none-any.whl.
File metadata
- Download URL: pyransac3d-0.7.0-py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c529c69967a280aca2558d6f45cab2b14552328f596ee468e7fbdc8854906d65
|
|
| MD5 |
20ad0922d25ac52b9ed3cb1aaef3b7a9
|
|
| BLAKE2b-256 |
d3a2e86abd8902e255e56ce7c888202658cda2ca05332f62a74bce33a65dff58
|