Goal: Create a complete list of functions that fit the following criteria:

-takes in 1 siteswap as an input (and any number of other inputs)

-outputs a set of siteswaps with cardinality >= 1[a][b] 

-has a unique output set such that it could not be generated by any combination of the other siteswaps on the list (any number of applications of any number of the functions)

Global definitions:

  • Input siteswap = s
  • period (s) = n (Period(3) = 1, Period(555) = 3, Period((4x,4x)(4,4)(4,4)) = 6, Period([55]) = 1)
  • RuleN(s) = S is the general form I will write functions in, where N is the rule number, s is the input (a siteswap) and S is the output set of siteswaps

Rules:

Rule1: +1 rule

Inputs:

Siteswap s

Application:

Add 1 to all numbers of s

Examples:

Rule1(3) = 4

Rule1(645) = 756

This will add a ball to the pattern.

Similarly, -1 if all numbers of s are >= 1. That will remove a ball from the pattern. (negative numbers in siteswap are valid mathematically but useless as far as I know in application)

Rule2: +n rule

Inputs:

Siteswap s

Integer x #where 1 <= x <= period(s)

Application:

Add period(s) to digit x in s

Examples:

Rule2(53,1) = 73

Rule2(966,2) = 996

Rule2(864,3) = 967

This will add a ball to the pattern.

Similarly, subtract period(s) from a number if the result would be >= 0. That will remove a ball from the pattern.

Rule3: the swap

Inputs:

Siteswap s

Integer a

Integer b

Swap landing places of a and b

Examples:

Rule3(555,1,2) = 645

Rule3(555,1,3) = 753

Notes: this means any 2 in a non-trivial siteswap (there are some exceptions like simple period=2 patterns like 42) can become a 0, by throwing the ball that became the 2 higher. And vice versa.

Rule4:

FAILURE - what’s the rule for how to get from 633 -> 88833??

\\

Note: This should be thought of as 633 -> 7733 -> 88833, so we iterate a rule twice rather than appending both digits at once. Use this instead:

Rule4’:

Output: (z+1)^(n+1)Y

- Dan

//

Inputs:

Siteswap s where:

-s can be written XY with X being a throw (called z) repeated 1+ times (this number called n) and Y being a valid ground state pattern

Output: (z+2)^(n+2)Y

Examples:

Rule4(633) = 88833

Rule4(744) = 99944

Rule4(88833) = bbbbb33 INVALID

[Note: aaaaa33 and bbbbbb33 are valid. Above was simply a misapplication of the rule (miscount)] - Dan

Rule4’(88833) = 999933

Rule4’(999933) = aaaaa33

Rule4’(aaaaa33) = bbbbbb33

Rule5: to sprung

Inputs: siteswap s

How to formalize?

* for each digit d in siteswap s,

if odd: d -> (2*d)x

if even: d -> (2*d)

* convert any digits > 9 to hexadecimal

* fill the resulting values into the template (__, 2x)(2x, __)(__, 2x)(2x, __)...

* if period(s) is odd: add * to the siteswap

Examples:

Rule5(2) = (4,2x)*

Rule5(53) = (ax,2x)(2x,6x)

Rule5(441) -> (8,2x)(2x,8)(2x,2x)*

Notes: many more sprung siteswap examples can be found here: https://www.reddit.com/r/juggling/comments/7h4imt/inverted_sprung_pattern_animations

Rule6: simple siteswap extension

Siteswap s

Integer x #where 1<=x<=period(s)

# s << x (siteswap s left shifted x beats) must be a ground state pattern

Application:

Insert additional beats into a siteswap. Add the sequence "22" after number x. Add 2 to the value of any throw that spans the added beats.

Examples:

Rule6(3,1) = 522

Rule6(555,3) = 77722

Rule6(645,1) -> invalid input, since 456 is not a ground state pattern

Rule6(645,2) = 86227

Rule6(645,3) = 86722

Notes: There would be a similar rule for the "5 up 360" 5 -> 7777700 siteswap.

Rule7: ball removal

Siteswap s, possibly repeated

Integer x where 1<=x<=number of balls in the pattern (indicates which ball/orbit to remove)

Example:

Rule7(515151,2) = 500151

Rule7(561561,4) = 561501

Rule7(534,3) = 530534034

Rule7(744,3) = 740744044744704

