⌘ code / debug arena
LOCAL COMPUTATION / NO MODELS / NO NETWORK
AN EXPERIMENT IN PROGRAM SYNTHESIS

Small rules. Smarter robots.

Watch a population of programs learn, fail, and carry its fixes forward.

ENGINE LIVE
GENERATION / CURRENT TASK20× 48 candidates
GENERATIONS EVALUATED40
SKILLS BANKED6
CURRICULUM SOLVED2 / 6

Single wall

Obstacle reasoning
Robot simulation: navigate around walls to the green goal.
Robot / goalWallBlockHazard
TICK 0 / 100READY
Sequential curriculum

Candidate program

ORDERED RULE VM
01  IF AT_DROP THEN DROP
02  IF HAZARD_AHEAD THEN TURN_LEFT
03  IF WALL_AHEAD THEN TURN_RIGHT
04  IF TARGET_LEFT THEN FORWARD
05  IF TARGET_RIGHT THEN TURN_RIGHT
06  IF TARGET_BEHIND THEN TURN_RIGHT
07  IF ALWAYS THEN FORWARD
Successful candidateFitness —

↳ Inherited knowledge

Skills from the open field seed this population.

Attempt log

40 attempts
PASS
Single wallGeneration 20 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 19 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 18 · 100 ticks · 87 collisions
-750fitness
PASS
Single wallGeneration 17 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 16 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 15 · 100 ticks · 87 collisions
-750fitness
PASS
Single wallGeneration 14 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 13 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 12 · 100 ticks · 87 collisions
-750fitness
PASS
Single wallGeneration 11 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 10 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 9 · 100 ticks · 87 collisions
-750fitness
PASS
Single wallGeneration 8 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 7 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 6 · 100 ticks · 94 collisions
-891fitness
PASS
Single wallGeneration 5 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 4 · 11 ticks · 0 collisions
1989fitness
FAIL
Single wallGeneration 3 · 100 ticks · 0 collisions
-330fitness
PASS
Single wallGeneration 2 · 11 ticks · 0 collisions
1989fitness
PASS
Single wallGeneration 1 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 20 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 19 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 18 · 100 ticks · 0 collisions
-330fitness
PASS
Open fieldGeneration 17 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 16 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 15 · 100 ticks · 0 collisions
-330fitness
PASS
Open fieldGeneration 14 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 13 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 12 · 100 ticks · 0 collisions
-330fitness
PASS
Open fieldGeneration 11 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 10 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 9 · 100 ticks · 87 collisions
-750fitness
PASS
Open fieldGeneration 8 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 7 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 6 · 100 ticks · 0 collisions
-330fitness
PASS
Open fieldGeneration 5 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 4 · 11 ticks · 0 collisions
1989fitness
FAIL
Open fieldGeneration 3 · 100 ticks · 87 collisions
-750fitness
PASS
Open fieldGeneration 2 · 11 ticks · 0 collisions
1989fitness
PASS
Open fieldGeneration 1 · 11 ticks · 0 collisions
1989fitness

Skill library

VERIFIED IN THE VM

Every skill is a successful program. Open one to inspect the rules the engine can reuse.

⌘Direct approach / 01Solved Open field · 11 ticks
01  IF AT_DROP THEN DROP
02  IF AT_BLOCK THEN GRAB
03  IF HAZARD_AHEAD THEN TURN_LEFT
04  IF WALL_AHEAD THEN TURN_RIGHT
05  IF TARGET_LEFT THEN TURN_LEFT
06  IF TARGET_RIGHT THEN TURN_RIGHT
07  IF TARGET_BEHIND THEN TURN_RIGHT
08  IF ALWAYS THEN FORWARD
⌘Adaptive route / 01Solved Open field · 11 ticks
01  IF AT_DROP THEN DROP
02  IF AT_BLOCK THEN GRAB
03  IF HAZARD_AHEAD THEN TURN_LEFT
04  IF WALL_AHEAD THEN TURN_RIGHT
05  IF TARGET_LEFT THEN FORWARD
06  IF TARGET_RIGHT THEN TURN_RIGHT
07  IF TARGET_BEHIND THEN TURN_RIGHT
08  IF ALWAYS THEN FORWARD
⌘Compact controller / 01Solved Open field · 11 ticks
01  IF AT_DROP THEN DROP
02  IF AT_BLOCK THEN GRAB
03  IF HAZARD_AHEAD THEN TURN_LEFT
04  IF WALL_AHEAD THEN TURN_RIGHT
05  IF TARGET_LEFT THEN TURN_LEFT
06  IF TARGET_RIGHT THEN TURN_RIGHT
07  IF ALWAYS THEN FORWARD
⌘Direct approach / 02Solved Single wall · 11 ticks
01  IF AT_DROP THEN DROP
02  IF AT_BLOCK THEN GRAB
03  IF HAZARD_AHEAD THEN TURN_LEFT
04  IF WALL_AHEAD THEN TURN_RIGHT
05  IF TARGET_LEFT THEN TURN_LEFT
06  IF TARGET_RIGHT THEN TURN_RIGHT
07  IF TARGET_BEHIND THEN TURN_RIGHT
08  IF ALWAYS THEN FORWARD
⌘Adaptive route / 02Solved Single wall · 11 ticks
01  IF AT_DROP THEN DROP
02  IF HAZARD_AHEAD THEN TURN_LEFT
03  IF WALL_AHEAD THEN TURN_RIGHT
04  IF TARGET_LEFT THEN FORWARD
05  IF TARGET_RIGHT THEN TURN_RIGHT
06  IF TARGET_BEHIND THEN TURN_RIGHT
07  IF ALWAYS THEN FORWARD
⌘Compact controller / 02Solved Single wall · 11 ticks
01  IF AT_DROP THEN DROP
02  IF AT_BLOCK THEN GRAB
03  IF HAZARD_AHEAD THEN TURN_LEFT
04  IF WALL_AHEAD THEN TURN_RIGHT
05  IF AT_DROP THEN TURN_LEFT
06  IF TARGET_RIGHT THEN TURN_RIGHT
07  IF ALWAYS THEN FORWARD