SlideShare a Scribd company logo
History:
CNC: ~1950
Mainframe Computers: ~1960’s
BREP: 1970 (Baumgart)
CSG: 1974 (Ian Braid)
Solid Modeling
Advantages:
Saves on storage/retrieval;
Easy modification, update;
Shortcomings:
Can’t analyse the
strength, shape,
geometry, weight
center of mass, center of inertia
Computerized Drafting
Popular Commercial tools: AutoCAD, CADKEY…
Stores each edge of the object
data:
The vertices
start point, end point
The equation of the edge-curve
3D and Solids Representation
Wireframe Models
Wireframe Problem: Ambiguity
(a) (b) (c)
Wireframe ambiguity:
Is this object (a), (b) or (c) ?
(a) (b) (c)
Wireframe ambiguity:
Is this object (a), (b) or (c) ?
Constructive Solid Geometry (CSG)
Boundary Representation (BREP)
Spatial Enumeration (voxels, octrees)
Other Methods
Introduced: Ian Braid (Cambridge University, ~74)
Concepts:
Primitives: small set of shapes
Transformations: scaling, Rotation, Translation
Set-theoretic Operations Union, Intersection, Difference
[ Euler operators ]
Combinations of these  Solid part
Constructive Solid Geometry (CSG)
U* (regular union)
-* (regular difference)
∩* (regular intersection)
CSG Tree:
Sequence of operators  design
Euler operators
Examples of CSG
x
y
z
y
x
z
box( a, b, c) cylinder( h, r)
primitives
x
y
z
y
x
z
box( a, b, c) cylinder( h, r)
primitives
X
Z
box( 25, 25, 15) Trans( 2,0, 15) Rot(Y, 45) Trans( -5, 0, -5) box( 10, 25, 10)
U* Trans( 20, 12.5, 15) cylinder( 5, 3)
U*
-*
Trans( 10, 0, 0) box( 3, 10, 10)
X
Z
X
Z
box( 25, 25, 15) Trans( 5  -5, 0, -5) box( 10, 25, 10)
U* Trans( 20, 12.5, 15) cylinder( 5, 3)
U*
-*
Trans( 10, 0, 0) box( 3, 10, 10)
Can we use a different set of primitives ?
Questions:
Is the CSG representation unique ?
[how to determine if two solids are identical ?]
Regularized operators
Is the set of 3D solids is closed with respect to ( U, -, ∩ )?
closure of a set S: kS
interior of a set S: iS
A U* B = k i ( A U B)
A -* B = k i ( A –B)
A ∩* B = k i ( A ∩ B)
Why is closure over operations important?
uniform data structures
Regularized Euler Operators
Non 2-Manifold:
Maintain solid as a regular 2-Manifold
2-Manifold regular solids
Open neighborhood of each point is similar to an open disc
Non-Unique representation
Difficulty of performing analysis for some tasks
Problems with CSG
What entities define the
Boundary of a solid ?
Boundary of surfaces?
Boundary of curves (edges) ?
Boundary of points ?
BREP (Boundary REPresentation)
(a) Solid: bounded, connected subset of E3
(b) Faces: boundary of solid
bounded, connected subsets of Surfaces
(c) Edges: boundary of faces
bounded, connected subsets of curves
(a) Solid: bounded, connected subset of E3
(b) Faces: boundary of solid
bounded, connected subsets of Surfaces
(c) Edges: boundary of faces
bounded, connected subsets of curves
Boundary of a solid…
BREP
Boundary of surfaces…
Boundary of curves (edges)…
BREP: Polyhedral models
Compute Volume, Weight
Compute Surface area
Point inside/outside solid
Intersection of two faces
…
Using a Boundary Model
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
Faces:
f1 e1 e4 e5
f2 e2 e6 e4
f3 e3 e5 e6
f4 e3 e2 e1
Edges:
e1 v1 v2
e2 v2 v3
e3 v3 v1
e4 v2 v4
e5 v1 v4
e6 v3 v4
Vertices:
v1 x1 y1 z1
v2 x2 y2 z2
v3 x3 y3 z3
v4 x4 y4 z4
v5 x5 y5 z5
v6 x6 y6 z6
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
Faces:
f1 e1 e4 e5
f2 e2 e6 e4
f3 e3 e5 e6
f4 e3 e2 e1
Edges:
e1 v1 v2
e2 v2 v3
e3 v3 v1
e4 v2 v4
e5 v1 v4
e6 v3 v4
Vertices:
v1 x1 y1 z1
v2 x2 y2 z2
v3 x3 y3 z3
v4 x4 y4 z4
v5 x5 y5 z5
v6 x6 y6 z6
An Edge-Based Model
Edge-Based Models: inefficient algorithms
face
face
Compute Surface Area:
1. Identify Loops
2. Compute area of each loop
3. Compute area of face
Efficient implementation of often-used algorithms
Area of Face
Hidden surface removal
Find neighbor-faces of a face
The Winged-Edge Data Structure
Observations
e1
e4
e5
e2
e6
e4
e1
e4
e5
e2
e6
e4
Face CCW convention =>
Each edge is once +ve, once -ve
2-Manifold => Each edge is shared by exactly 2 faces
co-edges
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
BREP Example
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
Vertices:
v1 x1 y1 z1
v2 x2 y2 z2
v3 x3 y3 z3
v4 x4 y4 z4
v5 x5 y5 z5
v6 x6 y6 z6
v7 x7 y7 z7
v8 x8 y8 z8
v9 x9 y9 z9
v10 x10 y10 z10
v11 x11 y11 z11
v12 x12 y12 z12
BREP Example
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
Edges:
e1 v1 v2
e2 v2 v3
e3 v3 v1
e4 v2 v4
e5 v1 v4
e6 v3 v4
e7 v5 v6
e8 v6 v7
e9 v7 v5
e10 v6 v8
e11 v5 v8
e12 v7 v8
BREP Example..
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
v1 v2
v3
v4
e1
e2
e3
e4
e6
e5
v5 v6
v8
e7
e8
e9
e10
e11
e12
v7
Faces:
f1 l1 l2
f2 l3
f3 l4
f4 l5
f5 l6
f6 l7
f7 l8
Loops:
l1 +e1 +e4 -e5
l2 -e7 +e11 -e10
l3 +e2 +e6 -e4
l4 +e5 -e6 +e3
l5 -e1 -e3 -e2
l6 +e7 +e8 +e9
l7 +e10 -e12 -e8
l8 -e11 -e9 +e12
BREP Example…
BREP: Winged edge data structure
Solid
Face
Loop
coEdge
Vertex
s_faces f_solid
f_loops l_face
l_coedge c_loop
v_start v_end
prev_f next_f
prev_l next_l
prev_ce next_ce
prev_v next_v
Solid
Face
Loop
coEdge
Vertex
s_faces f_solid
f_loops l_face
l_coedge c_loop
v_start v_end
prev_f next_f
prev_l next_l
prev_ce next_ce
prev_v next_v
BREP or CSG ?
Using: CSG is more intuitive
Computing: BREP is more convenient
Modern CAD Systems:
CSG for GUI (feature tree)
BREP for internal storage and API’s
BREP: non-polyhedral models?
Same Data Structure, plus
For each edge, store equation
For each curved face, store equation
Why do we need to learn all this ?
(a) To anticipate when an operation will fail
(b) To allow us to write API’s

More Related Content

PPT
Geometric modeling111431635 geometric-modeling-glad (1)
PDF
111431635-geometric-modeling-glad1-150630140219-lva1-app6892 (1).pdf
PDF
Module- IV (CO-IV) Fundamental of solid design, parametric space of a solid, ...
PDF
Point Cloud Segmentation for 3D Reconstruction
PPT
ae_722_unstructured_meshes.ppt
PPT
geometric-modelingEast Coast of Kamchatka, 8.7M · 30 Jul 2025 08:52:50, Publi...
PPT
Solid modeling
PDF
Module- III (CO-III) Techniques of surface modelling, plane surface, cylindri...
Geometric modeling111431635 geometric-modeling-glad (1)
111431635-geometric-modeling-glad1-150630140219-lva1-app6892 (1).pdf
Module- IV (CO-IV) Fundamental of solid design, parametric space of a solid, ...
Point Cloud Segmentation for 3D Reconstruction
ae_722_unstructured_meshes.ppt
geometric-modelingEast Coast of Kamchatka, 8.7M · 30 Jul 2025 08:52:50, Publi...
Solid modeling
Module- III (CO-III) Techniques of surface modelling, plane surface, cylindri...

Similar to SolidModeling.ppt (20)

PPT
Fingerprint High Level Classification
PPT
Admission in india
PPTX
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURING
PPT
Geometric Modeling
PDF
On NURBS Geometry Representation in 3D modelling
PDF
Svm map reduce_slides
PPTX
solid modeling.pptx_cad 3d modeling_types
PPTX
Mesh final pzn_geo1004_2015_f3_2017
PDF
lecture-6---wireframe-modeling.pdf_types of it
PDF
Synthetic Curves.pdf
PPTX
UNIT II GEOMETRIC MODELING (COMPUTER AIDED DESIGN AND MANUFACTURING )
PDF
Polygon Mesh Representation
PPT
CS 354 More Graphics Pipeline
PDF
3Dshape Analysis Matching Ajmmmmmmmmmmmmm
DOCX
Solids[1]
PDF
187186134 5-geometric-modeling
PDF
5 geometric-modeling-ppt-university-of-victoria
PDF
187186134 5-geometric-modeling
PDF
5 geometric modeling
PPTX
Fingerprint High Level Classification
Admission in india
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURING
Geometric Modeling
On NURBS Geometry Representation in 3D modelling
Svm map reduce_slides
solid modeling.pptx_cad 3d modeling_types
Mesh final pzn_geo1004_2015_f3_2017
lecture-6---wireframe-modeling.pdf_types of it
Synthetic Curves.pdf
UNIT II GEOMETRIC MODELING (COMPUTER AIDED DESIGN AND MANUFACTURING )
Polygon Mesh Representation
CS 354 More Graphics Pipeline
3Dshape Analysis Matching Ajmmmmmmmmmmmmm
Solids[1]
187186134 5-geometric-modeling
5 geometric-modeling-ppt-university-of-victoria
187186134 5-geometric-modeling
5 geometric modeling
Ad

