{"id":27165105,"url":"https://github.com/leomariga/pyransac-3d","last_synced_at":"2025-04-09T02:51:19.812Z","repository":{"id":37715277,"uuid":"287829485","full_name":"leomariga/pyRANSAC-3D","owner":"leomariga","description":"A python tool for fitting primitives 3D shapes in point clouds using RANSAC algorithm ","archived":false,"fork":false,"pushed_at":"2023-11-15T19:23:21.000Z","size":52352,"stargazers_count":606,"open_issues_count":21,"forks_count":73,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-02T00:38:11.595Z","etag":null,"topics":["3d-reconstruction","cuboid","cylinder","open3d","plane-detection","planes","point-cloud","ransac","ransac-algorithm","segmentation"],"latest_commit_sha":null,"homepage":"https://leomariga.github.io/pyRANSAC-3D/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leomariga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-08-15T21:45:10.000Z","updated_at":"2025-03-31T03:05:37.000Z","dependencies_parsed_at":"2023-12-15T22:52:03.042Z","dependency_job_id":null,"html_url":"https://github.com/leomariga/pyRANSAC-3D","commit_stats":{"total_commits":40,"total_committers":4,"mean_commits":10.0,"dds":0.07499999999999996,"last_synced_commit":"e36f3d0896ab5c1647023bc0966d836616310c70"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leomariga%2FpyRANSAC-3D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leomariga%2FpyRANSAC-3D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leomariga%2FpyRANSAC-3D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leomariga%2FpyRANSAC-3D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leomariga","download_url":"https://codeload.github.com/leomariga/pyRANSAC-3D/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247968240,"owners_count":21025798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-reconstruction","cuboid","cylinder","open3d","plane-detection","planes","point-cloud","ransac","ransac-algorithm","segmentation"],"created_at":"2025-04-09T02:51:19.302Z","updated_at":"2025-04-09T02:51:19.806Z","avatar_url":"https://github.com/leomariga.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/leomariga/pyRANSAC-3D/master/doc/logo.png\"\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n-----------------\n[![DOI](https://zenodo.org/badge/287829485.svg)](https://zenodo.org/badge/latestdoi/287829485)\n[![PyPI Latest Release](https://img.shields.io/pypi/v/pyransac3d.svg)](https://pypi.org/project/pyransac3d/)\n[![License](https://img.shields.io/pypi/l/pyransac3d.svg)](https://github.com/leomariga/pyransac3d/blob/master/LICENSE)\n\n\n## What is pyRANSAC-3D?\n**_pyRANSAC-3D_** is an open source implementation of Random sample consensus (RANSAC) method. It fits primitive shapes such as planes, cuboids and cylinder in a point cloud to many aplications: 3D slam, 3D reconstruction, object tracking and many others. \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/leomariga/pyRANSAC-3D/master/doc/plano.gif\"\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n#### Features:\n - [Plane](https://leomariga.github.io/pyRANSAC-3D/api-documentation/plane/)\n - [Cylinder](https://leomariga.github.io/pyRANSAC-3D/api-documentation/cylinder/)\n - [Cuboid](https://leomariga.github.io/pyRANSAC-3D/api-documentation/cuboid/)\n - [Sphere](https://leomariga.github.io/pyRANSAC-3D/api-documentation/sphere/)\n - [Line](https://leomariga.github.io/pyRANSAC-3D/api-documentation/line/)\n - [Circle](https://leomariga.github.io/pyRANSAC-3D/api-documentation/circle/)\n - [Point](https://leomariga.github.io/pyRANSAC-3D/api-documentation/point/)\n\n\n## Installation\nRequirements: Numpy\n\nInstall with [Pypi](https://pypi.org/project/pyransac3d/):\n\n```sh\npip3 install pyransac3d\n```\n\n## Take a look: \n\n### Example 1 - Planar RANSAC\n\n``` python\nimport pyransac3d as pyrsc\n\npoints = load_points(.) # Load your point cloud as a numpy array (N, 3)\n\nplane1 = pyrsc.Plane()\nbest_eq, best_inliers = plane1.fit(points, 0.01)\n\n```\n\nResults in the plane equation Ax+By+Cz+D:\n`[0.720, -0.253, 0.646, 1.100]`\n\n### Example 2 - Spherical RANSAC\n\nLoading a noisy sphere's point cloud with r = 5 centered in 0 we can use the following code:\n\n``` python\nimport pyransac3d as pyrsc\n\npoints = load_points(.) # Load your point cloud as a numpy array (N, 3)\n\nsph = pyrsc.Sphere()\ncenter, radius, inliers = sph.fit(points, thresh=0.4)\n\n```\n\nResults:\n``` python\ncenter: [0.010462385575072288, -0.2855090643954039, 0.02867848979091283]\nradius: 5.085218633039647\n```\n\n![3D Sphere](https://raw.githubusercontent.com/leomariga/pyRANSAC-3D/master/doc/sphere.gif \"3D Sphere\")\n\n\n## Documentation \u0026 other links\n - The [documentation is this Ṕage](https://leomariga.github.io/pyRANSAC-3D/).\n - Source code in the [Github repository](https://github.com/leomariga/pyRANSAC-3D).\n - [Pypi pakage installer](https://pypi.org/project/pyransac3d/)\n - You can find the animations you see in the documentation on branch [Animations](https://github.com/leomariga/pyRANSAC-3D/tree/Animations). It needs [Open3D](https://github.com/intel-isl/Open3D) library to run. The Animation branch is not regularly maintained, it only exists to create some cool visualizations ;D \n\n\n## License\n[Apache 2.0](https://github.com/leomariga/pyRANSAC-3D/blob/master/LICENSE)\n\n## Citation\nDid this repository was useful for your work? =)\n\n```\n@software{Mariga_pyRANSAC-3D_2022,\n  author = {Mariga, Leonardo},\n  doi = {10.5281/zenodo.7212567},\n  month = {10},\n  title = {{pyRANSAC-3D}},\n  url = {https://github.com/leomariga/pyRANSAC-3D},\n  version = {v0.6.0},\n  year = {2022}\n}\n```\n\n## Contributing is awesome!\n\nSee [CONTRIBUTING](https://github.com/leomariga/pyRANSAC-3D/blob/master/CONTRIBUTING.md)\n\n\n\n\n## Contact\n\nDeveloped with :heart: by the internet\n\n\nMainteiner: [Leonardo Mariga](https://github.com/leomariga) \n\nDid you like it? Remember to click on :star2: button.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleomariga%2Fpyransac-3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleomariga%2Fpyransac-3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleomariga%2Fpyransac-3d/lists"}