Note: This will remove a ball. This can be a special case of the subtract period(s), if a number in the siteswap = period(s).  Sometimes restoring the removed ball using the +1 rule will result in an interesting, complex pattern. For example, 534 -> 530534034 -> 641645145

[Note: This resulting siteswap is actually the ground state siteswaps 5641 + 6451 + 4] - Dan

Rule8

5561551 is a good example for a possible completion rule. starting with an excited state pattern like 615, to get into it requires a transition like 55. then the set of siteswaps that completes the 4b siteswap 55___ with 615 inserted after the 55 prefix would be the result. (556152, 55615550, 5561551).

Rule9

Time-reversal

http://juggle.wikia.com/wiki/Reversed_patterns

"Juggling a siteswap in reverse often results in the same siteswap pattern, but sometimes the reverse of a siteswap is a different pattern that is an anagram of the original siteswap. To find the time-reverse of a siteswap, move each number in the siteswap that number of places to the right (move a 1 one place to the right, or a 2 two places to the right etc.), and then read the resulting sequence backwards.

Example: Start with 12345, and move the numbers to the right to get 31425 (the 3 was moved three places to the right, to the spot just after the 5, which is the position of the 1 in the original pattern, and the 5 moving five places to the right in a period 5 pattern puts it back where it started), then read 31425 backwards to get 52413."

Note - Found this tool with a "Reverse playback" function that performs this transformation, e.g. 741 -> 714
http://yuji-k64613.github.io/jmjs/siteswap_editor.html

Rule10

Flip symmetry

Add digit n where n is the number of balls in the pattern to the end of the siteswap. Must be ground state.

Examples: 423-> 4233, 5551 -> 55514, 566151 -> 5661514

Rule 11: 1 high(er) and (more) n-1 low

With n balls, throw 1 ball high and juggle the remainder of the balls in the base n-1 pattern for some number of beats. To generate next, throw first ball 1 value higher and extend period by 1 beat.

Examples:

97

a77

b777

c7777

d77777

e777777

f7777777

53

633

7333

(this can be further generalized to an x-ball prefix, like 441 -> 5511 -> 66111 -> 771111)

Rule12: Beat extension

Multiply each number in a siteswap by n, and add n-1 0s between each number in the siteswap

Rule12(3,2) = 60

Rule12(645, 3) = I00C00F00

Rule12((4,4)(6x,4)(2,4x), 2) = (8,8)(0,0(Cx,8)(0,0)(4,8x)(0,0)

Rule13: Overlaying siteswaps

This is the crux of multiplex notation.

Any two valid siteswaps may be overlayed onto each other to produce another valid siteswap. The resulting trick will have n_1 + n_2 balls where n_1 is the number of balls for the first siteswap and n_2 is the number of balls for the second siteswap. The period of the resulting siteswap will be the least common multiple of period(s_1) and period(s_2)

Rule13(900, 045) = 945

Rule13(900, 450) = [94]50

Rule13(645, 00500) = 64[55]6456[45]5645[65]45

Categories of tricks:

Tricks where Rule1(s) = Rule2(s,x) where x is some number and = includes any rotation of the siteswap (756 = 567 = 675)

Examples:

Rule1(645) = 756 = Rule2(645,2) = 675 = 756

Generation using states:

State notation:

Siteswap notation describes the throws, state notation describes the catches.

Every beat of a juggling pattern has a state

To get the state of the next beat in a pattern, shift all of the digits except the first one to the left, and add 1 to digit s, where s is the throw made

There are always implicitly infinite zeros to the right of a state, since there is nothing scheduled to be caught, so each of those states is a zero.

Siteswap 5 - state 11111

Siteswap 55 - states beat 1: 11111

                          Beat 2: 11111

Siteswap 42 - states beat1: 1101

                         Beat 2: 111

Siteswap 945 - states beat 1:  1111101

Beat 2:  111101001

Beat 3:  11111001

Siteswap (4,0) - (1,0)(1,0)

Siteswap (6x,4)(4,6x) - (1,1)(1,1)(0,1)

                        (1,1)(1,1)(1,0)

ground state

Some new definitions:

S_b represents the state of siteswap s at beat b

If s = 756 then S_2 would be the state of the pattern after we throw the 7, which would be 1111101

Rule15 connecting patterns:

[a]can there be a rule that outputs more than 1??

[b]and if not.. the output should just be a single siteswap