• Stars
    star
    119
  • Rank 287,362 (Top 6 %)
  • Language
    Python
  • Created almost 3 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An introductory course intrinsic triangulations for powerful & robust geometry processing --- tutorial code and links.

Geometry Processing with Intrinsic Triangulations

Intrinsic triangulations are a powerful technique for computing with 3D surfaces. Among other things, they enable existing algorithms to work "out of the box" on poor-quality triangulations. The basic idea is to represent the geometry of a triangle mesh by edge lengths, rather than vertex positions; this change of perspective unlocks many powerful algorithms with excellent robustness to poor-quality triangulations.

This course gives an overview of intrinsic triangulations and their use in geometry processing, beginning with a general introduction to the basics and historical roots, then covering recent data structures for encoding intrinsic triangulations, and their application to tasks in surface geometry ranging from geodesics to vector fields to parameterization.

This course was presented at SIGGRAPH 2021 and IMR 2021.

Code Tutorial

We provide an implementation of intrinsic triangulations from scratch in Python 3, alongside Lawson's algorithm for flipping to an (intrinsic) Delaunay triangulation. Using these intrinsic triangulations, we compute geodesic distance via the the heat method.

Screenshot

Install dependencies:

python -m pip install numpy scipy polyscope potpourri3d  

(python might be python3, depending on your environment)

Like most PDE-based methods, the heat method may yield inaccurate solutions on low-quality inputs. Running it on a mesh's intrinsic Delaunay triangulation yields dramatically more accurate solutions.

Mesh Distance on Original Mesh Distance on Intrinsic Delaunay Triangulation
terrain8k Terrain8kBadDistances Terrain8kBadDistances
pegasus Terrain8kBadDistances Terrain8kBadDistances
rocketship Terrain8kBadDistances Terrain8kBadDistances

More Repositories

1

polyscope

A C++ & Python viewer for 3D data like meshes and point clouds
C++
1,616
star
2

geometry-central

Applied 3D geometry in C++, with a focus on surface meshes.
C++
985
star
3

potpourri3d

An invigorating blend of 3D geometry tools in Python.
Python
388
star
4

diffusion-net

Pytorch implementation of DiffusionNet for fast and robust learning on 3D surfaces like meshes or point clouds.
Python
369
star
5

happly

A C++ header-only parser for the PLY file format. Parse .ply happily!
C++
278
star
6

robust-laplacians-py

Build high-quality Laplace matrices on meshes and point clouds in Python. Implements [Sharp & Crane SGP 2020].
C++
178
star
7

neural-implicit-queries

Queries on neural implicit surfaces via range analysis: ray casting, intersection, closest point, & more. SIGGRAPH 2022 paper. JAX implementation.
Python
169
star
8

neural-physics-subspaces

Fit low-dimensional subspaces to physical systems with neural networks (SIGGRAPH 2023)
Python
134
star
9

DDGSpring2016

Code repository for 15-869 Discrete Differential Geometry at CMU in Spring 2016.
Python
121
star
10

nonmanifold-laplacian

A robust Laplace matrix for general (possibly nonmanifold) triangle meshes, and point clouds [Sharp & Crane SGP 2020]
C++
113
star
11

learned-triangulation

Source code for "PointTriNet: Learned Triangulation of 3D Point Sets", by Nicholas Sharp and Maks Ovsjanikov at ECCV 2020
Python
98
star
12

variational-surface-cutting

Codebase for "Variational Surface Cutting" by Sharp & Crane, SIGGRAPH 2018
C++
87
star
13

flip-geodesics-demo

Construct geodesic paths, loops, networks on surface with a fast and simple edge flipping algorithm. C++ demo app and more.
C++
80
star
14

vector-heat-demo

C++ demo of the Vector Heat Method (Sharp, Soliman, and Crane. 2019.)
C++
58
star
15

navigating-intrinsic-triangulations-demo

Demo code for "Navigating Intrinsic Triangulations". Sharp, Soliman, and Crane. 2019
C++
46
star
16

gc-polyscope-project-template

A template project to get started with geometry-central and Polyscope.
C++
43
star
17

polyscope-py

Python bindings for Polyscope
Python
29
star
18

arrgh

A small python utility to pretty-print a table summarizing arrays & scalars from numpy, pytorch, etc.
Python
24
star
19

discretization-robust-correspondence-benchmark

Benchmark for the generalization of 3D machine learning models across different remeshing/samplings of a surface.
Python
11
star
20

geometry-central-tutorials

Tutorials for the geometry-central geometry processing library.
C++
9
star
21

libigl-polyscope-project-template

An example project and build system using libIGL and Polyscope
CMake
7
star
22

RNA-Surface-Segmentation-Dataset

A dataset of segmented RNA molecule surfaces, as a benchmark task in 3D machine learning on surfaces. From Poulenard et al., 3DV 2019.
7
star
23

polyscope-docs

Documentation for polyscope
HTML
3
star
24

nmwsharp.github.io

HTML
1
star