Build a body
Join limbs, wheels, shoes, grippers, rockets, cannons, or Zanifiers into a 2D contraption, then place sensors where their measurements will matter.
Project 03 · Source 0.25.0
A family-built 2D training simulator for experimenting with unusual robot bodies, visible neural controllers, reward design, and PPO.

A trained two-motor body attempting a practice course, with live sensor, dense-layer, and motor activity shown below.
Origin
Learnin' Man was created to help my kids, Skye and Sunny, experiment with a concept they saw and enjoyed on YouTube: constructing unusual 2D robot bodies and training them to move.
The game exposes the body, sensors, motors, neural network, World, reward policy, and PPO training process so they can change one element and observe what happens. The point is not to hide machine learning behind a finished character. It is to make the controller another thing they can build and inspect.
Children do not need algebra or calculus to begin. Sensors turn events into numbers, neurons mix those numbers, motors turn outputs into movement, and rewards distinguish more useful attempts from less useful ones.
Experiment loop
Join limbs, wheels, shoes, grippers, rockets, cannons, or Zanifiers into a 2D contraption, then place sensors where their measurements will matter.
Connect sensor values to motors through a feed-forward multilayer perceptron. Dense layers are the default, while custom neurons and wires remain available for experiments.
Paint a sparse tile course, place a Start and Goal, add objects and fields, and choose the reward signals that define useful behavior.
Let PPO search for a controller, then replay Latest or Champion checkpoints with motor levels, neuron activity, reward events, and slow-motion controls visible.
Construction surface
Body
Bodies can be face-only or branching contraptions. Limbs, wheels, grippers, rockets, cannons, and deliberately unruly Zanifiers each expose different motor interfaces and physical constraints.
Sensing
Ground, touch, distance, direction, speed, lean, time, clock, and random wiggle sensors let placement and representation become part of the experiment.
Rewards
Worlds can reward reaching the flag, moving closer, collecting objects, or interacting with the course, while penalizing delay, missed goals, or falls.
Comparison
Explicit saves create immutable body and World versions. Training freezes those exact versions so a later workshop edit does not silently change an active run.
PPO training
The trainer uses proximal policy optimization for small feed-forward networks. The Web Edition runs one CPU worker at a time in bounded, fairly scheduled quanta, so multiple family experiments can coexist without requiring a GPU or freezing the editor.
Every run records rolling Latest checkpoints, new Champion checkpoints, and milestones. A Champion is simply the controller with the best total reward seen for that run; it is not a separate hand-authored ranking policy.
Playback uses the same Planck.js physics and neural-network interpretation as training. The viewer can display exact training step, reward history, sensors, motor output, neuron activity, connection strength, slow motion, and frame steps.
Runtime and privacy
The playable edition runs the workshops, Planck.js simulation, and PPO training entirely in this browser. IndexedDB holds profiles, workbenches, versions, runs, and checkpoints; a Web Worker keeps training off the main interface thread.
The Web Edition has no account, application backend, or remote save service. Its data remains on this device and can be exported as a JSON backup, restored later, or erased from the game. Closing or suspending the tab can pause training; saved quantum boundaries let a run continue safely.
Version 0.25.0 remains the original self-hosted distribution: one local Docker container with FastAPI, file-backed state, and bounded Node.js PPO workers. Its raw service is intended for loopback use and should not be exposed directly to the public internet.