The motion language

A move is a program: lines of words, one after another, each what the body does next ("bend right knee 35", "step left foot forward 1 ft", "walk"). It plays on a real 3D character with gravity: the lowest foot holds the body, a planted foot stays where it came down, a jump flies as long as its height needs, and a fall, a trip or a stumble is told on its line. It is a defined language: every statement has one form, its words in a fixed order, and a line in no form is an error at the word where it goes wrong, with the form written right. The same words work for a person writing a move and for an AI. Learn it in ten short lessons, try it at /motion/, or write a scene of several characters at /motion/scene/. Below is every word the reader knows, for each kind of body, with the blocks and the library of moves written in the language itself.

A line

  • Every statement has one form, its words in a fixed order. A line in no form is an error at the word where it goes wrong (its line and column, and the form written right), and plays nothing: no word is skipped over and no other order is read.
  • A line is clauses joined by and: they happen together, over the line's time, said at its end: over 0.5 s.
  • A joint: [action] [side] part [way] [amount], in that order: swing left arm back 20, nod head down 20; the action can be left out (right arm forward 26).
  • A part has one word. With left or right it is said once (left knee), with both its plural (both knees); on four legs the end of the body comes first (front left paw, both back legs). Left and right are the body's own.
  • The amount: a number of degrees sets the part to that angle from standing; by a number, or a number more or less, moves it from where it is. A distance has its unit: cm, mm, m, in, ft.
  • The body's actions (a step, a push, a jump, the weight, holding a thing) are each one form, said below.

Blocks

  • a comment: the rest of the line after #:
nod head down 20  # a nod
  • a variable: a name and its value, used by its name:
stride = 60 cm
walk stride
  • a function: its name, its parameters and their values when not given; used by its name, its values in order, each to the first parameter of its kind (a side, a number, a length, a word), or named, the name then its value (hop high 20 cm); a value of another kind is an error; other is the side that is not side; a sum on a number is worked out (length/2):
define hop(side = left, high = 10 cm):
  lift side foot high over 0.15 s
  put side foot down over 0.15 s
hop right
  • its lines that many times:
repeat 3:
  nod head down 15 over 0.2 s
  nod head up 0 over 0.2 s
  • its lines that many times, the round counted: as i, i is 1 the first time, 2 the next:
repeat 3 as i:
  raise left arm out i * 20 over 0.3 s
  • its lines once for each value, the name standing for it:
for side in left, right:
  raise side arm up over 0.3 s
  lower side arm over 0.3 s
  • out of the loop it is in, now (repeat, while, until, for):
deep = 0
repeat 10:
  bend both knees deep over 0.2 s
  deep = deep + 15
  if deep is over 45:
    break
straighten both knees
  • round again: the move loops:
forever:
  turn head left 30 over 0.5 s
  turn head right 30 over 0.5 s
  • its lines at once, as one line:
together:
  raise both arms up
  lift both heels 20
  • its lines on a floor: sand, snow, mud, ice, grass (the feet sink, a step slips shorter, a foot lifts higher to come out of it; every move on it the same way):
on sand:
  walk steps 4
  • the first block whose condition holds: on values, or on the body as it is then:
lift left foot 10 cm
if left foot is down:
  nod
else:
  raise both arms out 90
  • round again while it holds, or until it comes true (50 times at most):
until left foot lands:
  push right foot back 5 cm
  • a track: its lines alongside the block it is in, from its start, owning those parts:
walk
arms:
  forever:
    swing left arm back 20 and swing right arm forward 20 over 0.5 s
    swing left arm forward 20 and swing right arm back 20 over 0.5 s
  • each time the body does it (a foot lands, lifts; the hands touch the floor; it would fall), its lines alongside:
when a foot lands:
  nod head down 6 over 0.1 s
  nod head up 0 over 0.15 s
walk

The words on a person (the cast: Sunny, Rose, ...)

In the lab: on rose.

