Celtic

Steven Janke

October 2017

Steven Janke (Seminar) Celtic Knots October 2017 1 / 32 Typical Celtic

Steven Janke (Seminar) Celtic Knots October 2017 2 / 32 Modern

Steven Janke (Seminar) Celtic Knots October 2017 3 / 32 Sutton Hoo Buckle (early 7th century)

Steven Janke (Seminar) Celtic Knots October 2017 4 / 32 Lindesfarne Gospels

1. Written by Bishop Eadfirth 2. Produced between 698 and 722 3. Four gospels plus Canon Tables 4. 518 pages (31 decorated); New cover commissioned in 1853 5. Currently in British Library (since 1753)

Steven Janke (Seminar) Celtic Knots October 2017 5 / 32 St. John and initial page

Steven Janke (Seminar) Celtic Knots October 2017 6 / 32 close-up

Steven Janke (Seminar) Celtic Knots October 2017 7 / 32 Book of Durrow

Steven Janke (Seminar) Celtic Knots October 2017 8 / 32 Knots and Links

Definition of Knot A Knot is an embedding of the circle in three dimensional Euclidean space.

Knot Link

Steven Janke (Seminar) Celtic Knots October 2017 9 / 32 Plait Algorithm

1. George Bain (Art teacher, 1950’s) developed methods (not quite algorithms) using plaits. 2. Some evidence from pin pricks on vellum that grids were used. 3. For an R x C knot, draw a 2R x 2C grid. 4. Starting at first node to the right of upper left corner, draw bands using only diagonals. 5. Fill in curves appropriately.

Steven Janke (Seminar) Celtic Knots October 2017 10 / 32 Plait math

1. A band is a closed loop. 2. If the grid is 2R x 2C, then the number of bands is gcd(R, C). 3. Each band reflects off the boundary, but must hit the top, bottom, left, and right. 4. Total length of all bands is 4RC. 4RC 5. Length of any band is gcd(R,C) . 6. Whether an intersection node is on an odd or even row determines over or under.

Steven Janke (Seminar) Celtic Knots October 2017 11 / 32 Unfolding a Band

Steven Janke (Seminar) Celtic Knots October 2017 12 / 32 Parametric Curves

Describing a curve given coordinates as functions:

P(t) = (x(t), y(t)) x(t) = t + 3 y(t) = 2 − 5t =⇒ Line :(y = −5x + 17)

Describing a line given two points P0, P1:   P(t) = (1 − t)P0 + tP1 = P0 − t(P1 − P0)

Short hand for:   (x(t), y(t)) = (1 − t)x0 + t · x1, (1 − t)y0 + t · y1

Steven Janke (Seminar) Celtic Knots October 2017 13 / 32 Cubic Bezier Curves

P(t) = b0(t)P0 + b1(t)P1 + b2(t)P2 + b3(t)P3

3 0 2 b0(t) = (1 − t) b0(t) = −3(1 − t) 2 0 2 b1(t) = 3t(1 − t) b1(t) = 3(1 − t) − 6t(1 − t) 2 0 2 b2(t) = 3t (1 − t) b2(t) = 6t(1 − t) − 3t 3 0 2 b3(t) = t b3(t) = 3t

 3 Note: b0(t) + b1(t) + b2(t) + b3(t) = (1 − t) + t = 1

Steven Janke (Seminar) Celtic Knots October 2017 14 / 32 Cubic Bezier with Control Points

Steven Janke (Seminar) Celtic Knots October 2017 15 / 32 Properties of Bezier Curves

1. Blending functions sum to one. (Bernstein polynomials.) 2. Find curve points by linear combinations of two points. (Casteljau algorithm.) 3. Curve stays in convex hull of control points. 4. Tangents at end points are line segments between control points. 5. Curve can be easily subdivided.

Steven Janke (Seminar) Celtic Knots October 2017 16 / 32 Differential Geometry of Plane Curves

Curve: P(t) = (x(t), y(t)) =⇒ P0(t) = (x0(t), y 0(t))

R t p 0 2 0 2 R t 0 Arc Length: s(t) = a (x (u) + y (u) )du = a kP (u)kdu

