AI research
Evolved
An AI-assisted algorithm discovery platform for turning code search into a repeatable, auditable experiment.
Evolved searches for better algorithms. A researcher brings a problem, some starting code, and a way to test it. Language models propose changes. Evolved runs them, keeps the promising ones, and uses what it finds to guide the next round.
Take circle packing. How much of a square can you fill with circles that neither overlap nor cross its edges? The researcher writes the rules and the evaluator. Evolved tries different programs for finding an arrangement. Separate populations give different ideas room to develop; the current winner need not be the only idea worth keeping.
The search runs within a budget. Isolated workers test the programs, and an archive keeps their scores, ancestry, and the conditions under which they ran. Interrupted runs can resume. When something looks better, there is a history to inspect and a result to try again.
I want a run to leave us with a verified improvement or a useful account of why the search did not find one. I’m developing Evolved first as a research instrument I can trust, then as a shared workspace for lab mates. The researcher chooses the problem and the evaluator. Having the system help choose those is a question for later research.
How it works / Explore the workflow
Inside a search
Each round begins with a program from the archive. A model proposes a change, quick checks filter the candidates, and isolated workers test the survivors. Restate saves progress so a run can resume. The archive keeps different approaches available for the next round.
Learnings
Automated search puts pressure on every omission in a test. A person may read the task and supply the missing convention. A search keeps whatever earns a better score. In one hash-function experiment, a candidate left out the operation that kept arithmetic within 32 bits. Python allowed larger integers, and the evaluator rewarded a program that was doing a different job.
That makes the evaluator part of the research. Its assumptions need tests, too. Known reference programs help reveal when a new check has become too strict. Independent checks help reveal when the search has found a weakness in the score. The more candidates we try, the more chances there are to find either kind of mistake.
A promising result deserves time outside the conditions that selected it. I want to inspect the program, compare it with the starting point, and test it where the search has not been looking. Sometimes the improvement survives. Sometimes we learn that a change cannot address the weakness we hoped it would. Both can make the next experiment better, provided we keep enough of the run to understand what happened.