partits wordsactionswaysexample
kneeknee, kneesbend, lift, straighten, relaxupbend left knee 40
elbowelbow, elbowsbend, straighten, relaxbend right elbow 90
palmpalm, palmsturn, relaxdown, up, turnturn both palms down
heelheel, heelslift, lowerup, downlift both heels 20
ankletoespoint, flex, turn, relaxup, down, in, out, turnpoint left toes up 10
legleg, legsswing, lift, lower, reach, kick, straighten, turn, relaxforward, up, back, out, in, across, turnswing right leg forward 30
wristwrist, wristsbend, relaxforward, down, back, up, toward the thumb, toward the pinkybend right wrist back 30
handhand, handsclose, open, point, relaxclose right hand 100
armarm, armsraise, lower, swing, reach, turn, relaxforward, up, back, out, in, across, down, turnraise right arm out 90
shouldershoulder, shouldersshrug, raise, lower, relaxup, down, forward, backshrug both shoulders
hipshipsbend, turn, tilt, straighten, relaxforward, down, back, left, right, turnbend hips 40
neckneckbend, lower, tilt, turn, stretch, straighten, relaxforward, down, back, up, left, right, turntilt neck left 10
bodybodylean, bend, turn, straighten, relaxforward, down, back, left, right, turnlean body forward 20
headheadnod, turn, tilt, straighten, relaxdown, forward, up, back, left, right, turnturn head left 30
  • how long a line takes, said at its end: over 0.5 s; else 0.3 s: nod head down 20 over 0.5 s
  • clauses joined by and happen together on the line: nod head down 10 and turn head left 30
  • held still: wait 0.5
  • to an angle (the number), or by one from where it is (by, more, less): nod head down 10 more
  • no amount said: an amount a body takes (said back as such): nod
  • the whole body turned: a spin, a flip, a cartwheel, by an amount or to a way round: spin left 90
  • a part goes on until something comes true (as far as it goes, if it never does): raise both arms out until left arm is over 80
  • the weight: shifted by degrees or a distance, onto a foot, between both feet: shift weight onto the left foot
  • a foot pushed along the floor (a planted one moves the body the other way): push right foot back 30 cm
  • a whole step: lifted, swung through, put down ahead (as far as the leg makes a step, unless said): step left foot forward lifting 50
  • a stop: walking, the foot behind brought up beside the other, the weight between them: stop
  • a foot lifted off the floor, put down: lift left foot 10 cm
  • the hips lowered over the feet; stood up again: squat 20 cm
  • riding a bike: sat on its saddle, the hands on its grips, the feet on the pedals going round, as far as said at a bike pace (a scene: rides to someone): ride 10 m
  • a jump: as high or as far as said, gravity's flight; turned in it: jump up 50 cm and flip back 360
  • the line in the air: as long as the line, as high as gravity takes it in that time: raise both arms up and in the air over 0.3 s
  • a turn on the floor (more than 40 degrees) stepped round as people turn: a quarter at a time, the weight on the foot it turns to, the other brought round; a quick one (a spin) on the ball of one foot, the other up: spin left 180 over 1 s
  • a thing held (in one hand, or both: a bat, a club), let go or thrown: hold a bat in both hands
  • a thumbs up (a fist, the thumb straight up out of it): thumbs up with the right hand
  • a finger pointed, and the way said: the arm straight out that way (forward, up, down, out, across, back): point forward with the right hand
  • where a held thing points (up, down, forward, back, across, out, or two: up back, back over the shoulder): the arm and the wrist turned so it does, the hand where the line puts it: point the sword back over the shoulder

Its actions, each in its one form

  • wait <seconds> โ€” e.g. wait 0.5
  • in the air โ€” e.g. raise both arms up and in the air over 0.3 s
  • stop [heel <n>] [toe <n>] โ€” e.g. stop
  • stand up โ€” e.g. stand up
  • sit on a <seat> [<n> cm high] โ€” e.g. sit on a chair
  • squat <n> <cm|m> โ€” e.g. squat 20 cm
  • jump up <n> <cm|m> ยท jump forward <n> <cm|m> โ€” e.g. jump up 30 cm
  • spin <left|right> <degrees> ยท spin to <degrees> โ€” e.g. spin left 90
  • flip <forward|back> <degrees> ยท flip to <degrees> โ€” e.g. flip back 360
  • cartwheel <left|right> <degrees> ยท cartwheel to <degrees> โ€” e.g. cartwheel left 360
  • shift weight onto the <left|right> foot ยท shift weight between both feet ยท shift weight <left|right|forward|back> <n> [<unit>] โ€” e.g. shift weight onto the right foot
  • step <left|right> foot <way> [<n> <unit> | natural] [running | lifting <n>] [heel <n>] [toe <n>] โ€” e.g. step left foot forward lifting 50
  • push <left|right|both> foot <way> [<n> <unit>] โ€” e.g. push right foot back 30 cm
  • kick <left|right> foot <way> <n> <unit> โ€” e.g. kick right foot forward 30 cm
  • lift <left|right> foot <n> <unit> โ€” e.g. lift left foot 10 cm
  • put <left|right> foot down ยท put <left|right> heel down โ€” e.g. put left foot down
  • hold a <thing> (an axe) in the <left|right> hand | in both hands โ€” e.g. hold a bat in both hands
  • let go โ€” e.g. let go
  • throw the <thing> [<way>] โ€” e.g. throw the ball forward
  • thumbs up with the <left|right> hand [<n>] โ€” e.g. thumbs up with the right hand
  • point <way> with the <left|right> hand ยท point the <thing> <way> [<way>] | back over the shoulder โ€” e.g. point forward with the right hand
  • ride <n> <unit> โ€” e.g. ride 3 m
  • said with no part: nod (the head), look (the head), lean (the body), shrug (the shoulders), bow (the hips)

