31.01.07: Dashboard widget released.
05.10.06: Opera Widgets version released.
04.09.06: JMPalm version 1.3 released.
01.08.06: JMPalm version 1.2 released.


Download JMPalm 1.3.0
Download JMPocket 1.0.1
Download Opera Widget
Download Dashboard Widget 1.0

JuggleMaster is now open source, and all the source code is available for download or in a CVS repository. The official development page is found at http://www.icculus.org/jugglemaster/

I have used the original JuggleMaster source code (written in C) to create a portable C++ library I have called JMLib. JMLib is the basis for JMPalm and JMPocket, and can be used to port JuggleMaster relatively painlessly to other platforms with a C++ compiler. JMLib basically uses C++ as a better C, and doesn't use any advanced C++ features (this is because JMLib is targeted for embedded platforms), so basically any C++ compiler will do. Rewriting the library to C if neccesary shouldn't be too much of a problem either.

I have also ported JMLib to JavaScript, which allows JuggleMaster to run inside a web browser. A widget version of JuggleMaster using this library (for Opera and Dashboard) is also in the works. Gary Briggs has also ported JMLib to TorqueScript, which allows you to use JuggleMaster inside the Torque Game Engine.

JMLib has also been used to create a wxWidgets version, which enables it to run on several popular platforms including Windows, MacOS and Linux/Unices. This port is written by Gary Briggs. He has also written a aalib version, which lets JuggleMaster run from a console. He is also the person who did all the work on making JuggleMaster open source (figuring out licensing, setting up a CVS repository etc.)

Other versions include a QT version of Sharp Zaurus by Catstar and a OS X cocoa version by Scotch Tom.

Porting JuggleMaster to your favorite platform shouldn't be very difficult, as JMLib already takes care of all the juggling stuff as well as parsing and validation of siteswaps. The following needs to be written specifically for each platform:

  • Graphics drawing / anmiation (where to draw the balls and hands is calculated by JMLib)
  • A user interface for selecting patterns etc.

Parsing of the pattern library is included in JMLib for platforms that can use the standard C FILE* mechanism. Other platforms must provide their own implementation (Palm OS is an example of such a platform.) The JavaScript version also uses a custom pattern library format. Converters to turn the standard pattern library format into the Palm OS and JavaScript custom formats are available.

The following different versions are already available in CVS as of 06.10.2006:

  • aalib
  • Cocoa (OS X)
  • Palm OS
  • Pocket PC
  • Widget version
  • wxWidgets (multiplatform)
  • QT version for Sharp Zaurus

Hopefully this list will grow substantially in the future.

The following is a list of suggested platforms for JuggleMaster (note that some of these may already be in the works, so before you start coding, it is probably a good idea to drop an email to Gary Briggs (chunky@icculus.org) or Per Johan Groland (jm@jugglemaster.net)

  • Nintendo DS / Game Boy Advance
  • PSP
  • Symbian
  • Linux PDAs
  • Microsoft.net
  • Gamepark GP32
  • etc. etc.
  • In fact, any platform with reasonable computing power will do! Also, if you have ideas on how to improve JMLib with new features (for instance 3D :), feel free to get in touch.