In part I, we mainly studied two-handed vanilla juggling patterns (one hand throwing one object at a time) in which the “assumptions of convenience” were being violated, i.e., either (a) the hands did not throw alternately, or (b) the throws were not uniformly spaced in time, or both (a) and (b) were true. This IJA article by Hans Nickmans categorizes such patterns based on which assumption is being violated and whether the pattern includes synchronous throws. However, the problem of how to represent such patterns so that other jugglers or simulators could replicate them has been glossed over[1]. In this blog, we will use the techniques described in part I to work out the siteswap representations for some example patterns, including those used in Mr. Nickmans’ article.
Galloped Asynchronous Patterns
Mr. Nickmans first considers “galloped asynchronous” patterns where:
- Both hands throw in the same rhythm.
- Hands throw alternately (no synchronous throws).
- Hands do not throw at equally spaced intervals.
Let’s construct an example pattern of this type. Let’s start with a normal asynchronous 4-ball fountain, the OSS “4” with HSS “2”, for which the throw sequence is as shown in Table 1.
Time (s) | Beat # | Throwing Hand | Thrown Object |
---|---|---|---|
0 | 0 | Right | A |
0.25 | 1 | Left | B |
0.5 | 2 | Right | C |
0.75 | 3 | Left | D |
1.0 | 4 | Right | A |
1.25 | 5 | Left | B |
1.5 | 6 | Right | C |
1.75 | 7 | Left | D |
Now let us assume that the left hand starts throwing at 0.125s[2] instead of at 0.25s, but we maintain a 0.5s difference between two successive throws from the left hand. We can then write the resultant pattern as shown in Table 2, using 0.125s as our beat duration.
Time (s) | Beat # | Throwing Hand | Thrown Object |
---|---|---|---|
0 | 0 | Right | A |
0.125 | 1 | Left | B |
0.25 | 2 | – | – |
0.375 | 3 | – | – |
0.5 | 4 | Right | C |
0.625 | 5 | Left | D |
0.75 | 6 | – | – |
0.875 | 7 | – | – |
1.0 | 8 | Right | A |
1.125 | 9 | Left | B |
1.25 | 10 | – | – |
1.375 | 11 | – | – |
1.5 | 12 | Right | C |
1.625 | 13 | Left | D |
1.75 | 14 | – | – |
1.875 | 15 | – | – |
In our OSS+HSS scheme, the pattern of Table 2 can be accurately represented as the OSS “8 8 0 0” juggled with the HSS “4 4 0 0”. Taking care to scale the beat duration appropriately, Figure 1 shows the patterns of Table 1 and Table 2 juggled side by side as simulated by our extended Gunswap[3] simulator.

A Missing Category?
Mr. Nickmans himself presents Richard Kohut’s video below as an example of a galloped asynchronous pattern.
Messrs Nickmans and Kohut seem to be indicating that the throwing rhythm in this pattern matches that of Table 2. However, a careful study of the video reveals that the hands are not throwing alternately. Table 3 shows the actual throwing rhythm being used (the 0.125s beat duration is an arbitrary assumption; the exact number has no impact on the logic being presented).
Time (s) | Beat # | Throwing Hand | Thrown Object |
---|---|---|---|
0 | 0 | Right | A |
0.125 | 1 | Left | B |
0.25 | 2 | – | – |
0.375 | 3 | – | – |
0.5 | 4 | Right | C |
0.625 | 5 | Left | D |
0.75 | 6 | – | – |
0.875 | 7 | – | – |
1.0 | 8 | Left | A |
1.125 | 9 | Right | B |
1.25 | 10 | – | – |
1.375 | 11 | – | – |
1.5 | 12 | Left | C |
1.625 | 13 | Right | D |
1.75 | 14 | – | – |
1.875 | 15 | – | – |
Going down the “Throwing Hand” column, we find that the left hand throw on beat #8 at 1.0s, breaks the alternating hand sequence. Table 3 represents the OSS “8 8 0 0” juggled with the HSS “4 4 0 0 5 3 0 0”. As Figure 2 shows, this seems to be an accurate representation of the “galloped asynchronous 4-ball cascade with quartersync throws”.