Its library (functions every program on it has; yours of the same name win)

# steps: forever, or that many and then a stop (walk steps 4); heels: the heels held up that far (high heels 25, tiptoe
# 40); toes: the toes up as each foot comes through (10)
define walk(stride = natural, pace = 0.5, lift = 40, steps = forever, heels = 0, toes = 10):
  repeat steps / 2:
    step left foot forward stride lifting lift heel heels toe toes over pace s
    step right foot forward stride lifting lift heel heels toe toes over pace s
  if steps is not forever:
    stop heel heels
# a run: running steps, one foot down at most, off the floor a moment every step, the elbows bent
define run(stride = natural, pace = 0.32, steps = forever):
  repeat steps / 2:
    step left foot forward stride running over pace s
    step right foot forward stride running over pace s
  if steps is not forever:
    stop
# on the spot: the weight onto one foot, the other knee up, the arms against it; then the other
define march(high = 70, pace = 0.4):
  forever:
    shift weight onto the right foot over pace/2 s
    lift left knee high and bend left knee high and swing right arm forward 35 and swing left arm back 25 over pace s
    lift left knee 0 and straighten left knee over pace s
    shift weight onto the left foot over pace/2 s
    lift right knee high and bend right knee high and swing left arm forward 35 and swing right arm back 25 over pace s
    lift right knee 0 and straighten right knee over pace s
define yes(times = 2, deep = 15):
  repeat times:
    nod head down deep over 0.18 s
    nod head up 0 over 0.18 s
define no(times = 2, wide = 30):
  repeat times:
    turn head left wide over 0.18 s
    turn head right wide over 0.25 s
  turn head right 0 over 0.15 s
define look_around(wide = 60):
  turn head left wide over 0.6 s
  wait 0.3
  turn head right wide over 1 s
  wait 0.3
  turn head right 0 over 0.5 s
# a wave as people wave (Rob 10-28 on the film's rough cut: "our waves are really bad"; it had been the arm straight up and
# the forearm bobbing at the head): the upper arm out to the side at the shoulder's height, the elbow bent so the forearm
# stands up, the palm to the one waved at; the forearm rocked side to side at the elbow, the hand going across beside the
# head and never in front of it, the head tilted a little with it; then the arm down, the elbow bending as it comes. (The
# upper arm turning instead had swung the hand forward and back: from the front it hardly moved, and seen three quarters
# on it crossed the face, 11 cm from the head's middle, a salute; rocked at the elbow it goes 20 cm across and keeps 21 cm
# clear, measured on Sam and on Sunny)
define wave(side = right, times = 3):
  raise side arm out 95 and turn side arm out 65 and bend side elbow 70 and tilt head side 6 over 0.35 s
  repeat times:
    bend side elbow 90 over 0.25 s
    bend side elbow 45 over 0.25 s
  bend side elbow 70 over 0.15 s
  lower side arm and turn side arm out 0 and bend side elbow 40 and tilt head side 0 over 0.3 s
  straighten side elbow over 0.2 s
define front_kick(side = right, high = 70):
  shift weight onto the other foot over 0.3 s
  bend side knee 60 and lift side knee 30 over 0.2 s
  swing side leg forward high and straighten side knee over 0.15 s
  bend side knee 60 and swing side leg forward 30 over 0.2 s
  swing side leg forward 0 and bend side knee 0 and point side toes up 10 over 0.3 s
  shift weight between both feet over 0.3 s
define punch(side = right):
  raise side arm forward 30 and bend side elbow 120 and close side hand 100 over 0.2 s
  raise side arm forward 90 and straighten side elbow and turn body other 20 over 0.12 s
  raise side arm forward 30 and bend side elbow 120 and turn body other 0 over 0.25 s
# (20 cm down, the hips bent 30, the arms out in front: deeper, this body's ankles lift its heels and it tips back)
define squats(times = 3, deep = 20 cm):
  repeat times:
    squat deep and raise both arms forward 90 and bend hips 30 over 0.8 s
    stand up and bend hips 0 over 0.8 s
    lower both arms over 0.3 s
define jacks(times = 4):
  repeat times:
    squat 10 cm over 0.15 s
    swing both legs out 15 and raise both arms out 160 and stand up and in the air over 0.3 s
    squat 8 cm over 0.12 s
    swing both legs out 0 and lower both arms and stand up and in the air over 0.3 s
    squat 8 cm over 0.12 s
    stand up over 0.15 s
define clap(times = 3):
  raise both arms forward 70 and bend both elbows 50 and turn both arms in 40 over 0.3 s
  repeat times:
    swing both arms in 15 over 0.12 s
    swing both arms out 10 over 0.12 s
  lower both arms and straighten both elbows and turn both arms out 0 over 0.35 s
