Dragon kite, explained · celworld

Dragon kite

.cel · 26 lines · 85 shapes · 11 joints · seed 1

Dragon kite is 16 shape lines that grow into 85 shapes, with 5 genes the seed draws, 4 motions on 2 joints.

an original festival kite: a round dragon head with the house face, horns, whiskers and a scalloped frill, a tail of paper discs with little feet that streams sideways and ripples in the wind, and a string down to a spool on the ground

seed

From the ground to each spot

Each part rides the one before it, so whoever sits at the end feels every motion at once.

Always on

L1

Dragon kite

asset
1asset dragon_kite "Dragon kite" complexity=6

The asset line names the model dragon_kite, titled Dragon kite. complexity=6 holds it to 140 shapes, 10,000 triangles and 5 draw calls; going past any of them is an error.

tier
c6
shapes cap
140
triangles cap
10,000
seed
1
L5

H

let
5let H = 2.6..3.3

A gene, H: a value drawn between 2.6 and 3.3 for every seed. This seed picked 3.118. Every line that reads H follows it.

this seed
3.118
draws
from the seed
L6

N

let
6let N = int(8..12)

A gene, N: a whole number drawn from 8..12. This seed picked 10.

this seed
10
draws
from the seed
L7

hide

let
7let hide = cherry:3|tangerine:2|teal|cobalt|grape

A gene, hide: a weighted pick from cherry (3 in 8), tangerine (2 in 8), teal, cobalt or grape. This seed picked teal.

this seed
teal
draws
from the seed
L8

trim

let
8let trim = sunflower:3|white|lime|mint

A gene, trim: a weighted pick from sunflower (3 in 6), white, lime or mint. This seed picked sunflower.

this seed
sunflower
draws
from the seed
L9

paper

let
9let paper = cream:2|white|peach

A gene, paper: a weighted pick from cream (2 in 4), white or peach. This seed picked cream.

this seed
cream
draws
from the seed
L12

head

ball
12ball head at=(0, H, 0) r=(.36, .32, .26) color=hide joint

A ball, an ellipsoid centred on the origin. It stands at the model's origin. It is a joint, and line 35 bobs ±0.06 m and line 36 rocks ±3°: everything on it moves too.

the head

r
0.36, 0.32, 0.26
color
teal
L13

look

face
13face look on=head eyes=round:2|happy mouth=grin:2|open size=.2 spacing=30 eyeY=12 mouthY=-26 mouthW=.5 iris=#2a2a3a brows=hide*.6 detail=.6

A face, a house face (unlit, never inked) on the parent surface: eyes, mouth, blush, brows. It rides head, at its origin.

eyes
happy
mouth
grin
size
0.2
spacing
30
eyeY
12
mouthY
−26
mouthW
0.5
iris
inkDark
brows
bottle
detail
0.6
L14

snout

ball
14ball snout on=head surf=(0, -18) lift=-.08 r=(.2, .11, .13) color=hide*1.06

A ball, an ellipsoid centred on the origin. It sticks to the surface of head at (0, -18) (azimuth, elevation).

lift
-.08
r
0.2, 0.11, 0.13
color
teal
L15

nostril

ball
15ball nostril on=snout surf=(18, 30) decal mirror lift=-.01 r=(.025, .02, .015) color=hide*.55 ink=none segs=6 rings=4

A ball, an ellipsoid centred on the origin. It sticks to the surface of snout at (18, 30) (azimuth, elevation), lying flat on it. 2 copies and a mirrored twin across the parent’s centre line. It draws no outline.

copies
2
lift
-.01
r
0.025, 0.02, 0.015
color
bottle
ink
none
segs
6
rings
4
L16

horn

cone
16cone horn on=head surf=(26, 52) mirror rot=(-14, 0, 8) h=.24 r=.055 color=trim segs=8

A cone, a cone (or frustum with r2), base at the origin. It sticks to the surface of head at (26, 52) (azimuth, elevation). 2 copies and a mirrored twin across the parent’s centre line.

