Fitting geometric primitives to 3D point clouds serves as a critical bridge between low-level scattered data and high-level structural representations of underlying 3D shapes. As a powerful modeling primitive, superquadratic surfaces (superquadrics) extend traditional CAD models (e.g., cylinders, spheres) with great flexibility and versatility. These surfaces encompass a rich shape vocabulary, ranging from cuboids, ellipsoids, and octahedra to their intermediate forms (the left panel of the following figure), encoded with only five parameters in canonical form. Additionally, their modeling power can be further expanded via global deformations, such as tapering or bending, enabling the description of more complex geometries that transcend standard primitives (the right panel of the following figure).
Please give a star and cite if you find this repo useful.
We provide a holistic method for superquadric fitting including both rigid and deformable shapes from clustering perspective.
- For convenience, the repository provides MATLAB and Python implementations.
- Step 1: Download the directory **"matlab_version"**, which contains random superquadric point generation, initialization, and fitting process.
- Step 2: Start MATLAB and run **"test_main.m"** for rigid superquadric fitting or **"test_main_deform.m"** for deformable sueprquadric fitting. This will give you an immediate fitting result for the test point cloud data generated randomly.
- A Python version is coming soon !
If you have any problem, please contact us via zhaomingyang@amss.ac.cn. We greatly appreciate everyone's feedback and insights. Please do not hesitate to get in touch!
We would like to thank and acknowledge referenced codes from EMS: A probabilistic approach for superquadric recovery.
