Distributed Interactive Simulation
DIS-Java-VRML Working Group

click for Dis-Java-VRML home page

Work List

Discussion on current efforts, open issues and future work happens via the dis-java-vrml mailing list at dis-java-vrml@web3D.org.

You must first subscribe before you can post to the dis-java-vrml list - this policy prevents e-mail spamming. Mail traffic is documented in the www.web3D.org/WorkingGroups/dis-java-vrml/hypermail at www.web3D.org/WorkingGroups/dis-java-vrml/hypermail.

Goals and Expected Results Status: Who What & When
Available projects:
  1. Produce browser-neutral security fix. Netscape security classes are now loaded at run time by using class discovery and dynamic class loading. The same approach needs to be implemented for Internet Explorer security classes. We need to get a browser-independent way of signing the applet jar files.
  2. Demo with many players over Multicast Backbone (MBone)
  3. GeoVRML and human animation (h-anim) working group collaborations
  4. Fun multiplayer game example: Capture the Flag, live 7 x 24.
  5. Validate full dead-reckoning and smoothing algorithms.
  6. Write Javascript to change the VRML rotation trace from a 4-tuple to roll/pitch/yaw. Rewriting formulae in the math package from Java into JavaScript should do the trick.
  7. Run dis-java-vrml in combination with Java3D and its VRML97/X3D open-source loader.
"Your name here" to participate in any of these tasks?
  1. Don McGregor and Don Brutzman
  3. This work is moving over to the virtual reality transfer protocol (vrtp) working group, specifically Don McGregor's dial-a-behavior protocol (dabp) effort.
  4. Doug Miller and Bill Bohman started a pretty cool helicopter battle. Quay Jones added tanks. A whole bunch of students made this a "Capture the Flag" game with collision detection and terrain following. Fun on fast machines. More embellishments continue.
  5. Scott Heller added smoothing algorithms to EspduTransform.java. We are not computationally bound, so addition of various dead-reckoning cases remains unfinished but may be unnecessary.
  7. Hot topic!
Specific fixes needed:
  1. Combine read & write functionality into a single EspduTransform
  2. Upgrade (i.e. fix) EAI examples. Boid polygon vertices not ordered.
  3. Entity identification checks: use host IP number for entityID, have NetworkMonitor keep track of subscriptions so that PDUs go to the proper script node
  4. Getting a new object inserted into the scene upon receipt of a new PDU
  5. Passing VRML from URL in Script to the scene when new entities heard
  6. Put all software back under CVS source control
  7. Devise Real-time Transport Protocol (RTP) header profile for DIS packets, using Real-time Transport Protocol (RTP) (RFC 1998) header standardization (prepended to DIS PDUs) and Real-Time Streaming Protocol (RTSP) for playback control.
  8. Add serializable tags (@serial) to eliminate javadoc warnings. See file:///C|/jdk1.2.2/docs/guide/serialization/spec/serial-arch.doc6.html
  9. Make articulatedParameters into exposedFields, since they might be set from inside the scene if writing PDUs (instead of reading PDUs)
"Your name here" for any of these?
  1. Don Brutzman - completed.
  2. We continue to defer this work because the EAI specification and implementations are not standardized. Still, somebody could unbreak the current examples...
  6. Don McGregor & Don Brutzman. Or not.
  7. Francisco Afonso thesis, completed September 1999 did RTP part, see www.web3D.org/WorkingGroups/vrtp/rtpMonitor
  8. Don Brutzman & Don McGregor - mostly completed. Combination of @serial tags with transient or static member attributes fixed the problem. Remainder of groaning in the makeBuild.out file is from still-broken EAI-related classes.
Freely available implementation of the DIS protocol using VRML and Java. We are mostly complete implementing the various protocol data units (PDUs), and are working on example applications & utilities. The full set of software is available for download via the Software Download and Installation page. All of the source programs are fully documented via the Software Reference page. Additional contributions are welcome.
What about the other Protocol Data Unit (PDU) types? The IEEE DIS standard is a big standard to implement. We have implemented several including Entity State, Fire, Detonation and Message PDUs. Thus our implementation of the full DIS specification is incomplete. Here are the status pages on implemented PDUs and implemented records.