# talking with the hands (the explainer film's, 10-28): the forearms up, the palms up and open, a beat of one hand out and back
# and then the other with the words, a little nod on each; the hands down after (times: the beats)
define explain(times = 2, open = 25):
  raise both arms forward 30 and raise both arms out 8 and bend both elbows 65 and turn both palms up 60 and bend both wrists back 10 over 0.35 s
  repeat times:
    raise right arm out open and bend right elbow 50 and nod head down 4 over 0.25 s
    raise right arm out 8 and bend right elbow 65 and raise left arm out open and bend left elbow 50 and nod head down 0 over 0.25 s
    raise left arm out 8 and bend left elbow 65 over 0.25 s
  lower both arms and straighten both elbows and turn both palms up 0 and bend both wrists back 0 over 0.4 s
# the whole shrug, said "big shrug" (a shrug alone is the shoulders, as it always was): the shoulders up, the forearms out
# to the sides palms up, the head tilted; held, and down again
define big_shrug(hold = 0.5):
  shrug both shoulders 15 and raise both arms forward 12 and raise both arms out 10 and bend both elbows 55 and turn both arms out 35 and turn both palms up 80 and tilt head left 10 over 0.3 s
  wait hold
  lower both shoulders and lower both arms and straighten both elbows and turn both arms out 0 and turn both palms up 0 and tilt head left 0 over 0.4 s
# at a keyboard, seated (sit on a chair first): the hands forward at a desk's height, palms down, the wrists tapping in
# turn (times: the taps of each hand)
define type(times = 4):
  raise both arms forward 38 and raise both arms out 6 and turn both arms out 3 and bend both elbows 58 and turn both palms down and bend both wrists down 8 over 0.4 s
  repeat times:
    bend right wrist down 16 and bend left wrist down 4 over 0.16 s
    bend right wrist down 4 and bend left wrist down 16 over 0.16 s
  bend both wrists down 8 over 0.2 s
# down to the floor in front of the feet and up again, a thing in that hand (a ball, a book, a cup, a stone...)
define pick_up(side = right, thing = ball):
  bend hips 70 and squat 30 cm and raise side arm forward 75 and turn side palm down 60 and nod head down 20 over 0.6 s
  hold a thing in the side hand
  stand up and bend hips 0 and raise side arm forward 30 and bend side elbow 70 and turn side palm up 0 and nod head down 0 over 0.6 s

The words on four legs (a dog, a cat, a horse)

In the lab: on a dog.

partits wordsactionswaysexample
legleg, legsswing, lift, reach, lower, straighten, relaxforward, up, backswing front left leg forward 25
elbowelbow, elbowsbend, straighten, relaxbend front left elbow 60
stiflestifle, stiflesbend, straighten, relaxbend back left stifle 60
hockhock, hocksbend, straighten, relaxbend back right hock 40
pawpaw, pawsfold, curl, unfold, lift, bend, relaxup, down, backfold front left paw 60
bodybodysit, bow, roll, straighten, relaxup, down, forward, back, left, rightsit up 45
necknecklower, stretch, straighten, relaxdown, up, forward, backlower neck 30
headheadnod, turn, straighten, relaxdown, forward, up, back, left, right, turnturn head left 30
tailtailraise, lower, tuck, curl, relaxup, down, left, rightraise tail 60
earear, earsflatten, perk, relaxback, forward, up, downflatten both ears
  • how long a line takes, said at its end: over 0.5 s; else 0.3 s: nod head down 20 over 0.5 s
  • clauses joined by and happen together on the line: nod head down 10 and turn head left 30
  • held still: wait 0.5
  • to an angle (the number), or by one from where it is (by, more, less): nod head down 10 more
  • no amount said: an amount a body takes (said back as such): nod
  • the whole body turned: a spin, a flip, a cartwheel, by an amount or to a way round: spin left 90
  • a part goes on until something comes true (as far as it goes, if it never does): lower neck until neck is over 30
  • a paw lifted, pushed along the floor, or stepped, by its own leg: lift front left paw 8 cm
  • a step of a paw (as far as its leg makes a step, unless said): step back right paw forward

Its actions, each in its one form

  • wait <seconds> โ€” e.g. wait 0.5
  • in the air โ€” e.g. raise both arms up and in the air over 0.3 s
  • stop โ€” e.g. stop
  • jump up <n> <cm|m> ยท jump forward <n> <cm|m> โ€” e.g. jump up 30 cm
  • spin <left|right> <degrees> ยท spin to <degrees> โ€” e.g. spin left 90
  • step <front|back> <left|right> paw <forward|back> [<n> <unit>] โ€” e.g. step front left paw forward
  • push <front|back> <left|right> paw <way> <n> <unit> โ€” e.g. push back left paw back 20 cm
  • lift <front|back> <left|right> paw <n> <unit> โ€” e.g. lift front left paw 8 cm
  • said with no part: nod (the head), sit (the body), bow (the body)

Its library (functions every program on it has; yours of the same name win)

