CAD Tools for Creating 3 D Escher Tiles

  • Slides: 21
Download presentation
CAD Tools for Creating 3 D Escher Tiles Mark Howison and Carlo H. Séquin

CAD Tools for Creating 3 D Escher Tiles Mark Howison and Carlo H. Séquin University of California, Berkeley Computer-Aided Design and Applications June 11, 2009

Overview 2½D Tilings Constrained Delaunay Triangulation in Java Mesh-Cutting Algorithm Visual Debugging 3 D

Overview 2½D Tilings Constrained Delaunay Triangulation in Java Mesh-Cutting Algorithm Visual Debugging 3 D Tilings User Interface Issues 2

Introduction M. C. Escher popularized intricately decorated isohedral tilings. Planar tilings can be designed

Introduction M. C. Escher popularized intricately decorated isohedral tilings. Planar tilings can be designed with available tools on the web. Specialized CAD tools help address the challenges of tiling other 2 -manifolds. What are interesting tilings of 3 D-space? 3

Tiling on 2 -manifolds In the plane On the sphere In the Poincaré disk

Tiling on 2 -manifolds In the plane On the sphere In the Poincaré disk On a genus-3 “Tetrus” surface 4

2½D Tilings Warm-up exercise before tackling full 3 D. Extruded 2 D tilings form

2½D Tilings Warm-up exercise before tackling full 3 D. Extruded 2 D tilings form layers in 3 -space. 5 Trivial case: extrude vertically, edit height field. Fancier case: choose an “offset” between adjacent layers.

Constrained Delaunay Triangulation in Java Meshes provide boundary representations of tiles. Could not find

Constrained Delaunay Triangulation in Java Meshes provide boundary representations of tiles. Could not find existing CDT library for Java. Many available for C, such as Jonathan Shewchuk’s Triangle. Want interactive triangulation, not batch-mode processing. Delaunay triangulation produces aesthetically pleasing meshes with minimal sliver triangles. Tile decorations can be specified as constraints. Users are adding and moving vertices and constrained edges. Developed our own library in Java! 6 Open-source (BSD license), available from Google code: http: //code. google. com/p/jmescher

jm. Escher: CDT Library for Java Delaunay triangulation uses Lawson’s (1977) incremental insertion algorithm,

jm. Escher: CDT Library for Java Delaunay triangulation uses Lawson’s (1977) incremental insertion algorithm, backed by a half-edge data structure. Typically O(n log n): Performance is limited by how well you can locate which triangle contains the insertion site. Uses edge flips to turn a non-Delaunay triangulation into a Delaunay one. Constrained edge insertion uses algorithms by Anglada (1997). Supports non-convex boundaries and interactive relocation of boundary vertices. Robustness is provided by floating-point filters and arbitrary precision arithmetic (apfloat Java package). 7

Locating Insertion Sites Heuristic: use last inserted site as the search origin, since designer

Locating Insertion Sites Heuristic: use last inserted site as the search origin, since designer will often add vertices in localized groups. Easy if you have a convex boundary: Walk along the triangles! For non-convex boundaries, we load copies of the neighboring tiles to fill concavities as necessary. 8

Mesh-Cutting Algorithm Need to form the bottom face of an offset 2½D tile. Use

Mesh-Cutting Algorithm Need to form the bottom face of an offset 2½D tile. Use a “cookie cutter” to truncate the geometry in the underlying landscape. 9

Mesh-Cutting Algorithm (Cont’d) 1. User specifies lateral offset. 2. Construct cookie cutter as a

Mesh-Cutting Algorithm (Cont’d) 1. User specifies lateral offset. 2. Construct cookie cutter as a boundary “shell” filled with temporary edges. o o 10 Walk along the boundary to identify intersections with the underlying landscape. Extend the landscape as needed by loading additional mesh copies. 1. 2.

Mesh-Cutting Algorithm (Cont’d) Maintain a list of edge fragments that lie inside the cookie

Mesh-Cutting Algorithm (Cont’d) Maintain a list of edge fragments that lie inside the cookie cutter. 3. o o 4. 11 Test for intersections among fragments. After the boundary walk, add all fragments to the cookie cutter as constrained edges. Perform a flood search to find the remaining geometry inside the cookie cutter. 3. 4.

Visual Debugging Animation and visualization help identify bugs and difficult or unexpected cases in

Visual Debugging Animation and visualization help identify bugs and difficult or unexpected cases in geometric algorithms. We implement visual “breakpoints” in Java 2 D by overriding the repaint mechanism. 12 Can insert breakpoints in mid-algorithm. Can specify which geometric features to highlight.

Results: 2½D Bird Tile 13

Results: 2½D Bird Tile 13

3 D Tilings Exploring two fundamental domains: 14 #1: Truncated octahedron, derived from the

3 D Tilings Exploring two fundamental domains: 14 #1: Truncated octahedron, derived from the body-centered cubic lattice.

3 D Tilings Exploring two fundamental domains: 15 #2: Rhombic dodecahedron, based on the

3 D Tilings Exploring two fundamental domains: 15 #2: Rhombic dodecahedron, based on the densest sphere packing.

Overview of 3 D Editing Interface Phase I: Individual “panes” of the 3 D

Overview of 3 D Editing Interface Phase I: Individual “panes” of the 3 D tile are Delaunay triangulated. Vertices can be moved in 2 D within pane interior. Boundary vertices cannot be moved yet, since this would create nonplanar panes. Phase II: All vertices can be moved in 3 D: 16 Last selected point defines an extrusion vector. Can move points along extrusion vector or parallel to the edit pane. Local edits available by trisecting faces, but no Delaunay guarantee. Limited “roll-back” to Phase I.

User Interface Issues Occlusion is an obstacle to free-form editing of 3 D tiles.

User Interface Issues Occlusion is an obstacle to free-form editing of 3 D tiles. 17 Because of symmetry, edits in the current view will also change opposite faces. Creating a convex feature (e. g. a fish fin) creates a corresponding concave feature (e. g. eye socket) on the opposite side. Dual cameras show pairings convex/concave.

User Interface Issues (Cont’d) 3 D domains can be scaled/skewed and remain space-filling. What

User Interface Issues (Cont’d) 3 D domains can be scaled/skewed and remain space-filling. What is the easiest way to manipulate this affine transform? 18 Created a widget with 9 control points, each restricted to one degree of freedom. Widget maintains same orientation as camera.

User Interface Issues (Cont’d) 3 D tilings can have complicated interlocking features. Nearest neighbors

User Interface Issues (Cont’d) 3 D tilings can have complicated interlocking features. Nearest neighbors can be scaled/translated to reveal the interface between adjoining tiles. Scaled to 85% 19 Scaled to 85% + translated 0. 6 tile lengths away

Results: 3 D Fish Tile 20

Results: 3 D Fish Tile 20

Conclusion Specialized CAD tools make it possible to design and fabricate space-filling Escher tiles.

Conclusion Specialized CAD tools make it possible to design and fabricate space-filling Escher tiles. In 2½D, we can draw on an existing “vocabulary” of 2 D tilings from Escher’s sketchbook. 3 D cubic lattice tiles are more difficult to design. The entire editable surface is constrained to fit seamlessly with adjacent tiles. 21 In the 2 D case, only the 1 D border is subject to symmetry constraints, while the interior can be decorated freely There is no Escher sketchbook for 3 D. Artists needed!