Nice — round n, free-choice edition. Let me think about what fits the two constraints (toy + instantly-legible visualization) and where there's an actual ML question worth probing, not just a demo.
Here are four candidate ideas, roughly in order of how excited I am about them:
A. "Thinking longer" on mazes — recurrent nets and test-time compute
Problem: train networks to mark the shortest path through a randomly generated maze (input: maze image, output: path mask).
The ML question: compare a fixed-depth CNN against a weight-tied recurrent CNN that applies the same small block over and over. The recurrent one can be run for more iterations at test time than it was trained with — does extra "thinking time" let it solve harder/bigger mazes than it ever saw in training? This is a genuinely interesting topic (test-time compute, algorithmic extrapolation) in a form that trains in minutes on CPU. There's room for our own variants too, e.g. does giving the recurrent net a "scratchpad" that it can't overwrite help, does a confidence-based stopping rule work.
Visualization: this is the big win. An interactive HTML page: pick a maze size, a model, and drag a "thinking steps" slider — you watch the model's path estimate flicker, spread, and lock onto the route (or fail and dissolve). A non-expert sees within ten seconds which model "gets it" and that small mazes are easy while big ones need more thinking. No domain knowledge needed: either the path lights up or it doesn't.
B. Learned physics simulators — inductive biases you can see
Problem: learn the dynamics of a toy system (pendulum, ball bouncing in a box, planet orbiting a star) from trajectory data, then roll the model forward for a long time.
The ML question: plain MLP next-state predictor vs residual/integrator-style predictor vs a Hamiltonian-style network that predicts a scalar energy and derives forces from its gradient. The known result is that unconstrained models drift; the fun is in seeing how much structure you need before long rollouts become stable, and trying in-between variants.
Visualization: side-by-side animations of ground truth vs each model's rollout. Failure is viscerally legible — the planet spirals into the sun, the pendulum gains energy and starts windmilling. Plus one energy-vs-time chart. Slightly less interactive than A, but maximally intuitive.
C. Neural cellular automata — growing and regenerating patterns
Train a tiny CA update rule (a per-pixel network) to grow a target pixel image from a single seed, then compare training regimes by how well the pattern regenerates when you damage it. Interactive version: click/scrub to erase chunks and watch it regrow. Gorgeous demo, real research texture (stability, pool training, async updates), but training backprops through ~50+ CA steps, so it's the most CPU-expensive of the four — feasible at small grid sizes, but iteration cycles would be slower.
D. Inferring interaction rules from swarms
Learn boids-style flocking rules from observed trajectories, comparing a permutation-invariant/GNN-style model against a plain MLP over concatenated neighbors. Nice animations, but "works vs doesn't" is fuzzier to eyeball than A or B — you're judging vibe of a flock, not a binary path-found/orbit-crashed.
My recommendation
A (mazes), with B as a close second. A has the strongest combination: a topical ML question (test-time compute and extrapolation), several genuinely different architectures to pit against each other, cheap CPU training, room for our own twists rather than pure reproduction, and the most compelling interactive visualization — the thinking-steps slider basically is the result.
Plan sketch for A:
- Scaffold — new folder
D:\claude_code\maze_thinking, reuse the shared venv atml_venv(torch + numpy already there; no new packages needed — the interactive viz will be a self-contained HTML file with vanilla JS, data baked in as JSON). - Phase 1, pipeline + sanity — maze generator (guaranteed-solvable, with BFS ground-truth paths), small fixed CNN baseline, verify it learns small mazes at all. Decision point: if even that struggles, rethink representation.
- Phase 2, main comparison — feedforward CNN (a couple of depths) vs weight-tied recurrent net, trained on small mazes; evaluate on held-out small mazes and larger mazes, sweeping test-time iterations for the recurrent one.
- Phase 3, one novel twist — chosen based on Phase 2 results (e.g. recall-gated recurrence, adaptive halting, or curriculum on maze size).
- Writeup + interactive visualization, then the usual two independent subagent reviews of code and claims before calling it done, per the standing protocol.
Budget-wise this should land in the same ~$5-ish range as the previous rounds, with training runs of minutes rather than hours.
Want me to go with A? Or if the physics one (B) appeals more — it's the more "classic" comparison and the crash-and-burn animations are great — I'm happy to do that instead. I'll wait for your pick before touching anything.