What is Siteswap?
Siteswapper is a program for generating and viewing juggling patterns that
can be described with the siteswap notation. By specifying the number of balls,
the maximum height of a throw, and the maximum length of the siteswap number sequence,
the program can calculate all matching siteswaps. The generated siteswaps can also
Only simple siteswaps patterns are calculated, that is, patterns that do not have
any repeatable subsequences.
The Siteswapper program is freeware. Please read the
License Agreement before using
the program. The software is not supported in any way. The PocketPC version
has been tested on a HP Jornada 540 which has an SH3 processor, the PPC version
has been tested on a CASSIOPEIA E-11 which has a MIPS processor, and the HPC version
has been tested on a HP LX620 which has an SH3 processor.
If you like the program, please send me an email and tell me what I
should add or improve to the next version (firstname.lastname@example.org). If
you find any errors in the program or in this document, please let me know.
What is Siteswap?
Siteswap is a sequence of numbers that specifies a juggling pattern.
Each number in the sequence specifies the height of a throw relative to
other throws in the pattern. If the number is even it denotes a throw that
is made to the same hand, if it is odd it denotes a throw to the other
hand, that is, a crossing throw. The numbers in the siteswap sequence tells
the right and left hand what to do alternately. A siteswap is cyclic which
means that it can be repeated over and over again.
The theory behind the notation is to divide the time into beats. A simple
"3" has one beat in the hand and two beats in the air (1 + 2 = 3). If we
want to throw an object of siteswap height h, we must ensure that
the catching hand is empty exactly h time beats from now. This simple
rule results in that not every sequence of numbers can be juggled.
- 0 The hand is empty.
- 1 A feed from one hand to the other, that is,
the ball has no airtime.
- 2 The hand holds the ball.
- 3 A crossing throw to the other hand. This is
the normal throw in a three ball cascade.
- 4 A throw to the same hand. This is the normal
throw in a four ball fountain.
- 5 A crossing throw to the other hand. This is
the normal throw in a five ball cascade.
- 6 A throw to the same hand. This is the normal
throw in a six ball fountain.
The height of a throw is proportional to the square of the air time.
The air time is proportional to a siteswap number minus one. This gives us
where h is the height, and n is the number for the throw;
C is constant for all throws within a pattern, and depends on the
height (or speed) at which the pattern is juggled.
With the above formula, we can see that a "5" must be four times
higher than a "3", and an "8" must be almost five and a half times higher
than a "4".
The siteswap notation is a very concise and simple way of describing
a juggling pattern. It does, however, not cover all aspects of a juggling
pattern. There are variations of the siteswap notation that allow for
more complex patterns to be described, like patterns that includes
multiplex throws and synchronous throws by both hands. However, this
program only supports the basic siteswap notation without such extra
- No. Balls
Specifies number of balls.
- Max Height
Specifies the maximum throwing height.
- Max Length
Specifies the maximum siteswap length. If set to '-' siteswaps of
all lengths will be calculated. Note that this setting greatly increases
the calculation time in some situations.
Starts the calculation.
- List View
The content of the list view can be sorted in both ascending or descending
order. Click on the header of the column to sort on. Another click on the same
column header will toggle the sort order.
Animates the currently selected siteswap. Animation can also be
started by clicking on a siteswap in the list view.
- Save As...
Saves the content of the list view to a file.
Exits the application.
- Help Contents
Opens this document.
Opens the About dialog.
The animation window consists of a command bar and an animation area. The
command bar has has a menu and some buttons.
- Toggle Speed
Toggles the animation speed between normal speed and half speed.
- Toggle Sound
Toggles the throw beep. There are three modes; silent and two different
- Change Ball Size
Changes the ball size. There are three sizes; small, normal and large.
- Change Hand Dist.
Changes the distance between the hands. There are three distances;
narrow, normal and wide.
- Change Highlight
Changes the ball to highlight. Also used to stop the highlight function.
- Pause Animation
Pauses the animation.
- Play Animation
Restarts a paused animation.
- Step One Frame
Displays the next frame in the animation. The animation must been paused for
this function to work.
Closes the animation window.
The buttons corresponds to the above described menu items.
The PocketPC version has support for the built in hardware buttons
when in animation mode. If they are not working in the program you
are probably missing a file named gx.dll which should be found in your
Windows directory. The file can be downloaded for free from Microsoft.
Thanks to Staffan Ulfberg for providing and explaining the algorithm
for calculating valid siteswaps.
IMPORTANT - READ CAREFULLY BEFORE USING THE SOFTWARE.
Use of this software constitutes acceptance of the terms of
1. Grant of license
The Siteswapper software product can be used free of charge for
The Licensed Software is owned by Magnus Hansson and is protected
by copyright laws and international treaty provisions. Therefore,
you must treat the Licensed Software like any other copyrighted
material (e.g., a book or musical recording).
3. Other restrictions
You may not rent, lease or sublicense the Licensed Software.
4. Disclaimer of damages
You assume responsibility for, among other things, (i) the
selection of the Licensed Software to achieve your intended
results, (ii) the acquisition of other software (including any
programming or operating system software) and/or equipment
compatible with the Licensed Software, and (iii) the installation,
use and results obtained from the Licensed Software. You agree
that, to the maximum extent permitted by law, Magnus Hansson shall
in no event be liable for any damages whatsoever (including without
limitation, damages for loss of business profits, business
interruption, loss of business information, or any other pecuniary
loss) arising out of the use or inability to use the Licensed
Software, whether direct, indirect, incidental, consequential,
special or otherwise, REGARDLESS OF THE FORM OF ACTION, even if
Magnus Hansson has been advised of the possibility of such damages.
YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT,
UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND
CONDITIONS. YOU FURTHER AGREE THAT IT IS THE COMPLETE
AND EXCLUSIVE STATEMENT OF THE AGREEMENT BETWEEN YOU AND
MAGNUS HANSSON WHICH SUPERSEDES ANY PROPOSAL OR PRIOR
AGREEMENT, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS
BETWEEN YOU AND MAGNUS HANSSON RELATING TO THE LICENSED