Recently uploaded (20)

PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
additive manufacturing of ss316l using mig welding
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
bas. eng. economics group 4 presentation 1.pptx
DOCX
573137875-Attendance-Management-System-original
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Construction Project Organization Group 2.pptx
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Digital Logic Computer Design lecture notes
PDF
Well-logging-methods_new................
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
OOP with Java - Java Introduction (Basics)
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Internet of Things (IOT) - A guide to understanding
additive manufacturing of ss316l using mig welding
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Automation-in-Manufacturing-Chapter-Introduction.pdf
bas. eng. economics group 4 presentation 1.pptx
573137875-Attendance-Management-System-original
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Construction Project Organization Group 2.pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Digital Logic Computer Design lecture notes
Well-logging-methods_new................
Model Code of Practice - Construction Work - 21102022 .pdf
CYBER-CRIMES AND SECURITY A guide to understanding
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Ad

SolidModeling.ppt

  • 1. History: CNC: ~1950 Mainframe Computers: ~1960’s BREP: 1970 (Baumgart) CSG: 1974 (Ian Braid) Solid Modeling
  • 2. Advantages: Saves on storage/retrieval; Easy modification, update; Shortcomings: Can’t analyse the strength, shape, geometry, weight center of mass, center of inertia Computerized Drafting Popular Commercial tools: AutoCAD, CADKEY…
  • 3. Stores each edge of the object data: The vertices start point, end point The equation of the edge-curve 3D and Solids Representation Wireframe Models
  • 4. Wireframe Problem: Ambiguity (a) (b) (c) Wireframe ambiguity: Is this object (a), (b) or (c) ? (a) (b) (c) Wireframe ambiguity: Is this object (a), (b) or (c) ?
  • 5. Constructive Solid Geometry (CSG) Boundary Representation (BREP) Spatial Enumeration (voxels, octrees) Other Methods
  • 6. Introduced: Ian Braid (Cambridge University, ~74) Concepts: Primitives: small set of shapes Transformations: scaling, Rotation, Translation Set-theoretic Operations Union, Intersection, Difference [ Euler operators ] Combinations of these  Solid part Constructive Solid Geometry (CSG)
  • 7. U* (regular union) -* (regular difference) ∩* (regular intersection) CSG Tree: Sequence of operators  design Euler operators
  • 8. Examples of CSG x y z y x z box( a, b, c) cylinder( h, r) primitives x y z y x z box( a, b, c) cylinder( h, r) primitives X Z box( 25, 25, 15) Trans( 2,0, 15) Rot(Y, 45) Trans( -5, 0, -5) box( 10, 25, 10) U* Trans( 20, 12.5, 15) cylinder( 5, 3) U* -* Trans( 10, 0, 0) box( 3, 10, 10) X Z X Z box( 25, 25, 15) Trans( 5  -5, 0, -5) box( 10, 25, 10) U* Trans( 20, 12.5, 15) cylinder( 5, 3) U* -* Trans( 10, 0, 0) box( 3, 10, 10)
  • 9. Can we use a different set of primitives ? Questions: Is the CSG representation unique ? [how to determine if two solids are identical ?]
  • 10. Regularized operators Is the set of 3D solids is closed with respect to ( U, -, ∩ )? closure of a set S: kS interior of a set S: iS A U* B = k i ( A U B) A -* B = k i ( A –B) A ∩* B = k i ( A ∩ B) Why is closure over operations important? uniform data structures
  • 11. Regularized Euler Operators Non 2-Manifold: Maintain solid as a regular 2-Manifold 2-Manifold regular solids Open neighborhood of each point is similar to an open disc
  • 12. Non-Unique representation Difficulty of performing analysis for some tasks Problems with CSG
  • 13. What entities define the Boundary of a solid ? Boundary of surfaces? Boundary of curves (edges) ? Boundary of points ? BREP (Boundary REPresentation)
  • 14. (a) Solid: bounded, connected subset of E3 (b) Faces: boundary of solid bounded, connected subsets of Surfaces (c) Edges: boundary of faces bounded, connected subsets of curves (a) Solid: bounded, connected subset of E3 (b) Faces: boundary of solid bounded, connected subsets of Surfaces (c) Edges: boundary of faces bounded, connected subsets of curves Boundary of a solid… BREP Boundary of surfaces… Boundary of curves (edges)…
  • 16. Compute Volume, Weight Compute Surface area Point inside/outside solid Intersection of two faces … Using a Boundary Model
  • 17. v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 Faces: f1 e1 e4 e5 f2 e2 e6 e4 f3 e3 e5 e6 f4 e3 e2 e1 Edges: e1 v1 v2 e2 v2 v3 e3 v3 v1 e4 v2 v4 e5 v1 v4 e6 v3 v4 Vertices: v1 x1 y1 z1 v2 x2 y2 z2 v3 x3 y3 z3 v4 x4 y4 z4 v5 x5 y5 z5 v6 x6 y6 z6 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 Faces: f1 e1 e4 e5 f2 e2 e6 e4 f3 e3 e5 e6 f4 e3 e2 e1 Edges: e1 v1 v2 e2 v2 v3 e3 v3 v1 e4 v2 v4 e5 v1 v4 e6 v3 v4 Vertices: v1 x1 y1 z1 v2 x2 y2 z2 v3 x3 y3 z3 v4 x4 y4 z4 v5 x5 y5 z5 v6 x6 y6 z6 An Edge-Based Model
  • 18. Edge-Based Models: inefficient algorithms face face Compute Surface Area: 1. Identify Loops 2. Compute area of each loop 3. Compute area of face
  • 19. Efficient implementation of often-used algorithms Area of Face Hidden surface removal Find neighbor-faces of a face The Winged-Edge Data Structure
  • 20. Observations e1 e4 e5 e2 e6 e4 e1 e4 e5 e2 e6 e4 Face CCW convention => Each edge is once +ve, once -ve 2-Manifold => Each edge is shared by exactly 2 faces co-edges
  • 21. v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 BREP Example
  • 22. v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 Vertices: v1 x1 y1 z1 v2 x2 y2 z2 v3 x3 y3 z3 v4 x4 y4 z4 v5 x5 y5 z5 v6 x6 y6 z6 v7 x7 y7 z7 v8 x8 y8 z8 v9 x9 y9 z9 v10 x10 y10 z10 v11 x11 y11 z11 v12 x12 y12 z12 BREP Example
  • 23. v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 Edges: e1 v1 v2 e2 v2 v3 e3 v3 v1 e4 v2 v4 e5 v1 v4 e6 v3 v4 e7 v5 v6 e8 v6 v7 e9 v7 v5 e10 v6 v8 e11 v5 v8 e12 v7 v8 BREP Example..
  • 24. v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 v1 v2 v3 v4 e1 e2 e3 e4 e6 e5 v5 v6 v8 e7 e8 e9 e10 e11 e12 v7 Faces: f1 l1 l2 f2 l3 f3 l4 f4 l5 f5 l6 f6 l7 f7 l8 Loops: l1 +e1 +e4 -e5 l2 -e7 +e11 -e10 l3 +e2 +e6 -e4 l4 +e5 -e6 +e3 l5 -e1 -e3 -e2 l6 +e7 +e8 +e9 l7 +e10 -e12 -e8 l8 -e11 -e9 +e12 BREP Example…
  • 25. BREP: Winged edge data structure Solid Face Loop coEdge Vertex s_faces f_solid f_loops l_face l_coedge c_loop v_start v_end prev_f next_f prev_l next_l prev_ce next_ce prev_v next_v Solid Face Loop coEdge Vertex s_faces f_solid f_loops l_face l_coedge c_loop v_start v_end prev_f next_f prev_l next_l prev_ce next_ce prev_v next_v
  • 26. BREP or CSG ? Using: CSG is more intuitive Computing: BREP is more convenient Modern CAD Systems: CSG for GUI (feature tree) BREP for internal storage and API’s
  • 27. BREP: non-polyhedral models? Same Data Structure, plus For each edge, store equation For each curved face, store equation Why do we need to learn all this ? (a) To anticipate when an operation will fail (b) To allow us to write API’s