**Sketching Free-form Surfaces Using Network of Curves** Koel Das Pablo Diaz-Gutierrez M. Gopi University of California, Irvine

**Motivation** www-ui.is.s.u-tokyo.ac.jp/~takeo • We have tools for sketching rotund objects • Teddy! • Round and symmetric objects • We have sketch-based CAD tools • SketchUp • Boxy, rectilinear shapes • What about something intermediate? • Requirements for artists • Free-form shapes • Easy to learn interface • Artists can draw! www.sketchup.com graphics.cs.brown.edu http://graphics.ics.uci.edu

**Problem description** • Generation of networks of free-form curves • Simple sketching interface • Surface interpolation for networks of curves • Flexible: • Capable of large variety of shapes • Simple: • Few parameters http://graphics.ics.uci.edu

**Talk outline** • Problem description • Networks of Curves • Depth interpolation • Surface Generation • Normals • Topological triangulation • Vertex relocation • Results • Demo • Conclusion, Future Work and Q/A http://graphics.ics.uci.edu

**Networks of curves** • What’s a network of curves? • A set of 3D vertices and polylines • All locations are known • Not necessarily planar • How is it different from a 2D sketch? • 2D sketch is a flat drawing • Networks of curves have (explicit) depth • What are the implications? • Better clues on the intention of the user • Better usage of computing capabilities • Less ambiguity • One step less to solve http://graphics.ics.uci.edu

**Networks of curves2D/3D ambiguities** ? http://graphics.ics.uci.edu

**Networks of curvesGranularity of 2D/3D** • Sketch: Thick grain 2D-3D conversion • Network of curves: Fine grain conversion Input: Complete sketch Global sketch interpretation 2D Input: Sketch segments 3D Produced shape 2D 3D Network of curves http://graphics.ics.uci.edu

**Networks of curves** • What are the challenges in its creation? • Allow transformations without complicating interface • Early 2D to 3D conversion • Depth interpolation http://graphics.ics.uci.edu

**Networks of curves From 2D to 3D** • 3 types of curves: • Both endpoints free • Constant, arbitrary depth • One endpoint fixed, one free • Constant depth given by fixed endpoint • Both endpoints fixed • Depth interpolation http://graphics.ics.uci.edu

**Networks of curves Depth interpolation** • Underconstrained problem • No solution is always better than other • Our choice: minimize curvature • Informal lab study showed most users find these curves to be the natural interpolation • 3D Bezier curve with control points of uniformly increasing depth minimizes curvature 2D ? 3D 3D http://graphics.ics.uci.edu

**Networks of curves Depth interpolation** • We know: • Projection parameters • X,Y screen coordinates along curve • Depth at endpoints of curve (Z0,Z1) • Need to find intermediate Z • Our approximation: • Find extremal deviation points • These will be our control points • Uniformly distribute Z values • Split segment at those points • Recursively repeat until curve segment is close to straight line • Similar to Casteljau subdivision Z0 Z0+(Z1-Z0)*0.25 Z0+(Z1-Z0)*0.75 Z0+(Z1-Z0)*0.5 Z1 http://graphics.ics.uci.edu

**Talk outline** • Problem description • Networks of Curves • Depth interpolation • Surface Generation • Normals • Topological triangulation • Vertex relocation • Results • Demo • Conclusion, Future Work and Q/A http://graphics.ics.uci.edu

**Surface generation** • Two steps problem • Identification of surface patches • Surface generation (skinning) • We focus on skinning • Manifolds without boundaries http://graphics.ics.uci.edu

**Surface generationNormals** • Normals are crucial for surface generation • Meaning of a vertex normal • Perpendicular direction to surface • Why is it a problem? • Need to calculate normal without knowing the surface • In current implementation, we guess and let the user fix (flip/rotate) • More work should go on this • SLERP (quaternions) for normal interpolation along curves http://graphics.ics.uci.edu

**Surface generationTopological triangulation** • Why the name? • The location doesn’t matter • Just the connectivity • How is it done? • Layers of triangles reducing boundary complexity • Finish with triangle fan • Enough for convex, planar faces w/ sharp edges • Split non-convex polygons http://graphics.ics.uci.edu

**Surface generationVertex relocation (2D diagram)** • What if we want round edges? • No sharp features • Need to relocate generated vertices • To minimize surface distortion • Repeat as desired: • Quadric error for each non-fixed vertex • Relocate vertices to minimize error • Recalculate normals • The order of these updates is crucial • Vertex dependencies from boundary to center Etc… http://graphics.ics.uci.edu

**Talk outline** • Problem description • Networks of Curves • Depth interpolation • Surface Generation • Normals • Topological triangulation • Vertex relocation • Results • Demo • Conclusion, Future Work and Q/A http://graphics.ics.uci.edu

**Results** http://graphics.ics.uci.edu

**Talk outline** • Problem description • Networks of Curves • Depth interpolation • Surface Generation • Normals • Topological triangulation • Vertex relocation • Results • Demo • Conclusion, Future Work and Q/A http://graphics.ics.uci.edu

**Demo** • Disclaimer: • Normal calculations • Patch identification • Numerical stability of the surface generation • Cross your fingers… http://graphics.ics.uci.edu

**Talk outline** • Problem description • Networks of Curves • Depth interpolation • Surface Generation • Normals • Topological triangulation • Vertex relocation • Results • Demo • Conclusion http://graphics.ics.uci.edu

**Summary** • Curvature minimizing depth interpolation • Simple surface generation scheme • Still work in progress! http://graphics.ics.uci.edu

**Future work** • Automatic identification of surface patches • Fix numerical stability issues • Gesture recognition to simplify GUI • Selectively highlight and fade out regions of the sketch • Reduce the overlapping webs effect • Automatic pre-visualization • Better user feedback http://graphics.ics.uci.edu

**Acknowledgements** • ICS Computer Graphics Lab @ UCI • http://graphics.ics.uci.edu • Google Summer of Code program • http://code.google.com • Blender Foundation • http://blender3d.org http://graphics.ics.uci.edu

**The End** • Thank you! • Questions? • Comments? • Suggestions? http://graphics.ics.uci.edu