# a sit, as a dog sits (the owner 10-28, and his drawing of a sitting dog's skeleton, dogsit.jpeg), on a dog's own joints
# (bodyplan.js): the chest up, the front legs as they stand, their paws where they stood; the back legs folded under it,
# the thigh forward along the side, the knee bent so the shin comes back down to the hock on the floor, the foot flat on
# the floor in front of it, the rump down. Halfway, the back legs folded only as far as the rump has come down (folded
# deeper first, the back paws left the floor before the rump reached it, and the lab said it would fall back)
define sit(time = 0.6):
  sit up 25 and swing both back legs forward 30 and bend both back stifles 35 and bend both back hocks 65 over time/2 s
  sit up 50 and swing both back legs forward 68 and bend both back stifles 77 and bend both back hocks 84 and lift both back paws up 40 over time/2 s
# lying down as a sphinx (his doglie.jpeg): sat first, then the front down, the upper arms back to the elbows on the floor
# under the chest and the forearms flat in front, the back legs folded beside it as they were in the sit
# (the head level, looking ahead, and the tail laid down behind it on the floor: with the head up 25 the nose had
# pointed at the sky, and the tail had stood up as it does when the dog stands; bowed 10, the back end stood off the
# floor, its hocks 10 cm up, and it would fall back: bowed 6, the back legs forward 55, the elbows and the back both down)
define lie(time = 0.9):
  sit time/2
  bow forward 6 and swing both front legs back 40 and bend both front elbows 131 and fold both front paws back 46 and swing both back legs forward 55 and bend both back stifles 84 and bend both back hocks 90 and lift both back paws up 4 and nod head up 5 and lower tail down 60 over time/2 s
# lying flat, stretched out (his dogliev2.jpeg): the body down where it is, the front legs straight out in front, the back
# legs straight out behind, the knees and the hocks opened, flat on the floor. Down as a sphinx first, then the front legs
# out and the back legs back (all four splayed at once from standing, it stood on its back paws alone and would fall);
# the tail stays laid down on the floor as the sphinx laid it (as it stood, it stood up off the rump)
define lie_flat(time = 0.9):
  lie time/2
  straighten body and swing both front legs forward 20 and bend both front elbows 70 and fold both front paws back 20 and swing both back legs back 30 over time/4 s
  straighten body and swing both front legs forward 80 and bend both front elbows 14 and fold both front paws back 56 and swing both back legs back 96 and both back stifles -50 and both back hocks -53 and lift both back paws up 31 and nod head up 0 over time/4 s
# down low on every leg, its paws where they stand (to cower, to stalk, before a pounce): the shoulders back and the
# elbows bent, the knees and the hocks bent, the body a third lower, level
define crouch(time = 0.4):
  swing both front legs back 60 and bend both front elbows 80 and fold both front paws back 5 and swing both back legs forward 21 and bend both back stifles 62 and bend both back hocks 40 and bend both back paws 3 over time s
# up again on four legs as it stands: the back legs gathered under it first, their paws lifted (from a sit, a lie), then
# up, the paws set down where it stands; slid there, a sit's back paws had dragged 43 cm along the floor (gathered with
# the stifles at 90, it stood on its front paws alone, its weight behind them, and would fall back)
define stand(time = 0.6):
  sit up 30 and swing both back legs forward 30 and bend both back stifles 20 and bend both back hocks 50 and bend both front elbows 0 and swing both front legs forward 0 and fold both front paws back 0 over time/2 s
  straighten body and swing both front legs forward 0 and swing both back legs forward 0 and straighten both front legs and straighten both back legs and bend both front elbows 0 and bend both back stifles 0 and bend both back hocks 0 and bend both back paws 0 and fold both front paws back 0 and nod head up 0 over time/2 s
define stride(side = left, reach = 25):
  swing front side leg forward reach and lift front side paw 8 cm and swing back other leg forward reach and lift back other paw 6 cm and push front other paw back 15 cm and push back side paw back 15 cm over 0.2 s
  straighten front side leg and straighten back other leg over 0.12 s
# a trot: the diagonal paws together (front left with back right, then the others); steps: how many, else forever
define trot(steps = forever, pace = 0.3):
  repeat steps / 2:
    step front left paw forward and step back right paw forward over pace s
    step front right paw forward and step back left paw forward over pace s
# a run: the trot, quicker (runs to someone)
define run(steps = forever, pace = 0.2):
  repeat steps / 2:
    step front left paw forward and step back right paw forward over pace s
    step front right paw forward and step back left paw forward over pace s
# a walk: one paw at a time, back left, front left, back right, front right (three always down)
define walk(steps = forever, pace = 0.25):
  repeat steps / 4:
    step back left paw forward over pace s
    step front left paw forward over pace s
    step back right paw forward over pace s
    step front right paw forward over pace s
