Distributed Interactive Simulation |
![]() |
DIS | Java | VRML | Multicast Networking | PC Software Setup | 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."
For Windows NT 4.0, set environment variables by selecting Control Panel -> System -> Environment.
PATH C:\JDK1.2beta4\bin;.; CLASSPATH .;c:\dis-java-vrml; DEVCLASSPATH C:\Program Files\Netscape\Communicator\Program\Plugins\npcosmop21.jar;C:\Program Files\Netscape\Communicator\Program\Java\Classes\java40.jarFor Windows 95, set environment variables by editing the AUTOEXEC.BAT file.
REM ------------------ dis-java-vrml Development PATH/CLASSPATH ------------------- SET PATH="%PATH%";C:\jdk1.2beta4\bin SET CLASSPATH=%CLASSPATH%;C:\dis-java-vrml; SET DEVCLASSPATH=C:\Program Files\Netscape\Communicator\Program\Plugins\npcosmop21.jar;C:\Program Files\Netscape\Communicator\Program\Java\Classes\java40.jar REM More information on Java CLASSPATH is available at REM http://www.javasoft.com/products/jdk/1.1/docs/tooldocs/win32/classpath.html Example command line for compilation: javac -verbose -deprecation -classpath "%DEVCLASSPATH%;%CLASSPATH%" *.java Example Makefile entry for compilation: dis: cd mil/navy/nps/dis; pwd; javac $(VERBOSE) -deprecation -classpath "$(DEVCLASSPATH);$(CLASSPATH)" *.java
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. */
... more DIS spec info on conventions & 5.3.30 needed, perhaps workshop papers...
To be verified: 32-bit accuracy...
4.10 SFTime
The SFTIme field and event specifies a single time value. Time values are written to the VRML file as a double-precision floating point number in ISO C floating point format (see [ISOC]). Time values are specified as the number of seconds from a specific time origin. Typically, SFTime fields and events represent the number of seconds since Jan 1, 1970, 00:00:00 GMT.
The initial value of an SFTime eventOut is -1. The initial value of an MFTime eventOut is [ ].
design note [from The Annotated VRML 2.0 Reference Manual by Rikk Carey and Gavin Bell at www.best.com/~rikk/Book/book.shtml]
Time must be written as double-precision values to represent absolute times accurately that are 20 years past the time origin. About 800 million seconds have elapsed since 1970, so an accuracy of one part in 800 million (about 1e-9) is required to represent absolute times in the present with one-second accuracy--beyond the seven digit accuracy given by single-precision floating points.
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.
Also of interest: the SEDRIS Geospatial Reference Model (GRM).