Bounce Stuff

Bounce is a real time visual data flow programming language, designed to create interactive graphical simulations, and to filter and control midi, serial, ethernet, and other devices.

Bounce is a product in development by Levity Systems, based on VPL's Body Electric virtual reality programming environment, and Macromedia's Director animation projector.

Chuck Blanchard wrote the original Body Electric. Jaron Lanier has used it to create Virtual Reality performance art, implementing interfaces for Virtual Instruments entirely in Body Electric.

David Levitt made Bounce by integrating Body Electric with Director, and Don Hopkins is working on the graphics and user interface.

"Space Seed" is a neat demonstration of a graphical character behavior simulation written in Bounce. Most of the graphics were created by Big Twin, and the dataflow networks were created by Don Hopkins, David Levitt, and Big Twin.

Bounce was on tour with the Electric Carnival at Lollapalooza, in the Midi Zoo!

SpaceSeedErgotLicks.gif : Ergot licks the ball!

The green Ergot character walks around the scene, chasing after the ball. You can pick up the ball with the mouse, and hold it above him, and he sticks out his tongue, licks it up, and swallows it down!
SpaceSeedCircuits.gif : The program behind the bouncing ball.

This shows several nested data flow diagrams, that implement the bouncing ball behavior. The upper left window makes the ball bounce along one dimension. It has four inputs and two outputs, and is represented in the lower left window by a nested folder.

Inputs: Outputs: Folder: .

There are three copies of that module for each dimension on the lower left window, which is a higher level module that simulates the ball's three dimensional velocity.

The right top window is the module that performs a vanishing point projection of a three dimensional point, by scaling a graphical sprite.

This circuit: contains this sprite module:

The TV set "Sprite" icon renders a director cast member onto the screen, given a cast ID, a channel number, a position, and a scale.

This nested folder: contains this circuit:

The "FakePerspective" module, opened in the middle right window, calculates the two dimensional scale and position to feed into the sprite, given a three dimensional point. It converts the numbers between integers and floating point, and takes several weighted averages, one of which is opened up in the bottom right window.

Neat, huh?