Skip to main content
  1. Projects/

Can an AI evolve an Eel into a Fish?

Pranav
Author
Pranav
Coding with Physics, Physics-ing with code
OngoingMuJoCo simulationFish Mk1 resultsEvolutionary searchBehavior videos
TL;DRMechEvolve tests whether an AI can improve an eel-like swimmer into a fish-like swimmer through bounded evolutionary search and simulation feedback.

Overview
#

MechEvolve is an ongoing study of whether a model can help improve a simulated swimmer. A swimmer design is stored as JSON, converted into MuJoCo, and tested for motion and stability. The results guide the next design proposal.

The system uses evolutionary search and a MAP-Elites archive. A local model can suggest a bounded change. Deterministic simulation and validation decide if the change is useful.

This resembles weak recursive self-improvement, but it is not full RSI. The model does not change its own weights. It helps search a fixed design space.

Pipeline
#

MechEvolve converts a swimmer design into a MuJoCo result, then uses the result to guide the next generation.

Fish Mk1: current progress
#

Fish Mk1 is the strongest result from the restricted search. It has three body segments, two hinge joints, and seven fins. The current candidate is g009_0232_mut, found in generation 9.

  • Simulation score: 0.6075
  • Forward distance: 1.623 m
  • Path efficiency: 0.9969
  • Reversals, lane exits, and unstable steps: 0

These results come from the current MuJoCo protocol. They do not represent a finished physical design. The search uses only the Mk1 topology.

Evolution reel
#

Generation 0 at full speed, middle generations at high speed, and the final generation at full speed.

The reel shows the best tracked candidate from each stage. The first and final clips play at full speed. The middle clips play faster so the change is easy to scan. The reel does not show every candidate.

First versus final
#

Metric Generation 0 Generation 9 Change
Candidate g000_0017_mut g009_0232_mut Final candidate
Simulation score 0.4811 0.6075 +26.3%
Forward distance 0.535 m 1.623 m 3.0x
Reversals 0 0 No change
Lane exits 0 0 No change
Unstable steps 0 0 No change

The score and distance improved during the restricted run. The safety metrics were zero at both endpoints. These comparisons describe simulation results. They do not establish physical performance.

Fish Mk1 swimming in the current MuJoCo evaluation.
Top-down path audit for the same Mk1 candidate.

Next steps
#

The next phase will improve result reliability before the search space expands:

  1. Test the anchor and finalist with multiple seeds and fluid conditions.
  2. Report progress, stability, smoothness, and energy as separate metrics.
  3. Add new body topologies after the current benchmark is stable.
  4. Link each design to its parent, mutation, metrics, and behavior niche.

The goal is a reproducible study of how body and control changes affect performance. The current simulated fish is not a deployable robot.

Status
#

This project is ongoing. Fish Mk1 is the current restricted-search result. Further testing and broader body-design experiments are planned.

Tools
#

  • Python, MuJoCo, Gymnasium, and Stable-Baselines3 for the simulation loop.
  • Evolutionary mutation, crossover, de-duplication, and MAP-Elites archiving.
  • JSON design artifacts, evaluation metrics, trajectories, visual audits, and stitched elite reels for reproducibility.
  • Ollama-compatible local models as bounded advisors to the search.

Related