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.
Requirement: NumPy
Install from PyPI:
pip install pyransac3dFor a complete introduction see the Getting Started guide.
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]
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
Runnable examples of every shape are in the examples folder.
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.
- 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.
Was this repository useful for your work? Please cite it:
@software{Mariga_pyRANSAC-3D_2022,
author = {Mariga, Leonardo},
doi = {10.5281/zenodo.7212567},
month = {10},
title = {{pyRANSAC-3D}},
url = {https://github.com/leomariga/pyRANSAC-3D},
version = {v0.6.0},
year = {2022}
}
See CONTRIBUTING
Developed with ❤️ by the internet
Maintainer: Leonardo Mariga
Did you like it? Remember to click the 🌟 button.