define wag(times = 4, wide = 50):
  raise tail 40 over 0.15 s
  repeat times:
    curl tail left wide over 0.12 s
    curl tail right wide over 0.12 s
  curl tail left 0 over 0.1 s
define pant(times = 4):
  repeat times:
    lower neck 5 and nod head down 5 over 0.15 s
    lower neck 0 and nod head down 0 over 0.15 s
# a grumpy huff (the explainer film's: Grump the dog says the grumpy lines): the ears back, the head down and turned away a
# little, a snort (the head up quick and down again), then as it was
define huff(times = 1):
  flatten both ears 50 and nod head down 15 and turn head left 15 over 0.3 s
  repeat times:
    nod head up 10 over 0.1 s
    nod head down 15 over 0.25 s
  wait 0.3
  relax both ears and nod head down 0 and turn head left 0 over 0.4 s

The words on wings (a gull)

In the lab: on a gull.

partits wordsactionswaysexample
wingwing, wingsraise, lower, spread, fold, bend, relaxup, down, outspread both wings
tiptip, tipsbend, straighten, relaxup, downbend both tips down 25
elbowelbow, elbowsbend, straighten, relaxup, downbend both elbows up 15
kneeknee, kneesbend, lift, straighten, relaxupbend left knee 40
ankletoespoint, flex, turn, relaxup, down, turnpoint left toes up 10
legleg, legsswing, lift, lower, reach, kick, straighten, turn, relaxforward, up, back, turnswing right leg forward 30
neckneckbend, lower, tilt, turn, stretch, straighten, relaxforward, down, back, up, turnlower neck 30
bodybodylean, bend, turn, straighten, relaxforward, down, back, turnlean body forward 20
headheadnod, turn, tilt, straighten, relaxdown, forward, up, back, left, right, turnturn head left 30
tailtailraise, lower, tuck, curl, relaxup, down, left, rightraise tail 60
  • how long a line takes, said at its end: over 0.5 s; else 0.3 s: nod head down 20 over 0.5 s
  • clauses joined by and happen together on the line: nod head down 10 and turn head left 30
  • held still: wait 0.5
  • to an angle (the number), or by one from where it is (by, more, less): nod head down 10 more
  • no amount said: an amount a body takes (said back as such): nod
  • the whole body turned: a spin, a flip, a cartwheel, by an amount or to a way round: spin left 90
  • a foot lifted off the floor: lift left foot 5 cm
  • a part goes on until something comes true (as far as it goes, if it never does): lower neck until neck is over 30

Its actions, each in its one form

  • wait <seconds> โ€” e.g. wait 0.5
  • in the air โ€” e.g. raise both arms up and in the air over 0.3 s
  • stop โ€” e.g. stop
  • jump up <n> <cm|m> ยท jump forward <n> <cm|m> โ€” e.g. jump up 30 cm
  • spin <left|right> <degrees> ยท spin to <degrees> โ€” e.g. spin left 90
  • step <left|right> foot <forward|back> [<n> <unit>] โ€” e.g. step left foot forward
  • lift <left|right> foot <n> <unit> โ€” e.g. lift left foot 5 cm
  • said with no part: nod (the head), lean (the body)

Its library (functions every program on it has; yours of the same name win)

define walk(steps = forever):
  repeat steps / 2:
    step left foot forward over 0.3 s
    step right foot forward over 0.3 s
# a flap as a bird's: the wings spread, then up and down, the hands (the tips, the long feathers) lagging the arms, down
# as they go up and up as they come down; then folded
define flap(times = 4, high = 50):
  spread both wings over 0.15 s
  repeat times:
    raise both wings high and bend both tips down 25 over 0.12 s
    lower both wings 30 and bend both tips up 20 over 0.12 s
  fold both wings over 0.2 s
define peck(times = 2):
  repeat times:
    lower neck 40 and nod head down 30 over 0.15 s
    lower neck 0 and nod head down 0 over 0.2 s

The words on two legs and a tail (a fox on two legs)

In the lab: on a fox on two legs.

