About
JugglingHub exists to make juggling patterns legible. You type a siteswap, and it comes to life in 3D — at whatever speed you like, from whatever angle you like.
Why siteswap
Juggling has a notation. It is compact, complete, and almost nobody outside the juggling world has heard of it. A pattern is written as a run of digits, and each digit says how many beats will pass before that ball is thrown again. The whole three-ball cascade is the single character 3.
Once the notation clicks, patterns stop being tricks you memorise and start being things you can read, compare and invent. The catch is that the notation is hard to picture — which is exactly the gap a simulator fills.
How the simulator works
Nothing here is pre-rendered, and nothing is a video. Every pattern is computed from its notation, which is why any valid siteswap works — not only the ones in the pattern list.
The notation is parsed
The digits are validated and expanded into a schedule of throws: which ball, from which hand, released on which beat, landing on which.
The balls are simulated, not animated
Each ball follows real projectile motion. The flight time is fixed by the throw's value in beats, and the launch velocity is whatever carries the ball from the releasing hand to the catching hand in exactly that time under gravity. Higher throws arc higher on their own — no one tunes them.
The juggler is posed to match
The hands go where the pattern says they must be, and the arms are solved backwards from there with two-bone inverse kinematics. The figure follows the juggling, rather than the juggling being drawn around a figure.
That is also why slowing a pattern down is genuinely useful: at 0.25× you are watching the same physics, just with more time to see where each ball came from.
Get in touch
Corrections, patterns you think belong here, or anything that looks wrong in the simulator — I would like to hear about it.