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
testing
package.
Available
locally at
vrmljava.pdf
or at
web.nps.navy.mil/~brutzman/vrml/vrmljava.pdf
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...
4.10 SFTime
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.
design notes [from The Annotated VRML 2.0 Reference Manual by Rikk Carey and Gavin Bell at http://www.best.com/~rikk/Book/ch2-211.htm and http://www.best.com/~rikk/Book/ch3-350.htm]
Various time conventions are explained on the Systems of Time page at tycho.usno.navy.mil/systime.html
From the
SEDRIS FAQ:
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.