Download presentation
Presentation is loading. Please wait.
Published byKevin Chase Modified over 9 years ago
1
CAD Tools for Creating 3D Escher Tiles Mark Howison and Carlo H. Séquin University of California, Berkeley Computer-Aided Design and Applications June 11, 2009
2
Overview 2 2½D Tilings Constrained Delaunay Triangulation in Java Mesh-Cutting Algorithm Visual Debugging 3D Tilings User Interface Issues
3
Introduction 3 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 3D-space?
4
Tiling on 2-manifolds 4 In the plane In the Poincaré disk On the sphere On a genus-3 “Tetrus” surface
5
2½D Tilings 5 Warm-up exercise before tackling full 3D. Extruded 2D tilings form layers in 3-space. Trivial case: extrude vertically, edit height field. Fancier case: choose an “offset” between adjacent layers.
6
Constrained Delaunay Triangulation in Java 6 Meshes provide boundary representations of tiles. Delaunay triangulation produces aesthetically pleasing meshes with minimal sliver triangles. Tile decorations can be specified as constraints. 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. Users are adding and moving vertices and constrained edges. Developed our own library in Java! Open-source (BSD license), available from Google code: http://code.google.com/p/jmescher
7
jmEscher: CDT Library for Java 7 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).
8
Locating Insertion Sites 8 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.
9
Mesh-Cutting Algorithm 9 Need to form the bottom face of an offset 2½D tile. Use a “cookie cutter” to truncate the geometry in the underlying landscape.
10
Mesh-Cutting Algorithm (Cont’d) 10 1. User specifies lateral offset. 2. Construct cookie cutter as a boundary “shell” filled with temporary edges. o Walk along the boundary to identify intersections with the underlying landscape. o Extend the landscape as needed by loading additional mesh copies. 1. 2.
11
Mesh-Cutting Algorithm (Cont’d) 11 3. Maintain a list of edge fragments that lie inside the cookie cutter. o Test for intersections among fragments. o After the boundary walk, add all fragments to the cookie cutter as constrained edges. 4. Perform a flood search to find the remaining geometry inside the cookie cutter. 3. 4.
12
Visual Debugging 12 Animation and visualization help identify bugs and difficult or unexpected cases in geometric algorithms. We implement visual “breakpoints” in Java2D by overriding the repaint mechanism. Can insert breakpoints in mid-algorithm. Can specify which geometric features to highlight.
13
Results: 2½D Bird Tile 13
14
Exploring two fundamental domains: #1: Truncated octahedron, derived from the body-centered cubic lattice. 3D Tilings 14
15
Exploring two fundamental domains: #2: Rhombic dodecahedron, based on the densest sphere packing. 3D Tilings 15
16
Overview of 3D Editing Interface 16 Phase I: Individual “panes” of the 3D tile are Delaunay triangulated. Vertices can be moved in 2D within pane interior. Boundary vertices cannot be moved yet, since this would create non- planar panes. Phase II: All vertices can be moved in 3D: 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.
17
Occlusion is an obstacle to free-form editing of 3D tiles. 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 17
18
User Interface Issues (Cont’d) 18 3D domains can be scaled/skewed and remain space-filling. What is the easiest way to manipulate this affine transform? Created a widget with 9 control points, each restricted to one degree of freedom. Widget maintains same orientation as camera.
19
User Interface Issues (Cont’d) 19 3D tilings can have complicated interlocking features. Nearest neighbors can be scaled/translated to reveal the interface between adjoining tiles. Scaled to 85% + translated 0.6 tile lengths away
20
Results: 3D Fish Tile 20
21
Conclusion 21 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 2D tilings from Escher’s sketchbook. 3D cubic lattice tiles are more difficult to design. The entire editable surface is constrained to fit seamlessly with adjacent tiles. In the 2D case, only the 1D border is subject to symmetry constraints, while the interior can be decorated freely There is no Escher sketchbook for 3D. Artists needed!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.