Distributed Interactive Simulation
|DIS||Java||VRML||Multicast Networking||Time||World Modeling||Et Cetera|
"The primary mission of DIS is to define an infrastructure for linking simulations of various types at multiple locations to create realistic, complex, virtual "worlds" for the simulation of highly interactive activities. This infrastructure brings together systems built for separate purposes, technologies from different eras, products from various vendors, and platforms from various services and permits them to interoperate. DIS exercises are intended to support a mixture of virtual entities (human-in-the-loop simulators), live entities (operational platforms and test and evaluation systems), and constructive entities (wargames and other automated simulations). The DIS infrastructure provides interface standards, communications architectures, management structures, fidelity indices, technical forums, and other elements necessary to transform heterogeneous simulations into unified seamless synthetic environments. These synthetic environments support design and prototyping, education and training, test and evaluation, emergency preparedness and contingency response, and readiness and warfighting."
To order, see the IEEE Standards Department: Simulation Interoperability page at standards.ieee.org/catalog/simint.html. This site also provides DIS description & errata pages, as well as High-Level Architecture (HLA) documents. The full standards documents are only available through purchase.
VRML-Java example programs described in this paper are available in the
The Virtual Reality Modeling Language (VRML) and Java provide a standardized, portable and platform-independent way to render dynamic, interactive 3D scenes across the Internet. Intended for programmers and scene authors, this paper provides a VRML overview, synopsizes the open development history of the specification, provides a condensed summary of VRML 3D graphics nodes and scene graph topology, describes how Java interacts with VRML through detailed examples, and examines a variety of VRML/Java future developments.
This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications.
DIS-Java-VRML needs to resolve these three different time system conventions satisfactorily, and also promote easy-to-use mechanisms to ensure that participant clocks are synchronized. These two tasks are not yet complete.
The current DIS-Java-VRML time convention follows (excerpted from class mil/navy/nps/dis/ProtocolDataUnit.java). It is subject to change. Once sufficient experimentation has produced a well-bashed convention, we will formally review it. One possibility is that multiple conventions will be allowed (and announced to/by participants).
/** makeTimestampCurrent() Sets the timestamp field to a current value. THIS USES THE VRML DEFINITION OF TIME RATHER THAN THE DIS DEFINITION OF TIME. VRML uses a double to hold the number of seconds since January 1, 1970. That takes 64 bits, though, and we have only 32 in the PDU. We get around this, sort of, by adopting the convention of having the start time equal to midnight on the day the simulation started up. With 32 bits, we can run for about 50 days before the number of milliseconds in the field rolls over. When we return the VRML timestamp, we can just add the start time (saved in a class variable) to the timestamp and cast it to a double. */
Also see javadoc for ProtocolDataUnit timestamp
... more DIS spec info on conventions & 5.3.30 needed, perhaps workshop papers...
To be verified: 32-bit accuracy...
Time (0.0) is equivalent to 00:00:00 GMT January 1, 1970. Absolute times are specified in SFTime or MFTime fields as double-precision floating point numbers representing seconds. Negative absolute times are interpreted as happening before 1970.
How is SEDRIS different from VRML? - SEDRIS is a data interchange mechanism defining a data model with standard access methods. VRML is a programming language used for creating visual effects. VRML only encompasses the portion of SEDRIS that deals with data representational types of polygons, colors, and textures. SEDRIS includes more data representational types than just those used for visual scene generation.