partits wordsactionswaysexample
kneeknee, kneesbend, lift, straighten, relaxupbend left knee 40
elbowelbow, elbowsbend, straighten, relaxbend right elbow 90
palmpalm, palmsturn, relaxdown, up, turnturn both palms down
heelheel, heelslift, lowerup, downlift both heels 20
ankletoespoint, flex, turn, relaxup, down, in, out, turnpoint left toes up 10
legleg, legsswing, lift, lower, reach, kick, straighten, turn, relaxforward, up, back, out, in, across, turnswing right leg forward 30
armarm, armsraise, lower, swing, reach, turn, relaxforward, up, back, out, in, across, down, turnraise right arm out 90
hipshipsbend, turn, tilt, straighten, relaxforward, down, back, left, right, turnbend hips 40
neckneckbend, lower, tilt, turn, stretch, straighten, relaxforward, down, back, up, left, right, turntilt neck left 10
bodybodylean, bend, turn, straighten, relaxforward, down, back, left, right, turnlean body forward 20
headheadnod, turn, tilt, straighten, relaxdown, forward, up, back, left, right, turnturn head left 30
tailtailraise, lower, tuck, curl, relaxup, down, left, rightraise tail 60
earear, earsflatten, perk, relaxback, forward, up, downflatten both ears
  • how long a line takes, said at its end: over 0.5 s; else 0.3 s: nod head down 20 over 0.5 s
  • clauses joined by and happen together on the line: nod head down 10 and turn head left 30
  • held still: wait 0.5
  • to an angle (the number), or by one from where it is (by, more, less): nod head down 10 more
  • no amount said: an amount a body takes (said back as such): nod
  • the whole body turned: a spin, a flip, a cartwheel, by an amount or to a way round: spin left 90
  • a part goes on until something comes true (as far as it goes, if it never does): raise right arm out until right arm is over 60

Its actions, each in its one form

  • wait <seconds> โ€” e.g. wait 0.5
  • in the air โ€” e.g. raise both arms up and in the air over 0.3 s
  • stop [heel <n>] [toe <n>] โ€” e.g. stop
  • stand up โ€” e.g. stand up
  • sit on a <seat> [<n> cm high] โ€” e.g. sit on a chair
  • squat <n> <cm|m> โ€” e.g. squat 20 cm
  • jump up <n> <cm|m> ยท jump forward <n> <cm|m> โ€” e.g. jump up 30 cm
  • spin <left|right> <degrees> ยท spin to <degrees> โ€” e.g. spin left 90
  • flip <forward|back> <degrees> ยท flip to <degrees> โ€” e.g. flip back 360
  • cartwheel <left|right> <degrees> ยท cartwheel to <degrees> โ€” e.g. cartwheel left 360
  • shift weight onto the <left|right> foot ยท shift weight between both feet ยท shift weight <left|right|forward|back> <n> [<unit>] โ€” e.g. shift weight onto the right foot
  • step <left|right> foot <way> [<n> <unit> | natural] [running | lifting <n>] [heel <n>] [toe <n>] โ€” e.g. step left foot forward lifting 50
  • push <left|right|both> foot <way> [<n> <unit>] โ€” e.g. push right foot back 30 cm
  • kick <left|right> foot <way> <n> <unit> โ€” e.g. kick right foot forward 30 cm
  • lift <left|right> foot <n> <unit> โ€” e.g. lift left foot 10 cm
  • put <left|right> foot down ยท put <left|right> heel down โ€” e.g. put left foot down
  • hold a <thing> (an axe) in the <left|right> hand | in both hands โ€” e.g. hold a bat in both hands
  • let go โ€” e.g. let go
  • throw the <thing> [<way>] โ€” e.g. throw the ball forward
  • thumbs up with the <left|right> hand [<n>] โ€” e.g. thumbs up with the right hand
  • point <way> with the <left|right> hand ยท point the <thing> <way> [<way>] | back over the shoulder โ€” e.g. point forward with the right hand
  • ride <n> <unit> โ€” e.g. ride 3 m
  • said with no part: nod (the head), look (the head), lean (the body), bow (the hips)

Its library (functions every program on it has; yours of the same name win)

define walk(steps = forever):
  repeat steps / 2:
    step left foot forward over 0.4 s
    step right foot forward over 0.4 s
define wag(times = 4, wide = 50):
  raise tail 40 over 0.15 s
  repeat times:
    curl tail left wide over 0.12 s
    curl tail right wide over 0.12 s
  curl tail left 0 over 0.1 s
define yes(times = 2, deep = 15):
  repeat times:
    nod head down deep over 0.18 s
    nod head up 0 over 0.18 s
# a wave as people wave (Rob 10-28 on the film's rough cut: "our waves are really bad"; it had been the arm straight up and
# the forearm bobbing at the head): the upper arm out to the side at the shoulder's height, the elbow bent so the forearm
# stands up, the palm to the one waved at; the forearm rocked side to side at the elbow, the hand going across beside the
# head and never in front of it, the head tilted a little with it; then the arm down, the elbow bending as it comes. (The
# upper arm turning instead had swung the hand forward and back: from the front it hardly moved, and seen three quarters
# on it crossed the face, 11 cm from the head's middle, a salute; rocked at the elbow it goes 20 cm across and keeps 21 cm
# clear, measured on Sam and on Sunny)
define wave(side = right, times = 3):
  raise side arm out 95 and turn side arm out 65 and bend side elbow 70 and tilt head side 6 over 0.35 s
  repeat times:
    bend side elbow 90 over 0.25 s
    bend side elbow 45 over 0.25 s
  bend side elbow 70 over 0.15 s
  lower side arm and turn side arm out 0 and bend side elbow 40 and tilt head side 0 over 0.3 s
  straighten side elbow over 0.2 s

