Okay. First Pictogeneis machine: a register based machine. Today we’re going to create a very small language with a small number of registers that can read from the outside world, write colors, and act as temporary variables.

Something like this:

```
gt? t0 b y x r
add g y x
abs b x
inv t0 g
add r g x
sub t0 b r
mul x r b
abs y x
```

In each case, the first argument is the output and the rest are inputs. So:

```
# gt? t0 b y x r
if (b > y) {
t0 = x;
} else {
t0 = r;
}
# add g y x
g = y + x
# abs b x
b = |x|
...
```

Where `x`

and `y`

are the input point x and y mapped to the range [0, 1]; `r`

, `g`

, `b`

are the output colors in the same range and `t{n}`

are temporary registers just used during the program.