copies
2
rot
(-14, 0, 8)
h
0.24
r
0.055
color
sunflower
segs
8
L17

whisker

tube
17tube whisker on=snout surf=(70, -10) mirror pts=[0,0,0 .1,-.03,.06 .22,-.12,.04 .3,-.2,-.04] r=(.016, .006) smooth color=trim sides=5

A tube, a round tube along points (in the part frame): handles, strings, tails, pipes. It sticks to the surface of snout at (70, -10) (azimuth, elevation). 2 copies and a mirrored twin across the parent’s centre line.

copies
2
pts
[0,0,0 .1,-.03,.06 .22,-.12,.04 .3,-.2,-.04]
r
0.016, 0.006
smooth
yes
color
sunflower
sides
5
L18

frill

slab
18slab frill on=head at=(0, .02, -.14) pts=[0,.66 -.12,.42 -.36,.56 -.33,.29 -.6,.27 -.44,.06 -.65,-.09 -.4,-.18 -.5,-.43 -.24,-.37 -.19,-.63 0,-.44 .19,-.63 .24,-.37 .5,-.43 .4,-.18 .65,-.09 .44,.06 .6,.27 .33,.29 .36,.56 .12,.42] t=.04 color=trim edge=hide

A slab, a flat outline (x,y points) with thickness in z and rounded rims: signs, sails, wings, fins, leaves. It rides head, at (0, .02, -.14) in its frame.

pts
[0,.66 -.12,.42 -.36,.56 -.33,.29 -.6,.27 -.44,.06 -.65,-.09 -.4,-.18 -.5,-.43 -.24,-.37 -.19,-.63 0,-.44 .19,-.63 .24,-.37 .5,-.43 .4,-.18 .65,-.09 .44,.06 .6,.27 .33,.29 .36,.56 .12,.42]
t
0.04
color
sunflower
edge
teal
L21

seg

rod
21rod seg x=N on=head at=(.3, -.04, -.16) chain=(.3, -.015, 0) rot=(0, 3, -4) scale=.95 to=(.3, -.015, 0) r=.012 sides=5 color=hide*.7 ink=thin joint

A rod, a straight bar from the origin to to, flat ends: poles, legs, rails, spokes. It rides head, at (.3, -.04, -.16) in its frame. A chain of 10, each link riding the last. It is a joint, and line 33 sways ±7° and line 34 rocks ±4°: everything on it moves too. Its outline is half width.

the tail: a cord of links that ride each other, shrinking as they go, each with a paper disc

copies
10
rot
(0, 3, -4)
scale
.95
to
0.3, −0.015, 0
r
0.012, 0.012
sides
5
color
bottle
ink
thin
L22

disc

cyl
22cyl disc on=seg at=(0, 0, -.025) rot=(90, 0, 0) h=.05 r=.25 round=.012 color=hide cap=sel(parent.i - 2*floor(parent.i/2), paper, trim) segs=12

A cyl, a cylinder (or tapered drum) with rounded edges, base at the origin. It rides seg, at (0, 0, -.025) in its frame. There is a set on each of the 10 seg copies, 10 in all.

copies
10
rot
(90, 0, 0)
h
0.05
r
0.25
round
0.012
color
teal
cap
cream
segs
12
L23

tuft

puff
23puff tuft on=seg at=(0, .27, 0) r=(.05, .07, .09) color=trim noise=.04 segs=7 rings=4

A puff, a foliage blob: ball with a darker underside band (color × .86) and wobble 0.06. It rides seg, at (0, .27, 0) in its frame. There is a set on each of the 10 seg copies, 10 in all.

copies
10
r
0.05, 0.07, 0.09
color
sunflower
noise
0.04
segs
7
rings
4
L24

foot

rod
24rod foot x2 on=seg row=(0, 0, .26) at=(0, -.2, 0) to=(-.04, -.16, 0) r=(.014, .01) sides=5 color=trim

