Blimp Flight Simulator
An exploration of physically based behavioral animation for active objects in a virtual environment.
Our blimp flight simulator allows people to train on airship flight controls before piloting a real blimp. In our case, the blimp is a small remotely controlled airship that can be flown inside buildings. A camera mounted beneath the blimp allows the pilot to see where the blimp is going. The simulation consists of the blimp, the flight controls and other objects in the environment in which the blimp flies. The pilot controls the virtual blimp using a graphical interface at a desktop computer. These are the same controls that are used to pilot a real blimp. A window displays the view from the virtual blimp camera.
One sticky problem in managing virtual words is adding new objects with new behaviors. A virtual world manager must keep track of all the objects in the world and update the state of each object as events unfold over time. In a networked virtual world, new objects might be authored and then loaded into the virtual world by anyone. When a new object is added, the manager needs a way to communicate with the object to figure out how it will interact with the other objects in the world.
We designed a protocol and architecture for a virtual world manager and virtual objects that allow objects to be loaded into the virtual world at runtime. The object's entire description is encapsulated in just a few files: a Java object file describing the object's behavior, and text files specifying its geometry, and its mass and material properties. A virtual world manager can then load the encapsulated object from the Web. The virtual world manager then builds an instance of the object on-the-fly and inserts it into an already running virtual environment.
The flight simulator demonstrates our solution. The blimp and its flight controls are a virtual world object with interactive behaviors.
The flight simulator just a particular simulation that is managed by the impulse-based dynamics simulation program Impulse (written by Brian Mirtich as part of his PhD work at UC Berkeley.) Impulse keeps track of all of the objects in the environment, computing the motion of each object as it falls under the influence of gravity or shoots off in a new direction after colliding with another object. In addition, Impulse can interpret object behaviors, procedures attached to a particular object that determine how that object interacts with its environment. The physics of blimp flight is such a behavior. The blimp reacts as if it were floating in air: it experiences buoyant forces from simulated helium, propulsive forces from simulated propellers and drag forces proportional to its velocity. Even interfacing with the pilot controls is part of the blimp behavior.
Appearance at SIGGRAPH 97
This virtual blimp appeared as one of two projects at the PRoP's (Personal Roving Presence) booth in the Electric Garden at SIGGRAPH 97. The blimp's behavior is an example of behavioral animation. This this case, the behavior was a flight simulator for piloting a small blimp around a virtual space. For the PRoP's project John Canny and Eric Paulos piloted a real life tele-operated blimp in a real space.
These blimps are about five feet long, two and a half feet in diameter, and fly around inside of buildings. Three propellers mounted on the blimp direct its height, yaw and forward and backward velocity. The blimp controls consist of a Java applet with a graphical user interface. Video conferencing tools interfaced to a small camera mounted on the blimp allow the pilot to navigate the blimp even though the blimp may be located in another room or even another building.