Version 0.5.3 (September 19, 2004)
Juggling Lab is
now part of JuggleWiki!
Juggling Lab is a Java application for creating and animating juggling patterns. It evolved from the JuggleAnim juggling applet, and extends JuggleAnim by providing greater flexibility and user interactivity.
Juggling Lab is free for non-commercial use (more details here). Portions are released under the GNU General Public License.
Step 1. Most of the links in Step 2 below will only work if your browser supports the Java 2 platform. On Mac OS X, any browser that uses Apple's built-in Java support will work, including Internet Explorer. On Windows, it's likely that you will need to install Sun's free Java virtual machine.
Step 2. Select one of the links below. The code is about 300k in size, so it takes a while to load over some connections.
Juggling Lab also runs as an application, in addition to the applet version above. As an application it has additional features, such as the ability to open and save patterns.
Juggling Lab download page for Mac OS X, Windows, and other systems.
Juggling Lab is not yet fully documented, but the following pages may help you get started:
- Web link front end. Describes how to create a Juggling Lab animation with a web link.
- Using the siteswap input panel. Describes how to enter siteswap patterns, add hand movements, and change pattern timing.
- Using the visual editor. Describes how to use Juggling Lab's visual editor to modify patterns.
- Using the siteswap generator. Describes what the siteswap generator does and what all those options mean.
- Generalized siteswap notation. Explains the generalized form of siteswap notation used by Juggling Lab.
- Juggling Markup Language (JML). Explains JML, Juggling Lab's primary pattern notation.
- Using Juggling Lab as an applet. Describes the HTML needed to create an animation within a web page.
- The Juggling Lab license. Describes what you need to do if you make Juggling Lab publicly available (for example, you post it on a web site).
Source code documentation is also available, for those interested (download).
- Animates all solo and passing siteswap patterns, including synchronous and multiplexed patterns, and patterns involving movement of the juggler bodies
- Support for bounced throws (including multiple bounces and hyperlift/hyperforce throws)
- 3d drawing engine, rendering both solid 3d and wireframe
- Optionally displays stereo image pairs to provide depth perception
- XML-based pattern description language JML (Juggling Markup Language), permits fine-grained control of ball, hand, and body movements
- Graphical pattern editor
- Realistic hand model, with cubic spline hand paths that match the velocities of balls at throwing points
- Definable ball colors and sizes
- Ability to write animated GIFs
- Integrated siteswap pattern generator
- Runs on any platform with either Java 1.1 or Java 2 support, with additional GUI capabilities in the latter case
Stay informed of future updates to Juggling Lab by subscribing to the Juggling Lab announcement mailing list (expect low traffic).
You can also contribute directly to the project by:
- Finding bugs and reporting them on the Juggling Lab bug tracking page.
- Thinking of interesting ideas for the Juggling Lab feature requests page.
- Creating new patterns for Juggling Lab, and emailing them to one of the project admins.
- Developing code. Contact one of the project admins, and in the meantime look at the online Juggling Lab source code documentation (download) and browse the Juggling Lab CVS repository.
- Vincent Bruel -- Suggestions for improved bouncing support (hyperlift/hyperforce patterns), ball-bounce audio sample
- Jason Haslam -- Ring prop, bitmapped-image prop, improved ball graphic, visual editor enhancements, internationalization of user interface including Spanish and Portuguese translations, and many bug fixes
- Steve Healy (JAG) -- Many invaluable design suggestions and bug reports, especially of siteswap notation component
- Anselm Heaton -- Orbit-finding code, other design suggestions
- Lewis Jardine -- Apache Ant build file, GPL clarifications
- Jonathan Locke and others -- Jakarta-Regexp regular expressions package used in the generator exclude/include feature
- Ken Matsuoka -- JuggleMaster pattern library, used here with his permission
- David Megginson -- Simple API for XML (SAX) interface
- Microstar Software Ltd. -- AElfred XML parser
- Rupert Millard -- Implementation of '*' shortcut for synch notation
- Denis Paumier -- Suggestions for passing and multiplexing improvements to siteswap generator
- Andrew Peterson -- Performance profiling of animation routines
- Jef Poskanzer of Acme Labs and many others from decades past -- GIF-writing code
- Ronald Tschalär -- HTTPClient code to enable file uploading to the Juggling Lab Wiki
- Xavier Verne -- French translation of user interface
- Johannes Waldmann -- Doxygen-generated source code documentation
- Peter Walser -- idx3d engine for 3d solid rendering
- Dozens of people from rec.juggling -- Browser compatibility testing
- Jack Boyce -- All other Juggling Lab code, project administration
People can juggle, too. Some good sources of general information are:
- Internet Juggling Database
- Juggling Information Service
- rec.juggling Usenet newsgroup