**Siteswap** is a juggling notation used to describe or represent juggling patterns. It is also referred to as **Quantum Juggling**, or The **Cambridge Notation.** *Siteswap* may also be used to describe **siteswap patterns**, possible patterns transcribed using siteswap. It encodes the number of **beats** of each throw, which is related to their relative height, and the hand to which the throw is to be made: "The idea behind siteswap is to keep track of the order that balls are thrown and caught, and only that."^{[2]} It is an invaluable tool in determining which combinations of throws yield valid juggling patterns for a given number of objects, and has led to previously unknown patterns (such as 441). However, it does not describe body movements such as behind-the-back and under-the-leg. Siteswap assumes that, "throws happen on beats that are equally spaced in time."^{[3]}

Throws are represented, "by [[LINK|lang_en|Positive_integer|[positive] integers]] that specify the number of beats in the future when the object is thrown again."^{[4]}

The numbers are as follows:^{[7]}

- 0 = "missing"/rest [empty hand]
- 1 = pass [between hands]
- 2 = hold [one hand/no toss]
- 3 = (3-ball) cascade toss [between hands]
- 4 = (4-ball) fountain/columns toss [up and into same hand]
- 5 = high toss [between hands]
- ...
- a = 10 = high toss [up and into same hand]
- ...

For example, a three-ball cascade may be notated "3", while a shower may be notated "5 1".^{[3]} The height, and thus difficulty, of throws increases quadratically and siteswaps above 5 are rare except in numbers juggling. The name *siteswap* comes from the ability to generate patterns by "swapping" landing times of any 2 throws in a siteswap. For example, swapping the landing times of throws "5" and "1" in the siteswap "51" generates the siteswap "24".

# Origin

The notation was invented by Paul Klimek in Santa Cruz, California in 1981, and later developed by undergraduates Bruce "Boppo" Tiemann and the late Bengt Magnusson at the California Institute of Technology in 1985, and by Mike Day, mathematician Colin Wright, and mathematician Adam Chalcraft in Cambridge, England in 1985 (whence comes an alternative name).^{[8]}^{[1]} The numbers derive from the number of balls used in the most common juggling patterns. Siteswap has been described as, "perhaps the most popular" name.^{[4]}

# Vanilla

Its simplest form, sometimes called vanilla siteswap, describes only patterns whose throws alternate hands and in which one ball is thrown at a time. If we were to watch someone from above as they were juggling while walking forward, we might see something like the adjacent diagram, which is sometimes called a **space-time diagram** or **ladder diagram**. In this diagram, three balls are being juggled. Time progresses from the top to the bottom.

We can describe this pattern by stating how many throws later the ball is thrown again. For instance, on the first throw in the diagram, the purple ball is thrown in the air (up out of the screen, towards the bottom left) by the right hand, next the blue ball, the green ball, the green ball again, and the blue ball again and then finally the purple ball is caught and thrown by the left hand on the fifth throw, this gives the first throw a count of *5*. We end up with a sequence of numbers which denote the height of each throw to be made. Since hands alternate, odd-numbered throws send the ball to the other hand, while even-numbered throws send the ball to the same hand. A *3* represents a throw to the opposite hand at the height of the basic three-cascade; a *4* represents a throw to the same hand at the height of the four-fountain, and so on.

There are three special throws: a *0* is a pause with an empty hand, a *1* is a quick pass straight across to the other hand, and a *2* is a momentary hold of an object. Throws longer than *9* beats are given letters starting with *a*. The number of beats a ball is in the air usually corresponds to how high it was thrown, so many people refer to the numbers as heights, but this is not technically correct; all that matters is the number of beats in the air, not how high it is thrown. For example, bouncing a ball takes longer than a throw in the air to the same height, and so can be a higher siteswap value while being a lower throw.

Each pattern repeats after a certain number of throws, called the *period* of the pattern. The pattern is named after the shortest repeating segment of the sequence, so the pattern diagrammed on the right is 53145305520 and has a period of 11. If the period is an odd number, like this one, then each time you repeat the sequence you're starting with the other hand, and the pattern is **symmetrical** because each hand is doing the same thing (although at different times). If the period is an even number then on every repeat of the pattern, each hand does the same thing it did last time and the pattern is **asymmetrical**.

