Awesome
Libraries for Geometry Processing (GP)
<!-- ![star](https://img.shields.io/github/stars/<user>/<repo>?style=flat) -->General Libraries
- CGAL : The Computational Geometry Algorithms Library.
- cg3lib : a GP library developed by the CG3HCI Group of the University of Cagliari.
- CinoLib : a generic programming header-only C++ library for processing polygonal and polyhedral meshes.
- DGtal
- Easy3D
- Embree
: a ray tracing library with GP modules including geometry objects, ray/point queries, collision detection, BVH, etc.
- python bindings in Open3D and others.
- Euclid
- Geogram : contains the main results in GP from the former ALICE Inria project.
- Geometric Tools : website
- Geometry Central : doc
- GEOS : Geometry Engine, Open Source. Computational geometry library with a focus on algorithms used in geographic information systems (GIS). website
- gproshan : using Compact Half–Edge (CHE) data structure.
- gptoolbox
- gpytoolbox
- Graphite : an experimental 3D modeler, built around geogram.
- GTS : GNU Triangulated Surface Library.
- GUDHI : Geometry Understanding in Higher Dimensions, a generic open source library for Topological Data Analysis (TDA).
- Hugues Hoppe's library : libraries and programs demonstrating mesh processing research published in ACM SIGGRAPH (1992-1998)
- Lagrange (Adobe) : A robust GP library. Doc.
- LibIGL
- Manifold : a geometry library dedicated to creating and operating on manifold triangle meshes.
- MatGeom : Matlab geometry toolbox for 2D/3D geometric computing.
- MeshLab
- MeshLib by MeshInspector.
- MeshPipe : a python-based tool for easy automation and demonstration of GP pipelines (Fons et al., 2020).
- MeshUtility
- MPI-IS Mesh
- Numerical Tours : includes some topics about mesh processing, mesh parameterization and deformation, and multiscale mesh processing. website
- Open3D
- OpenGeode : doc
- OpenGP : deprecated.
- OpenMesh : Half-edge data structure for surface meshes.
- OpenVDB : Sparse volume data structure and tools
- OpenVolumeMesh : a data structure for arbitrary polytopal meshes. Its concepts are closely related to OpenMesh.
- PMP Library
- Its prior work: Sieger and Botsch, 2011.
- Point Cloud Library (PCL)
- Point Cloud Utils (pcu) : a utility library for 3D processing point clouds and triangle meshes.
- potpourri3d : mainly bindings to C++ tools from geometry-central.
- PyMesh(2)
- Issue with Windows
- This is not PyMesh
- pyntcloud : making point clouds fun again
- PyVista
- Shapely : for manipulation and analysis of planar geometric objects.
- Thea
- trimesh : documentation
- trimesh2 : different from the trimesh library above.
- TTK : The Topology ToolKit for efficient, generic, and easy topological data analysis and visualization.
- UltiMaille : allow representing: point set, polyline, triangles, quads, polygons, tetrahedra, hexahedra, wedges, pyramids.
- VCGLib : used by MeshLab.
- vedo : A python module for scientific analysis and visualization of 3d objects.
- VTK : The Visualization Toolkit (VTK) is open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.
GUI for GP
- starlab
- OpenFlipper
- polyscope : a 3D data viewer
- Some libraries in the general list above also include GUI or viewer.
- https://github.com/cg3hci/py3DViewer
- https://github.com/enthought/mayavi
- https://github.com/embree/embree
- https://github.com/mmatl/pyrender
- https://github.com/moderngl/moderngl
- http://pyopengl.sourceforge.net/
- https://pyglet.org/
- https://www.panda3d.org/ and other game engines.
- OGRE: https://github.com/OGRECave
Mesh Generation
- Quartet
- TetGen : A quality tetrahedral mesh generator and a 3D Delaunay triangulator.
- Triangle : A two-dimensional quality mesh generator and Delaunay triangulator.
- WildMeshing
- TriWild TriWild: Robust Triangulation with Curve Constraints
- fTetWild Fast Tetrahedral Meshing in the Wild
- wildmeshing-python
- jigsaw : an unstructured mesh generator and tessellation library; designed to generate high-quality triangulations and polyhedral decompositions of general planar, surface, and volumetric domains.
- Gmsh : A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities.
- MeshPy : Python interfaces to Triangle, TetGen, and gmsh.
- Voro++ : 3D computations of the Voronoi tessellation.
- scipy.spatial : Delaunay triangulation, convex hulls, and Voronoi diagrams.
- Qhull : Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
Boolean Operations
- Carve
- in PyMesh.
- CGAL:
- Co-refinement for boolean operations in Polygon Mesh Processing library
- 3D Boolean Operations on Nef Polyhedra.
- Clipper: clipping and offsetting 2D lines and polygons.
- Cork
- Geogram: tetrahedralize the meshes and compute the boolean operations between all tetrahedra. code.
- Interactive And Robust Mesh Booleans : This code is subject to continuous updates. Cherchi et al., 2022.
- mcut
- MeshIntersection
- MeshLab
- Before v2021.05: based on resampling, Marching intersections. A more efficient approach based on LDNI.
- After v2021.07: based on libigl's implementation of Mesh arrangements for solid geometry.
- OpenSCAD : creating solid 3D CAD objects. using CGAL for CSG evaluation, OpenCSG for CSG previews.
- QuickCSG
Geodesic Distance
Survey paper: Crane et al., 2020
- PDE-based
- Heat method, Crane et al., 2013.
- Many implementations are available.
- Fast Marching
- In gproshan (CHE data structure). MeshUtility (OpenMesh data structure) .
- Kimmel and Sethian 1998, implemented in pmp-library.
- Heat method, Crane et al., 2013.
- Window propagation
- MMP: an exact method proposed by Mitchell-Mount-Papadimitriou 1987
- CH: Chen and Han 1990
- ICH (Improved CH): Xin and Wang 2009
- VTP (Vertex-oriented Triangle Propagation)
- GSP (Geodesic Source Propagation). code in its supplemental material.
- Graph-based: SVG (Saddle Vertex Graph), DGG (Discrete Geodesic Graphs),
Others
- Directional : creating, manipulating, and visualizing directional fields on 3D meshes, based on both libigl and Eigen.
- mmg : 2D and 3D surface and volume remeshing.
- ShapeOp : discrete geometry shaping with projections.
- Draco: an open-source library for compressing and decompressing 3D geometric meshes and point clouds.
- Robust Geometric Predicates: adaptive precision floating-point arithmetic and fast robust predicates for computational geometry
Books
- Polygon Mesh Processing: slides and code
Courses
- SGP Summer School Presentations: from 2016.
- Alec Jacobson's courses
- Geometric Computing with Python
- Discrete Differential Geometry by Keenan Crane
- Summer Geometry Initiative: by MIT
Data
- alecjacobson/common-3d-test-models
- more links inside
- Data for machine learning
Other Lists on Geometry Processing (GP)
- SGP Software/Dataset Award List
- Mesh Repairing Software on the Web
- Graphics Replicability Stamp Initiative
- awesome point cloud processing
- Directory of Computational Geometry Software
Lists on Other Computer Graphics Topics
- https://github.com/tensorush/Awesome-3D-Programming
- https://github.com/luisnts/awesome-computer-graphics
- https://github.com/waitin2010/awesome-computer-graphics
- https://github.com/jslee02/awesome-graphics-libraries
- https://github.com/ericjang/awesome-graphics
- https://github.com/eug/awesome-opengl
- https://github.com/zheng95z/fun-with-computer-graphics
- https://web.engr.oregonstate.edu/~zhange/hotlist.html