[go: nahoru, domu]

Siteswap: Difference between revisions

Content deleted Content added
m →‎Swap Property: Turn off preformatted
slide property language
 
(48 intermediate revisions by 28 users not shown)
Line 3:
{{Redirect|Juggling beat|music|beat juggling}}
 
[[File:Siteswap relative visualized.png|thumb|Siteswap beats shown as relative height<ref>{{Cite news|last=Donahue|first=Bill|date=December 3, 2004|title=The Mathematics of... Juggling|work=[[Discover Magazine]]|url=http://discovermagazine.com/2004/dec/mathematics-of-juggling|access-date=June 30, 2017}}</ref><ref name="T&M">Tiemann, Bruce and Magnusson, Bengt (1991). "[https://web.archive.org/web/20120612161501/https://www.juggle.org/history/archives/jugmags/43-2/43-2,p31.htm A Notation for Juggling Tricks, A LOT of Juggling Tricks]", ''Juggle.org''. Accessed July 8, 2014. [https://www.juggle.org/history/archives/jugmags/43-2/43-2,p31.htm original url]</ref>]]
'''Siteswap''' is a [[juggling notation]] used to describe or represent [[juggling pattern]]s. 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."<ref name="FAQ">{{Cite web|url=http://www.juggling.org/help/siteswap/faq.html|title=Siteswap FAQ|last=Knutson|first=Allen|website=[[Juggling Information Service|Juggling.org]]|access-date=June 30, 2017}}</ref> 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 [[beat (music)|beats]] that are equally spaced in time."<ref name="B&L">{{Cite book|last=Beek|first=Peter J.|last2=Lewbel|first2=Arthur|chapter=The Mathematics of Juggling|title=The Science of Juggling|chapter-url=https://www2.bc.edu/~lewbel/jugweb/sciamjug.pdf|archive-url=https://web.archive.org/web/20160304104003/https://www2.bc.edu/~lewbel/jugweb/sciamjug.pdf|archive-date=March 4, 2016|url-status=dead|journal=[[Scientific American]]|issn=0036-8733|language=en|date=November 1995|volume=273|issue=5|pages=92–97|doi=10.1038/scientificamerican1195-92|bibcode=1995SciAm.273e..92B}} Also available at [http://www.juggling.org/papers/science-1/mathematics.html Juggling.org].</ref>
 
'''Siteswap''', also called '''quantum juggling''' or the '''Cambridge notation''', is a numeric [[juggling notation]] used to describe or represent [[juggling pattern]]s. The term may also be used to describe '''siteswap patterns''', possible patterns transcribed using siteswap. Throws are represented by [[non-negative integers]] that specify the number of beats in the future when the object is thrown again: "The idea behind siteswap is to keep track of the order that balls are thrown and caught, and only that."<ref name="FAQ">{{Cite web|url=http://www.juggling.org/help/siteswap/faq.html|title=Siteswap FAQ|last=Knutson|first=Allen|website=[[Juggling Information Service|Juggling.org]]|access-date=June 30, 2017}}</ref> 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 [[beat (music)|beats]] that are equally spaced in time."<ref name="B&L">{{Cite journal|last1=Beek|first1=Peter J.|last2=Lewbel|first2=Arthur|title=The Science of Juggling|url=https://www2.bc.edu/~lewbel/jugweb/sciamjug.pdf|archive-url=https://web.archive.org/web/20160304104003/https://www2.bc.edu/~lewbel/jugweb/sciamjug.pdf|archive-date=March 4, 2016|url-status=dead|journal=[[Scientific American]]|issn=0036-8733|language=en|date=November 1995|volume=273|issue=5|pages=92–97|doi=10.1038/scientificamerican1195-92|bibcode=1995SciAm.273e..92B|jstor=24982089}}</ref>
Throws are represented, "by [[positive integer|{{bracket|positive}} integers]] that specify the number of beats in the future when the object is thrown again."<ref name="Sethares"/>
 
For example, a three-ball [[Cascade (juggling)|cascade]] may be notated "3 ", while a [[shower (juggling)|shower]] may be notated "5 1".<ref name="B&L"/>
[[File:Siteswap relative visualized.png|thumb|Siteswap beats shown as relative height<ref>{{Cite news|url=http://discovermagazine.com/2004/dec/mathematics-of-juggling|title=The Mathematics of... Juggling|last=Donahue|first=Bill|date=December 3, 2004|work=[[Discover Magazine]]|access-date=June 30, 2017}}</ref><ref name="T&M">Tiemann, Bruce and Magnusson, Bengt (1991). "[https://web.archive.org/web/20120612161501/https://www.juggle.org/history/archives/jugmags/43-2/43-2,p31.htm A Notation for Juggling Tricks, A LOT of Juggling Tricks]", ''Juggle.org''. Accessed July 8, 2014. [https://www.juggle.org/history/archives/jugmags/43-2/43-2,p31.htm original url]</ref>]]
 
The numbers are as follows:<ref>{{Cite news|url=https://www.bbc.com/news/magazine-20728493|title=Juggling by numbers: How notation revealed new tricks|last=Gray|first=Laura|date=December 20, 2012|work=[[BBC News]]|access-date=June 30, 2017|language=en-GB}}</ref>
*0 = "missing"/rest [empty hand]
*1 = pass [between hands]
*2 = hold [one hand/no toss]
*3 = (3-ball) [[cascade (juggling)|cascade]] toss [between hands]
*4 = (4-ball) [[fountain (juggling)|fountain]]/[[columns (juggling)|columns]] toss [up and into same hand]
*5 = high toss [between hands]
*10 (not shown) = high toss [up and into same hand]
 
For example, a three-ball cascade may be notated "3", while a [[shower (juggling)|shower]] may be notated "5 1".<ref name="B&L"/> The height, and thus difficulty, of throws increases quadratically. 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" {{Citation needed|date=December 2017}}.
 
==Origin==
The notation was invented by Paul Klimek in [[Santa Cruz, California]] in 1981, and later developed by undergraduates Bruce "Boppo" Tiemann, [[Joel David Hamkins]], 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|Cambridge, England]] in 1985 (whence comes an alternative name).<ref>{{Cite book|url=https://books.google.com/books?id=PD0clAlF8O4C&pg=PA99|title=Mathematical Adventures for Students and Amateurs|date=2004|publisher=Mathematical Association of America|last1=Hayes|first1=David F.|last2=Shubin|first2=Tatiana|isbn=0883855488|oclc=56020214|page=99}}</ref>{{efn|
*"Invented independently around 1985 by Paul Klimek of the University of California at Santa Cruz, Bruce Tiemann of the California Institute of Technology and Michael Day of the University of Cambridge."<ref name="B&L"/>
*"...site swap patterns...in the form invented by some of Bruce Tiemann, Bengt Magnusson, and Joel Hamkins"<ref name="IBM">{{Cite web|url=http://www.juggling.org/programs/ibm-pc/|title=(in) IBM-PC Programs|last=Knutson|first=Allen|website=[[Juggling Information Service|Juggling.org]]|access-date=October 3, 2023}}</ref>
*"Invented around 1985 by three people independently: Bruce "Boppo" Tiemann at Caltech, Paul Klimek in Santa Cruz, and Mike Day in Cambridge."<ref name="FAQ"/>
*"...Bruce Tiemann (Boppo) and the late Bengt Magnusson....Other contributors to the development of site swap theory include Jack Boyce, Allen Knutson, Ed Carstens, and jugglers on the computer network."<ref name="Lewbel">Lewbel, Arthur (1996). "[http://www.juggle.org/history/archives/jugmags/49-2/v49no2-page%2057.htm The Academic Juggler: The Invention Of Juggling Notations] {{webarchive|url=https://web.archive.org/web/20140714182339/http://www.juggle.org/history/archives/jugmags/49-2/v49no2-page%2057.htm |date=July 14, 2014 }}", ''Juggle.org''.</ref>
*"Jack Boyce (also at Caltech) came up with the juggling state model to explain the phenomenon of excited-state tricks."<ref name="FAQ"/>
*"To give credit where it is due, the notation as presented here was independently (and previously) invented by Paul Klimek, with whom we have had helpful discussions."<ref name="T&M"/>}} Hamkins wrote computer code in 1985 to systematically generate siteswap patterns&mdash;the printouts were taken immediately to the Athenaeum lawn at Caltech to be tried out by himself, Tiemann, and Magnusson. 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.<ref name="Sethares">{{Cite book|title=Rhythm and Transforms|url=https://archive.org/details/rhythmtransforms00seth_415|url-access=limited|last=Sethares|first=William Arthur|author-link=William Sethares|date=2007|publisher=[[Springer Publishing|Springer]]|isbn=9781846286407|oclc=261225487|page=[https://archive.org/details/rhythmtransforms00seth_415/page/n52 40]}}</ref>
 
The name ''siteswap'' comes from the ability to generate patterns by "swapping" landing times of any 2 "sites" in a siteswap using the {{Pslink|swap property|}}.<ref>{{Cite web|last=Boyce|first=Jack|date=October 11, 1997|title=Patterns from Lodi 1997 Workshop|url=http://www.sonic.net/~boyce/lodilist.html|url-status=dead|archive-url=https://web.archive.org/web/20041207193727/http://www.sonic.net/~boyce/lodilist.html|archive-date=December 7, 2004|access-date=2020-07-08|website=sonic.net}}</ref> For example, swapping the landing times of throws "5" and "1" in the siteswap "51" generates the siteswap "24".
 
==Vanilla==
[[File:Juggling53145305520.png|right|border|Diagram of someone "juggling" with the siteswap notation and the state]]
Its simplest form, sometimes called vanilla siteswap, describes only patterns whose throws alternate hands and in which one ball is thrown from each hand at a time. If we were to watch someone from above as theyone were juggling while walking forward, we might see something like the adjacent diagram, whichwould isbe seen from above, 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, [[parity (mathematics)|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 (juggling)|cascade]]; a ''4'' represents a throw to the same hand at the height of the four-[[fountain (juggling)|fountain]], and so on.
 
This pattern can be described by stating how many throws later each ball is caught. 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''. This produces a [[sequence]] of numbers which denote the height of each throw to be made. Since hands alternate, [[parity (mathematics)|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 (juggling)|cascade]]; a ''4'' represents a throw to the same hand at the height of the four-[[fountain (juggling)|fountain]], and so on.
{| class="wikitable"
|+Siteswap Throw Names
!Throw Name
!Beats object is in Air
!Switches hands
!Description
|-
|0
| -
| -
|Empty hand
|-
|1
|1
|Yes
|Throw from one hand to the other
|-
|2
|0
|No
|Momentary hold
|-
|3
|3
|Yes
|Throw from a 3 ball [[Cascade (juggling)|cascade]]
|-
|4
|4
|No
|Throw from a 4 ball [[Fountain (juggling)|fountain]]
|-
|5
|5
|Yes
|Throw from a 5 ball [[Cascade (juggling)|cascade]]
|-
|6
|6
|No
|Throw from a 6 ball [[Fountain (juggling)|fountain]]
|-
|7
|7
|Yes
|Throw from a 7 ball [[Cascade (juggling)|cascade]]
|-
|8
|8
|No
|Throw from a 8 ball [[Fountain (juggling)|fountain]]
|-
|9
|9
|Yes
|Throw from a 9 ball [[Cascade (juggling)|cascade]]
|-
|a
|10
|No
|Throw from a 10 ball [[Fountain (juggling)|fountain]]
|-
|b
|11
|Yes
|Throw from a 11 ball [[Cascade (juggling)|cascade]]
|-
|...
|...
|...
|...
|}
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 ''[[Frequency|period]]'' of the pattern. The period is the number of digits in the shortest non-repeating representation of a pattern. For example, the pattern diagrammed on the right is 53145305520 which has 11 digits and therefore has a period of 11. If the period is an odd number, like this one, then each time youthe repeatsequence is repeated, the sequence you're startingstarts 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.<ref name="T&M"/> 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.
Line 42 ⟶ 105:
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.
 
==Synchronous==
===State diagrams===
[[File:Juggling - 3-ball box (4,2x)(2x,4) ladder diagram.svg|150px|thumb|Ladder diagram for box: (4,2x)(2x,4)|alt=]]
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-<!--two "-"s-->-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.
 
Siteswap notation can be extended to denote patterns containing synchronous throws from both hands. The numbers for the two throws are combined in [[Bracket#Parentheses|parentheses]] and separated by a comma. Since synchronous throws are only thrown on even beats, only even numbers are allowed.<ref name=":1">{{Siteswap Ben's|page=6}}</ref> Throws that move to the other hand are marked by an ''x'' following the number. Thus a synchronous three-prop [[shower (juggling)|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. Patterns that repeat in mirror image on the opposite side can be abbreviated with a *. For example, Instead of ''(4,2x)(2x,4)'' (3-ball [[Box (juggling)|box]] pattern), can be abbreviated to ''(4,2x)*''.
[[File:StateDiagram3BallMaxThrow5.png|left|border|400px]]
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.
 
==Multiplexing==
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.
[[File:Multiplex333 33.gif|thumb|100px|3-ball Cascade with triplex: [333]33]]
 
A further extension allows siteswap to notate patterns involving multiple throws from either or both hands at the same time in a [[multiplex (juggling)|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.
{| style="text-align:right; border:1px solid black; border-collapse:collapse; margin: auto auto auto 1em; float:right;" border="1"
 
|- style="background:#ffdead;"
==Passing==
! style="background:#efefef;" |
[[File:Classic 4beats passing 2juggler 6balls side.gif|thumb|100px|Four-count, or "Every others": {{nowrap|<333P<nowiki>|</nowiki>333P>}}]]
|&nbsp;&nbsp;7||11||13||14||19||21||22||25||26||28
 
|-
Simultaneous juggling: ''<xxx|yyy>'' 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)>''
! style="background:#ffdead;" |(111) 7
 
|3||4||&nbsp;||&nbsp;||5||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
===Fractional notation===
|-
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.
! style="background:#ffdead;" |(1011) 11
 
|2||&nbsp;||4||&nbsp;||&nbsp;||5||&nbsp;||&nbsp;||&nbsp;||&nbsp;
'''social siteswap'''
|-
! style="background:#ffdead;" |(1101) 13
|1||&nbsp;||&nbsp;||4||&nbsp;||&nbsp;||5||&nbsp;||&nbsp;||&nbsp;
|-
! style="background:#ffdead;" |(1110) 14
|0||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
|-
! style="background:#ffdead;" |(10011) 19
|&nbsp;||2||3||&nbsp;||&nbsp;||&nbsp;||&nbsp;||5||&nbsp;||&nbsp;
|-
! style="background:#ffdead;" |(10101) 21
|&nbsp;||1||&nbsp;||3||&nbsp;||&nbsp;||&nbsp;||&nbsp;||5||&nbsp;
|-
! style="background:#ffdead;" |(10110) 22
|&nbsp;||0||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
|-
! style="background:#ffdead;" |(11001) 25
|&nbsp;||&nbsp;||1||2||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||5
|-
! style="background:#ffdead;" |(11010) 26
|&nbsp;||&nbsp;||0||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
|-
! style="background:#ffdead;" |(11100) 28
|&nbsp;||&nbsp;||&nbsp;||0||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;||&nbsp;
|}
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.
 
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''. (note that in the latter case, 4.5 will be straight passes from one juggler, crossing passes (i.e. left to left or right to right hand) from the other juggler.
<br />
Social siteswaps can also be created for more than 2 jugglers (e.g. 4p 3 3 or 3.7 3 for 3 jugglers, where 3.7 is meant to mean 3.66666.... or 3 {{frac|2|3}}. Then each juggler should start {{frac|1|3}} count after the previous one.)
 
Note that some jugglers use fractions to note multi-handed patterns.
==Extensions==
 
===Multi-handed===
 
Multi-hand notation was developed by Ed Carstens in 1992 for use with his juggling program JugglePro.<ref name="Lewbel" /> 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''.
Line 105 ⟶ 144:
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).
 
'''mixed-up notation'''
===Synchronous===
[[File:Juggling - 3-ball box (4,2x)(2x,4) ladder diagram.svg|150px|thumb|Ladder diagram for box: (4,2x)(2x,4)]]
 
Some jugglers, when noting 4-handed siteswap, divide the siteswap values by the number of jugglers. This leads to a fractional notation similar to the notation for social siteswaps, but the order of the notation can be different.
Siteswap notation can be extended to denote patterns containing synchronous throws from both hands. The numbers for the two throws are combined in [[Bracket#Parentheses ( )|parentheses]] and separated by a comma. Since synchronous throws are only thrown on even beats, only even numbers are allowed.<ref name=":1" /> Throws that move to the other hand are marked by an ''x'' following the number. Thus a synchronous three-prop [[shower (juggling)|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.
 
===Multiplexing=State diagrams==
[[File:StateDiagram3BallMaxThrow5.png|alt=|frame|State Diagram for 3 balls with a max throw of '5']]
[[File:Multiplex333 33.gif|thumb|100px|3-ball Cascade with triplex: [333]33]]
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 the balls are caught 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 current '''state''' and determines what number ball can be thrown next. For instance, we can look at the state just after our first throw in the diagram, it is xx-<!--two "-"s-->-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 shown illustrates all possible states for someone juggling three items and a maximum height of 5. From each state one can follow the arrows and the corresponding numbers produce the siteswap. Any path which produces a cycle generates a valid siteswap, and all siteswaps can be generated this way. The diagram quickly becomes bigger when more balls or higher throws are introduced as there are more possible states and more possible throws.
A further extension allows siteswap to notate patterns involving multiple throws from either or both hands at the same time in a [[multiplex (juggling)|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.
 
Another method of representing siteswap states is 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. This format makes it possible to represent multiplex states, i.e. the number 2 represents that 2 balls land on that beat.
===Passing===
[[File:Classic 4beats passing 2juggler 6balls side.gif|thumb|100px|Four-count, or "Every others": {{nowrap|<333P<nowiki>|</nowiki>333P>}}]]
 
{| class="wikitable" style="text-align:right; border:1px solid black; border-collapse:collapse; margin: auto auto auto 1em; float:right;" border="1"
Simultaneous juggling: ''<xxx|yyy>'' 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)>''
|- style="background:#ffdead;"
 
!{{diagonal split header|State|Throw}}
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''.
|0||1||2||3||4||5
|-
! style="background:#ffdead;" |111
| || ||&nbsp;||111||1101||11001
|-
! style="background:#ffdead;" |0111
|111|| || || || ||
|-
! style="background:#ffdead;" |1011
| ||111|| || ||0111||01101
|-
! style="background:#ffdead;" |1101
| || ||111|| ||1011||10101
|-
! style="background:#ffdead;" |00111
|0111|| || || || ||
|-
! style="background:#ffdead;" |01011
|1011|| || || || ||
|-
! style="background:#ffdead;" |01101
|1101|| || || || ||
|-
! style="background:#ffdead;" |10011
| ||1011||0111|| || ||00111
|-
! style="background:#ffdead;" |10101
| ||1101|| ||0111|| ||01011
|-
! style="background:#ffdead;" |11001
| || ||1101||1011|| ||10011
|}
A siteswap state diagram can also be represented as a [[state-transition table]], as shown on the right. To generate a siteswap, pick a starting state row. Index into the row via the corresponding throw column. The state entry at the intersection is the transitioned to state when that throw is made. From the new state, one can index into the table again. This process can be repeated so that when the original state is reached, a valid siteswap will be created.
 
==Mathematical properties==
===Other extensions===
Various other enhancements to the siteswap system have been proposed and enjoy some use.
 
===Validity===
*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 [[#Programs|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.<ref name=":1">{{Siteswap Ben's|page=6}}</ref> 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).
 
==Mathematics==
 
===Sequence Validity===
[[File:Siteswap 531 state diagram.png|thumb|Siteswap 531 state diagram]]
Not all siteswap sequences are valid.<ref name=":1" /> All Vanillavanilla, synchronous, and multiplex siteswapssiteswap sequences are valid if their state transitions create a cycle in their state diagram graph.<ref name=":1" /> Sequences that do not create a cycle are invalid. For example, Thethe pattern 531 can be mapped to a state diagram as shown on the right. Since the transitions in this sequence create a cycle in the graph, this pattern is valid.
 
There are other methods of determining a sequence's validity based on the flavor of siteswap.
 
A '''vanilla''' siteswap sequence <math>a_0a_1a_2...a_{n-1}</math>where <math>n</math> is the period of the siteswap, is valid when the [[cardinality]] of the set <math>S</math> (written in [[Set-builder notation]]) is equal to the period <math>n</math> where<math display="block">S=\{(a_i+i)\bmod n | 0\leq i\leq n-1\}</math>To find if a pattern is valid, first create a new sequence formed by adding <math>0</math> to the first number, <math>1</math> to the second number, <math>2</math> to the third number and so on. Second, calculate the modulus (remainder) of each number with the period. If none of the numbers are duplicated in this final sequence, then the pattern is valid.<ref name=":0">{{Cite web|url=https://www.qedcat.com/articles/juggling_survey.pdf|title=The Mathematics of Juggling|last=Polster|first=Burkard|date=|website=qedcat.com|archive-url=|archive-date=|access-date=April 22, 2020}}</ref>
==== Vanilla ====
 
A vanilla siteswap sequence <math>a_0a_1a_2...a_{n-1}</math>where <math>n</math> is the period of the siteswap, is valid when the [[cardinality]] of the set <math>S</math> (written in [[Set-builder notation]]) is equal to the period <math>n</math> where<math display="block">S=\{(a_i+i)\bmod n | 0\leq i\leq n-1\}</math>To find if a pattern is valid, first create a new sequence formed by adding <math>0</math> to the first number, <math>1</math> to the second number, <math>2</math> to the second number and so on. Second, calculate the modulus (remainder) of each number with the period. If none of the numbers are duplicated in this final sequence, then the pattern is valid.<ref name=":0">{{Cite web|url=https://www.qedcat.com/articles/juggling_survey.pdf|title=The Mathematics of Juggling|last=Polster|first=Burkard|date=|website=qedcat.com|url-status=live|archive-url=|archive-date=|access-date=April 22, 2020}}</ref>
For example, the pattern 531 would produce <math>5+0,3+1,1+2 </math> or <math>5,4,3</math>. Since the pattern 531 has a period of 3, the results from the previous example would produce <math>5\bmod 3,4\bmod 3,3\bmod 3</math>or <math>2,1,0</math>. In this case, 531 is valid since the numbers <math>2,1,0</math> are all unique. Another example, 513 is an invalid pattern because the first step produces <math>5+0,1+1,3+2 </math> or <math>5,2,5</math>, the second step produces <math>5\bmod 3,2\bmod 3,5\bmod 3</math> or <math>2,2,2</math>, and the final sequence contains at least a duplicate of one number, in this case a 2.
 
A '''synchronous''' siteswap is valid if
 
# it only contains even numbers and
For example, the pattern 531 would produce <math>5+0,3+1,1+2 </math> or <math>5,4,3</math>. Since the pattern 531 has a period of 3, The results from the previous example would produce <math>5\bmod 3,4\bmod 3,3\bmod 3</math>or <math>2,1,0</math>. In this case, 531 is valid since the numbers <math>2,1,0</math> are all unique. Another example, 513 is an invalid pattern because the first step produces <math>5+0,1+1,3+2 </math> or <math>5,2,5</math>, the second step produces <math>5\bmod 3,2\bmod 3,5\bmod 3</math> or <math>2,2,2</math>, and the final sequence contains at least a duplicate of one number, in this case a 2.
# it can be converted into a valid vanilla siteswap using the {{Pslink|slide property|}}.
 
otherwise it is invalid{{Citation needed|date=April 2020}}.
==== Synchronous ====
A synchronous siteswap is valid if it can be converted into a valid vanilla siteswap using the {{Pslink|Slide Property|}}.
 
=== Swap Propertyproperty ===
New valid synchronousvanilla sequences can be generated by swapping adjacent elements from another valid vanilla siteswap sequence, adding 1 to the number being swapped to the right and subtracting 1 from the number being swapped to the left.<ref name=":0" /> Without loss of generality, theThe swap property will convert the valid sequence <math display="inline">a_0a_1a_2...a_ia_{i+1}...a_{n-1}</math> with arbitrary value <math>i</math>, to generate the new valid sequence <math>a_0a_1a_2...(a_{i+1}+1)(a_i-1)...a_{n-1}</math>.
 
For example, the swap property performed on the inner two throws of the sequence 4413 would move the 4 to the right subtracting 1 from it to become 3 and move the 1 to the left adding 1 to it to become 2. This produces the new valid siteswap pattern 4233.
 
=== Slide Propertyproperty ===
A valid synchronous sequence can be converted to a valid asynchronous sequence and vice versa using the slide property. Given the synchronous sequence <math>(a_0,a_1)(a_2,a_3)...(a_{n-2},a_{n-1})</math>, thetwo new vanilla sequences can be formed: <math display="inline">b_0 b_1 ... b_{n-1}</math> whereand <math>c_0 c_1 ... c_{n-1}</math>, where<math display="block">b_i = \begin{cases} a_i+1, & \text{if }i\text{ is even and }a_i\text{ crosses hands} \\ a_i-1, & \text{if }i\text{ is odd and }a_i\text{ crosses hands} \\ a_i, & \text{otherwise} \end{cases}</math>and <math>c_0 c_1 ... c_{n-1}</math> where<math display="block">c_i = \begin{cases} a_{i+1}+1, & \text{if }i\text{ is even and }a_i\text{ crosses hands} \\ a_{i-1}-1, & \text{if }i\text{ is odd and }a_i\text{ crosses hands} \\ a_{i+1}, & \text{if }i\text{ is even and } a_i \text{ does not cross} \\ a_{i-1}, & \text{if }i\text{ is odd and } a_i \text{ does not cross}\end{cases}</math>The slide property gets its name by sliding the throw times of one of the hands by one time unit so that the throws align asynchronously.<ref name=":1" /> For example, the siteswap (8x,4x)(4,4) would create two asynchronous (vanilla) siteswaps using the slide property: 9344 and 5744.
 
=== Prime patterns ===
For example, the siteswap (8x,4x)(4,4) would create two asynchronous (vanilla) siteswaps using the slide property: 9344 and 5744.
Siteswaps may be considered either prime or composite.<ref name=":1" /> A siteswap is prime if the path created in its state diagram does not traverse any state more than once. Siteswaps that are not prime are called composite.
 
A non-rigorous but simpler method of determining if a siteswap is prime is to try to split it into any valid shorter pattern which uses the same number of props.<ref name=":1" /> For example, 44404413 can be split into 4440, 441, and 3; therefore, 44404413 is a composite. Another example, 441, which uses three props, is prime, as 1, 4, 41, and 44 are not valid three prop patterns (as 1/1≠3, 4/1≠3, (4+1)/2≠3, and (4+4)/2≠3). Sometimes this process does not work; for example, 153 (better known by its rotation 531) looks like it can be split into 15 and 3, but checking that the cycle has no repeating nodes in the graph traversal indicates that it is prime by the more rigorous definition.
=== Connections to Abstract Algebra ===
Vanilla siteswap patterns may be viewed as certain elements of the [[affine Weyl group]] of type <math>{\tilde{A}}_n</math>. One presentation of this group is as the set of [[bijective]] functions ''f'' on the integers such that, for a fixed ''n'': ''f''(''i'' + ''n'') = ''f''(''i'') + ''n'' for all integers ''i''. If the element ''f'' satisfies the further condition that ''f''(''i'') ≥ ''i'' for all ''i'', then ''f'' corresponds to the (infinitely repeated) siteswap pattern whose ''i''th number is ''f''(''i'') &minus; ''i'': that is, the ball thrown at time ''i'' will land at time ''f''(''i'').
 
It has been shown empirically that the longest prime siteswaps bounded by height <math>h</math> contain mostly the throws <math>0</math> and <math>h</math>.<ref>{{Cite web|url=https://www.jonglage.net/theorie/notation/siteswap-avancee/refs/Jack%20Boyce%20-%20The%20Longest%20Prime%20Siteswap%20Patterns.pdf|title=The Longest Prime Siteswap Patterns|last=Boyce|first=Jack|date=|website=jonglage.net|archive-url=|archive-date=|access-date=April 27, 2020}}</ref> The longest prime patterns with height 22 (with 3 ball maximum), for 9 balls (with 13 maximum height), and for heights and ball counts in between, were enumerated by Jack Boyce in February 1999 using a program called jdeep.<ref>{{Cite web|url=http://www.sonic.net/~boyce/jdeep5.c|title=jdeep.c|last=Boyce|first=Jack|date=February 17, 1999|website=sonic.net|url-status=dead|archive-url=https://web.archive.org/web/20041207120815/http://www.sonic.net/~boyce/jdeep5.c|archive-date=December 7, 2004|access-date=April 27, 2020}}</ref> The full list of longest prime siteswaps generated by jdeep (with '0' throws represented by a '-' and maximum height throws represented by a '+') can be found [https://web.archive.org/web/20110317025440/http://www.jugglingdb.com:80/compendium/boyce/prime_list.html here].
=== Connections to Topology ===
 
== Mathematical connections ==
 
=== Connections to abstract algebra ===
Vanilla siteswap patterns may be viewed as certain elements of the [[affine symmetric group]] (the [[affine Weyl group]] of type <math>{\tilde{A}}_n</math>).<ref>{{Cite journal|last1=Ehrenborg|first1=Richard|last2=Readdy|first2=Margaret|date=1996-10-01|title=Juggling and applications to q-analogues|journal=Discrete Mathematics|language=en|volume=157|issue=1|pages=107–125|doi=10.1016/S0012-365X(96)83010-X|issn=0012-365X|doi-access=free}}</ref> One presentation of this group is as the set of [[bijective]] functions ''f'' on the integers such that, for a fixed ''n'': ''f''(''i'' + ''n'') = ''f''(''i'') + ''n'' for all integers ''i''. If the element ''f'' satisfies the further condition that ''f''(''i'') ≥ ''i'' for all ''i'', then ''f'' corresponds to the (infinitely repeated) siteswap pattern whose ''i''th number is ''f''(''i'') &minus; ''i'': that is, the ball thrown at time ''i'' will land at time ''f''(''i'').
 
=== Connections to topology ===
A subset of these siteswap patterns naturally label strata in the positroid stratification of the [[Grassmannian]].<ref>{{Cite arXiv|last1=Knutson|last2=Lam|last3=Speyer|first1=Allen|first2=Thomas|first3=David|eprint=1111.3660|title=Positroid Varieties: Juggling and Geometry|date=November 15, 2011|class=math.AG}}</ref>
 
=== Quotes about math ===
"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."<ref>{{Cite conference|editor-last1=Borwein|editor-first1=Jonathan M.|date=1997|publisher=American Mathematical Society|book-title=Organic mathematics|conference=Organic Mathematics Workshop|page=141|isbn=9780821806685|oclc=36259883}}</ref>
==List of symbols==
{{Div col}}
*Number: Relative duration (height) of a toss. 1, 2, 3...
*Brackets []: Multiplex. [333]33.
*Chevrons and vertical bar <|>: Simultaneous and passing patterns.
Line 178 ⟶ 250:
There are many free [[computer program]]s available which [[simulation|simulate]] juggling patterns.
 
*[https://jugglinglab.org/ Juggling Lab animator] - An [[open source]] animator which was written in [[Java (programming language)|Java]] and interprets nearly all siteswap syntax.
*[https://web.archive.org/web/20110214095031/http://www.quantumjuggling.com/ Quantum Juggling simulator by Paul Klimek]
*[http://www.jongl.de/ Jongl] - 3d animator capable of displaying multihand (passing) patterns.
*[https://jugglinglab.org/ Juggling Lab animator] - An [[open source]] animator which was written in [[Java (programming language)|Java]] and interprets nearly all siteswap syntax. It can also be embedded as [[applet]] in a website.
*[https://web.archive.org/web/20060925102220/http://www.siteswap.net/applet.html Jaggle] - 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.
*[http://www.jongl.de/ Jongl] - This is an animator which is available for many [[operating system]]s. It uses 3d graphics to display the tricks and is also capable of displaying multihand (passing) patterns.
*[http://realtimejuggler.mur.at/ Realtime Juggler] - [[Java applet]] which allows changing the siteswap in realtime.
*[http://icculus.org/jugglemaster/ JuggleMaster] - [[open source]] animator written in C++ for Linux, Windows, Mac OS X, Solaris, and others. [http://www.jhlabs.com/jmj3d/index_en.html Java version] and [http://jugglemaster.net JavaScript version] are also available.
*[http://www.jugglesaver.co.uk/ JuggleSaver] - 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 distro|linux Distros]].
*[http://koelnvention.de/w/?page_id=151 JoePass!] works on Windows, Macintosh and Wine (For Linux)
*[https://ydgunz.github.io/gunswap/ Gunswap] - A web based, open source, 3d juggling animator and pattern library.
*[https://web.archive.org/web/20091210231744/http://iphonemart.net/?page_id=56 iJuggle] for [[iOS|iPad and iPhone]].
*[http://www.gunswap.co/ Gunswap] - A web based, open source, juggling animator and pattern library. Programmed in Javascript by Eric Gunther and [https://github.com/yDgunz/gunswap hosted on Github]
 
There are also some games to play with siteswap:
 
*[https://www.dropbox.com/s/y2jse1mdzqatcrz/SiteswapGame.rar?dl=0 Siteswap Game] developed by Sebi Haushofer (for Java)
*[http://atlas.walagata.com/w/peterbone/SiteswapFreestyle.zip Siteswap Freestyle] developed by Peter Bone (for Windows)
 
==See also==
Line 213 ⟶ 278:
*[http://www.artofdiabolo.com/dsss/ DSSS: The Diabolo Siteswap Simulator], ''ArtofDiabolo.com''.
*[https://jugglinglab.org/ Juggling Lab] (Downloadable animator)
*[httphttps://wwwydgunz.gunswapgithub.coio/gunswap/ Gunswap Juggling] (Online animator)
*[http://www.twjc.cojugglingedge.ukcom/calculator.html TWJC Siteswap Calculator] (Helpful Vanilla, Multiplex and Synchronous siteswap validator)
*"[http://www.owenreynolds.net/notation/Symmetric_patterns2.pdf#5983DD.pdf Staggered Symmetric Passing Patterns for 2 jugglers]" by Sean Gandini (social siteswaps)
*{{webarchive |url=https://web.archive.org/web/20030806094612/http://pweb.netcom.com/~hjsmith/Juggler.html |date=August 6, 2003 |title=Smith, H.J. "Juggler Numbers" }}
*{{cite web|last1=Wright|first1=Colin|title=Juggling by Numbers|url=https://www.youtube.com/watch?v=7dwgusHjA0Y&t=17s|website=YouTube|publisher=[[Brady Haran]]|accessdate=4 October 2017|format=video}}
 
{{Juggling}}