List of projects suitable for advanced undergraduate, Masters, or
first-year Ph.D. students
This page describes several projects that might help beginning students
who are interested in PARADISE to get their feet wet and get involved.
Real-time Distributed Agreement Protocols
In distributed simulation, there are many times when a small number of
entities need to agree on something, and when the simple state
dissemination model is not sufficient.
For instance, in PARADISE, agreement must occur for: distributed
collision detection and resolution (agreeing on the fact that two
entities have collided and deciding what to do about it), resource
transfer (guaranteeing that when I hand you an object, there is exactly
one copy after the transfer), and dead entity detection--deciding that
an entity is dead or unavailable.
There are many simple transactional agreement protocols floating around
in the distributed systems community, but PARADISE has some unique
characteristics, particularly its strict requirements for
This project would involve research into real-time agreement protocols
for distributed simulations, and hopefully implementing them into the
prototype PARADISE sytem that we are building. A good place to start
with this project would probably involve looking at distributed
We are building a distributed simulation testbed for our
research, and there are several pieces of it that are ripe for
- Controlling Simulated Entities: software to create realistic
actions of entities in the simulated world. Code to simulate
enemy-controlled tanks, planes, and missiles would be welcome, for
instance. This would be a good, easy way to get your feet wet in the
- Entities supporting multiple levels of detail: create an entity
that can be rendered witht multiple levels-of-detail. The entity will
need to dynamically change its representation based upon its relative
size on the display and other application requirements. The project
will possibly involve integration with the "multiple-fidelity channel"
architecture for dead reckoning.
- Player-controlled vehicles: software to create a vehicle that
could be controlled by a player. How about writing code to simulate
the action of a tank or an airplane, for instance. This project would
require some interaction with collision detection and with terrain.
- Virtual Environment: software to simulate clouds, smoke, wind,
rain. Requires that it "look right" visually, as well as "act right"
-- a boat should float on water, but a tank should sink. There may be
some fundamental work on protocols for interacting with terrain here.
- Simulated Voice Radio: Work on simulating the transmission of
voice radio in the virtual environment, simulating the effects of
limited range, interference, and fade-out. I think this would be a
relatively small project; the hardest part would be integrating it
with the entity programs.
- Porting and Heterogeneity: Port the PARADISE testbed from the IBM
AIX platform to SGI machines. This should be fairly easy. Also, port
the PARADISE testbed from the IBM AIX platform to PC's. This could be
more difficult. Once the port is complete, explore the implications of
heterogeneous hardware in the PARADISE environment. How must the
architecture be modified (or have we done a good enough job?) to support
different types of machines simultaneously?
In a distributed simulation, users interact not only with one another
but also with the environment, or terrain. For example, a tank
leaves tracks in the ground and a missile creates a crater in the ground.
We need a student to explore how dynamic terrain can be created,
updated, and managed. Our approach is to treat the terrain like any
other entity insofar as possible. The terrain has unique
characteristics, however: it is big and effectively exists everywhere,
and it undergoes structural change. A dynamic terrain implementation
should be added to the PARADISE testbed.
This project requires the student to explore how the terrain database
is represented (i.e. polygons, elevations, etc.), how updates are
stored, how the terrain is paged to simulators as they move about, how
updates are propagated to interested hosts, how persistence and
reliability are guaranteed, and other issues. The student will
probably need to gain some background in databases and graphics.
- Multiple fidelity (update channel) objects
- Objects with multiple (articulated) parts
- Objects with dynamic structure
- Better-behaved clouds
- Fog, rain, wind, etc.
- Checkpoint, tracing, and replay
- Variable time rate
- Smoke plumes
Hugh Holbrook (holbrook .at. dsg .dot. stanford .dot. edu)
Sandeep Singhal (singhal .at. dsg .dot. stanford .dot. edu)