Conditions (if, while, until, when)

  • On values: side is left, side is not left, lift is over 60, lift is under 30, lift is at least 40, stride is at most 30 cm; and, or, not.
  • On the body as the lines leave it: left foot is down, left foot lands, right foot leaves the floor, both feet are down, both hands touch the floor, it would fall, the weight is over the left foot, left knee is over 90, head turned more than 30; on four legs front left paw lands, all paws are down. Each is one form, as a statement is: the right foot leaves the floor or hands touch the floor is not a condition.

In the lab

The lab is at jabbertoon.com/motion/, free, in the browser. A link can hand it a program: /motion/?on=dog#program= and the lines, URI-encoded (encodeURIComponent), opens it on that body with that program, to press Play. /motion/?load=bow opens one of our own moves as its program.

  • Type a line and press Enter: it joins the program and plays. A line that opens a block (ending :) takes the lines after it until end.
  • play, stop, undo, clear, quicker, slower, help (these words, for the body it is on).
  • on a dog, on a gull, on a fox on two legs, on rose: the same program on another body (its own words).
  • load bow, load jump for joy: one of our own moves said as a program, to read, play and change.
  • keep as my walk: kept as a move for the Cartoon, the World and the games.

Moves written from this guide alone

Each was written by an AI given only this guide, and played clean in the lab on its body.

  • a tired shuffle: short slow steps, the head hanging (on rose):
head:
  nod head down 25 over 0.4 s
walk stride 30 cm pace 0.7 lift 35
  • a bowling throw: the weight onto the front foot, the arm back, then through, the ball let go (on rose):
hold a ball in the right hand
shift weight onto the left foot over 0.3 s
swing right arm back 50 and bend hips 20 over 0.5 s
swing right arm forward 80 and throw the ball and bend hips 0 over 0.25 s
wait 1
  • a celebration: two jumps with the arms up, then a yes (on rose):
repeat 2:
  squat 10 cm over 0.2 s
  jump up 25 cm and raise both arms up
  lower both arms over 0.3 s
yes
  • a dog says hello: ears up, a wag, a bow (on a dog):
perk both ears
wag 3
bow over 0.4 s
wait 0.4
straighten body over 0.4 s
  • a gull hops and flaps (on a gull):
repeat 2:
  lower neck 20 over 0.15 s
  raise both wings 70 and in the air over 0.25 s
  fold both wings and lower neck 0 over 0.2 s
flap 3

A scene: several characters (a cartoon's movement as a script)

A scene is a cast and what each does, in order or together. Each character is its own body running its own program in this language; the scene works out the waits, the turns toward each other and the steps between them. Write one at jabbertoon.com/motion/scene/; a link hands it a scene: /motion/scene/#script= and the lines, URI-encoded.

  • cast: then one line each: name = who at x z facing degrees size n (size: that much its model's size, a small dog 0.6; who: a person of the cast by name, sunny, rose, ...; or an animal: dog, fox, gull). at is metres across and forward; facing a number (as a spin turns: right is more) or another's name.
  • name: then that character's lines under it, indented: any lines of the language. It starts when the line before it in the scene has ended.
  • name: wave on one line is the same, for one line.
  • together: then several characters' blocks under it: they start at the same moment; the scene goes on when the longest has ended.
  • wait 1 at the scene's own level: nobody moves.
  • camera wide, camera close on rex, camera follows rex at the scene's own level: the camera from there on.
  • In a character's lines also: says "Hello!" (the body still while it is said, 2.5 words a second, the mouth going), feels happy (a feeling on its face from then on: normal, happy, sad, angry, surprised, scared, sleepy, laughing, worried, smug, disgusted, thinking), looks at rex (the head turned toward them), turns to rex (the whole body turned to face them), walks to rex / runs to rex (turned to them, walked until a step short of them, stopped: as many steps as its own legs take).
  • A character whose lines end going round (walk, trot, any forever) goes on until the scene ends.
# motion 1.0
cast:
  sunny = sunny at 0 0
  rex = dog at 3 2 facing sunny

sunny:
  says "Rex! Come here!"
  turns to rex
rex:
  walks to sunny
together:
  sunny: wave
  rex: wag
sunny:
  looks at rex
  says "Good dog."

Writing a move that works (for a person or an AI)

  • Start from standing; each line a pose a body passes through, 0.15 to 0.8 s.
  • Before a foot leaves the floor, put the weight over the other one (shift weight onto the right foot), or it falls.
  • To travel, a planted foot pushes back (push right foot back 30 cm) or a step steps; a straight leg swung back lifts its foot instead.
  • A foot swung low catches its toe: lift the knee or the toes (step left foot forward lifting 50).
  • Read what the lab says under each line: what it read, how far a part went, what would fall or trip and where. Change that line.
  • Make a function of anything used twice; give it parameters for what changes (define wave(side = right, times = 3):).