~ ~ P0(t) ~ 0 0 ~ Unit tangent vector T (t): T (t) = kP0(t)k =⇒ P (t) = s (t)T (t) Unit normal vector N~ (t): T~ 0(t) = s0(t)κ(t)N~ (t) (where κ(t) is curvature)

Parallel Curve: Q(t) = P(t) + rN~ (t)

Steven Janke (Seminar) Celtic Knots October 2017 17 / 32 Program Design

1. A Knot is a Grid of Nodes plus methods: findBands, buildPaths, drawPaths, etc. 2. Canvas2D has paintComponent method and listens for mouse clicks. 3. DisplayControls is the GUI with all the options coded. 4. Bands are arrays of Nodes summarized as strings HUVVHVVVHUVHVU (unblocked nodes and blocked nodes). 5. Patterns in strings (VVHVVVH) between unblocked nodes determine curves forming Path2D. 6. Bands converted to Path2D and to arrays of Segments which are used to render intersections.

Steven Janke (Seminar) Celtic Knots October 2017 18 / 32 Grammars

Production rules for Simple Sentence (Non-terminals are in capitals and terminals are in lower case.)

S → the ADJECTIVE NOUN VERB NOUN → car, train, cat ADJECTIVE → ADJECTIVE ADJECTIVE ADJECTIVE → red, big, soft VERB → moved, purred, stopped

Shape Grammars The non-terminals are sets of graphics elements and the terminals are single graphics elements.

Steven Janke (Seminar) Celtic Knots October 2017 19 / 32 Shape Grammar for Celtic Knots

Steven Janke (Seminar) Celtic Knots October 2017 20 / 32 Derivation using Shape Grammar

ensured because all of the rules maintain the local closure of a design. As a result, any design that is

generated from a closed initial shape will also be closed.

Figure 21 – Generating a Celtic knotwork pattern

The simple procedure of “growing” knotwork patterns, as illustrated in figure 21, offers an

elegant new way to conceptualise and generate knotwork designs. It can produce a range of complex Steven Janke (Seminar) designs, including historical examples ofCeltic the style. For Knots example, Allen (1904) defined eight elementary October 2017 21 / 32 knots which form the basis of nearly all of the knotwork patterns used in Celtic arts, and Bain (1990)

defined an additional two knots. Each of these can be generated using the Celtic knotwork grammar,

and as a result, so can the majority of historical examples. Figure 22 illustrates a selection of six

designs that were generated using the grammar. Five of these designs are recreations of patterns that

were used as ornamentation over a century ago, and the sixth design is an original creation. Simple Architectural Grammar

Steven Janke (Seminar) Celtic Knots October 2017 22 / 32 Example Houses

Steven Janke (Seminar) Celtic Knots October 2017 23 / 32 City Generation (Pompeii)

Steven Janke (Seminar) Celtic Knots October 2017 24 / 32 Grid-based Celtic Grammar

A. Start with grid and random selection of blocked nodes. B. Find bands and represent as strings like UVHUHVHUVVU. C. Production rules: (abridged)

S → band string UU → straight UxU → regular UVHU, UHVU → corner || pcurve + pcurve UVVU, UHHU → inflected UV...VU, UH...HU → quarter + straight + quarter UVHVU, UHVHU → loop regular regular → quarter + straight + quarter ...VHV..., ...HVH... → flexCorner

Steven Janke (Seminar) Celtic Knots October 2017 25 / 32 Zoomorphic knots

Steven Janke (Seminar) Celtic Knots October 2017 26 / 32 Spiral Patterns

Steven Janke (Seminar) Celtic Knots October 2017 27 / 32 Kolams (Tamil)

Steven Janke (Seminar) Celtic Knots October 2017 28 / 32 Kolams (Tamil)

Steven Janke (Seminar) Celtic Knots October 2017 29 / 32 Islamic design

Steven Janke (Seminar) Celtic Knots October 2017 30 / 32 Islamic design

Steven Janke (Seminar) Celtic Knots October 2017 31 / 32 References

1. Bain, George - Celtic Art: The methods of construction, 1951 2. Hull, Derek - Celtic & Anglo-Saxon Art: Geometric Aspects, 2003 3. Janke, Steven - Mathematical Structures for Computer Graphics, 2015

Steven Janke (Seminar) Celtic Knots October 2017 32 / 32