GeometryProcess-OpenSource-List

Awesome Geometry(Polygon & Mesh) Process List

Projects

多边形处理软件 | GUI Software

  • MeshLab: MeshLab is the open source system for processing and editing 3D triangular meshes. It provides a set of tools for editing, cleaning, healing, inspecting, rendering, texturing and converting meshes. It offers features for processing raw data produced by 3D digitization tools/devices and for preparing models for 3D printing.

    • 2022-MeshLabJS : A javascript client based mesh processing tool. Built using vcg library, emscripten and webgl
  • OpenFlipper : OpenFlipper is an OpenSource multi-platform application and programming framework designed for processing, modeling and rendering of geometric data.

  • UVtools : MSLA/DLP, file analysis, calibration, repair, conversion and manipulation.

3D Viewer

  • 2016-mayo : 3D CAD viewer and converter based on Qt + OpenCascade.

  • 2017-polyscope : A C++ & Python viewer for 3D data like meshes and point clouds.

  • 2021-foxtrot: A fast, experimental STEP file viewer

  • 2021-f3d : F3D (pronounced /fɛd/) is a fast and minimalist 3D viewer. It supports many file formats, from digital content to scientific datasets (including glTF, STL, STEP, PLY, OBJ, FBX, Alembic), can show animations and support lot of rendering and texturing options including real time physically based rendering and raytracing.

  • 2021-im3d : Im3d is a small, self-contained library for immediate mode rendering of basic primitives (points, lines, triangles), plus an immediate mode UI which provides 3d manipulation ‘gizmos’ and other tools. It is platform and graphics API agnostic and designed to be compatible with VR.

Web 3D Viewer

3D Editor

  • Blockbench : Blockbench is a free, modern model editor for low-poly and boxy models with pixel art textures. Models can be exported into standardized formats, to be shared, rendered, 3D-printed, or used in game engines. There are also multiple dedicated formats for Minecraft Java and Bedrock Edition with format-specific features.

  • react-three-editor : 🔌 A one of a kind scene editor that writes changes back into your code

  • 2021-Theatre : Theatre.js is an animation library for high-fidelity motion graphics. It is designed to help you express detailed animation, enabling you to create intricate movement, and convey nuance.

Algorithm | 算法库

多边形处理库

C++

  • 2008-Carve : Carve is a fast, robust constructive solid geometry library.

  • 2008-VCGlib : The Visualization and Computer Graphics Library (VCGlib for short) is an open source, portable, and templated library written in C++, with no external dependencies, for manipulation, processing, cleaning, and simplifying triangle meshes.

  • 2011-VTK : VTK is an open-source software system for image processing, 3D graphics, volume rendering and visualization. VTK includes many advanced algorithms (e.g., surface reconstruction, implicit modeling, decimation) and rendering techniques (e.g., hardware-accelerated volume rendering, LOD control).

  • 2012-Cork : Cork is designed to support Boolean operations between triangle meshes.

  • 2013-Libigl : A simple C++ geometry processing library

  • 2016-CGAL : The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry.

  • 2017-mlivesu/cinolib : A generic programming header only C++ library for processing polygonal and polyhedral meshes

  • 2017-Geometry-central : Geometry-central is a modern C++ library of data structures and algorithms for geometry processing, with a particular focus on surface meshes.

  • 2020-Geogram : Geogram is a programming library of geometric algorithms. It includes a simple yet efficient Mesh data structure (for surfacic and volumetric meshes), exact computer arithmetics (a-la Shewchuck, implemented in GEO::expansion), a predicate code generator (PCK: Predicate Construction Kit), standard geometric predicates (orient/insphere), Delaunay triangulation, Voronoi diagram, spatial search data structures, spatial sorting) and less standard ones (more general geometric predicates, intersection between a Voronoi diagram and a triangular or tetrahedral mesh embedded in n dimensions). The latter is used by FWD/WarpDrive, the first algorithm that computes semi-discrete Optimal Transport in 3d that scales up to 1 million Dirac masses (see compute_OTM in example programs ).

  • 2020-Open3D : Open3D is an open-source library that supports rapid development of software that deals with 3D data. The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. We welcome contributions from the open-source community.

  • 2020-Mesh-processing-library : C++ libraries and programs demonstrating mesh processing research published in ACM SIGGRAPH (1992-1998)

  • 2020-pmp-library : The Polygon Mesh Processing Library is a modern C++ open-source library for processing and visualizing polygon surface meshes. Its main features are:

  • 2021-DirectXMesh : This package contains DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, vertex cache optimization, and meshlet generation.

  • 2021-Geometry-central : Geometry-central is a modern C++ library of data structures and algorithms for geometry processing, with a particular focus on surface meshes.

  • 2022-MeshLib : The goal which we set when designing MeshLib was to value simplicity and performance while providing a wide gamut of useful computational algorithms. The library also supports the most important data structures today’s sensors can produce - pointcloud, mesh, volume and more. For example, mesh is represented by half-edge data structure and cannot be made non-manifold. Some applications may require non-manifoldness, but most practical scans can be represented as manifoldness meshes without an issue.