The pattern represented by Table 3 has the following properties:
- Both hands throw in the same rhythm (but with an offset).
- Hands do not throw alternately, yet there are no synchronous throws.
- Hands do not throw at equally spaced intervals.
There does not seem to be a category of patterns covering this scenario in Mr. Nickmans’ article. In particular, patterns where the “rhythm” for the individual hand is non-uniform are not considered. For example, in Table 3, the time difference between two successive throws from the same hand can take the values 0.5s (4 beats) or 0.625s (5 beats) or 0.375s (3 beats). New category or not, to me, the important thing is that siteswap notation is perfectly capable of representing such patterns accurately.
Synchronous Polyrhythms
The next example Mr. Nickmans provides is of a “polyrhythm”. This has the following properties:
- Hands do not throw in the same rhythm.
- Pattern includes synchronous throws.
As an example of such patterns, Mr. Nickmans presents Matthew Tiffany’s video.
As pointed out in part I, vanilla notation is not intended to handle cases where more than one hand throws at the same time. We will therefore, resort to the Multi Hand Notation (MHN) to represent this pattern (see appendix for a vanilla solution). Mr. Nickmans suggests that the throwing rhythm for this pattern is as per Table 4, with the beats not being uniformly spaced.
Beat # | Throwing Hand |
---|---|
0 | Left, Right |
1 | Right |
2 | Left |
3 | Right |
4 | Left, Right |
5 | Right |
6 | Left |
7 | Right |
Again, a closer inspection of the video shows that Table 5 is a better description of the real pattern. The beat duration = 0.25s is assumed (approximation) as the smallest time difference between successive throws and then the algorithm developed in part I is applied to generate Table 5.
Time | Beat # | Throwing Hand | Thrown Object |
---|---|---|---|
0 | 0 | Left, Right | B, A |
0.25 | 1 | – | – |
0.5 | 2 | Right | C |
0.75 | 3 | Left | D |
1.0 | 4 | Right | A |
1.25 | 5 | – | – |
1.5 | 6 | Left, Right | B, C |
1.75 | 7 | – | – |
2.0 | 8 | Left | D |
2.25 | 9 | Right | A |
2.5 | 9 | Left | B |
2.75 | 10 | – | – |
3.0 | 11 | Left, Right | D, C |
3.25 | 12 | – | – |
3.5 | 13 | Right | A |
3.75 | 14 | Left | B |
4.0 | 15 | Right | C |
4.25 | 16 | – | – |
4.5 | 17 | Left, Right | D, A |
4.75 | 18 | – | – |
5.0 | 19 | Left | B |
5.25 | 20 | Right | C |
5.5 | 21 | Left | D |
5.75 | 22 | – | – |
The crucial difference with Table 4 occurs in the “Throwing Hand” column at beat #8 (and #19) of Table 5 where a left hand throw follows the synchronous throw. This is in contrast to Table 4 where the synchronous throw is always followed by a right hand throw. Table 5 can be written in MHN as the below matrix where the top row represents the right hand (hand #0) throws and the bottom to row represents the left hand (hand #1) throws:
40 | 0 | 40 | 0 | 41 | 0 | 60 | 0 | 0 | 61 | 0 | 0 |
61 | 0 | 0 | 60 | 0 | 0 | 41 | 0 | 41 | 0 | 40 | 0 |
In the 2-handed version of MHN which JoePass supports as beatmap notation, we can write this as (first number in brackets corresponds to the left hand and the second to the right hand):
#beatmap
#throwsPerSecond 4 !Equivalent to beat duration 0.25s
(6,4)(0,0)(0,4)(6x,0)(0,4x)(0,0)*
Figure 3 shows the simulation generated by JoePass with this input and seems to be an accurate reproduction of Matthew Tiffany’s “multi-frequency polyrhythm” pattern.

Mr. Nickmans then presents a ladder diagram as a prelude to his next example, a pattern juggled in the Gandini’s Ephemeral Architectures. The diagram shows one hand makes three throws in the same time that the other hand makes two throws, leading to a “3:2 polyrhythm”. We will discuss two variations of this ladder diagram. In Figure 4(a), the throws occur at equally spaced intervals of 0.25s. In Figure 4(b), the right hand throws are all equally spaced at 0.33s while the left hand throws are equally spaced at 0.5s and corresponds to the non-uniform throwing rhythm required in Table 4[4].

