Ar1 twf030 lecture2.1

Preview:

Citation preview

11

Geometry & Topology in Computer Geometry & Design

Dr.ir. Pirouz Nourian

Assistant Professor of Design InformaticsDepartment of Architectural Engineering & TechnologyFaculty 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 ObjectsNon 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 RepresentationNon 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 GeneralHow 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 GraphicsAll 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 equationsAll 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 RepresentationNon 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 SurfacesRectangular 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 RepresentationA 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:

MeshMesh Geometry versus Mesh Topology

T1: {0,4,3}T2:{0,1,4}Q1:{1,2,5,4}T1

T2Q1

T1

T2Q1

0

3

1

45

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 MeshesSome 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

AB

C

D

E

F

ABC, ACD, ADE, and AEF

A Triangle Fan=: ABCDE

AB

CD

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 BoundarySome 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 MeshA 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: Homeomorphismclay 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: HomeomorphismEuler-Poincare Characteristic: key to homeomorphismOnly 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: HomeomorphismEuler-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: HomeomorphismEuler-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: HomeomorphismEuler-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 Dualitya 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 Dualitya 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 Dualitya 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 Dualitya 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

pvun

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

CurvesFrom 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 ModelingA different strategy for design modeling/3D sketching

SolidsTopological

TransformationsTransformed

Solids

CurvesFrom 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

Recommended