Juggling Lab
~ Current release: 1.6.5 (March 8, 2023) ~
Juggling Lab is an application for creating and animating juggling patterns. Its main goals are to help people learn juggling patterns, and to assist in inventing new ones.
This software is released under the GNU General Public License. Project source code is on Github.
- JugglingLab-1.6.5.exe – Windows (Windows 7 SP1 or above). Important: For the optimizer function to work (optional), you must have the Microsoft Visual C++ Redistributable for Visual Studio 2019 installed on your computer (select the x64 version near the bottom of the download page).
- JugglingLab-1.6.5.dmg – macOS (macOS 10.12 or above). If you get an "unknown developer" warning when you first open Juggling Lab, right-click and select "Open".
- juggling-lab_1.6.5_amd64.deb – Debian Linux (Ubuntu, MX Linux, Linux Mint, ...). Install from the command line using
sudo dpkg -i juggling-lab_<version>_amd64.deb
.- JugglingLab-1.6.5.tar.gz – Generic Linux/Unix.
For Windows, macOS, and Debian Linux, Juggling Lab installs as a self-contained application. For other platforms you will need to have Java 11 or later installed.
- Patterns-220114.zip – Juggling Lab pattern files.
1/14/2022 update: Includes new Four Ball Bouncing pattern file from Alan Weathers, and some edits for compatibility with version 1.5.2 and above.
Also includes patterns from Dominik Braun's "Fun with Juggling Lab" video series! Watch his amazing videos here: (FWJL, FWJL2, FWJL3). Open the
FunWithJugglingLab.jml
file with a text editor to see how his patterns work. Thanks for sharing Dominik! (Find Dominik on: Facebook, email.)- CLtools-1.6.5.zip – Command line tools for Windows, macOS, and other Unix platforms (see docs) Updated 3/8/2023.
- Siteswap notation. Description of siteswap notation as used by Juggling Lab.
- The pattern entry panel. How to enter siteswap patterns, add hand movements, and change pattern timing.
- The visual editor. How to use Juggling Lab's visual editor to modify patterns.
- The siteswap generator. What the siteswap generator does and what all those options mean.
- Juggling Lab GIF server. How to create a Juggling Lab GIF animation online.
- Command line access. How to run Juggling Lab from the command line.
- Hand siteswaps. Whereas ordinary siteswap determines a throwing sequence for the objects ("Object siteswap"), Hand siteswap determines a throwing sequence for the hands. Thanks to Mahit Warhadpande and P. R. Vaidyanathan for creating and documenting this feature.
Specialized material the average user won't need to know:
- Regular expressions in Juggling Lab. Describes the form of regular expression matching used in the siteswap generator.
- Juggling Markup Language (JML). Explains JML, Juggling Lab's internal pattern representation.
- 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
- Can display 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
- Ability to save animated GIFs
- Integrated siteswap pattern generator
You can contribute to the project by:
- Finding bugs and letting us know!
- Creating new patterns. Send us your patterns and we may include them with the next release of Juggling Lab.
- Translating into new languages. Juggling Lab is currently localized into Spanish, French, Portuguese, and Hebrew. Contact us if you'd like to help translate into more languages.
- Contributing to the code. Juggling Lab Github repository.
Juggling Lab has been in development in various forms since 1997. Over that long span of time the project has seen contributions from many people, including:
- Jack Boyce – Most Juggling Lab code, project administration
- Roman Auvrey – Fixes to language localization code, French language translation
- Daniel Bareket – Hebrew translations
- Dominik Braun – Fun With Juggling Lab patterns, and many design ideas including camangle, showground, and hidejugglers settings, and the '^' repeat notation
- Vincent Bruel – Suggestions for improved bouncing support (hyperlift/hyperforce patterns), ball-bounce audio sample
- Brian Campbell – Bookmarklet
- 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
- Roman Karavia – CheerpJ conversion to run Juggling Lab in the browser
- Ken Matsuoka – JuggleMaster pattern library, used here with his permission
- Rupert Millard – Implementation of '*' shortcut for sync notation
- Herve Nicol – Bug fixes
- Denis Paumier – Suggestions for passing and multiplexing improvements to siteswap generator
- Andrew Peterson – Performance profiling of animation routines
- Romain Richard and Frédéric Rayar – Android version (Google Play)
- Frédéric Roudaut – Design ideas for siteswap notation component, French language translation
- Daniel Simu – Bug reports, many design suggestions
- P. R. Vaidyanathan – Hand Siteswap feature input
- Xavier Verne – French translation of user interface
- Johannes Waldmann – Source code documentation
- Mahit Warhadpande – Hand Siteswap feature design and implementation
- Alan Weathers – Alanz pattern files, bug reports, many application improvement ideas