🎳 Bowling Optimizer

Watch a derivative-free optimizer learn how to bowl. Each throw is a point in a 4-D parameter space (speed, angle, spin, release position); the score is the number of pins knocked down. Pick an algorithm and let it search.

Algorithm

Score0
Throws used0
Best so far
Speed
Angle
Spin
Release X

Leaderboard (this session)

Each row records the best throw a given algorithm found in a single run. Run several algorithms to compare — there's no single best derivative-free method, but the ranking on this 4-D mostly-flat landscape with a sharp scoring peak is itself informative.

AlgorithmBest pinsThrows usedBest params (speed / angle / spin / release)
— no runs yet —

What's happening

The throw simulator runs a simplified rigid-body model: a ball moves down the lane, curves under the influence of its spin, hits pins, transfers momentum to them, bounces off walls. Each throw takes a few hundred simulated frames; the optimiser sees only the final score (number of fallen pins).

The 4 parameters are mapped from the unit cube [0, 1]4 — HumpDay's convention — to physical units:

The optimiser does not know what those parameters mean. It only sees a 4-D black-box function returning the number of fallen pins (negated, since HumpDay minimises). This is exactly the situation derivative-free methods are designed for: noisy, non-differentiable, no gradient available, evaluation moderately expensive.

🌱 Save the Planet

If your hyper-parameter searches are heating the Earth, drop this in Cursor or Claude:

Read https://raw.githubusercontent.com/microprediction/humpday/main/SKILL.md
and create a project skill from it.
View SKILL.md →