The DIS class library is documented and designed to be easily extensible so that other contributors might easily add the remaining PDUs. If you are implementing additional PDUs, please let us know (to avoid duplication of effort) and follow the Code Design and Coding Standards guidance.

A set of recommended practices and example code for using DIS with VRML. Basically, building this library and including example applications accomplishes the recommended practices task. When we get closer to a complete implementation, we intend to produce a "Recommended Practices for DIS-Java-VRML" proposal for the Technical Advisory Board (TAB).
Utilities: AWT DIS viewers, data loggers and PDU playback, etc. AWT PDU viewer provided for Entity State PDU (Espdu).
AWT Espdu Sender can generate Espdu traffic easily easily.

CAPT Millie Ives at George Mason University (GMU) has provided data loggers/playback routines in the logger package. David Holland (also at GMU) is upgrading this package.

More work is needed to provide other utilities.

Math and physics libraries Basic quaternion math library provided by Kent Watsen. Still need geographic coordinate conversion routines, perhaps a tutorial too. Additional dynamics models for different vehicles are optional but can be added (full underwater vehicle hydrodynamics is a popular example around here). Some day (in the wonderful future) NPS will likely attempt to provide standard physics libraries that provide specific parameterized equations of motion for a variety of vehicle types.

The javax.vecmath.Quat4d and javax.vecmath.Quat4f classes provided with Java3D look quite useful, but would require additional installation of Java3D. This is currently not a complication we want to introduce.

Examples updated, update readme & how-to files. The Software Reference can always be improved. We do pay attention to suggestions (hint hint)! If you encounter something inscrutable, or can't find an answer you need, please tell us.
Where are the bug lists? We try to document bugs local to the problem, meaning that problem statements (and guesses about how to fix them) are usually right in the source code documentation. Thus we haven't built standalone bug lists. Please look in the various Readme.txt files (available via the example applications page), in the JavaDoc documentation for each class, or in source code comments.

Looking back in the mailing list hypertext archive will show previous dialog. We need to add a search engine - software suggestions are welcome. If www.web3D.org gets a search engine for all working groups, we might transfer the mail archive there.

Got a bug? Please subscribe to the dis-java-vrml mailing list and report it to dis-java-vrml@web3D.org

Browser combinations under test: Cosmo Player 2.1.1 running under Netscape Communicator 4.5 and 4.0x, WinNT/Win95/Win98

Download CosmoPlayer Karmanaut mirror site: CosmoPlayer 2.1.1 plugin for Netscape or Internet Explorer.

Intervista Worldview 2.1 running under Internet Explorer 4, WinNT/Win95 is deferred until we solve security incompatibilities between Communicator and Explorer. Likely WorldView will go away.

Available from SGI with Java through the Script node, but failing tests:
SGI's CosmoPlayer 2.1, running on Netscape Navigator 4.5, SGI Irix 6.2+

Effective code contributions added to the dis-java-vrml archive. A large number of folks are making great contributions. (But wondering: where are the rest of you people?!? A recent count showed 167 lurkers and 8 contributors. No kidding.)

We hope that getting dis-java-vrml examples to work with a single click - plus global MBone testing of demonstration applications - will be widely useful. Things work with a single click now, but you must have installed the dis-java-vrml distribution and updated your CLASSPATH first.

Why won't multicast travel over a modem line? There is a bug in the NT operating system that blocks multicast when networking is via phone dialup. Bleah.

We have worked around this problem by building a unicast UDP version of the MulticastRelayClient/MulticastRelayServer. The Examples page and bridge package directory contain relevant software efforts.

JavaScript precision manipulation needed for VRML trace values EspduTransformPROTO.wrl: reduce digits of precision in VRML trace output
Technical paper on DIS-Java-VRML design. Don Brutzman and Don McGregor plan to do this someday.
Maintain a public-domain C++ DIS library archive, for developers who want to freely bundle similar DIS functionality in other programs (such as browsers written in C++). The NPSNET C++ code for DIS is available via the dis-java-vrml Download and Installation page.

Any other public domain C++ DIS distributions can be publicly distributed via the dis-java-vrml site, if they are openly released under the terms of the GNU General Public License.

30 July 2000 (official NPS disclaimer)
URL: www.web3D.org/WorkingGroups/vrtp/dis-java-vrml/workList.html
feedback: brutzman@nps.navy.mil & mcgredo@cs.nps.navy.mil