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.
Release files for pyransac3d 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyransac3d-0.7.0.tar.gz | 35.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyransac3d-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.5 kB
Release files / pyransac3d-0.7.0.tar.gz
| Download URL | pyransac3d-0.7.0.tar.gz |
|---|---|
| Size | 35.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a481475e8490589c8194e4c2512d6777fe66e74195809fad23fbf6c136206e4
|
|
BLAKE2b-256 checksum How to use checksums |
24513df11e0a2acd10fb7584c306150d23cd9f7058c2af9708fe4cf4deef7ba6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / pyransac3d-0.7.0-py3-none-any.whl
| Download URL | pyransac3d-0.7.0-py3-none-any.whl |
|---|---|
| Size | 33.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c529c69967a280aca2558d6f45cab2b14552328f596ee468e7fbdc8854906d65
|
|
BLAKE2b-256 checksum How to use checksums |
d3a2e86abd8902e255e56ce7c888202658cda2ca05332f62a74bce33a65dff58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|