Project Requirements
Requirements
As this is an ongoing project, it is necessary to outline the
requirements along three paths. The first section delineates final
product requirements. In the second section, a detailed outline
specifies current project requirements organized by functional
components. These should be modified as necessary to reflect ongoing
needs. Quarter-by-quarter requirements are recorded in the final
section. These may be short-term and prototype-specific, and can be
modified as necessary during subsequent project work segments.
1 Abstract
The project design must fulfill two sets of needs:
1) Provide an interactive Virtual Reality model of the renovated
Midtown area.
2) Provide a functional interactive environment with well-defined
interfaces with which Computer Science projects can interact.
1.1 Accurate, High-Quality Virtual Representation of Midtown
To maximize usability, accurate representation of Midtown Atlanta
in an interactive virtual environment is a key project goal. To ensure
the project's usefulness in the future, this model should be as accurate
and detailed as possible under current computing constraints. The
graphics modeling segment of the project could feasibly become a joint
venture in the future through involvement of outside groups with
applicable skills and interest in this area. Maximum mutual benefit
can be obtained from such potential interactions by tailoring the
design to this purpose. The design must facilitate integration of new
models into the existing virtual world. This includes the ability
to convert topological maps to virtual terrain, producint textures
and overlays from digital images of buildings, and standardizing on
modeling formats used in the virtual world.
1.2 Platform and Networking Capabilities
The virtual world must be accurate enough to be useful, but also small
and fast enough to be interactive without a specialized graphics
workstation. The final product must be able to run on both Unix-based
and Windows NT platforms at interactive rates. Virtual Midtown
network features must enable multpile users to interact within the
environment. To achieve maximum usability, the simulation should
remain interactive when run over a 56kbps modem connection.
1.3 Agents
To enhance the realism of the environment and to enable students to
program modules for it, an interface must be provided for creating and
animating objects within the Virtual Midtown environment. These objects
can be dynamic parts of the world - such as doors that open and close,
or street lights that turn off and on - or autonomous agents that move
about the world according to the intelligence routines provided by the
programmer. Standard interfaces must be designed to incorporate
these modules, regardless of which programming language they are
implemented in. Such agents should be able to interact with the virtual
world and its users, and be able to run in single user or networked mode.
2 Virtual Environment
2.1 Rendering
The application must be able to render 3-D virtual environments fast
enough to be considered interactive. This can be accomplished with
either a pre-built virtual environment library or, if this option proves
too slow for interactivity, custom-designed rendering functions. The
system must provide as much accurate realism as is possible while still
remaining interactive on our base machine.
2.2 Calculation of View Volume
The application must be able to select a subset of immutable objects
and render them if they are in view from the user's current position.
All dynamic objects and autonomous agents within the user's view
should also be rendered.
2.3 Level of Detail
The final version of Virtual Midtown must be accurate to a 1 meter level
of detail, meaning that each square meter of terrain in Midtown must
have a scale representation in the Virtual Midtown environment.
This is the level of detail required to provide maximum benefit to
future applications requiring an accurate 3-D model of Midtown Atlanta.
Textures are to be used whenever possible, and bitmapped representations
should be used when necessary, according to the desired level of
detail. Methods should be defined for applying both textures and
bitmaps to surfaces in the virtual environment.
2.4 Backgrounds
In order to accurately represent Midtown Atlanta, it is necessary to
provide the means to render objects that will be viewable from anywhere
in the environment, such as the downtown skyline. Methods must be
provided to display objects visible to someone at that actual position
in Midtown Atlanta but that are outside the rendered view volume.
3 Server Requirements
3.1 Hardware
Because the server is a centralized program, its hardware requirements
are flexible. If it becomes necessary to run the server on
high-performance hardware, this can be accommodated.
3.2 Static World
The static world databases will be provided by the server so that all
clients may access the most recent and up-to-date models of Midtown.
Clients must be able to access the static world data as needed.
3.3 Dynamic Objects
All autonomous agents and other mutable objects in the Virtual Midtown
representation should be tracked by the server, with their current
position and status made available to clients on the network. The
server must keep track of as much information about dynamic objects as
is necessary to render them with the desired level of detail on the
client application.
3.4 Communication with Client
A client must be able to establish a link to the server machine and
exchange data with it. It is not necessary to guarantee the success of
data transfers, except that it must succeed with a probability great
enough to ensure interactivity. Clients must be able to retrieve from
the server any relevant information about both static and dynamic
objects in their view volume.
4 Client Requirements
4.1 Rendering
All rendering routines must be executed on the client, though their
implementation can be whatever is necessary to retain interactivity.
Object definitions are to be dynamically downloaded from the server
databases as needed.
4.2 User Interface
The user interface must allow the user to navigate the virtual world in
an intuitive way. Dynamic objects must also provide user interfaces for
the various behaviors which it is possible to elicit from them. For
examplet to the environment around them. These can be as simple as a
single movement or animation sequence or as complicated as its ability
to calculate movement allows.
4.3 Program Interface
Since dynamic objects form the crux of Virtual Midtown's ability to
serve as a computer science educational tool, a standard program
interface must be provided so that the basic functions of dynamic
objects can be accessed using any language. If a universal interface is
impossible, the development of interfaces for each of the languages used
in Georgia Tech's computer science curriculum will take precedence.
Dynamic object functions should be organized to allow any external
intelligence routines to accommodate all possible behaviors for that
object.
5 Miscellaneous Requirements
5.1 Collisions
Collisions with the static and dynamic worlds must be accounted for.
The desired level of accuracy is the maximum achievable while retaining
the interactivity requirement. As this is not a competitive game,
leeway is allowed for computational and network latencies that my cause
flickers or jumping when users collide with dynamic objects in the
environment. Collision detection's main goal is to keep users from
walking through walls, not to detect the contours of another object.
5.2 Inventories
Users must be able to acquire dynamic objects and retain possession of
them when they have disconnected from the environment. An interface
must be provided so that users can choose objects in their inventory and
perform certain allowable actions upon them.