The first case can be trivially handled by MHN and represented in JoePass beatmap notation as:
#beatmap
(4,3)(0,3)(4,0)(0,2)
The simulation for this case is shown in Figure 5. This simulation is slower than 4 throwsPerSecond, but the relative timing between throws is consistent with Figure 4(a).

Figure 5: Juggling pattern corresponding to ladder diagram of Figure 4(a)
In Figure 4(b), the throws are not equally spaced. We apply the algorithm developed in part I and define our beat duration as the time difference between the two closest throws. This is 1/2-1/3 =1/6s. We then mark out our beat interval containing the throw at 1/2s as 1/2-1/12 to 1/2+1/12 and work out the rest of the beat intervals accordingly. This leads to the event sequence shown in Table 6.
Beat Interval | Throw # | Beat # | Throw time (s) | Throwing Hand | Object Thrown |
---|---|---|---|---|---|
[1/2-7/12, 1/2-5/12) | 0 | 0 | 0 | Right, Left | A, B |
[1/2-5/12, 1/2-3/12) | – | 1 | – | – | – |
[1/2-3/12, 1/2-1/12) | 1 | 2 | 0.33 | Right | C |
[1/2-1/12, 1/2+1/12) | 2 | 3 | 0.5 | Left | D |
[1/2+1/12, 1/2+3/12) | 3 | 4 | 0.66 | Right | A |
[1/2+3/12, 1/2+5/12) | – | 5 | – | – | – |
[1/2+5/12, 1/2+7/12) | 4 | 6 | 1.0 | Right, Left | C, B |
[1/2+7/12, 1/2+9/12) | – | 7 | – | – | – |
[1/2+9/12, 1/2+11/12) | 5 | 8 | 1.33 | Right | A |
[1/2+11/12, 1/2+13/12) | 6 | 9 | 1.5 | Left | D |
[1+1/12, 1+3/12) | 7 | 10 | 1.66 | Right | C |
[1+3/12, 1+5/12) | – | 11 | – | – | – |
[1+5/12, 1+7/12) | 8 | 12 | 1.5 | Right, Left | A, B |
Using the beatmap variant of MHN, this pattern is (6,4)(0,0)(0,4)(6,0)(0,4)(0,0) and the corresponding JoePass simulation is shown in Figure 6.

Figure 6: Juggling pattern corresponding to ladder diagram of Figure 4(b)
Let’s now take a look at the pattern actually juggled in Ephemeral Architectures.
The video gives a very brief glimpse of this pattern, making it harder to agree on what the throw sequence involved is. Some relief is obtained by noting that there are two instances of this pattern being juggled. One where the same juggler is using both hands to do this pattern and another to the right of the screen where one juggler using the right hand alone and another using the left hand alone combine to construct the same pattern. After studying these, my ladder diagram description of this pattern is as per Figure 7, in which the throwing rhythm matches neither Table 5 (Mr. Tiffany’s pattern), nor Figure 4(b) (Mr. Nickmans’ proposal).

Notice the holds by the left hand on beats 2, 9, 12, 19 and so on. The equivalent JoePass beatmap notation for Figure 7 is:
#beatmap
#throwsPerSecond 4
(6,4)(0,0)(1,4)(6,0)(0,4)(0,0)(6,4)(0,0)(0,4)(1,0)
The “1” throws are holds. The corresponding animation generated by JoePass is shown in Figure 8. It matches the pattern in the Gandini video, except for some jerkiness in the left hand movements arising because JoePass is trying to throw the “1” instead of “holding” it.

Galloped Polyrhythms
Finally, in Mr. Nickmans article come “galloped polyrhythms” where:
- Hands do not throw in the same rhythm.
- Pattern does not include a synchronous throw.
An example of such a pattern is generated by tweaking the ladder diagram of Figure 4(b) to eliminate synchronous throws by shifting all left hand throws to slightly later. Let’s say arbitrarily that this shift is 0.1s. The new throw timings are then shown in Figure 9.

This is now a vanilla pattern and we can proceed as in part I to determine the OSS and HSS combination that can represent this pattern. The closest two throws are at 0.6s and 0.66s and the time difference between them is 2/3-3/5 = 1/15s. So we create our time intervals on either side of the interval [2/3-1/30, 2/3+1/30) to end up with the OSS “a0f00a000fa0000” and the HSS “507005000850000”. With this, our extended Gunswap simulator with a beatDuration setting of 1/15s, produces the simulation shown in Figure 10.

