CHS
UCB
“Procedural Solid Modeling” or
“Algorithms and Data Structures for
Procedural Design, Solid Modeling, and Rapid Prototyping”
Let’s review the meaning of some of these terms ...
“Solid” “Modeling” (“Procedural” …)
CHS
UCB
CAD
Solid Modeling
CAGD (splines)
Procedural Modeling
When you spend more time programming than adjusting numbers or handles
CHS
UCB
Examples of solids and non-solids:
What are the key properties of a solid?
CHS
UCB
Examples of solids and non-solids:
YES: a block of steel, wood, styrofoam
NO: clouds, liquids,
?: a flexible wire, a rubber gasket, cloth ...
What are the key properties of a solid?
Maintains shape in a predictable way
Has a well-defined surface
CHS
UCB
The Abstraction of a “Solid”
Solids are composed of atoms
Atoms are mostly empty space
Smoothing and Sampling
Use a finite-size probe to determine extent of a solid
The Boundary of a Solid
How far the above probe can go
Level-set surface of a filtered density function
Why are these considerations relevant ?
We often make approximations to an ideal shape, e.g., use triangle mesh to represent a spline patch
CHS
UCB
Why do we create models of solids ?
What do we want to do with these models ?
CHS
UCB
Why do we create models of solids ?
For visualization, fabrication, analysis ...
What do we want to do with these models ?
Analyze: mass, moments, strength, flexibility, beauty, reachability, assemblability, fluid flow in cavities, ...
What types of models are we interested in ?
True solid shapes, with orientable 2-manifold surfaces, mostly rigid, perhaps with predictable deformability;
and assemblies of such objects.
What is outside scope of CS 285 – Sp.2006 ?
Collections of polygons that “look like” a forest, water, clouds, fire, rainbow (--> rendering class)
CHS
UCB
Where do such models come from ?
Some model capture process
e.g., 3D scanning
Some procedural generation process
gear wheel generator
maximizing/minimizing some functional
(e.g., minimize area as in soap bubbles)
Some creative design process
realizing some desired functionality
capturing an aesthetic vision
( BUT NO RANDOM BLOBS ! )
CHS
UCB
Many modeling systems are mostly suitable to make “lumpy potatoes” by moving dozens of control vertices individually.
We will concentrate on designed shapes:
These are optimal in some local domain; any small change would make them inferior.
CHS
UCB
A single Bézier patch or rectangular B-spline array does not make a solid.
Again, there should be an element of “DESIGN.”
Just randomly moving all control points is not in the spirit of CS 285.
CHS
UCB
Man-made Objects:
utensils, furniture, machinery, buildings, sculptures, …
(these may have come from CAD models).
NOT: complete cities, complex vehicles, ...
Natural Objects:
mountains, sea shells, tree trunks, bones, …
(these allow some procedural generation).
NOT: animals, forests, hedges, …
Visualization Models of:
height functions, math surfaces, 4D objects, …
(these can be constructed procedurally).
NOT: fluid-flow vector fields ...
CHS
UCB
Need an Appropriate Programming Language:
Auto-LISP in AutoCAD
Other CAD extensions
Mathematica
Matlab
C,C++
SLIDE (Unigrafix, OpenGL, Tcl) == >
For your course projects you can use whatever
Programming/CAD environment makes you most productive.
CHS
UCB
Lies between:
Mathematica / Matlab and
Traditional CAD tools (Solidworks, Autocad…)
Offers interactive fine tuning of critical parameters via some sliders, gives visual feedback.
Source code is under our own control.
Not a properly maintained system.
Tcl is a pain during the debugging process!
CHS
UCB
See on-line list on web page ...