Using the pattern entry panel

The pattern entry panel is where you type in a pattern to juggle, and then optionally adjust the pattern timing and movement of the hands. Its appearance is shown below.

siteswap panel screenshot

Description of each part:

Hand movement format

The text string representing hand movement allows you to specify the spatial location of the hands at the times of each throw and catch, as well as at points in time in between. Juggling Lab uses a spline interpolation algorithm to calculate hand locations at all times from the coordinates specified at these discrete points in time. The format is flexible enough to allow you to define hand movements of arbitrary complexity.

Imagine that you are the juggler, and define a coordinate system with the x axis going from left to right in front of you (positive direction is to your right), the y axis going in and out (positive is out), and the z axis going up and down (positive is up). The point (x, y, z) = (0,0,0) lies at the midline of your body, in the "usual" plane of juggling in front of you, and at a height that places your forearms roughly parallel with the ground. We will specify hand movement in terms of coordinates in this system.

The simplest case is a single juggler, with only throw and catch positions defined. In this case, the text string consists of a series of coordinate pairs in the form "(throwx,throwz,throwy)(catchx,catchz,catchy).", where each pair is assigned, in order, to a throw in the siteswap pattern. All dimensions are in centimeters. Note in particular that the y and z coordinates have been interchanged; this is for convenience since leaving out components at the end will default them to 0, e.g., (30,10) is shorthand for (x=30,z=10,y=0). Other facts:

As an example, the standard style for inside throws is "(10)(32.5).", which means to throw at 10 cm from the centerline (at no elevation) and make the next catch at 32.5 cm from the centerline (also at no elevation). The standard style for Mills Mess is "(-30)(2.5).(30)(-2.5).(-30)(0)." if you care to puzzle that one out.

The '.' separators in the examples above correspond to beats in the siteswap pattern. For example, at 5 throws per second in an asynch pattern the throws are typically made at times 0.0 seconds, 0.2 seconds, 0.4 seconds, and so on. Catch times are determined based on the dwell ratio setting. (The only throws not made exactly on-beat are '1' throws, which are thrown slightly early and caught slightly late.)

Hand locations at other times (besides the throw and catch points) can also be defined, by adding additional coordinates for each beat. For example, the style "t(10)c(32.5)(0,45,-25)." is an "eating the apple on every beat" hand style that keeps the throw and catch positions of inside throws, but also defines the hand to be at location (0,45,-25) at a time exactly halfway between each catch and subsequent throw. Note the use of 't' and 'c' to indicate which coordinates correspond to throw and catch positions. A few rules:

Lastly, when there are multiple jugglers, by default the hand style is applied to each of them equally. To define different hand styles for each juggler, the format is "<(style for juggler 1)|(style for juggler 2)| ... >". For example, using the style "<t(10)c(32.5)(0,45,-25).|(-30)(2.5).(30)(-2.5).(-30)(0).>" with the pattern <3|5> gives two jugglers, one "eating apples" and the other juggling a 5 ball Mills Mess.

Body movement format

The text string defining body movement allows you to define angles and locations for each juggler's body, as a function of time. Its format is similar to the hand movement format above, with some differences:

Examples body styles:

Manual settings to configure the pattern

This entry method provides a way to manually control the siteswap pattern. Everything that can be set in the other portions of the siteswap input panel can be manually entered in this box as well. Manual settings override settings made in other parts of the panel.

The format of the entry is a text string comprised of semicolon-separated assignment settings, for example "pattern=(4x,4x);bps=6.0;hands=(32.5)(10).". Variables are:

The following variables are also supported for backward compatibility, but their continuing use is discouraged. Most are documented elsewhere: