SlideShare a Scribd company logo
11
Geometry & Topology in Computer Geometry & Design
Dr.ir. Pirouz Nourian
Assistant Professor of Design Informatics
Department of Architectural Engineering & Technology
Faculty of Architecture and Built Environment
22
A Line is something that looks like a line & works like a line!
“If it looks like a duck, swims like a duck, and quacks like a duck, then
it probably is a duck.”
Image: DUCK: GETTY Images; ILLUSTRATION: MARTIN O'NEILL, from
http://www.nature.com/nature/journal/v484/n7395/full/484451a.html?message-global=remove
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
33
What you see on the screen is only a rasterized image of the object!
What you see is not what you get!
Image: René Magritte, ceci n'est pas une pipe (this is not a pipe)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
44
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
55
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
66
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
77
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Escher’s Balcony
88
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
ℝ ℝ 𝟐 ℝ 𝟑
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
99
Cartesian Product of Sets ℝ 𝟏
= ℝ ℝ 𝟐 = ℝ × ℝ ℝ 𝟑
= ℝ × ℝ × ℝ
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
𝐴 = {𝑎, 𝑏, 𝑐}
𝐵 = {1,2}
𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)}
1010
ℝ 𝟏
= ℝ ℝ 𝟐 = ℝ × ℝ ℝ 𝟑
= ℝ × ℝ × ℝ
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
𝐴 = {𝑎, 𝑏, 𝑐}
𝐵 = {1,2}
𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)}
Cartesian Product of Sets
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
http://ndp.jct.ac.il/tutorials/discrete/node28.html
1111
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
Curved Spaces
1212
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
1313
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
1414
On terminology
• Geometry: Point (0D), Curve(1D), Surface(2D), Solid (3D) [free-form]
• Geometry: Point (0D), Line(1D), Polygon(2D), Polyhedron (3D) [piecewise linear]
• Topology: Vertex(0D), Edge(1D), Face(2D), Body(3D)
• Graph Theory: Object, Link, (and n-Cliques)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1515
On terminology
n-D features
Graph Theory Topology Geometry
0D
Object Vertex Point
1D
Link Edge Line (Curve)
2D
Cycle* Face Polygon (Surface)
3D
Clique* Body Polyhedron (Solid)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
1616
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
• 1D: Curves (t parameter)
• 2D: Surfaces (u & v parameters)
• 3D: B-Reps (each face is a surface)
NURBS Objects
Non Uniform Rational Basis Splines are used for accurately
modeling free-form geometries
1717
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Representation
Non Uniform Rational Basis Splines (NURBS) are used for
modeling free-form geometries accurately
Image courtesy of http://www.boatdesign.netImage courtesy of Wikimedia
• An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
1818
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Curves in General
How do numeric weights correspond to physical weights?
1919
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Splines in Computer Graphics
All types of curves can be modeled as splines
•
2020
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bezier interpolation
2121
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS equations
All from a summary by Markus Altmann:
http://web.cs.wpi.edu/~matt/courses/cs563/talks/nurbs.html
2222
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Representation
Non Uniform Rational Basis Splines (NURBS) are used for
modeling free-form geometries accurately
• An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
• offer one common mathematical form for both, standard analytical shapes
(e.g. conics) and free form shapes;
• provide the flexibility to design a large variety of shapes;
• can be evaluated reasonably fast by numerically stable and accurate
algorithms;
• are invariant under affine as well as perspective transformations;
• are generalizations of non-rational B-splines and non-rational and rational
Bezier curves and surfaces.
2323
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS Surfaces
Rectangular Patches
2424
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Space
Images courtesy of David Rutten, from Rhinoscript 101
2525
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Locations:
2626
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bilbao Guggenheim Museum
Bus stop near Sebastiaansbrug Delft
2727
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D Curvature
𝐾 =
1
𝑅
One over the radius of the osculation (kissing) circle
Why did people [for such a long time] believe that the Earth was flat?
2828
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Gaussian
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
𝐾 𝐺 = 𝐾 𝑚𝑖𝑛 𝐾 𝑚𝑎𝑥
2929
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Gaussian 𝐾 𝐺 = 𝐾 𝑚𝑖𝑛 𝐾 𝑚𝑎𝑥
3030
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Blending Surfaces & Continuity
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
3131
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Mean
𝐾 𝐺 =
𝐾 𝑚𝑖𝑛 +𝐾 𝑚𝑎𝑥
2
Anish Kapoor, Marsyas, 2002, installation view, Tate Modern
https://en.wikipedia.org/wiki/Mean_curvature
3232
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
3333
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
• 0D: Point
• 1D: Curve (represented by boundary Points)
• 2D: Surface (represented by boundary Curves)
• 3D: Solid (represented by boundary Surfaces)
3434
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Imagine the Boundary of Manifolds
• 0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
• 1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
• 2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
• 3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
3535
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
• 0D: Point
• 1D: Curve (represented by boundary Points)
• 2D: Surface (represented by boundary Curves)
• 3D: Solid (represented by boundary Surfaces)
• Free-Form Parametric surfaces
• Piecewise Linear: Polygon Meshes
3636
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
The simplex cell is defined as the locus of points defined by linear interpolations of the corner
vertices with barycentric coordinates denoted by 𝛼𝑖, as follows:
𝑣0, 𝑣1, … , 𝑣 𝑘 ∈ ℝ 𝑛
𝐶 = {𝛼0 𝑣0 + 𝛼1 𝑣1 + ⋯ . +𝛼 𝑘 𝑣 𝑘|𝛼𝑖 ≥ 0, 0 ≤ 𝑖 ≤ 𝑘, ෍
𝑖
𝛼𝑖 = 1}
• 0-simplex: Point
• 1-simplex: Line
• 2-simplex: Triangle
• 3-simplex: Tetrahedron
3737
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
https://sites.google.com/site/dengwirda/jigsaw
https://www.researchgate.net/publication/287398529_An_E
fficient_Approach_for_Solving_Mesh_Optimization_Proble
ms_Using_Newton%27s_Method/figures?lo=1
3838
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
• Example:
• Important note:
the geometry of faces is not stored; only rendered when needed!
What you see on the screen is not necessarily what you store!
Polygon Mesh Representation
A light-weight model composed of points and a set of topological
relations among them.
Points >Vertices Lines > Edges Polygons > Faces Mesh
T1: {0,4,3}
T2:{0,1,4}
Q1:{1,2,5,4}
3939
• The geometry of a Mesh can be represented by its points (known as [geometrical] vertices
in Rhino), i.e. a ‘list’ of 3D points in ℝ3
• The topology of a Mesh can be represented based on its [topological] vertices, referring to a
‘set’ of 3D points in ℝ3
, there are multiple ways to describe how these vertices are spatially
related (connected or adjacent) to one another and also to edges and faces of the Mesh
• Same topology and different geometries:
Mesh
Mesh Geometry versus Mesh Topology
T1: {0,4,3}
T2:{0,1,4}
Q1:{1,2,5,4}T1
T2
Q1
T1
T2
Q1
0
3
1
4
5
2 0
3
1
4 5
2
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4040
Triangulated Meshes
Some preliminary definitions: fan, star, strip
A triangle strip=:ABCDEF
 ABC, CBD, CDE, and EDF
