tinySceneGraph Home Images Contact

The San Jose Ball Machine

Friends of tinySG,

Science on a roll, San Jose a couple of years ago I've discovered the rolling ball sculpture in front of the tech museum in San Jose, California, made by George Rhoads. This has been the first time I've seen an automatic marble playing machine and I was so fascinated that I spend hours following the rolling billiard balls instead of joining the conference sessions in the Fairmont close by.

Finally, I've started implementing a similar thing in software using tinySG. It is actually already the 3rd approach to create something usable. The initial version was based on csg, followed by a rewrite for tinySG. The latter version suffered on a really bad 2D editor, which made it extremely hard to construct new machines. Thus, I decided to start all over again, calling it San Jose Ball Machine (or short sbm).

The image below shows the editor view of sbm. Different types of tracks may be created via tool buttons and their properties show up in the property inspector to manipulate parameters, like elevator speed or tangent San Jose Ball Machine lengths at connection joints.

Once a track segment is picked, it may be oriented and moved around with the mouse. Possible connections are indicated via dotted connection lines and coordinate indicator helper lines. The editor will always show the closest possible connection, which may be established via the connect button.

Whenever a track segment is connected with at least one of it's connectors it cannot move anymore. An exception is the flex track: If just one end of this segment is connected, the mouse will move the other end around or modify it's tangent vector. The flex tracks geometry is then re-interpolated using Hermite splines. The flex tracks will adapt the tangents of other track segments, taking care of a smooth overall track. They should be used whenever other elements have to be connected. Beside flex tracks, there are other elements, like
  • Elevators: This active element picks up balls from a track at the bottom and moves them up to a higher track, keeping the machine working.
  • Guards: Guards ensure that only one sphere can pass at a time. San Jose Ball Machine
  • Helix: The helix is a passive element, used to bridge vertical displacements.
  • Looping: Another passive element.
  • Switch: Element that will direct each other sphere onto different outgoing connectors.
  • Collector: A bi-stable element that collects a number of spheres before it becomes instable and switches to it's other state. All collected spheres are released at once.
  • Merger: A passive elements that has two incoming tracks, combining them into one outgoing track.

The image on the right shows a collector that needs to assemble three spheres before it starts to swing, releasing all spheres to the lower track.
The current version has the track editor and animation framework in place. The mechanics are in place, but tracks still consist of some rails magically floating in the air. Unfortunately, still imagery cannot communicate the fascination of a running simulation or even the real thing in front of San San Jose Ball Machine Jose's Tech Museum. One of the first things to come is thus a video generation extension. It already exists in tsgEdit, but needs to be made available in asb's UI as well. Further improvements will include a script mode, allowing to switch camera angles, tracking of certain spheres from an observers position or following a given sphere in roller coaster mode through the machine.

The San Jose Ball Machine provides an ideal playground for experiments with visual effects like night rendering with glowing balls, tracked observers that would allow to examine the machine in virtual reality, realtime shadow casting, motion blur, etc.






Acknowledgements and links:

  • The entire project was inspired by a sculpture called science on a roll, made by George Rhoads. You can find it in front of the Tech Museum in San Jose. Some images are online here.
  • A fantastic page on Rolling Ball Sculptures is Eddie's Mind.
  • Another page with an extremely nice video is from Didier Legros.



Copyright by Christian Marten, 2011-2014
Last change: 04.03.2012