“Although there is nothing in our idealized setup that requires two hands, or even “hands” at all, we note that in the usual two-handed juggling patterns, a throw with odd throw height df(t) goes from one hand to the other, and a throw with even throw height goes from one hand to itself.”
“Juggling Drops and Descents”: Joe Buhler, David Eisenbud, Ron Graham and Colin Wright.
The “usual two-handed juggling patterns” in the above quote refer to asynchronous patterns with the hands throwing alternately, or in other words, using the hand siteswap sequence “2”. As pointed out throughout this blog series, the “usual” is by no means the only way to juggle a given siteswap sequence. For example, in Siteswap Notation II we came across the below video demonstrating several ways in which the siteswap sequence “3” could be juggled, including a couple of options which weren’t even two-handed.
In Siteswap Notation VI and Siteswap Notation VII we saw how juggling simulators would struggle to represent such “unusual” patterns using the standard asynchronous or synchronous notation. To fill this gap, simulators have used some “extensions” to the siteswap notation which we will study in this blog, using “option 4” demonstrated in the above video as an example. This option can be viewed again in the trimmed video below.
I describe this pattern as object siteswap sequence “3” + hand siteswap sequence “1 3”. Each object is thrown three beats after its previous throw leading to the object siteswap sequence “3”. The order in which the hands throw is “right right left left” which repeats, leading to the hand siteswap sequence “1 3”. Let’s now take a look at how some simulators would deal with this pattern.
Juggling Lab
The Juggling Lab simulator uses an extended notation, which though asynchronous, incorporates some of the features of the synchronous notation as we introduced it in Siteswap Notation V: Each beat is represented, the throwing hand associated with each siteswap number is indicated and the hand to which the throw is to be made is also indicated. The siteswap sequence in Juggling Lab for our example pattern is: “R3 R3x L3 L3x” with the “Dwell beats” control set to something less than 1[1] (e.g., 0.4).

The alphabet preceding the siteswap number represents the throwing hand – “R” meaning “right” and “L” meaning “left”. The “x” following some of the siteswap numbers indicates that the throw will go to the hand opposite from the one it would go to in a “usual” two-handed juggling pattern, i.e., an odd siteswap number going from one hand to itself or an even siteswap number going from one hand to the other. The alphabet indicating the hand for a throw may be dropped if the throwing hand is different from the one that made the preceding throw, i.e., the “usual” alternating hand throwing sequence is in effect. For example, the above pattern can also be written as “3 R3x 3 L3x”. Juggling Lab by default starts asynchronous patterns with the right hand so we don’t have to specify it for the first throw. We also dropped the “L” in the “L3” throw as the previous throw was made by the right hand.
The method of splitting the pattern description into object + hand siteswap makes it very easy to create and validate “unusual” juggling patterns. For example, one can immediately tell that the object siteswap sequence “4 2 3” with the hand siteswap sequence “1 3” will make a valid juggling pattern[2]. However, it does not give an intuitive feel for what the pattern will look like. In that sense, the Juggling Lab notation makes the pattern easier to visualize as it includes details about the throwing hand and the throw direction. But what are the odds on someone “creating” the equivalent period 12 sequence “R4 R2x L3 L4 R2x R3x L4 L2x R3 R4 L2x L3x”?

Note that the Juggling Lab extended notation demands that the permutation test methodology be tweaked, as we need to incorporate the significance of the “R”, “L” and “x” into the test algorithm.
JoePass!
The JoePass! representation of our example pattern employs the concept of a “hurry“, which is said to come about when an object is thrown one count sooner than “normal”. A hurried throw is indicated by an asterisk, “*”, after the siteswap number[3] and signifies that that throw is to be made by the same hand that made the previous throw.
The sequence “3 3x*” in JoePass! seems to do a job similar to what the Juggling Lab sequence “3 R3x 3 L3x” does with the default dwell beats setting (1.3).
JoePass “3 3x*” Juggling Lab “3 R3x 3 L3x” with dwell beats = 1.3
Interestingly, the JoePass! sequence “4x 4*” with siteswap number average = 4, produces the 3-object pattern that we’re looking for!

JoePass! thus seems to be corrupting the average theorem in addition to the permutation test. Using the sequence “5 5x*” again surprised me. It did result in a 5-object sequence (consistent with the average theorem), but in terms of number of beats between two successive throws of the same object, the pattern corresponded to the object siteswap sequence “6 4” juggled with the hand siteswap sequence “1 3”.