Python Library

  • 2010-MeshPy : MeshPy offers quality triangular and tetrahedral mesh generation for Python. Meshes of this type are chiefly used in finite-element simulation codes, but also have many other applications ranging from computer graphics to robotics.

  • 2018-Pyvista : 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

  • 2019-PyMesh : PyMesh is a code base developed by Qingnan Zhou for his PhD research at New York University. It is a rapid prototyping platform focused on geometry processing. PyMesh is written with both C++ and Python, where computational intensive functionalities are realized in C++, and Python is used for creating minimalistic and easy to use interfaces.

  • 2019-mikedh/trimesh : Trimesh is a pure Python (2.7-3.5+) library for loading and using triangular meshes with an emphasis on watertight surfaces. The goal of the library is to provide a full featured and well tested Trimesh object which allows for easy manipulation and analysis, in the style of the Polygon object in the Shapely library.

JavaScript

  • 2017-geometry-processing-js : geometry-processing-js is a fast and flexible framework for 3D geometry processing on the web! Easy integration with HTML/WebGL makes it particularly suitable for things like mobile apps, online demos, and course content.

Boolean Library

  • 2021-cutdigital/mcut : This is a software project designed for a broad range of real-world problems relating to 3D modelling and design tasks. Application areas include computer animation, aerospace and automotive engineering, mining, civil and mechanical engineering amongst others.

  • 2022-AngusJohnson/Clipper2 : The Clipper2 library performs intersection, union, difference and XOR boolean operations on both simple and complex polygons. It also performs polygon offsetting. This is a major update of my original Clipper library that written over 10 years ago. That library I’m now calling Clipper1 and while it still works very well, Clipper2 is better in just about every way.

  • 2020-InteractiveAndRobustMeshBooleans : This is the reference implementation of the mesh booleans pipeline presented in the paper.

Convex hull

  • 2011-qhull : Qhull is a general dimension convex hull program that reads a set of points from stdin, and outputs the smallest convex set that contains the points to stdout. It also generates Delaunay triangulations, Voronoi diagrams, furthest-site Voronoi diagrams, and halfspace intersections about a point.

WebAssembly 集成

Showcase

Mesh Utils

I/O | 格式转换

  • 2010-OpenCTM ![code](https://ng-tech.icu/assets/code.svg: OpenCTM is primarily a file format for storing 3D triangle meshes in a compact yet versatile format. In order to make it easy for software developers and 3D designers to support the format, an easy to use software library is provided that can read and write OpenCTM format files.

  • 2019-meshio : There are various mesh formats available for representing unstructured meshes. meshio can read and write all of the following and smoothly converts between them.

  • 2020-zeux/meshoptimizer : Mesh optimization library that makes meshes smaller and faster to render.

Compress

  • 2019-Draco : Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

  • 2020-corto : Mesh compression library, designed for rendering and speed.

Mesh Generation

  • 1997-Gmsh : This is Gmsh, an automatic three-dimensional finite element mesh generator with built-in pre- and post-processing facilities.

  • 2015-dengwirda/jigsaw : JIGSAW is a Delaunay-based unstructured mesh generator for two- and three-dimensional geometries.

  • 2017-fogleman/sdf : Generate 3D meshes based on SDFs (signed distance functions) with a dirt simple Python API.

  • 2017-ODM : A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷

Lattice Generation

  • 2022-Artisan : Artisan is a tool for lattice generation. It is based on implicit modelling technique. The code is based on Python and C++ in order to combining the development speed and computational efficiency. Artisan computes the most of heavy math through C++ code, and conducts the routine calculations via Python.

Transform | 模型操作

Cut & Split & Chop | 切分

Simplification | 简化

上一页