Download - Ar1 twf030 lecture2.1

Transcript
Page 1: Ar1 twf030 lecture2.1

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

Page 2: Ar1 twf030 lecture2.1

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

Page 3: Ar1 twf030 lecture2.1

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

Page 4: Ar1 twf030 lecture2.1

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

Page 5: Ar1 twf030 lecture2.1

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

Page 6: Ar1 twf030 lecture2.1

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

Page 7: Ar1 twf030 lecture2.1

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

Page 8: Ar1 twf030 lecture2.1

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/

Page 9: Ar1 twf030 lecture2.1

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)}

Page 10: Ar1 twf030 lecture2.1

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

Page 11: Ar1 twf030 lecture2.1

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

Page 12: Ar1 twf030 lecture2.1

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

Page 13: Ar1 twf030 lecture2.1

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)

Page 14: Ar1 twf030 lecture2.1

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

Page 15: Ar1 twf030 lecture2.1

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

Page 16: Ar1 twf030 lecture2.1

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

Page 17: Ar1 twf030 lecture2.1

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).

Page 18: Ar1 twf030 lecture2.1

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?

Page 19: Ar1 twf030 lecture2.1

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

Page 20: Ar1 twf030 lecture2.1

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

Page 21: Ar1 twf030 lecture2.1

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

Page 22: Ar1 twf030 lecture2.1

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.

Page 23: Ar1 twf030 lecture2.1

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

Page 24: Ar1 twf030 lecture2.1

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

Page 25: Ar1 twf030 lecture2.1

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:

Page 26: Ar1 twf030 lecture2.1

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

Page 27: Ar1 twf030 lecture2.1

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?

Page 28: Ar1 twf030 lecture2.1

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

𝐾𝐺 = 𝐾𝑚𝑖𝑛𝐾𝑚𝑎𝑥

Page 29: Ar1 twf030 lecture2.1

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 𝐾𝐺 = 𝐾𝑚𝑖𝑛𝐾𝑚𝑎𝑥

Page 30: Ar1 twf030 lecture2.1

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

Page 31: Ar1 twf030 lecture2.1

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

Page 32: Ar1 twf030 lecture2.1

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

Page 33: Ar1 twf030 lecture2.1

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)

Page 34: Ar1 twf030 lecture2.1

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)

Page 35: Ar1 twf030 lecture2.1

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

Page 36: Ar1 twf030 lecture2.1

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

Page 37: Ar1 twf030 lecture2.1

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

Page 38: Ar1 twf030 lecture2.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}

Page 39: Ar1 twf030 lecture2.1

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

Page 40: Ar1 twf030 lecture2.1

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

Page 41: Ar1 twf030 lecture2.1

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

Page 42: Ar1 twf030 lecture2.1

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

Page 43: Ar1 twf030 lecture2.1

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

Page 44: Ar1 twf030 lecture2.1

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

Page 45: Ar1 twf030 lecture2.1

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

Page 46: Ar1 twf030 lecture2.1

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

Page 47: Ar1 twf030 lecture2.1

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

Page 48: Ar1 twf030 lecture2.1

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)

Page 49: Ar1 twf030 lecture2.1

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

Page 50: Ar1 twf030 lecture2.1

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

Page 51: Ar1 twf030 lecture2.1

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.

Page 52: Ar1 twf030 lecture2.1

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

Page 53: Ar1 twf030 lecture2.1

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)

Page 54: Ar1 twf030 lecture2.1

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)

Page 55: Ar1 twf030 lecture2.1

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

Page 56: Ar1 twf030 lecture2.1

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

Page 57: Ar1 twf030 lecture2.1

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

Page 58: Ar1 twf030 lecture2.1

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

Page 59: Ar1 twf030 lecture2.1

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?

Page 60: Ar1 twf030 lecture2.1

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?

Page 61: Ar1 twf030 lecture2.1

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

Page 62: Ar1 twf030 lecture2.1

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;

}

Page 63: Ar1 twf030 lecture2.1

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

Page 64: Ar1 twf030 lecture2.1

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

Page 65: Ar1 twf030 lecture2.1

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

Page 66: Ar1 twf030 lecture2.1

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/

Page 67: Ar1 twf030 lecture2.1

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/

Page 68: Ar1 twf030 lecture2.1

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