// the take
A small library of evolution strategies (GA, population-based REINFORCE, CMA-ES via a pycma wrapper, and OpenAI's ES) behind one ask/tell interface, built by David Ha (hardmaru) as the companion code to his well-known 'Evolving Stable Strategies' and 'Visual Guide to Evolution Strategies' blog posts. It's for people who want to experiment with black-box optimization on RL/control tasks (bipedal walker, cartpole swingup, PyBullet envs) rather than build a production training pipeline.
The ask()/tell() abstraction is genuinely clean and swaps between GA, PEPG, CMA-ES and OpenAI-ES without touching your training loop — useful as a reference pattern even outside this repo. Ships pretrained zoo models and .hist.json logs so you can reproduce the blog post results without retraining from scratch. The cartpole_swingup environment has zero external dependencies, so you can try the ES loop itself before fighting with PyBullet or Gym installs. The accompanying blog posts actually explain the math and intuition well, which most ES repos don't bother with.
Dead since December 2022 and pinned to ancient dependencies that the README itself flags as fragile — Gym 0.9.4 ('breaks for 0.10.0+'), NumPy 1.13, PyBullet 1.6.3, cma 2.2.0. Getting this running on a current Python/conda setup means recreating a 2017-era environment, not a pip install. Parallelism goes through mpi4py, which is its own setup headache (the README's Windows instructions involve a separate MSI installer and manual script edits). No tests, single-author research code — this is a teaching artifact tied to two blog posts, not something you'd build a training system on top of.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →