CS 285: SOLID MODELING
Lecture #2 -- Wednesday, Aug. 31, 2011
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Warm-up Thinking Exercise:
How do you build such a bronze sculpture at the 6-foot scale ? (Not just make a CAD file ...)

Generalized Sweeps (basic concepts)
Sweeps are one of the most powerful and flexible modeling tools!
The Frenet frame: An intrinsic coordiante system defined by a local neighborhood on a curve:
- Tangent Vector and the Normal Plane perpendicular to it.
-
Normal Vector: Points in direction in which the tangent will change.
- Binormal Vector is the cross product between Tangent and Normal.
-
Osculating Plane and Osculating Circle: best fit to a small local neighborhood of the curve.
- There is a difference between Normal and second derivative.
-
The three coordinate planes and their relations to the basic 3 coordinate vectors. (diagram).
A Sweep: Applies a cross section along a space curve
- Need a Sweep Curve (typically in 2D or 3D space); it can be described as a spline
and sampled into a piece-wise linear path with a desired number of "slices".
(Any smooth curve in computer graphics becomes piecewise linear at some point.)
- Need a Cross Section (typically another spline or piece-wise linear, closed, planar path.
It may turn and vary in size as it travels along the sweep curve. - Placing the cross section in a default orientation into the local Frenet frame is simple,
but it often will lead to sudden twists, creading hour-glass shapes of the resulting mesh describing the sweep.
- A better approach is to use a Torsion-minimizing or Rotation-minimizing frame;
this can be obtained by incremental forward projection of the orientation of the cross section from one sampled curve point to the next.
- Connecting corresponding adjacent point pairs on subsequent cross sections with quads or pairs of triangles
will form a water-tight 2-manifold that is a Boundary-representation for the desired sweep.
(In such a 2-manifold, every edge is used exactly twice, in opposite
directions, by two adjacent facettes that comprise that edge.)
- Beyond using a default orientation of the sweep based on the Frenet frame or a torsion-minimizing frame,
additional azimuth rotations can be specified for the cross sections along the sweep path.
These additional azimuth variations may be controlled by the same control points that define the sweep path itself
with the same interpolating polynomial function; the azimuth simply becomes an additional parameter at each control point.
- The global Azimuth parameter is an additional azimuthal rotation specified for the whole curve.
- The global Twist parameter
is an additional incremental azimuthal rotation that increases from
zero to the specified value at the end of the curve.
- Non-uniform scaling of the cross section in the x- and y-direction are additional parameters that may vary along the sweep curve.
The sweep parameters in SLIDE.
"Solid" Modeling ?
- What is a solid ?
- What do we mean by "modeling" ?
- What types of modeling are we interested in ?
- What might we model in this course ? (from this list of candidates)
- -- A summary of our discussions:
A "solid" is an abstraction at a certain relevant scale.
Smaller nooks and crannies (and the empty spaces between atoms) have
been smoothed over by some spacial low-pass filtering process.
A solid has some clear boundary and some finite volume.
The boundary is a "water-tight", non-self-intersecting 2-manifold of some finite genus.
If the B-rep is a polyhedral mesh, then every edge is used
exactly twice, in opposite directions, by two adjacent facettes that
comprise that edge.
The genus of that solid can be calculated from the Euler-Poincare formula: Genus = (2 - #Vertices + #Edges - #Faces )/2.
A solid has a relatively stable shape that will respond to external forces in a predictable manner.
A valid B-rep for a solid can be used to make a small model on Rapid-Prototyping machine.
Some Rapid Prototyping (Layered Manufacturing) Processes:
- Fused Deposition Modeling (FDM) -- Extrude semi-liquid ABS
plastic through a heated nozzle; this needs some extra scaffolding
material.
- Selected Laser Sintering (SLS) -- A powerful laser heats
plastic particles and fuses them to their neighbors; un-fused powder
acts as support.
- Stereo-Lithography (SLA) -- An ultra-violet laser polymerizes
selected portions of the surface of a liquid in a tank; un-linked
liquid serves as support.
- X1 Process -- Metal powder is selectively joind with a binder
material; in a sintering oven the metal particles bind to one another
and the binder is removed;
the porous metal matrix is dipped into liquid bronze which fills the
cavities between the original metal particles. A solid metal part
results.
- 3D-Printing by Z-corporation -- (colored) glue is selectively
dribbled into a thin layer of plaster powder. Un-glued plaster acts as
support.
- The Creative Spark
(--> a personal mental image)
Where do you get your best ideas?
What can you do to enhance the creative flow?
Shockley's model of the "creativity pump" in the brain.
- Initial Sketch or Mock-up
(--> something that others can see)
How do you visualize, realize your ideas?
What materials may be useful to make conceptual models?
- Transformation into a CAD model
(--> something a computer can read)
How do you get those ideas into the computer?
==> Focus of your homework assignment.
- Implementation Concerns
(--> something a computer can "understand")
What do you need to do to turn that data into a solid model?
- Design Refinement
(--> something that can be physically realized)
Enter the concerns about fabrication. --> Design for manufacturing.
- Rapid Prototyping
( something that can be built on a RP machine)
What are the possibilities? Overview over various RP methods and processes (more later).
Team Formations for Assignment #1
--- next time ---
Procedural, Parameterized Modeling with SLIDE
Introduction to
SLIDE
-
SLIDE originated as a toy rendering system for CS 184
- SLIDE lies between Mathematica / Matlab and traditional CAD tools (Solidworks, Autocad)
- It describes boundary representations (B-reps)
- Most numerical values can be substituted by expressions that are evaluated in each rendered frame.
- It offers interactive fine tuning of critical parameters via sliders
- It builds on OpenGl (for rendering) and Tcl (user interface, expression parsing)
- Main drawbacks:
- Not a properly maintained system.
- Tcl is a pain during the debugging process!
The best way to learnSLIDE is by looking at examples, and by modifying those examples.
You should always have the SLIDE Language Specification Page open when you write SLIDE code.
Some SLIDE and Tcl Basics
Look in: http://www.cs.berkeley.edu/~sequin/CS285/CODE/
To get familiar with SLIDE, play with:
Cube.slf
BorLoopTex.slf
KG3Q60paramOptim.slf
To see what can be done with Tcl, look at:
Instancing.slf
Gear.slf
GearMovie.slf
BevelGearMovie.slf
Advice: Do not write Tcl code from scratch!
Take a working file and make very small changes between test runs.
Install SLIDE on your own computer:
A recent experience:
I found that I had to download a
different distribution than what was on
http://www.cs.berkeley.edu/~ug/slide/viewer/
Instead of
http://www.cs.berkeley.edu/~ug/slide/viewer/slide2004/slide2004.tar.gz ,
which only contained Windows-specific libraries, etc.,
I looked
http://www.cs.berkeley.edu/~ug/slide/viewer/slide2004/
and downloaded
http://www.cs.berkeley.edu/~ug/slide/viewer/slide2004/old_slide2004.tar.gz
That works fine without any need for compilation.
I just followed the
README at http://www.cs.berkeley.edu/~ug/slide/viewer/slide2004/README.
More information for the Windows system are here: http://www.cs.berkeley.edu/~ug/slide/pipeline/assignments/instructions.shtml
(see comments on "Installation")
Escape hatch: Later in the course you may use whatever software modeling environment you are comfortable with.
To help with creating your own environment:
Here's a link to the sweep framework (with gui) that we used in CS 184 last semester.
It should work on windows, mac and linux (tested on the hive cluster in soda 330).
http://eecs.berkeley.edu/~jima/sweep_skeletoncode_aug2011.zip
First Homework Assignment (8/31 to 9/7):
A#1: Planning the Construction of a Solid Model
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Page Editor:
Carlo H. Séquin