A
B
C
D
E
F
A Closed Triangle Fan or a ‘star’=:ABCDEF
A
B
C
D
E
F
 ABC, ACD, ADE, and AEF
A Triangle Fan=: ABCDE
AB
C
D
E
 ABC, ACD, and ADE
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4141
Mesh Boundary
Some preliminary definitions: free* vertices, free* edges
• If an edge has less than two faces adjacent to it then it is considered free;
• If a vertex is part of such an edge it is considered as free too.
* In Rhinocommon free vertices/edges are referred to as naked.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4242
Mesh Border denoted as 𝝏 (𝒑𝒓𝒐𝒏𝒐𝒖𝒏𝒄𝒆𝒅 𝒂𝒔 ′
𝒏𝒂𝒃𝒍𝒂′ 𝒐𝒓 ′𝒅𝒆𝒍′)
• A 1D border is the set of connected edges incident to only one face of a 2-
manifold, i.e. composed of free edges. We can conclude that:
• If every vertex has a closed fan, or there is no edge of valence (number of
neighbors) less than 2, the given manifold has no border. Example: a box!
non-manifold border manifold borderno [1D] border
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4343
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological
University
• if a Mesh is supposed to be a 2D manifold then it should meet these criteria:
1. each edge is incident to only one or two faces; and
2. the faces incident to a vertex form a closed or an open fan.
Non manifold Mesh examples: (note why!)
Manifold Mesh
A 2-manifold [everywhere] locally resembles a flat surface
• if a Mesh is supposed to be orientable then, it should be possible to find
‘compatible’ orientations for any two adjacent faces; in which, for each pair of
adjacent faces, the common edge of the two faces has opposite orders.
• Example: Möbius band is a 2D manifold Mesh that is non-printable.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4444
Image Source: http://prateekvjoshi.com/2014/11/16/homomorphism-vs
homeomorphism/
Mesh Topology: Homeomorphism
clay models that are all topologically equal!
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
Two 2-manifold Meshes A and B are
homeomorphic if their surfaces can be
transformed to one another by topological
transformations (bending, twisting, stretching,
scaling, etc.) without cutting and gluing.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4545
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
Only for 2D boundary representations*
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 𝑔 − 𝜕
• 𝛿 is the number of [connected] borders
• 𝑔 is the number of “genera” (pl. of genus) or holes
• Irrespective of tessellation!
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 2 − 0 = −2
* For 3D BReps the Euler characteristic equation will take the form of V-E+F-B
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4646
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
• Irrespective of tessellation!
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = −2 𝑓𝑜𝑟 𝑑𝑜𝑢𝑏𝑙𝑒 𝑡𝑜𝑟𝑖(ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 2 ℎ𝑜𝑙𝑒𝑠)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 0 𝑓𝑜𝑟 𝑡𝑜𝑟𝑖 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 1 ℎ𝑜𝑙𝑒)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 1 𝑓𝑜𝑟 𝑑𝑖𝑠𝑘𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑢𝑟𝑓𝑎𝑐𝑒𝑠)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 𝑓𝑜𝑟 𝑠𝑝ℎ𝑒𝑟𝑒𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ𝑜𝑢𝑡 ℎ𝑜𝑙𝑒𝑠)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4747
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
• Irrespective of tessellation!
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4848
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Valid Mesh (often expected to be a 2–Manifold Surface)
4949
Mesh Topology: Homeomorphism
Euler-Poincare Characteristic: key to homeomorphism
• N-Manifold/Non-Manifold: Each point of an n-dimensional manifold has a
neighborhood that is homeomorphic to the Euclidean space of dimension n
• Riddle: The above definition implies that for mapping some local geographic features 2D
maps are fine. What about the whole globe? That is not homoeomorphic to a rectangular
surface! How do we do it then?
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
5050
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in ℝ 𝑛
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
ℝ
ℝ3
ℝ2
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
5151
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in ℝ 𝑛
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertex
ℝ
A hypothetical street network (a), a Junction-to-Junction adjacency graph (b) versus a Street-to-Street adjacency graph (c), both ‘undirected’,
after Batty (Batty, 2004): red dots represent graph nodes, and blue arcs represent graph links.
Batty, M., 2004. A New Theory of Space Syntax. CASA Working Paper Series, March.
5252
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in ℝ 𝑛
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
ℝ2
A Voronoi tessellation of 2D space and its dual that is a Delaunay triangulation
5353
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Duality
a pairing between k-dimensional features and dual features
of dimension n-k in ℝ 𝑛
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
ℝ3
representing adjacencies between 3D cells or bodies via their dual vertices (Lee, 2001)
5454
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
• Mesh Topological Data Models:
Face-Vertex: e.g. 𝐹0 = {𝑉0, 𝑉5, 𝑉4} & 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7
Images courtesy of David Dorfman, from Wikipedia
Face-Vertex (as implemented in Rhinoceros)
5555
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Vertex-Vertex: e.g. 𝑉0~{𝑉1, 𝑉4, 𝑉3}
Face-Vertex: e.g. 𝐹0 = 𝑉0, 𝑉5, 𝑉4 , 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7
Winged-Edge: e.g. 𝐹0 = 𝐸4, 𝐸8, 𝐸9 , 𝐸0 = 𝑉0, 𝑉1 , 𝐸0~ 𝐹1, 𝐹12 , 𝐸0~ 𝐸9, 𝐸23, 𝐸10, 𝐸20
Half-Edge: each half edge has a twin edge in opposite direction, a previous and a next
Mesh Topological Structures
Image courtesy of David Dorfman, from Wikipedia
What is explicitly stored as topology of a Mesh: E.g. Face-
Vertex (as implemented in Rhinoceros)
http://doc.cgal.org/latest/HalfedgeDS/index.html
5656
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
• Mesh Topological Data Models:
Face-Vertex Example:
http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry_Collections_MeshTopologyVertexList.htm
Face-Vertex (as implemented in Rhinoceros)
Name Description
ConnectedFaces Gets all faces that are connected to a given vertex.
ConnectedTopologyVertices(Int32) Gets all topological vertices that are connected to a given vertex.
ConnectedTopologyVertices(Int32, Boolean) Gets all topological vertices that are connected to a given vertex.
The MeshTopologyVertexList type exposes the following members.
Half-Edge: Half-Edge Mesh Data Structure, example implementation by Daniel Piker:
http://www.grasshopper3d.com/group/plankton
5757
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Geometry
• Polygon vs Face
• Triangulate
• Quadrangulate
5858
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Intersections
• Boolean operation on Meshes:
1. 𝐴 ∪ 𝐵: Boolean Union
2. 𝐴 − 𝐵: Boolean Difference
3. 𝐴 ∩ 𝐵: Boolean Intersection
5959
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Normal Vectors of a Mesh
• Topological Vertices versus Geometrical Points
• Joining Mesh objects: What is a Mesh box?
• Welding Meshes: how does it work?
• Face Normal versus Vertex Normal
Where do they come from and what do they represent?
6060
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
How to Compute Mesh Normals?
00,
00 ),(
vvuuv
p
u
p
vun













1
( ) ( )
0
( )( )
N
x i next i i next i
i
N y y z z


  
1
( ) ( )
0
( )( )
N
z i next i i next i
i
N x x y y


  
1
( ) ( )
0
( )( )
N
y i next i i next i
i
N z z x x


  
Martin Newell at Utah (remember the teapot?)
Why?
6161
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Repairing/Reconstructing Geometry
• Example: Coons’ Patch
• Code it and get bonus points!
Image courtesy of CVG Lab
6262
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing
for (int k = 0; k <= L - 1; k++) {
List<Point3d> SmoothV = new List<Point3d>();
for (int i = 0; i <= M.Vertices.Count - 1; i++) {
List<Point3d> Neighbours = Neighbors(M, i);
Point3d NVertex = new Point3d(0, 0, 0);
foreach (point3d neighbor in Neighbours ) {
NVertex = NVertex + neighbor;
}
NVertex = (1 / Ngh.Count) * NVertex;
SmoothV.Add(NVertex);
}
M.Vertices.Clear();
M.Vertices.AddVertices(SmoothV);
A = M;
}
6363
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing (Relaxation)
Kangaroo Physics: https://vimeo.com/27484394
6464
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
6565
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Literal Boundary Representation
A strategy for design modeling/3D sketching
Curves Surfaces Solids
Curves
From Objects
Points
http://forums.newtek.com/showthread.php?143633-Can-Lightwave-Model-an-airplane-boat-Hull-Like-the-way-they-do-in-this-C4D-tutorial
6666
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Transformative Modeling
A different strategy for design modeling/3D sketching
Solids
Topological
Transformations
Transformed
Solids
Curves
From Objects
https://3dprint.com/88049/3d-printed-topology-joke/
6767
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Subdivision Modelling
A strategy for design modeling/3D sketching
Model a Simple BRep Subdivide to Smoothen
http://slodive.com/design/3ds-max-modeling-tutorials/
6868
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Implicit modelling as level sets
A strategy for design modeling/3D sketching
Model a Scalar Field Get Iso-surfaces
6969
Questions:
p.nourian@tudelft.nl

More Related Content

PPTX
Mesh final pzn_geo1004_2015_f3_2017
PDF
Geo1004 lecture 1_topology&amp;topological_datamodels_final
PDF
On NURBS Geometry Representation in 3D modelling
PDF
Polygon Mesh Representation
PDF
Ar1 twf030 lecture2.2
PDF
Point Cloud Processing: Estimating Normal Vectors and Curvature Indicators us...
PPTX
Polygon mesh
PPTX
ppt of solid modeling for cad
Mesh final pzn_geo1004_2015_f3_2017
Geo1004 lecture 1_topology&amp;topological_datamodels_final
On NURBS Geometry Representation in 3D modelling
Polygon Mesh Representation
Ar1 twf030 lecture2.2
Point Cloud Processing: Estimating Normal Vectors and Curvature Indicators us...
Polygon mesh
ppt of solid modeling for cad

What's hot (19)

PDF
Solid Modeling Schemes CAM
 
PPTX
presentation on solid manipulation in computer aided design
PPTX
Solid modelling cg
PDF
427lects
PDF
5 geometric-modeling-ppt-university-of-victoria
PPT
Introduction to solid modeling
PPTX
Solid modeling
PDF
187186134 5-geometric-modeling
PDF
Curves and surfaces
PPT
Geometric Modeling
PPTX
Solid modeling
PPT
Wireframe models
PPT
1422798749.2779lecture 5
PDF
IMPROVEMENTS OF THE ANALYSIS OF HUMAN ACTIVITY USING ACCELERATION RECORD OF E...
PDF
Unit 3 visual realism
PDF
Solid modelling Slide share academic writing assignment 2
PDF
ME6501 Unit 2 geometric modeling
Solid Modeling Schemes CAM
 
presentation on solid manipulation in computer aided design
Solid modelling cg
427lects
5 geometric-modeling-ppt-university-of-victoria
Introduction to solid modeling
Solid modeling
187186134 5-geometric-modeling
Curves and surfaces
Geometric Modeling
Solid modeling
Wireframe models
1422798749.2779lecture 5
IMPROVEMENTS OF THE ANALYSIS OF HUMAN ACTIVITY USING ACCELERATION RECORD OF E...
Unit 3 visual realism
Solid modelling Slide share academic writing assignment 2
ME6501 Unit 2 geometric modeling
Ad

Similar to Ar1 twf030 lecture2.1: Geometry and Topology in Computational Design (20)

PDF
lecture-6---wireframe-modeling.pdf_types of it
PDF
Graph Analyses with Python and NetworkX
PPT
Lect12 graph mining
PPTX
On Integrating Information Visualization Techniques into Data Mining: A Revie...
PPTX
Interactive Design of Urban Spaces using Geometrical and Behavioral Modeling
PDF
Four data models in GIS
PDF
isprsarchives-XL-3-381-2014
PPTX
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
PPTX
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
PPTX
Mujungi Davis
PPTX
Mujungi Davis
PPTX
Ivan Sahumbaiev "Deep Learning approaches meet 3D data"
PDF
Geospatial Data Models, Vector And Raster Data Model
PDF
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
PDF
187186134 5-geometric-modeling
PDF
5 geometric modeling
DOCX
Geometric theory task 3 3 d the basics
PDF
Exploring Architected Materials Using Machine Learning
PPTX
Data models in geographical information system(GIS)
PDF
Mining Gems from the Data Visualization Literature
lecture-6---wireframe-modeling.pdf_types of it
Graph Analyses with Python and NetworkX
Lect12 graph mining
On Integrating Information Visualization Techniques into Data Mining: A Revie...
Interactive Design of Urban Spaces using Geometrical and Behavioral Modeling
Four data models in GIS
isprsarchives-XL-3-381-2014
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
Mujungi Davis
Mujungi Davis
Ivan Sahumbaiev "Deep Learning approaches meet 3D data"
Geospatial Data Models, Vector And Raster Data Model
“Introduction to Computer Vision with CNNs,” a Presentation from Mohammad Hag...
187186134 5-geometric-modeling
5 geometric modeling
Geometric theory task 3 3 d the basics
Exploring Architected Materials Using Machine Learning
Data models in geographical information system(GIS)
Mining Gems from the Data Visualization Literature
Ad

More from Pirouz Nourian (8)

PDF
Ar1 twf030 lecture3.1: Design Optimization
PDF
Ar1 twf030 lecture1.1
PDF
Ar1 twf030 lecture1.2
PDF
Syntactic space syntax4generativedesign
PDF
Tudelft stramien 16_9_on_optimization
PDF
Intro computational design_mega2016_1_with_recommendedplugins
PDF
Point Cloud Segmentation for 3D Reconstruction
PDF
Preliminaries of Analytic Geometry and Linear Algebra 3D modelling
Ar1 twf030 lecture3.1: Design Optimization
Ar1 twf030 lecture1.1
Ar1 twf030 lecture1.2
Syntactic space syntax4generativedesign
Tudelft stramien 16_9_on_optimization
Intro computational design_mega2016_1_with_recommendedplugins
Point Cloud Segmentation for 3D Reconstruction
Preliminaries of Analytic Geometry and Linear Algebra 3D modelling

Recently uploaded (20)

PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Soil Improvement Techniques Note - Rabbi
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
PPT on Performance Review to get promotions
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PDF
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
PPTX
communication and presentation skills 01
PDF
Visual Aids for Exploratory Data Analysis.pdf
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPTX
UNIT 4 Total Quality Management .pptx
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PPTX
Information Storage and Retrieval Techniques Unit III
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PDF
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
PPTX
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PPTX
Current and future trends in Computer Vision.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
R24 SURVEYING LAB MANUAL for civil enggi
Soil Improvement Techniques Note - Rabbi
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPT on Performance Review to get promotions
III.4.1.2_The_Space_Environment.p pdffdf
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
communication and presentation skills 01
Visual Aids for Exploratory Data Analysis.pdf
Categorization of Factors Affecting Classification Algorithms Selection
UNIT 4 Total Quality Management .pptx
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Safety Seminar civil to be ensured for safe working.
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
Information Storage and Retrieval Techniques Unit III
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
Current and future trends in Computer Vision.pptx

Ar1 twf030 lecture2.1: Geometry and Topology in Computational Design

  • 1. 11 Geometry & Topology in Computer Geometry & Design Dr.ir. Pirouz Nourian Assistant Professor of Design Informatics Department of Architectural Engineering & Technology Faculty of Architecture and Built Environment
  • 2. 22 A Line is something that looks like a line & works like a line! “If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.” Image: DUCK: GETTY Images; ILLUSTRATION: MARTIN O'NEILL, from http://www.nature.com/nature/journal/v484/n7395/full/484451a.html?message-global=remove Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 3. 33 What you see on the screen is only a rasterized image of the object! What you see is not what you get! Image: René Magritte, ceci n'est pas une pipe (this is not a pipe) Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 4. 44 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 5. 55 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 6. 66 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 7. 77 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Escher’s Balcony
  • 8. 88 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling ℝ ℝ 𝟐 ℝ 𝟑 1D 2D 3D http://paulbourke.net/geometry/hyperspace/
  • 9. 99 Cartesian Product of Sets ℝ 𝟏 = ℝ ℝ 𝟐 = ℝ × ℝ ℝ 𝟑 = ℝ × ℝ × ℝ 1D 2D 3D http://paulbourke.net/geometry/hyperspace/ Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 𝐴 = {𝑎, 𝑏, 𝑐} 𝐵 = {1,2} 𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)}
  • 10. 1010 ℝ 𝟏 = ℝ ℝ 𝟐 = ℝ × ℝ ℝ 𝟑 = ℝ × ℝ × ℝ 1D 2D 3D http://paulbourke.net/geometry/hyperspace/ 𝐴 = {𝑎, 𝑏, 𝑐} 𝐵 = {1,2} 𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)} Cartesian Product of Sets Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling http://ndp.jct.ac.il/tutorials/discrete/node28.html
  • 11. 1111 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 1D 2D 3D Curved Spaces
  • 12. 1212 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 1D 2D 3D
  • 13. 1313 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space) 1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space) 2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space) 3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
  • 14. 1414 On terminology • Geometry: Point (0D), Curve(1D), Surface(2D), Solid (3D) [free-form] • Geometry: Point (0D), Line(1D), Polygon(2D), Polyhedron (3D) [piecewise linear] • Topology: Vertex(0D), Edge(1D), Face(2D), Body(3D) • Graph Theory: Object, Link, (and n-Cliques) Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 15. 1515 On terminology n-D features Graph Theory Topology Geometry 0D Object Vertex Point 1D Link Edge Line (Curve) 2D Cycle* Face Polygon (Surface) 3D Clique* Body Polyhedron (Solid) Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
  • 16. 1616 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling • 1D: Curves (t parameter) • 2D: Surfaces (u & v parameters) • 3D: B-Reps (each face is a surface) NURBS Objects Non Uniform Rational Basis Splines are used for accurately modeling free-form geometries
  • 17. 1717 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling NURBS Representation Non Uniform Rational Basis Splines (NURBS) are used for modeling free-form geometries accurately Image courtesy of http://www.boatdesign.netImage courtesy of Wikimedia • An elegant mathematical description of a physical drafting aid as a (set of) parametric equation(s).
  • 18. 1818 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Parametric Curves in General How do numeric weights correspond to physical weights?
  • 19. 1919 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Splines in Computer Graphics All types of curves can be modeled as splines •
  • 20. 2020 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Bezier interpolation
  • 21. 2121 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling NURBS equations All from a summary by Markus Altmann: http://web.cs.wpi.edu/~matt/courses/cs563/talks/nurbs.html
  • 22. 2222 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling NURBS Representation Non Uniform Rational Basis Splines (NURBS) are used for modeling free-form geometries accurately • An elegant mathematical description of a physical drafting aid as a (set of) parametric equation(s). • offer one common mathematical form for both, standard analytical shapes (e.g. conics) and free form shapes; • provide the flexibility to design a large variety of shapes; • can be evaluated reasonably fast by numerically stable and accurate algorithms; • are invariant under affine as well as perspective transformations; • are generalizations of non-rational B-splines and non-rational and rational Bezier curves and surfaces.
  • 23. 2323 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling NURBS Surfaces Rectangular Patches
  • 24. 2424 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Parametric Space Images courtesy of David Rutten, from Rhinoscript 101
  • 25. 2525 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Parametric Locations:
  • 26. 2626 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Bilbao Guggenheim Museum Bus stop near Sebastiaansbrug Delft
  • 27. 2727 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 1D Curvature 𝐾 = 1 𝑅 One over the radius of the osculation (kissing) circle Why did people [for such a long time] believe that the Earth was flat?
  • 28. 2828 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 2D Curvature: Gaussian Images courtesy of Raja Issa, Essential Mathematics for Computational Design 𝐾 𝐺 = 𝐾 𝑚𝑖𝑛 𝐾 𝑚𝑎𝑥
  • 29. 2929 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 2D Curvature: Gaussian 𝐾 𝐺 = 𝐾 𝑚𝑖𝑛 𝐾 𝑚𝑎𝑥
  • 30. 3030 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Blending Surfaces & Continuity Images courtesy of Raja Issa, Essential Mathematics for Computational Design
  • 31. 3131 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling 2D Curvature: Mean 𝐾 𝐺 = 𝐾 𝑚𝑖𝑛 +𝐾 𝑚𝑎𝑥 2 Anish Kapoor, Marsyas, 2002, installation view, Tate Modern https://en.wikipedia.org/wiki/Mean_curvature
  • 32. 3232 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Boundary Representations
  • 33. 3333 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Boundary Representations • 0D: Point • 1D: Curve (represented by boundary Points) • 2D: Surface (represented by boundary Curves) • 3D: Solid (represented by boundary Surfaces)
  • 34. 3434 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Imagine the Boundary of Manifolds • 0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space) • 1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space) • 2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space) • 3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
  • 35. 3535 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Boundary Representations • 0D: Point • 1D: Curve (represented by boundary Points) • 2D: Surface (represented by boundary Curves) • 3D: Solid (represented by boundary Surfaces) • Free-Form Parametric surfaces • Piecewise Linear: Polygon Meshes
  • 36. 3636 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling The simplex cell is defined as the locus of points defined by linear interpolations of the corner vertices with barycentric coordinates denoted by 𝛼𝑖, as follows: 𝑣0, 𝑣1, … , 𝑣 𝑘 ∈ ℝ 𝑛 𝐶 = {𝛼0 𝑣0 + 𝛼1 𝑣1 + ⋯ . +𝛼 𝑘 𝑣 𝑘|𝛼𝑖 ≥ 0, 0 ≤ 𝑖 ≤ 𝑘, ෍ 𝑖 𝛼𝑖 = 1} • 0-simplex: Point • 1-simplex: Line • 2-simplex: Triangle • 3-simplex: Tetrahedron
  • 37. 3737 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling https://sites.google.com/site/dengwirda/jigsaw https://www.researchgate.net/publication/287398529_An_E fficient_Approach_for_Solving_Mesh_Optimization_Proble ms_Using_Newton%27s_Method/figures?lo=1
  • 38. 3838 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling • Example: • Important note: the geometry of faces is not stored; only rendered when needed! What you see on the screen is not necessarily what you store! Polygon Mesh Representation A light-weight model composed of points and a set of topological relations among them. Points >Vertices Lines > Edges Polygons > Faces Mesh T1: {0,4,3} T2:{0,1,4} Q1:{1,2,5,4}
  • 39. 3939 • The geometry of a Mesh can be represented by its points (known as [geometrical] vertices in Rhino), i.e. a ‘list’ of 3D points in ℝ3 • The topology of a Mesh can be represented based on its [topological] vertices, referring to a ‘set’ of 3D points in ℝ3 , there are multiple ways to describe how these vertices are spatially related (connected or adjacent) to one another and also to edges and faces of the Mesh • Same topology and different geometries: Mesh Mesh Geometry versus Mesh Topology T1: {0,4,3} T2:{0,1,4} Q1:{1,2,5,4}T1 T2 Q1 T1 T2 Q1 0 3 1 4 5 2 0 3 1 4 5 2 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 40. 4040 Triangulated Meshes Some preliminary definitions: fan, star, strip A triangle strip=:ABCDEF  ABC, CBD, CDE, and EDF A B C D E F A Closed Triangle Fan or a ‘star’=:ABCDEF A B C D E F  ABC, ACD, ADE, and AEF A Triangle Fan=: ABCDE AB C D E  ABC, ACD, and ADE Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 41. 4141 Mesh Boundary Some preliminary definitions: free* vertices, free* edges • If an edge has less than two faces adjacent to it then it is considered free; • If a vertex is part of such an edge it is considered as free too. * In Rhinocommon free vertices/edges are referred to as naked. Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 42. 4242 Mesh Border denoted as 𝝏 (𝒑𝒓𝒐𝒏𝒐𝒖𝒏𝒄𝒆𝒅 𝒂𝒔 ′ 𝒏𝒂𝒃𝒍𝒂′ 𝒐𝒓 ′𝒅𝒆𝒍′) • A 1D border is the set of connected edges incident to only one face of a 2- manifold, i.e. composed of free edges. We can conclude that: • If every vertex has a closed fan, or there is no edge of valence (number of neighbors) less than 2, the given manifold has no border. Example: a box! non-manifold border manifold borderno [1D] border Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 43. 4343 Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University • if a Mesh is supposed to be a 2D manifold then it should meet these criteria: 1. each edge is incident to only one or two faces; and 2. the faces incident to a vertex form a closed or an open fan. Non manifold Mesh examples: (note why!) Manifold Mesh A 2-manifold [everywhere] locally resembles a flat surface • if a Mesh is supposed to be orientable then, it should be possible to find ‘compatible’ orientations for any two adjacent faces; in which, for each pair of adjacent faces, the common edge of the two faces has opposite orders. • Example: Möbius band is a 2D manifold Mesh that is non-printable. Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 44. 4444 Image Source: http://prateekvjoshi.com/2014/11/16/homomorphism-vs homeomorphism/ Mesh Topology: Homeomorphism clay models that are all topologically equal! Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University Two 2-manifold Meshes A and B are homeomorphic if their surfaces can be transformed to one another by topological transformations (bending, twisting, stretching, scaling, etc.) without cutting and gluing. Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 45. 4545 Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism Only for 2D boundary representations* Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 𝑔 − 𝜕 • 𝛿 is the number of [connected] borders • 𝑔 is the number of “genera” (pl. of genus) or holes • Irrespective of tessellation! 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 2 − 0 = −2 * For 3D BReps the Euler characteristic equation will take the form of V-E+F-B Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 46. 4646 Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism • Irrespective of tessellation! 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = −2 𝑓𝑜𝑟 𝑑𝑜𝑢𝑏𝑙𝑒 𝑡𝑜𝑟𝑖(ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 2 ℎ𝑜𝑙𝑒𝑠) 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 0 𝑓𝑜𝑟 𝑡𝑜𝑟𝑖 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 1 ℎ𝑜𝑙𝑒) 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 1 𝑓𝑜𝑟 𝑑𝑖𝑠𝑘𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑢𝑟𝑓𝑎𝑐𝑒𝑠) 𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 𝑓𝑜𝑟 𝑠𝑝ℎ𝑒𝑟𝑒𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ𝑜𝑢𝑡 ℎ𝑜𝑙𝑒𝑠) Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 47. 4747 Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism • Irrespective of tessellation! Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 48. 4848 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Valid Mesh (often expected to be a 2–Manifold Surface)
  • 49. 4949 Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism • N-Manifold/Non-Manifold: Each point of an n-dimensional manifold has a neighborhood that is homeomorphic to the Euclidean space of dimension n • Riddle: The above definition implies that for mapping some local geographic features 2D maps are fine. What about the whole globe? That is not homoeomorphic to a rectangular surface! How do we do it then? Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 50. 5050 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Poincare Duality a pairing between k-dimensional features and dual features of dimension n-k in ℝ 𝑛 PRIMAL DUAL 0D vertex (e.g. as a point) 1D edge 1D edge (e.g. as a line segment) 0D vertex PRIMAL DUAL 0D vertex (e.g. a point) 2D face 1D edge (e.g. a line segment) 1D edge 2D face (e.g. a triangle or a pixel) 0D vertex PRIMAL DUAL 0D vertex (e.g. a point) 3D body 1D edge (e.g. a line segment) 2D face 2D face (e.g. a triangle or a pixel) 1D edge 3D body (e.g. a tetrahedron or a voxel) 0D vertex ℝ ℝ3 ℝ2 Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
  • 51. 5151 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Poincare Duality a pairing between k-dimensional features and dual features of dimension n-k in ℝ 𝑛 PRIMAL DUAL 0D vertex (e.g. as a point) 1D edge 1D edge (e.g. as a line segment) 0D vertex ℝ A hypothetical street network (a), a Junction-to-Junction adjacency graph (b) versus a Street-to-Street adjacency graph (c), both ‘undirected’, after Batty (Batty, 2004): red dots represent graph nodes, and blue arcs represent graph links. Batty, M., 2004. A New Theory of Space Syntax. CASA Working Paper Series, March.
  • 52. 5252 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Poincare Duality a pairing between k-dimensional features and dual features of dimension n-k in ℝ 𝑛 PRIMAL DUAL 0D vertex (e.g. a point) 2D face 1D edge (e.g. a line segment) 1D edge 2D face (e.g. a triangle or a pixel) 0D vertex ℝ2 A Voronoi tessellation of 2D space and its dual that is a Delaunay triangulation
  • 53. 5353 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Poincare Duality a pairing between k-dimensional features and dual features of dimension n-k in ℝ 𝑛 PRIMAL DUAL 0D vertex (e.g. a point) 3D body 1D edge (e.g. a line segment) 2D face 2D face (e.g. a triangle or a pixel) 1D edge 3D body (e.g. a tetrahedron or a voxel) 0D vertex ℝ3 representing adjacencies between 3D cells or bodies via their dual vertices (Lee, 2001)
  • 54. 5454 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Topological Structure • Mesh Topological Data Models: Face-Vertex: e.g. 𝐹0 = {𝑉0, 𝑉5, 𝑉4} & 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7 Images courtesy of David Dorfman, from Wikipedia Face-Vertex (as implemented in Rhinoceros)
  • 55. 5555 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Vertex-Vertex: e.g. 𝑉0~{𝑉1, 𝑉4, 𝑉3} Face-Vertex: e.g. 𝐹0 = 𝑉0, 𝑉5, 𝑉4 , 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7 Winged-Edge: e.g. 𝐹0 = 𝐸4, 𝐸8, 𝐸9 , 𝐸0 = 𝑉0, 𝑉1 , 𝐸0~ 𝐹1, 𝐹12 , 𝐸0~ 𝐸9, 𝐸23, 𝐸10, 𝐸20 Half-Edge: each half edge has a twin edge in opposite direction, a previous and a next Mesh Topological Structures Image courtesy of David Dorfman, from Wikipedia What is explicitly stored as topology of a Mesh: E.g. Face- Vertex (as implemented in Rhinoceros) http://doc.cgal.org/latest/HalfedgeDS/index.html
  • 56. 5656 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Topological Structure • Mesh Topological Data Models: Face-Vertex Example: http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry_Collections_MeshTopologyVertexList.htm Face-Vertex (as implemented in Rhinoceros) Name Description ConnectedFaces Gets all faces that are connected to a given vertex. ConnectedTopologyVertices(Int32) Gets all topological vertices that are connected to a given vertex. ConnectedTopologyVertices(Int32, Boolean) Gets all topological vertices that are connected to a given vertex. The MeshTopologyVertexList type exposes the following members. Half-Edge: Half-Edge Mesh Data Structure, example implementation by Daniel Piker: http://www.grasshopper3d.com/group/plankton
  • 57. 5757 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Geometry • Polygon vs Face • Triangulate • Quadrangulate
  • 58. 5858 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Intersections • Boolean operation on Meshes: 1. 𝐴 ∪ 𝐵: Boolean Union 2. 𝐴 − 𝐵: Boolean Difference 3. 𝐴 ∩ 𝐵: Boolean Intersection
  • 59. 5959 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Normal Vectors of a Mesh • Topological Vertices versus Geometrical Points • Joining Mesh objects: What is a Mesh box? • Welding Meshes: how does it work? • Face Normal versus Vertex Normal Where do they come from and what do they represent?
  • 60. 6060 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling How to Compute Mesh Normals? 00, 00 ),( vvuuv p u p vun              1 ( ) ( ) 0 ( )( ) N x i next i i next i i N y y z z      1 ( ) ( ) 0 ( )( ) N z i next i i next i i N x x y y      1 ( ) ( ) 0 ( )( ) N y i next i i next i i N z z x x      Martin Newell at Utah (remember the teapot?) Why?
  • 61. 6161 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Repairing/Reconstructing Geometry • Example: Coons’ Patch • Code it and get bonus points! Image courtesy of CVG Lab
  • 62. 6262 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Smoothing for (int k = 0; k <= L - 1; k++) { List<Point3d> SmoothV = new List<Point3d>(); for (int i = 0; i <= M.Vertices.Count - 1; i++) { List<Point3d> Neighbours = Neighbors(M, i); Point3d NVertex = new Point3d(0, 0, 0); foreach (point3d neighbor in Neighbours ) { NVertex = NVertex + neighbor; } NVertex = (1 / Ngh.Count) * NVertex; SmoothV.Add(NVertex); } M.Vertices.Clear(); M.Vertices.AddVertices(SmoothV); A = M; }
  • 63. 6363 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Mesh Smoothing (Relaxation) Kangaroo Physics: https://vimeo.com/27484394
  • 64. 6464 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling
  • 65. 6565 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Literal Boundary Representation A strategy for design modeling/3D sketching Curves Surfaces Solids Curves From Objects Points http://forums.newtek.com/showthread.php?143633-Can-Lightwave-Model-an-airplane-boat-Hull-Like-the-way-they-do-in-this-C4D-tutorial
  • 66. 6666 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Transformative Modeling A different strategy for design modeling/3D sketching Solids Topological Transformations Transformed Solids Curves From Objects https://3dprint.com/88049/3d-printed-topology-joke/
  • 67. 6767 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Subdivision Modelling A strategy for design modeling/3D sketching Model a Simple BRep Subdivide to Smoothen http://slodive.com/design/3ds-max-modeling-tutorials/
  • 68. 6868 Data Models Types of Geometry Dimensionality Manifolds Terminology NURBS B-Reps Simplexes Polyhedral Meshes Polygon Meshes Topology Poincare Duality Topological Model Normal Vectors Meshing Mesh Smoothing Mesh Subdivision Design Modelling Implicit modelling as level sets A strategy for design modeling/3D sketching Model a Scalar Field Get Iso-surfaces