EditMovement commands
Movement commands allow you to move the robot forward in its current direction, or turn it by 90 degrees in either direction.
Move one square forward:

Turn left:

Turn right:
EditFunction commands
You can reuse blocks of commands by defining them as separate functions. To execute a particular function, use a function execution command.
Execute function F1 .. F5:

..

- A function may execute itself.
- When a function is called, the current execution point is stored in a stack so when the function reaches it's end the robot will resume executing commands after the call site. This storing is done in a stack because the function may call another function and so on.
The following program turns left advances twice and finally turns right:
| F2: |   |
EditConditional commands
To allow even more interesting complex programs, you can input commands that will take effect only if the robot stands on a tile of a particular color. If the robot stands on a differently-colored tile, the command will be skipped.
As an example, a right turn command that is colored blue will turn the robot right if it happens to be standing on a blue tile, but will have no effect otherwise: