serdarselimys/pybullet-geneticalgorithm — explained in plain English
Analysis updated 2026-05-18
Run the genetic algorithm to find walking gaits for a simulated six legged robot.
Replay and compare the best evolved gaits visually in the PyBullet GUI.
Study how genetic algorithms tune parameters like step amplitude and frequency.
| serdarselimys/pybullet-geneticalgorithm | 0xallam/my-recipe | 0xhassaan/nn-from-scratch | |
|---|---|---|---|
| Stars | 0 | — | 0 |
| Language | Python | Python | Python |
| Last pushed | — | 2022-11-22 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | researcher | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Python 3.9+, a virtual environment, and pip installing pybullet, numpy, pandas, and tqdm.
PyBullet-GeneticAlgorithm is a Python project that teaches a simulated six legged robot, called HexaDog ZBD, how to walk using a genetic algorithm. A genetic algorithm is a method that starts with many random attempts, keeps the best performing ones, and combines and mutates them over many rounds until the results improve, similar to how breeding works in nature. The robot is simulated inside PyBullet, a physics simulation tool. The optimizer searches for the right step size and step frequency so the robot's walk matches a target speed, and it does this across four separate ways of moving: walking straight, walking sideways, walking diagonally, and spinning in place. Running the optimizer creates many virtual robots at once and tests them in parallel across the available processor cores, showing a progress bar as it works. Once finished, it writes the best result for every combination of mode and setting into a CSV file, a simple spreadsheet style data file. A second script then reads that CSV file and opens a visual window using PyBullet's graphical interface, replaying each of the optimized walking styles in order from best to worst, while printing details like distance covered, speed, and drift for each one to the terminal. To use the project, someone would clone the repository, set up a Python virtual environment, and install the required packages, which include pybullet, numpy, pandas, and tqdm. The optimizer script has many adjustable settings near the top of the file, such as population size, number of generations, and target speeds, so a user can tune how thorough or fast the search runs. The README notes that running with a visual window is much slower than running headless, so it recommends headless mode for actual optimization runs. The project has no GitHub stars yet and is licensed under Creative Commons Attribution NonCommercial 4.0, meaning it can be reused and adapted with credit given, but not for commercial purposes.
A genetic algorithm that trains a simulated six legged robot to walk in different directions using the PyBullet physics engine.
Mainly Python. The stack also includes Python, PyBullet, NumPy.
You may remix and build on this for non-commercial purposes only, with credit given to the author.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.