Evolutionary Learning

Machine Learning Pong

A Pong experiment where small neural-network agents compete, accumulate fitness, and evolve through selection and mutation.

JavaScript
p5.js
Machine learning
Screenshot of Machine Learning Pong

Employer signal

What This Project Shows

This project shows experimental thinking: build a simplified environment, define measurable behavior, run many agents, and use instrumentation to decide whether the approach is improving.

Problem

What Needed To Be Solved

A hand-coded Pong paddle can follow the ball, but the more interesting question is whether a controller can discover useful behavior from repeated evaluation rather than fixed rules.

Approach

How I Built The Solution

I built multiple Pong simulations at once, represented each controller as a neural network, scored performance through game events, then generated new populations from stronger agents.

Outcome

What It Demonstrates

The project communicates practical ML curiosity, custom data structures, and an ability to instrument behavior instead of guessing from the animation alone.

Evidence From Source

Source signal

The old source includes `calculate_fitness_deviation()`, `sort_pongs()`, `new_generation_ELITE`, `new_generation_MPROP`, and network mutation logic.

Learning value

The important part is not claiming production ML. It is showing that I can define an experiment and make the feedback loop measurable.