{"slug": "show-hn-distributed-langton-ant-in-rust", "title": "Show HN: Distributed Langton Ant in Rust", "summary": "A developer released an open-source Rust project, langton-ga, that runs an asynchronous island-model genetic algorithm over TCP to evolve turmites, generalized Langton's ants, and logs every generation for audit. The project, built with help from AI agents, ships a turmite simulator, the distributed GA, an experiment suite and a paper, but its author states the results rest on exact paired permutation tests across all five seeds with effect directions only — magnitude with intervals and pre-registered confirmation are not yet done. The author frames the work as a snapshot rather than a verdict on whether distributed evolutionary search beats a single population on a small, rugged, deceptive landscape.", "body_md": "# What distribution buys: evolving turmites with an island-model GA\n\nWhat does a distributed genetic algorithm gain when the search landscape is small, rugged and deceptive? I evolved turmites with an asynchronous island-model GA over TCP in Rust, logged every generation and published the experiment and the paper.\n\nThe question that opened this project fits in one line: **what does\ndistribution buy when the search landscape is small, rugged and\ndeceptive?**\n\nTo answer it, with the help of AI agents I wrote a Rust algorithm that\nmeasures the capability of distributed evolutionary search over\ngeneralized Langton ants — turmites. The genetic algorithm runs as\nasynchronous islands communicating over TCP, records **every\ngeneration** without exception, and the repository ships both the\nexperiment suite and the paper behind the numbers:\n\n[https://github.com/sudo-giusppe/langton-ga](https://github.com/sudo-giusppe/langton-ga)\n\n## Why turmites\n\nI already wrote about Langton’s ant [here](https://giuseppeblog.onrender.com/en/blog/langtons-ant): two\nrules, two colors, and a highway that emerges on its own. The turmite is\nthe natural generalization: more states, more colors, and a transition\ntable that works as a genome. Evolving turmites means picking transition\ntables that produce interesting behavior — and that search landscape\nhas a reputation for being exactly what you don’t want: small-looking,\nfull of isolated peaks, and with optima that pretend to be more than\nthey are.\n\nThat makes it a good test bench for a question about method: when the problem is this tricky, does splitting the population into islands that evolve on their own and occasionally swap individuals buy something real, or does it only buy pretty theory?\n\n## What’s in the box\n\n- A **turmite simulator** in Rust, with the genome and the evaluation\nseparated from everything else.\n- An **island-model genetic algorithm, asynchronous** : each island\nevolves at its own pace and talks to the others over TCP.\n- **Full generation logging** : every generation is recorded, not just\nthe final result.\n- The **experiment suite** and the**paper** backing the numbers, all in\nthe same repository.\n\n## What the numbers say — and what they don’t\n\nI’m going to be honest with myself here: the current research on the topic is quite limited. What exists are exact paired permutation tests, all five seeds, and effect directions.\n\n| Piece | Status | \n|---|---|\n| Exact paired permutation test | yes | \n| All five seeds | yes | \n| Effect direction | yes | \n| Magnitude with intervals | not yet | \n| Pre-registered confirmation | not yet | \n\nFor a first snapshot, that level of rigor is appropriate. For a confirmatory claim of effectiveness, it doesn’t reach. And I’d rather say it that way before someone else says it for me.\n\n**Note.** This is a snapshot, not a verdict. The\n  numbers in the paper are what five seeds can support — no more, no\n  less.\n\n## Core separated from experiments\n\nThe most important design decision I made before writing the first line: the evolutionary core is deliberately separated from the experiments. Studying something new does not require touching the simulator or the genome.\n\nWith the current interface, without rewriting anything in the core, you can implement for example:\n\n- **Adaptive migration** : decide when and how much to migrate based on\nthe state of the islands, instead of a fixed timer.\n- **Topology** : ring vs cellular vs gossip — who listens to whom, and\nhow much it matters.\n- **Statistical rigor** : more seeds, intervals, corrections for\nmultiple comparisons.\n- **Multi-host execution** : spread islands across several machines,\nwhich is the point of having TCP as the transport already.\n\nEt cetera. The list is not closed; that’s the idea.\n\n## Closing\n\nEvery generation is logged. If a number in the paper bothers you, you can pull the raw data from the repository and audit it yourself. To me, that’s the difference between an experiment and a demonstration.\n\nThe code, the experiments and the paper live here:", "url": "https://wpnews.pro/news/show-hn-distributed-langton-ant-in-rust", "canonical_source": "https://giuseppeblog.onrender.com/en/blog/langton-ga", "published_at": "2026-11-10 14:08:44+00:00", "updated_at": "2026-11-10 14:25:46.051301+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning", "ai-research", "ai-agents"], "entities": ["langton-ga", "Rust", "Langton's ant", "sudo-giusppe", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-distributed-langton-ant-in-rust", "markdown": "https://wpnews.pro/news/show-hn-distributed-langton-ant-in-rust.md", "text": "https://wpnews.pro/news/show-hn-distributed-langton-ant-in-rust.txt", "jsonld": "https://wpnews.pro/news/show-hn-distributed-langton-ant-in-rust.jsonld"}}