This was difficult to spot because all objects were being thrown to the same height (almost that of a “usual” 5-ball cascade), but with different dwell times. So JoePass! here seems to be interpreting the siteswap number as the throw height rather than the number of beats between two successive throws of the same object.
These extended simulator notations are, therefore, quite confusing to reconcile with the mathematics obeyed by the siteswap notation.
Galloped throws
Another remark in Juggling Drops and Descents states, “Nothing in our model really requires that the rhythm of the juggling pattern be constant. We only need a periodic pattern of throw times. We retain the constant rhythm terminology in order to be consistent with jugglers’ standard model of siteswaps.”
There is a school of thought that prefers to treat our example pattern as a “usual” two-handed pattern but one that does not follow the “standard model” in terms of having a constant rhythm. This helps in keeping the mathematics consistent but, as we shall see, creates other complications. The argument is that the hands are throwing alternately, but the throws are not spaced equally apart in time. Such throws (patterns) are also sometimes called “galloped” throws (patterns). In our example pattern, it would seem that all the throws are occurring equally spaced apart in time. This is where two types of “throws” can be cleverly imagined to be “thrown” at a convenient, random time:
- A “0” throw is an empty hand.
- In a “usual two-handed pattern”, a “2” may be “thrown” as a hold.
In each case, the hand does not need to be seen making a throw and yet, the throw may exist. Inserting these throws in the siteswap sequence naturally affects the period of the sequence as well as the other siteswap numbers in the sequence. Let us do this for our example pattern starting with the Juggling Lab notation:
R3 R3x L3 L3x
Now a “usual” two-handed pattern must have the hands throwing alternately. Therefore, we “insert” a left hand throw between the two successive right hand throws AND a right hand throw between the two successive left hand throws thus:
R3 L? R3x L3 R? L3x
Note that as soon as these two extra throws (beats) have been inserted, the object thrown as R3 which next gets thrown as L3x, must now be said to be thrown as R5 to account for the two extra beats inserted before the L3x throw. Similarly, the object thrown as R3x, which next gets thrown as R3 (or rather R5 now), must now be said to be thrown as R4 (note the absence of an “x” now since a “4” throw “usually” goes back to the throwing hand anyway) to account for the one extra beat inserted before the next R3 (or rather R5) throw. The same holds for the L3 and L3x throws. So we end up with the following:
R5 L? R4 L5 R? L4
It now remains to determine what the siteswap number for the two new throws should be. One can verify that a “0” works quite well for both the new throws. Also, since we’ve now converted it to a “usual” pattern, we can also use the “usual” siteswap notation and drop the hand indicators. The pattern is thus,
5 0 4 5 0 4
with the “0” throw happening “somewhere” between the “5” and the “4”, thus creating a pattern with a non-uniform rhythm.
However, once one goes down this path, what is to stop one from imagining even more galloped throws? For example, “5 0 4 5 0 4” can be further modified by introducing both a right and a left hand throw between the “4” and “5” to get:
7 0 6 2 0 7 0 6 2 0
All these patterns are indeed very similar: they all involve a crossing right hand throw, followed by a right hand throw to itself, then a crossing left hand throw followed by a left hand throw to itself. But the throw timings and throw heights are quite different if they are all juggled with the same beat rate. The galloped pattern approach, while respecting the mathematics of the siteswap notation, obfuscates information about such variations.
Synchronous Extensions
As argued above, the idea of describing “unusual” juggling patterns as a combination of object and hand siteswap sequences seems to be the least disruptive one in terms of preserving the relative timing information and the mathematical framework of the siteswap formulation. Another way to do this would be to use the synchronous notation of Siteswap Notation V. The example pattern we have been using can then be written as[4] “(3x 0) (3 0) (0 3x) (0 3)”. However, this approach is again incompatible with simulators as explained in the “Juggling Simulators” section of Siteswap Notation VI as most simulators default to assuming an “empty” beat between synchronous throws. This pattern will therefore have to be tried in a simulator in its collapsed beat equivalent format “(6x, 0) (6, 0) (0, 6x) (0, 6)” which will get juggled slower and higher than we’d expect the actual asynchronous pattern to be juggled.
Further, as seen in Siteswap Notation VII, the empty beat requirement in the simulator synchronous notation leads to limitations in representing patterns with mixed synchronous and asynchronous throws. To handle that, extensions have been proposed for synchronous notation as well. As an example, let’s use the 3-ball cascade to shower transition shown in the video below which I wrote as “(3x 0) (0 3x) (4x 0) (0 1) (4x 2x) (0 0) (1 3x)” in Siteswap Notation VII.
Instead of converting all throws to synchronous for such patterns as we have done since Siteswap Notation V, the extended notation developed for such mixed patterns tries to retain the distinction between asynchronous and synchronous throws. With this notation, one possible sequence I came up with to represent the above transition in JoePass! is:
3 3 4x 1x (2x, 4x) (3, 1x)
The synchronous throws assume an empty beat after them so we don’t need to write the (0, 0) after the (2x, 4x). The meaning of the “x” still depends on the siteswap number preceding it similar to the asynchronous Juggling Lab extension discussed above.

