Welcome to the Juggling Lab 3D page!
This project supplies an alternative 3D renderer for the popular Juggling Lab juggling simulator. The renderer started life as an extension to JuggleMaster Java, but Juggling Lab provides more flexibility and is also still being maintained, and so I switched. You can find the original version based on JuggleMaster Java here, but I'm no longer supporting or changing it.
A screen shot for those who are Java3D-challenged
Before we go any further, a word of warning: this was my own private let's-see-what-happens-if-I-do-this project. I've made absolutely no attempt to make it usable by anyone else, tested it on other machines, or made any attempt to optimize it. If I had the time I would, but I don't. This may work for you, or it may not. This project represents only a few hours work and there are loads of rough edges. In the future I may add lots of nifty features: different items, different colours, better user interface, sound. Or, I may not.
This application uses Java3D to perform the 3D rendering. You will need a computer which supports at least Java 1.3 and Java3D.
At present, the Windows version of Java3D is better than the Mac version. I've tried to make it look good on both, but this involves some compromises to work round various bugs. In particular, there are a few lighting bugs on the Mac version which prevent glowing props from working properly. It also doesn't display shiny objects correctly, and resizing the window can cause your machine to freeze with certain graphics cards (Don't say I didn't warn you). Java3D 1.5 fixes these problems, and it's possible to install that on your Mac to replace the built-in one if you're feeling sufficiently brave.
- Displays any pattern which Juggling Lab can handle, including multi-juggler passing.
- Many different juggling props: Balls, clubs, glo-balls, fire torches, razor-sharp knives of death.
- Extra difficulty points: Unicycle, club balancing, walking globe, rola bola.
- A control panel for changing props, lighting, fog etc.
- Lots of stuff is only half-implemented.
- The UI is clunky.
- Closing the viewer doesn't work.
- Clubs don't spin properly when passing.
I'll fix these things as I get time. Alternatively, why not fix them yourself?
- Download JugglingLab.jar. This is a double-clickable JAR file.
- Download JugglingLab-source.zip. This is the source code of the application.
I'm not going to go into details on using Juggling Lab. You can find out how to use it from its website.
Double-click on the jar file, or type:
java -jar JugglingLab.jar
in your favourite command line. Use Juggling Lab as normal. To see the 3D viewer, start a juggling pattern, choose "Render Preferences" from the "View" menu and turn on "Solid 3D Rendering". When you do this, two windows will appear. The first one is the control panel and the third (which may take a few seconds to appear) is the 3D viewer. In the viewer you can use the mouse to navigate (modifiers for Mac one-button mice in brackets):
- Left Button (Shift-click) rotates the view
- Middle Button (Option-click) zooms the view
- Right Button (Command-click) translates the view
You can also type:
- 1/2/3/4 to change the number of spins the objects do.
- Space to pause the animation. Note: this only pauses the display. Juggling will continue as normal in the background.
From the control panel you can choose different props, change viewing settings and provide extra difficulties for the jugglers, such as balancing a club or riding a unicycle. Some of these things work better than others. e.g. bounce juggling from a unicycle doesn't work quite as you'd expect.
The original JuggleMaster was written by Ken Matsuoka.
The LatheShape3D class was written by Andrew Davison.
Juggling props were created with Art of Illusion.
The default background was created with Terragen.
Many thanks to all these people.
Here are some FAQs I made up:
1) It doesn't work.
I dunno. It works for me. Make sure you've got Java3D installed and at least Java 1.3.
2) Can I change the colours of the balls?
3) Can it juggle different objects at once?
4) Can it throw under the leg/do head catches/balance a club on its nose/do flat throws/head spins?
5) Why does the fire point in the wrong direction when you rotate the view?
I'm still working on that.
6) Is that an EJC 1999 T-shirt the robot is wearing?
7) And is that also a 2004 BJC pass round its neck?
8) Why are the hats so big?
Because the robot has a big head.
9) Why doesn't the unicycle have pedals?
Because it's a high-tech hover unicycle with fly-by-wire controls. Pedals are so 20th century.
10) How do I install Java3D 1.5 on my Mac?
Download the latest JOGL+OS X native binaries from https://jogl.dev.java.net and Java3D 1.5 from https://java3d.dev.java.net/. Unpack the native binaries jar file to give you a set of JNI libraries. Throw the jar fles and jnilibs into the /Library/Java/Extensions folder. Don't call me if you break anything.