Each of the examples were generated by compiling a global description
in Origami Shape Language and simulating the execution of the local cell
program on thousands of cells, with average local neighborhoods of 15 to
20 cells. The cells are randomly but
smoothly distributed, where smooth implies that cells are prevented
from overlapping arbitrarily. The cells are randomly placed, have identical
programs and the initial conditions consist of the four corners and edges
(c1 c2 c3 c4, e12 e23 e34 e14, clockwise from top left).
Origami Cup:
(seepthru #t) (define d1 (fold-onto e23 e12 "green")) (execute-fold 'd1) (define d2 (fold-onto e12 d1
"cyan"))
(define p2 (intersect d3 e12))
(seepthru #f)
Origami Airplane:
(define r3 (fold-lontol r2 cntr "cyan"))
(define r4 (fold-lontol r3 cntr "magenta"))
(execute-fold cntr)
|
![]() ![]() (non animated cup sequence)
(non animated airplane sequence)
|
![]() ![]() ![]() ![]() |
GRID PROGRAM: (define v1 (fold-onto e14 e23
"green"))
FIGURE: In the top row, processors are placed randomly
and independently. In the bottom row, processors are assumed to have some
size and the attempt is made not overlap, thus smoothing the distribution.
|
The robustness with which these patterns form, results from the properties of gradients. Gradients are an extremely robust mechanism - not only do they provide on average a good estimate of euclidean distance (when average local neighborhood size > 15) but they are also robust to communication failures do not depend on synchronicity of processors. The errors in the distance estimates are on average radially symmetric and not correlated with distance from the source.
The geometric properties of the pattern, however, are a result of the way the gradients are combined. When gradients from two points are combined there is an interference pattern that results in regions of high and low error. In particular the error is the least along the bisector. Axioms 2 and 3 take advantage of this structure and minimize error by operating along that bisector, thus producing creases that are visually straight (but not necessarily continuous because processors may be missing along the actual bisector). Thus the global language produces straight folds with high accuracy (see Robustness). AI Memo 1666 provides a an extensive analysis of gradients, both theoretical as well as via simulation.
(a)
(b)
(c)
INSERT MOTH WING PIX (d) ????
This idea can be used to compactly program large scale geometric patterns - tesselations, triangulations, grids, etc. The sheet is first folded into a base tile shape (square, parallelogram, triangle) and then the pattern is folded onto the tile. When the sheet is unfolded the pattern appears in each tile as a result of seepthru. This is a very compact way of reprsenting large scale texture. The triangulation in (e) is produced by folding the sheet into a small triangle and then unfolding; (f) is a result of creating a pattern on that small traingle; (g) is the result of folding a sheet into a square of one fourth size and then making a cup - resulting in a tesselation pattern of cups.
(e)
(f)
(g)
NOTE: some interesting results in origami by Maekawa that show that many of the origami shapes when unfolded are tesselations of the same basic units. In fact he uses this understanding of tiling and tesselations to create new origami shapes. This might be a compact way of first generating the tiled crease pattern and then folding the shape along the precreases, maybe...