This looks fine except that the last (3, 1x) throw results in two-balls being held in one hand for a while. This happens because the “1x” of the synchronous (3, 1x) throw is conflicting with the empty beat requirement after a synchronous throw. Basically JoePass! is again simulating an illegal pattern. Indeed, Juggling Lab, which also allows the above synchronous extension, returns “Invalid pattern average” for the above sequence.
Beatmap
In the next part of this series, we will study Ed Carsten’s Multi Hand Notation (MHN). Luke Burrage also came up with a notation he called “beatmap notation”, which I feel is essentially (mathematically) the same as MHN. It turns out that apart from a couple of syntactical changes[5], the synchronous siteswap notation as presented in Siteswap Notation V, is a two-handed version of beatmap notation. The reason I bring this up in this blog is because JoePass! supports the two-handed beatmap notation. Expectedly, with this notation, JoePass! can simulate all the “unusual” patterns we have encountered in this series. For example, the sequence “3” with hand siteswap “1 3” can be simulated in JoePass! by giving the input:
#beatmap
(0, 3x) (0, 3) (3x, 0) (3, 0)
Similarly, the transition between the 3-ball cascade and shower from Siteswap Notation VII can be reproduced with:
#beatmap
(0,3x) (3x,0) (0,4x) (1,0) (2x,4x) (0, 0) (3x,1)
Juggling Lab too has the “!” modifier to indicate the absence of the implicit “empty” beat after a synchronous throw which allows it to mimic the beatmap notation functionality. The 3-ball cascade to shower transition there becomes:
(0,3)! (3,0)! (0,4x)! (1x,0)! (2x,4x) (3,1x)!
While in JoePass! (beatmap), the “x” always denotes a crossing throw, in Juggling Lab it retains the meaning from the mixed sync-async notation, that the throw is not towards the “usual” hand.
Even the synchronous solution I provided for the “fake 4 2 3” in “The 4 2 3 demystified” works in the JoePass! beatmap notation:
#beatmap
(2, 1) (2x, 1) (1, 2) (1, 2x)
Similarly, the sequences from Siteswap Notation VI where we transitioned the hand siteswap with or without a simultaneous transition in the object siteswap may also be written in beatmap notation and simulated in JoePass!.
Though the synchronous notation (which should apparently be called the beatmap notation) works well, there is something to be said about the notation using a combination of object and hand siteswaps for asynchronous patterns:
- It is more compact than the synchronous (beatmap) notation.
- It is easier to recognize opportunities for pattern simplification using “holds” at beats where the object and hand siteswap numbers match[6].
- It still allows us to represent an asynchronous pattern in an asynchronous notation.
All said though, if asked to standardize to just one notation system, I’d probably pick the MHN – it can do everything that all the notations in this blog can do. And that’s why we will take a more detailed look at it in the next part of this series.
Footnotes
- Leaving the “Dwell beats” parameter at its default value of 1.3 will show a pattern in which hands will briefly hold more than one object at a time. The same effect can be observed if we set “Dwell beats” to something greater than 2 (say 2.3) for the “usual” patterns.
- As explained in footnote [3] of Siteswap Notation II, any siteswap sequence for objects will be compatible with any hand siteswap sequence except if we get a beat where the hand siteswap number is “0” while the object siteswap number is non-zero.
- The asterisk is also used in synchronous siteswap notation with a different meaning. See the section “Synchronous Shorthand” in Siteswap Notation V. JoePass! recommends using “%” in the synchronous notation instead of “*”. I’m not sure if this leads to less confusion or more.
- In this case, one does not have to remember what a “usual” throw is to work out the meaning of the “x”. The “x” always means a throw to the other hand.
- Use commas to separate siteswap numbers inside the brackets. The first number corresponds to the left hand instead of the right.
- See ‘Exploiting “holds”‘ section of Siteswap Notation VI.