Skip to content

Repository files navigation

dots-sim

Julia Tests

Tiny neural networks evolve inside increasingly questionable environments.

I made stupid dots evolve brains. Then I gave them increasingly stupid problems and watched natural selection commit crimes.

Generation one and generation 200 dots moving through the same food world

The bastards actually evolved

Every dot gets eight sensors, six actions, a fixed hidden layer, energy, mutable traits, and no backprop. They are born stupid. The only optimizer is survive, reproduce, mutate, repeat.

Measured result Observation
Food world Fitness climbs and speed, vision, and metabolism move under selection
Death Mean longevity rises from 1.0 toward roughly 1.7
Cannibalism Aggression saturates near 3.0 and corpses eaten tracks kills nearly one for one
Language Stranger decode accuracy reaches about 66% against a 50% coin flip, with roughly 0.08 bits of mutual information
Best and average fitness over generations Trait distributions at generation one and generation 200
Dots at generation one Dots at generation 200

Nothing cheated. No gradients, no supervisor, just a floor of food, a death sentence for standing still, and a mutation operator with commitment issues.

Then we escalate the stupidity

Kills, predator share, and lineage diet across the ecology experiment Cooperation, defection, and deception across the society experiment
Death causes, longevity, corpse economy, and age distribution Kills, corpses eaten, aggression, and meat share

Predation produces a permanent war instead of the neat herbivore-versus-carnivore split I expected. Cooperation survives because dots remember cheating bloodlines, and the liars keep coming back anyway. Evolution does not abolish death. It rations it.

The language experiment is the honest disappointment. The dots develop a detectable shared signal, but the code stays fragile because speakers will not differentiate until listeners decode, and listeners will not decode until speakers differentiate. They invented the beginning of a language, which is still more than I expected from an 8 by 8 by 6 brain.

Mutual information and stranger decode accuracy in the language experiment

The boring stuff

Julia owns simulation and experiment semantics. Python owns the narrow representation-learning backend. Seeds, protocol IDs, hashes, replay digests, and recorded evidence keep the experiments inspectable.

Run the experiments and read the correctness contracts.

About

Tiny neural networks evolve inside increasingly questionable environments.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages