One complete run of LLM-driven program evolution: an archive of Python programs, scored on fixed inputs, rewritten generation after generation by an LLM mutation operator. Every candidate is here — including the failures, which are data too. Inspired by Sakana AI's ShinkaEvolve.
This is a mock-mode run (random text edits instead of a real LLM) so the pipeline is public end-to-end without API costs. A live LLM run replaces it via one command — the viewer renders either identically.
32
candidates logged
18
accepted into archive
14
rejected / crashed
30
LLM calls (budget 30)
task tour · mode mock · best seed -551.6 → best program -533.9 · held-out -567.0
Fitness over generations
Each dot is an accepted candidate (fitness over fixed train inputs); the dashed-to-solid line is the running best. Red marks on the floor are generations where the proposal was rejected or crashed.
Best program & lineage
The winner is ed32b0d4, descended from seed 2dd1aa9a through 8 mutations:
02dd1aa9agen 0-551.6
132b9b7b8gen 3-538.9
2d31903b3gen 4-547.7
3a8c3d609gen 7-547.4
4af24e13dgen 8-567.9
5ca14dbe9gen 15-547.5
6681b1065gen 17-553.8
73b006102gen 20-558.1
8ed32b0d4gen 22-533.9best
import math
def solve(points):
start = 5
unvisited = list(range(len(points)))
unvisited.remove(start)
order = [start]
current = start
while unvisited:
nxt = min(unvisited, key=lambda i: math.dist(points[current], points[i]))
unvisited.remove(nxt)
order.append(nxt)
current = nxt
return order
Failures are data
14 of 32 proposals never made it into the archive — and they are kept in the log, because why evolution failed matters as much as what it found.
duplicate×12e.g. identical program (AST) already in archive
crashed×2e.g. SyntaxError: invalid syntax
Full log
gen
id
parent
status
score
held-out
mutation
0
56fb4034
—
accepted
-1528.7
-1534.8
seed-random
0
2dd1aa9a
—
accepted
-551.6
-560.2
seed-nn
1
8c880b37
2dd1aa9a
accepted
-553.5
-564.5
MOCK: nudged an integer constant (e.g. start city / range bound)
2
2fcdf3de
8c880b37
accepted
-561.8
-563.4
MOCK: nudged an integer constant (e.g. start city / range bound)
3
32b9b7b8
2dd1aa9a
accepted
-538.9
-570.5
MOCK: nudged an integer constant (e.g. start city / range bound)
4
d31903b3
32b9b7b8
accepted
-547.7
-577.2
MOCK: nudged an integer constant (e.g. start city / range bound)
5
6d88d8bf
32b9b7b8
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
6
0d07a758
32b9b7b8
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
7
a8c3d609
d31903b3
accepted
-547.4
-570.5
MOCK: nudged an integer constant (e.g. start city / range bound)
8
af24e13d
a8c3d609
accepted
-567.9
-570.8
MOCK: nudged an integer constant (e.g. start city / range bound)
9
d7919da6
af24e13d
accepted
-561.0
-574.6
MOCK: nudged an integer constant (e.g. start city / range bound)
10
92c7db64
2fcdf3de
duplicate
—
—
MOCK: returned parent unchanged to test duplicate detection
11
02f4cd28
32b9b7b8
crashed
—
—
MOCK: broken code to test rejection
12
57532c71
8c880b37
accepted
-551.4
-550.2
MOCK: nudged an integer constant (e.g. start city / range bound)
13
66afb869
a8c3d609
duplicate
—
—
MOCK: returned parent unchanged to test duplicate detection
14
1ba2efa5
d31903b3
crashed
—
—
MOCK: broken code to test rejection
15
ca14dbe9
af24e13d
accepted
-547.5
-579.1
MOCK: nudged an integer constant (e.g. start city / range bound)
16
cc4f6f2f
57532c71
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
17
681b1065
ca14dbe9
accepted
-553.8
-566.0
MOCK: nudged an integer constant (e.g. start city / range bound)
18
cdbf0407
d7919da6
accepted
-537.0
-571.5
MOCK: nudged an integer constant (e.g. start city / range bound)
19
7a855e21
a8c3d609
accepted
-564.5
-569.0
MOCK: nudged an integer constant (e.g. start city / range bound)
20
3b006102
681b1065
accepted
-558.1
-556.1
MOCK: nudged an integer constant (e.g. start city / range bound)
21
2e988920
d31903b3
accepted
-543.1
-558.9
MOCK: nudged an integer constant (e.g. start city / range bound)
22
ed32b0d4
3b006102
accepted
-533.9
-567.0
MOCK: nudged an integer constant (e.g. start city / range bound)
23
a1d50f19
ed32b0d4
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
24
3041f9c0
681b1065
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
25
c3c4feef
57532c71
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
26
4e48c9d6
3b006102
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
27
47fb8ffc
3b006102
duplicate
—
—
MOCK: returned parent unchanged to test duplicate detection
28
f38816de
7a855e21
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
29
7780cc88
3b006102
duplicate
—
—
MOCK: nudged an integer constant (e.g. start city / range bound)
30
ae9c5f84
ca14dbe9
accepted
-553.2
-569.1
MOCK: nudged an integer constant (e.g. start city / range bound)