A rod, a straight bar from the origin to to, flat ends: poles, legs, rails, spokes. It rides seg, at (0, -.2, 0) in its frame. 2 copies in a centred row, (0, 0, .26) apart. There is a set on each of the 10 seg copies, 20 in all.

copies
20
to
−0.04, −0.16, 0
r
0.014, 0.01
sides
5
color
sunflower
L25

toe

ball
25ball toe on=foot at=end r=.03 color=trim segs=5 rings=3

A ball, an ellipsoid centred on the origin. It sits at the end of foot. There is a set on each of the 20 foot copies, 20 in all.

copies
20
r
0.03, 0.03, 0.03
color
sunflower
segs
5
rings
3
L26

tassel

cone
26cone tassel on=seg at=(.3, -.015, 0) rot=(0, 0, -90) h=.12 r=.05 color=trim if=chance(.2)

A cone, a cone (or frustum with r2), base at the origin. It rides seg, at (.3, -.015, 0) in its frame. Only when chance(.2). There is a set on each of the 10 seg copies, 2 in all.

copies
2
rot
(0, 0, -90)
h
0.12
r
0.05
color
sunflower
L29

string

tube
29tube string on=head at=(0, -.26, .05) pts=[0,0,0 -.25,-(H-.3)*.5,.35 -.5,-(H-.3)*.92,.62 -.52,-(H-.3)+.02,.66] r=.006 smooth sides=4 color=paper ink=thin

A tube, a round tube along points (in the part frame): handles, strings, tails, pipes. It rides head, at (0, -.26, .05) in its frame. Its outline is half width.

the string and the spool

pts
[0,0,0 -.25,-(H-.3)*.5,.35 -.5,-(H-.3)*.92,.62 -.52,-(H-.3)+.02,.66]
r
0.006, 0.006
smooth
yes
sides
4
color
cream
ink
thin
L30

spool

cyl
30cyl spool at=(-.52, 0, .7) h=.08 r=.1 round=.02 color=oak segs=12

A cyl, a cylinder (or tapered drum) with rounded edges, base at the origin. It stands at the model's origin.

h
0.08
r
0.1
round
0.02
color
oak
segs
12
L31

reel

cyl
31cyl reel on=spool at=(0, .08, 0) h=.06 r=.06 color=paper segs=10

A cyl, a cylinder (or tapered drum) with rounded edges, base at the origin. It rides spool, at (0, .08, 0) in its frame.

h
0.06
r
0.06
color
cream
segs
10
L33

seg sways ±7°

anim
33anim seg ry sin amp=7 hz=.45 stagger=.11

seg (all 10 copies) turns side to side by ±7°, once every 2.2 s (.45 Hz). Each copy runs 0.11 of a cycle behind the one before, so they move in turn. Everything on seg goes with it.

channel
ry
wave
sin
rate
.45 Hz
amount
±7°
stagger
0.11
L34

seg rocks ±4°

anim
34anim seg rz sin amp=4 hz=.3 stagger=.08

seg (all 10 copies) rocks left and right by ±4°, once every 3.3 s (.3 Hz). Each copy runs 0.08 of a cycle behind the one before, so they move in turn. Everything on seg goes with it.

channel
rz
wave
sin
rate
.3 Hz
amount
±4°
stagger
0.08
L35

head bobs ±0.06 m

anim
35anim head py sin amp=.06 hz=.3

head rises and falls by ±0.06 m, once every 3.3 s (.3 Hz). Everything on head goes with it.

channel
py
wave
sin
rate
.3 Hz
amount
±0.06 m
L36

head rocks ±3°

anim
36anim head rz sin amp=3 hz=.3 phase=.25

head rocks left and right by ±3°, once every 3.3 s (.3 Hz). It starts 0.25 of a cycle in. Everything on head goes with it.

channel
rz
wave
sin
rate
.3 Hz
amount
±3°