The number of balls used for the pattern is the average of the throw numbers in the pattern.^{[6]} For example, *441* is a three-object pattern because (4+4+1)/3 is 3, and *86* is a seven-object pattern. All patterns must therefore have a siteswap sequence that averages to an integer. Not all such sequences describe patterns; for example *543* with integer average 4 but its three throws all land at the same time, colliding.

Some hold to a convention in that a siteswap is written with its highest numbers first. One drawback to doing so is evident in the pattern *51414*, a 3-ball pattern which cannot be inserted into the middle of a string of 3-throws, unlike its rotation *45141* which can.

Just after throwing a ball (or club or other juggling object), all balls are in the air and are under the influence of gravity. Assuming you catch the balls at a consistent level, then the timing of when the balls land is already determined. We can mark each point in time when a ball is going to land with an *x*, and each point in time when there is not yet a ball scheduled to land with a *-*. This describes the **state** that you're in and determines what you can throw next. For instance, we can look at the state just after our first throw in the diagram, it is xx--x. We can use the state to determine what can be thrown next. First we take the *x* off the left hand side (that's the ball that's landing next) and shift everything else to the left filling in a *-* on the right. This leaves us with x--x-. Since we caught a ball (the x we removed from the left) we can't "throw" a 0 next. We also can't throw a 1 or a 4, because there are already balls scheduled to land there. So assuming that the highest we can accurately throw a ball is to a height of 5, then we can only throw a 2, 3, or a 5. In this diagram, the juggler threw a 3, so an x goes in the third spot, replacing the -, and we have x-xx- as the new state.

The diagram on the left shows all possible states for someone juggling three items and a maximum height of 5. From each state you can follow the arrows and the corresponding numbers give you the siteswap. Any path which brings you back to the same state that you started with is a valid siteswap, and all siteswaps can be generated this way. The diagram becomes a lot bigger very fast when more balls or higher throws are introduced as there are more possible states and more possible throws.

Another method of representing siteswap states is having the next throw on the right and read to the left (instead of the left to right system described above), represent a ball with a 1 instead of an x, and represent a spot where there's no ball scheduled to land with a 0 instead of a -. Then the state can be represented with a binary number, such as binary 10011 for the first state in the space-time diagram above. This method makes it a lot easier to represent more objects or higher throws as it is less complicated to create.

The table on the right contains the same information as the diagram on the left. To generate a siteswap, first find the row of your starting state. Reading across the row will give you the possible numbers you can throw and the column will give you the resulting state. Moving like this from state to state until you end up back in your starting state will give you a valid siteswap.

A subset of these siteswap patterns naturally label strata in the positroid stratification of the Grassmannian.^{[10]}

"Several jugglers who have spent time in working on site swaps describe the same gain in flexibility and conceptual power that mathematicians seem to report from the use of well-chosen abstractions."^{[11]}

# Extensions

Multi-hand notation was developed by Ed Carstens in 1992 for use with his juggling program JugglePro.^{[9]} Siteswap notation in its simplest form ("Vanilla siteswap") assumes that only one ball is thrown at a time. It follows that any valid siteswap for two hands will also be valid for any number of hands, on the condition that the hands throw after each other. Commonly used multi-hand siteswaps are *1-handed (diabolo) siteswap*, and *4-handed (passing) siteswap*.

**1-handed (diabolo)**

The siteswap is performed by a single hand, or a diabolo player throwing diabolos at different heights.

**4-handed**

Valid siteswaps can be juggled by a 4-handed juggler, or for 2 jugglers coordinating 4 hands, on the condition that hands throw alternately.

In practice, this is most easily obtained if the jugglers throw by turns, one sequence being (Right hand of juggler A, right hand of juggler B, left hand of A, left hand of B).

Siteswap notation can be extended to denote patterns containing synchronous throws from both hands. The numbers for the two throws are combined in parentheses and separated by a comma. Only even numbers are allowed (each throw involves two hands, and thus only even numbers), so throws that move to the other hand are marked by an *x*. Thus a synchronous three-prop shower is denoted *(4x,2x)*, meaning one hand continually throws a low throw or 'zip' to the opposite hand, while the other continually makes a higher throw to the first. Sequences of bracketed pairs are written without delimiting markers.

A further extension allows siteswap to notate patterns involving multiple throws from either or both hands at the same time in a multiplex pattern. The numbers for multiple throws from a single hand are written together inside square brackets. For example, *[33]33* is a normal 3-ball cascade, with a pair of balls always thrown together.

Simultaneous juggling: notation means one juggler does 'xxx' while another does 'yyy'. 'p' is used to represent a passing throw. For example, *<3p 3|3p 3>* is a 6 prop '2 count' passing pattern, where all left hand throws are passes and right hand throws are selves. This can also be used with synchronous patterns; a two-person 'shower' is then *<(4xp,2x)|(4xp,2x)>*

If the pattern contains fractions, e.g. *<4.5 3 3 | 3 4 3.5>* the juggler after the bar is supposed to be half a count later, and all fractions are passes. If both juggle the same pattern (although shifted in time), the pattern is called a social siteswap and only half of the pattern needs to be written: *<4p 3| 3 4p>* becomes *4p 3* and *<4.5 3 3| 3 4.5 3>* becomes *4.5 3 3*.

Various other enhancements to the siteswap system have been proposed and enjoy some use.

- Synchronous siteswaps that switch sides: patterns that repeat in mirror image can be abbreviated with a
*. For example, Instead of*(4,2x)(2x,4)*(3-ball box pattern), you can write*(4,2x). - In software, files describing patterns may contain additional information. In Joepass, each throw can be given an individual delay (the equivalent of extending the holding time), thus allowing the description of irregular rhythms.
- Siteswaps may be considered either prime or composite. If a siteswap may be split into any valid shorter pattern which uses the same number of props, it is composite, and one which may not is prime.
^{[12]}For example, 441, which uses three props, is prime, as 1, 4, 41, and 44 are not valid three prop patterns (as 1/3≠3, 4/3≠3, (4+1)/3≠3, and (4+4)/3≠3).

# List of symbols

- Number: Relative height of a toss. 1, 2, 3...
- Brackets []: Multiplex. [333]33.
- Chevrons and vertical bar <|>: Simultaneous and passing patterns. P: Pass. <333P|333P> Fraction: Pass 1/y beats later. <4.5 3 3 | 3 4 3.5>
- Parentheses (): Synchronous pattern.
*: Synchronous pattern that switches sides. (4,2x)(2x,4) = (4,2x)*x: Toss to the other hand during a synchronous pattern.

# Programs

There are many free computer programs available which simulate juggling patterns.

- Quantum Juggling simulator by Paul Klimek
^{[47]} - Juggling Lab animator
^{[48]}- An open source animator which was written in Java and interprets nearly all siteswap syntax. It can also be embedded as applet in a website. - Jaggle
^{[49]}- Another Java based siteswap animator which uses 3d graphics to animate the patterns. It has a list of predefined tricks, supports styles to animate hand movements and allows the pattern to be played backward in time. - Jongl
^{[50]}- This is an animator which is available for many operating systems. It uses 3d graphics to display the tricks and is also capable of displaying multihand (passing) patterns. - Realtime Juggler
^{[51]}- Java applet which allows changing the siteswap in realtime. - JuggleMaster
^{[52]}- open source animator written in C++ for Linux, Windows, Mac OS X, Solaris, and others. Java version^{[53]}and JavaScript version^{[54]}are also available. - JuggleSaver
^{[55]}- This is a freeware screensaver that accurately displays juggling siteswaps in 3D. The Windows version is downloadable onsite, Mac & Linux versions are in the XScreenSaver project and the Linux version is included in many linux Distros. - JoePass!
^{[56]}works on Windows, Macintosh and Wine (For Linux) - iJuggle
^{[57]}for iPad and iPhone. - Gunswap
^{[58]}- A web based, open source, juggling animator and pattern library. Programmed in Javascript by Eric Gunther and hosted on Github^{[59]}

There are also some games to play with siteswap:

- Siteswap Game
^{[60]}developed by Sebi Haushofer (for Java) - Siteswap Freestyle
^{[61]}developed by Peter Bone (for Windows)