In many of the examples, my explanation of the pattern differs from that presented by Mr. Nickmans. I may be wrong, but my point is that sticking to the fundamentals of siteswap notation enables a more lucid description of juggling patterns that violate the “assumptions of convenience” than a qualitative classification, or even a video of the pattern!
Passing Patterns
Combining an OSS with an HSS involving more than two hands is an easy way to generate passing patterns. For example, consider juggling the OSS “5” with the HSS “3” involving 3 hands, H0, H1 and H2. We can further choose a hand to juggler mapping and create multiple variations. For example, we could have three jugglers J0, J1 and J2 each using one hand. Or we could have two jugglers J0 and J1 with two of the hands belonging to J0 and one to J1 (or vice-versa). Notice how different hand assignments can lead to patterns with different complexities for different jugglers. We eventually hope to incorporate the option to try out and visualize such combinations in extended Gunswap[3].
Prechac Patterns
A special case of the passing patterns generated thus is that of Prechac patterns having period relatively prime to the number of jugglers. The mutually prime requirement ensures that all jugglers are eventually required to make all the throws in the sequence, thus making the pattern “symmetric” for all the jugglers. To generate this special case, we restrict the HSS to “2*J”, where J is the number of jugglers[5]. For example, for 2 jugglers, the HSS to be used is “4”, for 3 jugglers, it is “6” and so on. Further, we specify the assignment of hands to jugglers such that the jugglers each make a throw from one hand in some sequence and then from the other hand in the same sequence. For example, for 3 jugglers J0, J1 and J2, we use the HSS “6”, with the throwing hand sequence H0 H1 H2 H3 H4 H5 and assign hand H0 and H3 to juggler J0, H1 and H4 to J1 and H2 and H5 to J2. In general, for J jugglers, we use the HSS “2*J” with the throwing hand sequence H0 H1… H(2*J-1). Further, we assign hand Hn to juggler J(n mod J); n ranging from 0 to 2*J-1. It is also easy to figure out which throw goes to which hand. If H is the total number of hands, and hand Hi throws an object siteswap number S, that object must be thrown to hand H((i+S) mod H).
To work out a specific example, let’s consider the 4-object sequence “5 3 4” to be juggled by 2 jugglers. The HSS is therefore, 2*J = 2*2 = 4. The hands throw in the sequence H0 H1 H2 H3 where H0 and H2 belong to juggler 0 and H1 and H3 belong to juggler 1. This produces the Prechac sequence “2.5p 2 1.5p”. Notice that the Prechac equivalent is not “2.5p 1.5p 2” which is obtained by simply dividing all throws in “5 3 4” by 2 and writing the fractional throws as passes. This apparent mismatch occurs because “2.5p 2 1.5p” is the throwing sequence for juggler 0 (H0 and H2) alone, not accounting for the throws that juggler 1 (H1 and H3) will make in-between.
Multiple jugglers can interleave their throws and thus achieve J times the throw rate that they can achieve individually (assuming all jugglers are equally fast). Instead of interpreting this as the beat duration having become 1/J of its value, Prechac notation interprets it as the siteswap number becoming 1/J of its value, thus creating fractional siteswap numbers.
Appendix
If we approximate the synchronous throws with two closely spaced asynchronous throws, then we can apply the algorithm developed in part I to write Matthew Tiffany’s pattern as the combination of the vanilla OSS “d00j00d00000di00000” with the vanilla HSS “6009007000007900000”. Figure 11 shows the extended Gunswap simulation for this with beat duration set to 0.06s.

Compared to the closely spaced throws which approximate the synchronous throw, the other throws are far apart, leading to the OSS and HSS having many zeros and making the sequences unwieldy.
Footnotes
- A cursory mention of MHN and Beatmap notation is made but no details are provided.
- Admittedly, we are choosing a convenient value that simplifies our calculations, but there is no loss of generality by choosing this value.
- See part I. PR Vaidyanathan and I are building on top of Eric Gunther’s Gunswap simulator to add the HSS capability.
- It is suggested that Table 4, or Figure 4(b), is the throwing rhythm used both in Mr. Tiffany’s pattern and in the Gandini’s Ephemeral Architectures.
- See “A new class of passing patterns“, Tarim, rec.juggling, March 1994.