Title: CAD Tools for Creating 3D Escher Tiles
1CAD 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
2Overview
- 2½D Tilings
- Constrained Delaunay Triangulation in Java
- Mesh-Cutting Algorithm
- Visual Debugging
- 3D Tilings
- User Interface Issues
3Introduction
- 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?
4Tiling on 2-manifolds
In the plane
On the sphere
On a genus-3 Tetrus surface
In the Poincaré disk
52½D Tilings
- 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.
6Constrained Delaunay Triangulation in Java
- 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
Shewchuks 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
codehttp//code.google.com/p/jmescher
7jmEscher CDT Library for Java
- Delaunay triangulation uses Lawsons (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).
8Locating 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-convexboundaries, we loadcopies of
theneighboring tiles tofill concavities
asnecessary.
9Mesh-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.
10Mesh-Cutting Algorithm (Contd)
- User specifies lateral offset.
- Construct cookie cutter as a boundary shell
filled with temporary edges. - Walk along the boundary to identify intersections
with the underlying landscape. - Extend the landscape as needed by loading
additional mesh copies.
1.
2.
11Mesh-Cutting Algorithm (Contd)
- Maintain a list of edge fragments that lie inside
the cookie cutter. - 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.
12Visual Debugging
- Animation and visualization help identify bugs
and difficult or unexpected cases in geometric
algorithms. - We implement visual breakpoints in Java2D by
overriding the repaintmechanism. - Can insert breakpointsin mid-algorithm.
- Can specify whichgeometric featuresto highlight.
13Results 2½D Bird Tile
143D Tilings
- Exploring two fundamental domains
- 1 Truncated octahedron, derived from
the body-centered cubic lattice.
153D Tilings
- Exploring two fundamental domains
- 2 Rhombic dodecahedron, based on the
densest sphere packing.
16Overview of 3D Editing Interface
- 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.
17User Interface Issues
- 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 pairingsconvex/concave.
18User Interface Issues (Contd)
- 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.
19User Interface Issues (Contd)
- 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
Scaled to 85
20Results 3D Fish Tile
21Conclusion
- 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 Eschers 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!