Polygonal (and polyhedral) mesh geometry

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
saso
Posts: 1586
Joined: Fri May 16, 2014 1:14 pm
Contact:

Polygonal (and polyhedral) mesh geometry

Postby saso » Thu Jun 11, 2020 1:09 am

See also a somewhat related topic about BRep (Boundary Representation) modeling https://forum.freecadweb.org/viewtopic.php?f=8&t=49791

Similar to how it is important in 2d graphics to understand the differences between
- Raster https://en.wikipedia.org/wiki/Raster_graphics and
- Vector https://en.wikipedia.org/wiki/Vector_graphics,

and the pros and cons of each, so that one can understand how to use them and for what each of them is best to use for, it is for 3d geometries important to understand and know about the differences between
- Point-clouds https://en.wikipedia.org/wiki/Point_cloud,
- Voxels https://en.wikipedia.org/wiki/Voxel,
- Polygonal (and polyhedral) meshes https://en.wikipedia.org/wiki/Polygon_mesh and
- BRep (Boundary Representation) https://en.wikipedia.org/wiki/Boundary_representation

While FreeCAD is in general a BRep modeler, it is normal for a good CAD system to have support for all of them. Another important thing to understand is the difference between the modeling for the primary use in design (visualizations, artistic) and engineering (technical). While all of the mentioned geometry types can be used for both, the ways they are used for one or the other can be quite different...

This topic will try to give some general info on the Polygonal (mesh) geometry modelling, with some of the opensource tools, libraries and knowledge from the research on it... As a side note, I am guessing that most users don't really realise that FreeCAD actually has some quite good mesh tools and I think it would be good if we would add some more icons for the Mesh Design WB and expose more of the tools in the toolbars :roll:

https://en.wikipedia.org/wiki/Polygon_mesh
https://en.wikipedia.org/wiki/Types_of_mesh
https://en.wikipedia.org/wiki/Mesh_generation
https://en.wikipedia.org/wiki/Conway_po ... n_notation
http://femtable.org/

Tools
FreeCAD Mesh Design WB
https://wiki.freecadweb.org/Mesh_Workbench
https://www.youtube.com/watch?v=GeG0eh9iQOo

Salome Mesh module
https://www.salome-platform.org/user-section/about/mesh
https://docs.salome-platform.org/7/gui/SMESH/index.html

Blender
https://www.blender.org/
https://docs.blender.org/manual/en/late ... ction.html

Meshlab
https://www.meshlab.net/
https://www.youtube.com/user/MrPMeshLab ... /playlists

Open Flipper
https://www.graphics.rwth-aachen.de/sof ... enflipper/
https://www.graphics.rwth-aachen.de/med ... types.html

Graphite
http://alice.loria.fr/index.php/softwar ... phite.html
http://alice.loria.fr/software/graphite/doc/html/

Instant Meshes
https://www.youtube.com/watch?v=U6wtw6W4x3I
https://igl.ethz.ch/projects/instant-meshes/
https://github.com/wjakob/instant-meshes

QuadriFlow
https://github.com/hjwdzh/QuadriFlow

autoremesher
https://github.com/huxingyi/autoremesher

Gmsh
http://gmsh.info/

Netgen
https://github.com/NGSolve/netgen

TetGen
http://wias-berlin.de/software/index.js ... Gen&lang=1

Mmg
http://www.mmgtools.org/

FreeFEM Mesh Generation
https://doc.freefem.org/documentation/m ... ation.html

PyGeM
https://github.com/mathLab/PyGeM

MeshFix
https://github.com/MarcoAttene/MeshFix-V2.1

TetWild
https://wildmeshing.github.io/tetwild/

fTetWild
https://wildmeshing.github.io/ftetwild/
https://www.youtube.com/watch?v=RweR25IBeB8

TriWild
https://wildmeshing.github.io/triwild/

LoopyCuts
https://github.com/mlivesu/LoopyCuts
https://www.youtube.com/watch?v=n-rWtLi3LSU

Polymender
https://www.cse.wustl.edu/~taoju/code/polymender.htm

Libraries
CGAL
https://www.cgal.org/
https://doc.cgal.org/latest/Manual/packages.html

libIGL
https://libigl.github.io/

OpenMesh
https://www.graphics.rwth-aachen.de/software/openmesh/

Polygon Mesh Processing Library
https://www.pmp-library.org/

Geometry Central
https://geometry-central.net/
https://polyscope.run/

VCG Library
http://vcg.isti.cnr.it/vcglib/

Geogram
http://alice.loria.fr/software/geogram/ ... index.html

CinoLib
https://github.com/mlivesu/cinolib

Open CASCADE Mesh module
https://old.opencascade.com/doc/occt-7. ... SECTION_4a

OpenVolumeMesh
https://www.graphics.rwth-aachen.de/sof ... olumemesh/

libHexEx
https://www.graphics.rwth-aachen.de/software/libHexEx/

libQEx
https://www.graphics.rwth-aachen.de/software/libQEx/

TMR
https://gjkennedy.github.io/tmr/

TMesh_Kernel
https://www.graphics.rwth-aachen.de/blo ... Attene.mp4
http://school.geometryprocessing.org/su ... Attene.pdf
https://github.com/MarcoAttene/TMesh_Kernel
http://meshrepair.org/

HOMARD
https://www.code-aster.org/V2/outils/ho ... ex.en.html

Hextreme
https://www.hextreme.eu/

VoroCrust
https://share-ng.sandia.gov/news/resour ... _modeling/
https://www.youtube.com/watch?v=PqvTZnekZlY
https://arxiv.org/pdf/1902.08767.pdf

For the brave ones ;)
6.838: Shape Analysis (spring 2019)
http://groups.csail.mit.edu/gdpgroup/68 ... _2019.html
https://www.youtube.com/playlist?list=P ... bYaxQbPCWQ

6.837: Introduction to Computer Graphics (fall 2019)
https://www.youtube.com/playlist?list=P ... 9gXn13JLlW

SGP Summer School Presentations
http://school.geometryprocessing.org/su ... tions.html
http://school.geometryprocessing.org/summerschool-2017
http://school.geometryprocessing.org/summerschool-2018
http://school.geometryprocessing.org/summerschool-2019

CMU 15-462/662: Computer Graphics
http://15462.courses.cs.cmu.edu/spring2020/
https://www.youtube.com/playlist?list=P ... T2xRHFHL7E

CS 15-458/858: Discrete Differential Geometry
http://brickisland.net/DDGSpring2020/
https://www.youtube.com/playlist?list=P ... ZysAiIYSSS

Geometry Collective at Carnegie Mellon University
http://geometry.cs.cmu.edu/
http://www.cs.cmu.edu/~kmcrane/

Visual Computing Lab at CNR-ISTI
http://vcg.isti.cnr.it/software.php

Interactive Geometry Lab at ETH Zurich
https://igl.ethz.ch/code/

Computer Graphics Group at RWTH Aachen University
https://www.graphics.rwth-aachen.de/software/

ALICE at INRIA Nancy Grand-Est / Loria
http://alice.loria.fr/index.php/software.html