Upload
june-booth
View
217
Download
0
Embed Size (px)
Citation preview
NDIST 2012NDIST 2012
Shape Representation
Carlo H. Séquin
University of California, Berkeley
Focus of TalkFocus of Talk
Shape representation issuesat the start and conclusion
of designing RP models
Focus on HCI difficulties and CAD problems,at the start and end of a design / modeling project:
How to get started? How to get your ideas into the CAD system.
How to finish? How to get your model properly 3D printed.
A designer for 30 years…A designer for 30 years…
CCD TV Camera Soda Hall
RISC 1 Computer Chip Octa-Gear (Cyberbuild)
Recent Designs and ModelsRecent Designs and Models
Talk OutlineTalk Outline
Start: Concept Input
“Sculpture Generator I”
“Viae Globi” Sculptures
Interactive Inverse 3D Modeling
Finish: Obtaining Tangible Output
Construction of “Pax Mundi”
Slicing Imperfect .STL files
Brent CollinsBrent Collins
“Hyperbolic Hexagon II”
Brent Collins: Stacked SaddlesBrent Collins: Stacked Saddles
All photos by Phillip Geller
ScherkScherk’’s 2nd Minimal Surfaces 2nd Minimal Surface
Isolated core
““ScherkScherk Towers” Towers” (2nd and 3d order)(2nd and 3d order)
Normal“biped”saddles
Generalization to higher-order saddles(“monkey saddles”)“Scherk Tower”
““Hyperbolic HexagonHyperbolic Hexagon”” by B. Collins by B. Collins
6 saddles in a ring
= “wound up” 6-story Scherk tower
6 holes passing through symmetry plane at ±45º
Discussion: What if …
we added more stories ?
or introduced a twist before closing the ring ?
Closing the LoopClosing the Loop
straight
or
twisted
“Scherk Tower” “Scherk-Collins Toroids”
““Hyperbolic HeptagonHyperbolic Heptagon” - ” - Paper Skeleton Paper Skeleton
Brent CollinsBrent Collins’’ Prototyping Process Prototyping Process
Armature for the Hyperbolic Heptagon
Mockup for the Saddle Trefoil
Time-consuming ! (1-3 weeks)
Sculpture Generator ISculpture Generator I, GUI , GUI
Some of the Parameters in Some of the Parameters in ““SC1SC1””
Base Geometry: One Scherk StoryBase Geometry: One Scherk Story
Hyperbolic Slices ==> Triangle Strips
Pre-computed -- then warped into toroid
Generated Scherk-Collins ShapesGenerated Scherk-Collins Shapes
Shapes from Shapes from Sculpture Generator ISculpture Generator I
A Simple Scherk-Collins ToroidA Simple Scherk-Collins Toroid
Parameters:(genome)
branches = 2 stories = 1 height = 5.00 flange = 1.00 thickness = 0.10 rim_bulge = 1.00 warp = 360.00 twist = 90 azimuth = 90 textr_tiles = 3 detail = 8
A Scherk Tower A Scherk Tower (on its side)(on its side)
branches = 7 stories = 3 height = 0.2 flange = 1.00 thickness = 0.04 rim_bulge = 0 warp = 0 twist = 0 azimuth = 0 textr_tiles = 2 detail = 6
V-artV-art
VirtualGlassScherkTowerwithMonkeySaddles
(Radiance 40 hours)
Jane Yen
CollinsCollins’’ Fabrication Process Fabrication Process
Example: Vox Solis
Layered laminated main shapeWood master pattern
for sculpture
““Vox SolisVox Solis”” by Brent Collins by Brent Collins
Slices through Slices through ““Minimal TrefoilMinimal Trefoil””
50% 10%23%30%
45% 5%20%27%
35% 2%15%25%
SSL Contours from QuickSliceSSL Contours from QuickSliceShaded STL-file SSL-slices
SSL Contours from QuickSliceSSL Contours from QuickSliceShaded STL-file SSL-slices
SML-roads in one of the central slices
One thick slicethru sculpture,from which Brent can cut boards and assemble a rough shape.
Traces represent: top and bottom,as well as cuts at 1/4, 1/2, 3/4of one board.
Profiled Slice through Profiled Slice through ““HeptoroidHeptoroid””
Emergence of the Emergence of the Heptoroid Heptoroid (1)(1)
Assembly of the precut boards
Emergence of the Emergence of the HeptoroidHeptoroid (2) (2)
Forming a continuous smooth edge
Emergence of the Emergence of the HeptoroidHeptoroid (3) (3)
Smoothing the whole surface
The Finished The Finished HeptoroidHeptoroid
at Fermi Lab Art Gallery (1998).
Part 1b: VIAE GLOBIPart 1b: VIAE GLOBI
A completely different paradigm . . .
Brent CollinsBrent Collins’’ ““Pax MundiPax Mundi””
1997: wood, 301997: wood, 30””diam.diam.
2006: Commission from H&R Block, Kansas Cityto make a 70”diameter version in bronze.
My task: to define the master geometry.
How to Model “How to Model “Pax MundiPax Mundi”...”...
Already addressed that question in 1998:
Pax Mundi could not be done with Sculpture Generator I
Needed a more general program !
Used the Berkeley SLIDE environment.
First: Needed to find the basic paradigm
Sculptures by Naum GaboSculptures by Naum Gabo
Pathway on a sphere:
Edge of surface is like seam of tennis- or base-ball;
2-period Gabo curve.
2-period 2-period ““Gabo CurveGabo Curve””
Approximation with quartic B-splinewith 8 control points per period;but only 3 DOF are used (symmetry!).
4-period 4-period ““Gabo CurveGabo Curve””
Same construction as for as for 2-period curve
Pax MundiPax Mundi Revisited Revisited Can be seen as:
Amplitude modulated, 4-period Gabo curve
SLIDE-GUI for SLIDE-GUI for ““Pax MundiPax Mundi”” Shapes ShapesGood combination of interactive 3D graphicsand parameterizable procedural constructs.
Many Different Many Different Viae GlobiViae Globi Models Models
1c: Interactive Inverse 3D Modeling1c: Interactive Inverse 3D Modeling
How to generalize this approach.
Important: Include the designer in the reverse-engineering loop!
Example Design ScenarioExample Design Scenario
Kitchen appliances “With a Heart”
Modular Reverse EngineeringModular Reverse Engineering
Extract parameterized descriptions, module by module.
In each case choose a representation that best enables the intended re-design.
Use plausible, commonly used CAD constructs: CSG
Quadrics
Extrusions
Rotational Sweeps
Progressive Sweeps
Interactive Inverse 3D Modeling Interactive Inverse 3D Modeling ( Jimmy Andrews( Jimmy Andrews’’ PhD thesis) PhD thesis)
Let the user select a high-level model structurethat is most useful for immediate re-design.
Initial artifact Redesigns enabled by different imposed structure
Option 1: Varying Rotational SymmetryOption 1: Varying Rotational Symmetry
3 fold 4 fold 20 fold
Extract one sector; collapse/expand in polar coordinates.
Opt.2: Editing as Surface of RevolutionOpt.2: Editing as Surface of Revolution
Mesh is rotationally collapsed to yielda compound “cross-section”;
This cross-sectioncan then be edited,and this will affectthe whole mesh.
Opt.3: Extraction as Opt.3: Extraction as a Progressive Sweepa Progressive Sweep
20-story Scherk chain
Revised trefoil sweep path
User-Guided Fitting ModulesUser-Guided Fitting Modules Stationary sweeps:
(Surfaces of revolution, helices, etc)
Progressive sweeps:
Quadrics:
Freeform surfaces:
CSG modules: …
… then assume point belongs to sweep.
If normal is perpendicular to velocity field:
(simple motion) (simple velocity field)
Defined by a simple sweep motion, with a fixed axis (e.g. revolution, helix, spiral)
Stationary Sweeps
Fitting Algorithm:Fitting Algorithm: Find velocity field that fits marked data points:
Minimize (subject to constraint):
Grow the region by adding more fitting points
Repeat (typically converges in 2-3 iterations)
[ Pottmann, Lee, and Randrup, 98 ]
Interactive Surface EditingInteractive Surface Editing• A rotational sweep around the z-axis is specified.• A “thick profile” is extracted by collapsing φ-component.
• Portions of the “thick profile” can be selected and moved;• the corresponding surface elements move radially:• (a) the whole nose and cheeks area is enlarged;• (b) only the nose is stretched.
(a) (b)
Progressive SweepsProgressive Sweeps More parameters: Make incremental local adjustments
Allow more complex cross-section transformations(translation, rotation, scaling)
User stroke provides initial guess
Fit by iteratively extending and optimizing
Progressive Sweep FittingProgressive Sweep Fitting
Starting from user stroke, optimize cross section
Iteratively extend and re-optimize
Stop when best further extension would have high error
[Andrews, Joshi, Sequin 2011]
Flexibility of Progressive SweepsFlexibility of Progressive Sweeps
Capture the parameterized procedural description that best fits the users re-design plans.
• Yellow strokes (#1) defines the start of a progressive sweep.• An optional 2nd stroke extends or restricts the sweep range.
Versatility of Progressive SweepsVersatility of Progressive Sweeps• Different starting strokes and different error tolerances result in a wide variety of possible extracted sweeps.
• Sweep path and profiles can be edited independently.
• Surface details with respect to the extracted sweep can be conserved and reapplied after any editing moves, or they can be ignored or smoothed out.
Preserving Surface DetailsPreserving Surface Details
• Modifying the sweep path & scaling,while preserving surface details:
Freeform Surfaces:Freeform Surfaces:Laplacian Surface EditingLaplacian Surface Editing
This is the workhorse to handle “everything else”: - Smoothing out unwanted details (ear). - Keeping model elements smoothly connected (leg).
System PipelineSystem Pipeline
Unstructured mesh
Unstructured mesh
PhotosPhotos
3D scans3D scans
Input Data
Editable Model
Editable Model
ModelHierarchy
& Re-fitting
Clean
User-guided fitting
modules
Nice rendering
Nice rendering
STL for RPSTL for RP
OBJ for CAD
OBJ for CAD
Redesigned output
PART II: Output EndPART II: Output End
Fabrication of Fabrication of Pax MundiPax Mundi
Target GeometryTarget Geometry
Constraints:• Bronze; 70” diameter• Less than 1500 pounds• Less than $50’000• Maintain beauty, strength• Minimize master geometry
Emulation; Define Master PatternEmulation; Define Master Pattern
Use 4 copies.
Master to make a mold from.
Alignment tab
Model of Master Part Made with FDMModel of Master Part Made with FDM
4 pieces make the whole sculpture
Joe ValasekJoe Valasek’’s CNC Milling Machines CNC Milling Machine
Styrofoam milling machine
Design of Two-Part MasterDesign of Two-Part Master
Alignment tabs for easy assembly
Subdivide into Subdivide into TwoTwo Master Segments Master Segments
Machined Master Pattern #2Machined Master Pattern #2
(Cut) Master (Cut) Master Silicone Rubber MoldSilicone Rubber Mold
MoldMold Several (4) Wax Copies Several (4) Wax Copies
SpruingSpruing the the Wax PartsWax Parts for Casting for Casting
Ceramic Slurry ShellCeramic Slurry Shell Around Wax Part Around Wax Part
Taking the Taking the ShellShell out of the out of the KilnKiln
ShellShell Ready Ready for Castingfor Casting
Pouring Liquid BronzePouring Liquid Bronze
Casting with Casting with Liquid BronzeLiquid Bronze
Freeing the Freeing the Bronze CastBronze Cast
Assembling the SegmentsAssembling the Segments
The The ““GrowingGrowing”” Ribbon Ribbon
The Assembly is Too Squat !!The Assembly is Too Squat !!
Changing the CurvatureChanging the Curvature
PHYSICS is important too ...PHYSICS is important too ...
not just Geometry !not just Geometry !
Grinding the Welded Seams,Grinding the Welded Seams,Polishing the SurfacePolishing the Surface
Applying PatinaApplying Patina
Front Door of the ...Front Door of the ...
H&R Block Building
Making Plastic RP ModelsMaking Plastic RP Models
3D model of the regular 4-dimensional 120-Cell
Acceptable Model FilesAcceptable Model Files
The STL file should be a proper watertight 2-manifold, with no cracks or intersecting faces.
All faces should have their normals point outwards, i.e., away form material.
In this boundary mesh every edge should be used exactly twice, once each in opposite directions.
An Actual Model of the 120-CellAn Actual Model of the 120-Cell
Based on the way it is constructed, such a model may look quite differently.
My model was formed by projecting all edges from 4D to 3D, and then replacing each edge with a prism of reasonable diameter, so that a robust model results.
But then we do not get a manifold B-Rep !At every vertex there are 4 intersecting prisms, plus, perhaps, an additional sphere!
(And for the 600-Cell there would be 12 cylinders!)
How does an RP machine handle such a file ?
And Things Can Get Much Worse!And Things Can Get Much Worse!
Slicing the gridded “TetraBoy” surface:
The .STL file displayed by QuickSlice
The .SSL slicesgenerated by QuickSlice:
Lots of stuff missing!
One of Many Bad LayersOne of Many Bad Layers
many missing struts
incomplete features
““Tetra-Boy SurfaceTetra-Boy Surface””
A single-sided, non-orientable surface of genus 4
Model Clean-upModel Clean-up
Ideally all models should be cleaned up …
But general 3D Model Clean-up is very hard !!!
I don’t know of any program than can do this, even for only moderately “flawed” models.
QuickSliceQuickSlice Idiosyncrasies IdiosyncrasiesWhat happens at overlapping / intersecting contours?
Slices every facet individually, ignoring orientation.
Re-constructs contours by joining line segments.
In general, uses an XOR “in/out” definition.
Flips contour orientation “if it seems to help”. . .
On concentric circles the inner contour is flipped.
On overlapping circles no flip is introduced;but a void then occurs in overlap area.
But: Slicing programs could do a better job, with a quite simple approach . . .
““BadBad”” .STL Files .STL Files
If they come from a CAD tool, errors are not random:
NOT: randomly missing triangles
NOT: randomly mis-oriented faces
More likely: overlapping “legal” parts:
Unexecuted Booleans: mostly unions ,since this works fine for graphics displays.
Possibly self-intersecting sweeps, e.g. in tight knots or in Klein bottles.
Very likely, the facet orientation is trustworthy . . .
Let’s use it properly!
2D Model Interpretation2D Model Interpretation
Intelligent 2D model clean-up is easy:
Use The Winding Number Paradigm !
Slice all triangles;
Use facet normals to produce oriented line segments (CCW contours around inside material.)
Define “inside” with positive winding numbers.
Overlapping parts produce winding numbers > 1.
Review of Winding NumberReview of Winding Number Defined only for closed curves (in the plane).
Defined with respect to a (sample) point.
Evaluation along scan-line with up-down counter.
Why Is This a Good Thing?Why Is This a Good Thing?
Implicit assumption is that designer wants Boolean union or (simple = 1 level) difference.
Positive winding numbers
means: inside.
Negativewinding numbers
get ignored.
Simple overlapping parts will be union-ed together!
Works Even with Negative Inside ContoursWorks Even with Negative Inside Contours
OK to have hollow parts with clockwise contours inside;This guarantees proper subtraction of winding number.
Final Plea . . . Final Plea . . .
Please use your influence to promote the
Winding Number Paradigm!
A lot of headaches with slicing software will then disappear!
Questions ?Questions ?