Hammer Labs HL-X-003 EXPERIMENT RECORD
HL-X-003 EXPERIMENT RECORD GEMMA-3-27B 3 SEEDS · 3 ROUNDS Hello World Models · PART 3

The LLM competition, full results

An LLM wrote four species, they competed for survival in a live world, and a loss function ranked them. It read the results and tried again, three times. This is everything the run recorded, round by round.

00

The run

Model
gemma-3-27b
Seeds
[7, 42, 99]
Modes
melee (shared world) and solo (alone)
Loss
loss = -(survival + population share + longevity - volatility)
Melee length
9,000 turns, about 20 seconds
Whole experiment
under 5 minutes
Determinism
same roster and seed always give the same result; full weather ticks every turn
Runner
scripts/exp_compete_llm.py

A strategy is not one creature but a whole species: it spawns founders whose traits are sampled from ranges the model picks, every child inherits the strategy, and the whole lineage counts toward that strategy’s score. Lower loss is better, so the charts below plot the score, which is its negation, and higher is better.

01

Round by round

Melee score by round, higher is better. The selected round is drawn solid; the rest of the arc stays visible so a rescue reads as a climb rather than a number.
# Species Representation Score Loss Δ prev Outcome

gemma-3-27b, in its own words

Deaths by cause

Cause of death is the debugger. Starvation points at over-breeding or lazy foraging, thirst at bad habitat, old age at a healthy lineage. A species that never reaches old age is not being out-competed, it is not viable.

Deaths by cause, melee.
02

Solo versus melee

Every species runs twice: alone on the same worlds, and sharing one world with the other three. The gap between the two is the cost of competition, and it is the signal the two modes were built to expose. Published for round 3.

Species Solo Melee Cost of competing
stoneback 1.459 1.217 −0.242
sunseeker 1.451 1.216 −0.235
dustrunner 1.449 1.225 −0.224
canyon-wanderer 1.451 1.223 −0.228
mean −0.232

Every species scores worse in the shared melee than running alone, and the penalty is remarkably even across very different strategies. Solo success does not transfer.

03

The edits

What the model changed between rounds, and what happened. Where it named a number, the number is here; where it only named a direction, that is what is shown.

1 → 2 stoneback rescued
breed health threshold 90% 60%
reproduce_cooldown 24 ticks 10 ticks
maturation rate slow faster (no value recorded)

Extinct, last place → first place. One causal read.

1 → 2 planful-grazer reworked, failed again
plan objective general foraging prioritize water (no value recorded)

Died the same way: starvation and thirst, never reaching old age.

2 → 3 planful-grazer abandoned
representation GOAP plan parameter strategy (no value recorded)

Replaced by canyon-wanderer, a plain parameter strategy, which survived immediately and placed second.

04

Why the planner kept losing

The model’s plan made the wander action nearly free and gave it no effect. The planner, trying to reach its goals at the lowest cost, had no reason to forage or drink hard, so its creatures drifted and died thirsty. A well-tuned default behaviour tree beat a hand-written planner three times running. The lesson is not that planning is bad. It is that a plan is only as good as its cost model, and the competition surfaced that flaw from deaths alone.

05

Provenance

The runner’s JSON artifacts for this run were never committed, so every number on this page is recovered from the figures published in the post, whose geometry encodes the run losslessly. Three checks say the recovery is exact rather than approximate:

Anything the figures do not carry is marked as not recorded rather than guessed: deaths by cause exist for round 1 only, solo-versus-melee for round 3 only, and one maturation edit was described by direction without a value. The run itself is reproducible from scripts/exp_compete_llm.py, which is in the repository.