Siteswap begins before any throw. The system is in a state: a description of which hands hold which objects, and when each object will next be available to throw. Siteswap is the language that encodes what happens next - and that language turns out to have the structure of combinatorics, with connections to group theory and graph theory that took decades to fully articulate.
The origin of the notation
Siteswap was invented independently and roughly simultaneously in 1981 by three groups: Paul Klimek at the University of California Santa Cruz, Bruce Tiemann and Bengt Magnusson at Caltech, and - reportedly - Claude Shannon at MIT.
Shannon is the father of information theory, the man who mathematized communication. His juggling work was unpublished during his lifetime, mostly demonstrated in his office with props he built himself. That someone who had already given the world the concept of a “bit” spent his retirement hours formalizing juggling notation is not a coincidence. The two problems share the same skeleton: encoding sequences of events in a compact representation that preserves all the information needed to reconstruct the full behavior.
The first formal mathematical treatment came in 1994, when Joe Buhler, David Eisenbud, Ron Graham, and Colin Wright published “Juggling Drops and Descents” in The American Mathematical Monthly. Graham, a combinatorialist at Bell Labs and later UC San Diego, had been juggling for decades. The paper gave the field its theorem.
What siteswap actually encodes
Siteswap describes a juggling pattern as a sequence of non-negative integers. Each integer represents the number of beats before the thrown object is caught and re-thrown.
In a standard cascade with three balls, the sequence is 3. This is a constant sequence - every throw is a 3. The interpretation: every ball you throw takes exactly 3 beats to come back. Since you alternate hands every beat, a 3 always crosses: right hand throws, 3 beats later left hand catches. A 4 stays in the same hand: it takes 4 beats to come back and is caught by the hand that threw it.
The key definitions:
- Beat: the smallest unit of time in the pattern, one throw opportunity
- Throw value (or site): the integer assigned to each beat, representing how many beats until landing
- Pattern period: the length of the repeating sequence
- Ball count: the number of objects in the air at once
A 0 means no throw on that beat. A 1 means a quick pass directly to the adjacent hand with no airtime. A 2 means a hold - the object sits in the hand for two beats.
The fundamental theorem of siteswap
Here is the core mathematical result. It is precise enough to state exactly.
Theorem (Buhler, Graham, Eisenbud, Wright 1994): A sequence of non-negative integers (t_0, t_1, ..., t_{n-1}) is a valid juggling pattern for a single juggler if and only if the n values (t_0 mod n, t_1 mod n, ..., t_{n-1} mod n) are all distinct.
This is called the average theorem because a direct consequence is: if the sequence is valid, the number of balls required equals the arithmetic mean of the sequence. Average the throw values - the result must be a whole number, and that whole number is your ball count.
Some examples:
3- mean is 3, requires 3 balls. Valid: (3 mod 1) = (0) - trivially distinct.531- mean is (5+3+1)/3 = 3, requires 3 balls. Values mod 3: (5 mod 3, 3 mod 3, 1 mod 3) = (2, 0, 1) - all distinct. Valid.441- mean is (4+4+1)/3 = 3, requires 3 balls. Values mod 3: (4 mod 3, 4 mod 3, 1 mod 3) = (1, 1, 1) - not distinct. Invalid (two balls would land at the same time).4- mean is 4, requires 4 balls. Values mod 1: (0) - valid. This is the 4-ball fountain.423- mean is (4+2+3)/3 = 3. Values mod 3: (1, 2, 0) - all distinct. Valid.97531- mean is 25/5 = 5, requires 5 balls. Values mod 5: (2, 2, 3, 3, 1) - not distinct. Invalid.75631- mean is 22/5… not an integer. Invalid before we even check distinctness.
State diagrams and the graph of all patterns
Every juggling configuration can be represented as a state - a bit string describing which future beats already have a ball scheduled to land. For a 3-ball pattern with maximum throw value of 5, the state is a 5-bit string where a 1 in position k means a ball will land k beats from now.
The state after the juggler catches and throws is determined by: remove the leftmost bit (the ball that just landed), shift everything left, and set the new rightmost bit to 1 if the throw value puts a ball there.
This defines a directed graph - the state diagram - where each node is a valid state, and each edge is a legal throw. A juggling pattern corresponds to a cycle in this graph.
Counting valid patterns
How many valid n-period juggling patterns exist with b balls and maximum throw value h?
The answer involves combinatorics. The number of valid sequences of length n using throw values from 0 to h with exactly b balls is:
C(n, b) * (h-n+1)^b * ... (the exact formula depends on the constraints)
The simpler result: for a period-n pattern, the number of valid sequences is exactly (h+1)^n - h^n * n for appropriate values. The details are in the 1994 paper.
What this means practically: the space of valid juggling patterns is enormous and precisely enumerable. Software like JugglingLab and SiteswapGenerator can enumerate all valid patterns up to a given period and ball count, because the mathematical structure makes this computation tractable.
Synchronous notation and extensions
Standard siteswap assumes strictly alternating throws. Synchronous siteswap allows both hands to throw simultaneously.
In synchronous notation, each beat contains a pair: (l, r) where l is the left-hand throw and r is the right-hand throw. An x modifier means the throw crosses to the other hand. For example:
(4,4)- both hands throw a 4 simultaneously. The 4-ball fountain.(4x,4)(4,4x)- the 4-ball crossing fountain. Alternate: one crossing throw, one straight.(6x,4)(4,6x)- a 5-ball pattern with alternating high-crossing and straight throws.
The validity theorem extends: the average of all throws in both slots must equal the ball count, and a modified distinctness condition applies per hand.
| Juggling | |
|---|---|
Why this matters beyond juggling
Siteswap’s mathematical structure has appeared in unexpected places.
In 2010, mathematician Ron Graham (co-author of the 1994 paper) and his collaborators showed that the set of all valid juggling sequences forms a monoid under concatenation - a structure also found in formal language theory. The valid sequences are a regular language, recognizable by a finite automaton.
This means: a computer can verify whether any sequence is valid in constant time per throw value, and can generate all valid sequences up to a given period in linear time. The mathematical structure of juggling patterns is computationally tractable in the same way that the structure of well-formed parentheses or valid HTML tags is tractable.
“The mathematics of juggling reveals that what looks like a physical skill is, at its core, a combinatorial problem with a clean solution. The theorem does not tell you how to juggle. It tells you which patterns are possible at all.”
Further reading
- Buhler, J., Eisenbud, D., Graham, R., Wright, C. (1994). “Juggling Drops and Descents.” The American Mathematical Monthly, 101(6), 507-519. The foundational paper. Available via JSTOR.
- Polster, B. (2003). The Mathematics of Juggling. Springer. A full book-length treatment accessible to non-specialists.
- Wright, C. (2012). “The Mathematics of Juggling.” YouTube lecture, Gresham College. Free, 55 minutes, covers state diagrams in detail.
- Knutson, A. (2004). “Juggling.” Lecture notes, UC Berkeley. Covers the algebraic structure of juggling sequences. Available at math.ucsd.edu.
- JugglingLab - open source siteswap animator with a full pattern generator. GPL-2.0 licensed. github.com/jkboyce/jugglinglab
- The Juggling Edge (jugglingedge.com) - pattern database with siteswap search and community validation.
On this site: The Physics of the Throw shows how siteswap throw values map directly to parabolic heights via Newtonian mechanics. The Mathematics of Passing extends siteswap to multi-juggler patterns via Prechac notation (1995). The Four-Ball Fountain explores why the odd/even distinction in throw values changes the entire coupling structure of a pattern. Juggling in Science and Public Life covers Ron Graham and Claude Shannon, the mathematicians who formalized this notation.