geometric computing with python · course goals • learn how to design, program, and analyze...
TRANSCRIPT
![Page 1: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/1.jpg)
Geometric Computing with Python
1
Sebastian Koch, Teseo Schneider, Francis Williams, Chencheng Li, Daniele Panozzo
https://geometryprocessing.github.io/geometric-computing-python/
![Page 2: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/2.jpg)
Who are we?
2
Sebastian Koch
Teseo Schneider
Francis Williams
Daniele Panozzo
ChenCheng Li
![Page 3: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/3.jpg)
Course Goals
• Learn how to design, program, and analyze algorithms for geometric computing
• Hands-on experience with shape modeling and geometry processing algorithms
• Learn how to batch process large collections of geometric data and integrate it in deep learning pipelines
3
![Page 4: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/4.jpg)
Geometric Computing
![Page 5: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/5.jpg)
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
![Page 6: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/6.jpg)
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
Numerical Method for PDEs- Focus on real-time approximations- Irregular domains
![Page 7: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/7.jpg)
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
High Performance Computing- Vectorized computation - Multi-core and distributed computation - GPU accelerators
Numerical Method for PDEs- Focus on real-time approximations- Irregular domains
![Page 8: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/8.jpg)
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
High Performance Computing- Vectorized computation - Multi-core and distributed computation - GPU accelerators
Numerical Method for PDEs- Focus on real-time approximations- Irregular domains
Human Computer Interaction- Objective evaluation of the results- Architects and artists benefits from our
research
![Page 9: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/9.jpg)
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
High Performance Computing- Vectorized computation - Multi-core and distributed computation - GPU accelerators
Numerical Method for PDEs- Focus on real-time approximations- Irregular domains
Human Computer Interaction- Objective evaluation of the results- Architects and artists benefits from our
research
Geometric Computing
![Page 10: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/10.jpg)
Big Data
Geometric Computing
Discrete Differential Geometry- Surface and volumes representation- Differential properties and operators
High Performance Computing- Vectorized computation - Multi-core and distributed computation - GPU accelerators
Numerical Method for PDEs- Focus on real-time approximations- Irregular domains
Human Computer Interaction- Objective evaluation of the results- Architects and artists benefits from our
research
Geometric Computing
![Page 11: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/11.jpg)
Geometric Computing
![Page 12: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/12.jpg)
Geometric Computing
Physical Object
![Page 13: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/13.jpg)
Geometric Computing
Physical Object Range Images
![Page 14: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/14.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model
![Page 15: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/15.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model
![Page 16: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/16.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model
![Page 17: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/17.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
![Page 18: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/18.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Applications
![Page 19: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/19.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Applications
![Page 20: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/20.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
Applications
![Page 21: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/21.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
Fabrication
Applications
![Page 22: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/22.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
Fabrication
VisualEffects
Applications
![Page 23: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/23.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
Fabrication
VisualEffects
StructuralAnalysis
Applications
![Page 24: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/24.jpg)
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
VisualEffects
StructuralAnalysis
Applications
Fabrication
![Page 25: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/25.jpg)
3D Printer
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
VisualEffects
StructuralAnalysis
Applications
Fabrication
![Page 26: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/26.jpg)
3D Printer
Geometric Computing
Physical Object Range Images Unstructured Model Structured Model
Animation
Physical Simulation
VisualEffects
StructuralAnalysis
Applications
Fabrication
Physical Derived Object
![Page 27: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/27.jpg)
Course Overview
• Daniele: Introduction to Geometric Computing with Jupyter
• Sebastian: Geometric Computing and Geometric Deep Learning
• Teseo: Mesh Generation and Numerical Simulation
• Q&A
6
![Page 28: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/28.jpg)
Getting Started
• The libraries used in this course are implemented in C++ for efficiency reasons, but are exposed to python for ease of integration
• All libraries are available on conda, they can be installed with:
7
conda config --add channels conda-forge
conda install meshplotconda install iglconda install wildmeshingconda install polyfempy
![Page 29: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/29.jpg)
Libraries OverviewCross Platform: Windows, MacOSX, Linux
8
![Page 30: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/30.jpg)
MeshPlot
9
https://skoch9.github.io/meshplot/
![Page 31: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/31.jpg)
Interactive Geometry Library (libigl)
10
https://libigl.github.io
![Page 32: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/32.jpg)
Wild Meshing (TetWild)
11
https://wildmeshing.github.io
![Page 33: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/33.jpg)
PolyFEM
12
https://polyfem.github.io
![Page 34: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/34.jpg)
Data Structures (or lack thereof)
13Acknowledgement: Alec Jacobson
![Page 35: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/35.jpg)
Triangle meshes discretize surfaces…
14
![Page 36: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/36.jpg)
Triangle meshes discretize surfaces…
15
![Page 37: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/37.jpg)
Triangle meshes discretize surfaces…
16
![Page 38: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/38.jpg)
Triangle meshes discretize surfaces…
17
v1 = [x1 y1 z1]
![Page 39: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/39.jpg)
Triangle meshes discretize surfaces…
18
v1 = [x1 y1 z1] v2 = [x2 y2 z2]
![Page 40: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/40.jpg)
Triangle meshes discretize surfaces…
19
v1 = [x1 y1 z1] v2 = [x2 y2 z2]
v3
![Page 41: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/41.jpg)
Triangle meshes discretize surfaces…
20
v1 = [x1 y1 z1] v2 = [x2 y2 z2]
v3
![Page 42: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/42.jpg)
Triangle meshes discretize surfaces…
20
v1 = [x1 y1 z1] v2 = [x2 y2 z2]
v3
Store vertex positions as n×3 matrix of real numbers
V = [x1 y1 z1; x2 y2 z2; … xn yn zn]
![Page 43: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/43.jpg)
Triangle meshes discretize surfaces…
21
v1 v2
v3
![Page 44: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/44.jpg)
Triangle meshes discretize surfaces…
22
v1 v2
v3
f1 = [1 3 2 ]
![Page 45: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/45.jpg)
Triangle meshes discretize surfaces…
23
v1 v2
v3
f1 = [1 3 2 ]orientation matters!
![Page 46: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/46.jpg)
Triangle meshes discretize surfaces…
24
v1 v2
v3
f1 = [1 3 2 ]
![Page 47: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/47.jpg)
Triangle meshes discretize surfaces…
25
f1
![Page 48: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/48.jpg)
Triangle meshes discretize surfaces…
26
f1 f2
![Page 49: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/49.jpg)
Triangle meshes discretize surfaces…
27
f1 f3f2
![Page 50: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/50.jpg)
Triangle meshes discretize surfaces…
28
f3f1 f2
![Page 51: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/51.jpg)
Triangle meshes discretize surfaces…
28
f3f1 f2
Store triangle connectivity as m×3 matrix of indices into V
F = [f11 f12 f13; f21 f21 f23; … fn1 fn2 fn3]
![Page 52: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/52.jpg)
Why RAW matrices?
• Memory efficient and cache friendly
• Indices are simpler to debug than pointers
• Trivially copied and serialized
• Interchangeable with other libraries: numpy, pyTorch, Tensorflow, Scipy, MATLAB, OpenCV
29
![Page 53: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/53.jpg)
Getting Started
30
![Page 54: Geometric Computing with Python · Course Goals • Learn how to design, program, and analyze algorithms for geometric computing • Hands-on experience with shape modeling and geometry](https://reader031.vdocuments.mx/reader031/viewer/2022041816/5e5ad5b120b4015788654817/html5/thumbnails/54.jpg)
Binder Demo
31