========================================================================== ReleaseNotes.txt dis-java-vrml distribution April 14 2002 ========================================================================== Online dis-java-vrml release notes: http://www.web3D.org/WorkingGroups/vrtp/dis-java-vrml/ReleaseNotes.txt Interim dis-java-vrml release notes: http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/ReleaseNotes.txt ========================================================================== Summary of DIS, Java and VRML: The IEEE Distributed Interactive Simulation (DIS) Protocol is used to communicate state information (such as position, orientation, velocities and accelerations) among multiple entities participating in a shared network environment. Java is a portable networked programming language that can interoperate on any computer that includes a Web three-dimensional (3D) graphics across the Internet, and can be used to compose sophisticated 3D virtual environments. The DIS-Java-VRML Working Group is developing a free software library, written in Java and interoperable with both DIS and VRML. ========================================================================== For full details and a current release of this distribution, see http://www.web3D.org/WorkingGroups/vrtp/dis-java-vrml For interim releases of the dis-java-vrml software distribution, see http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/download.html ========================================================================== This software is protected under the terms of the GNU General Public License at http://www.gnu.org/copyleft/gpl.html This distribution is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. These programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Official NPS disclaimer: http://www.nps.navy.mil/disclaimer ========================================================================== ========================================================================== Progress, changes and bug fixes in the current release: a) Tested satisfactorily using jdk1.3.1_02 and jdk1.3.1_03. Warning: doesn't work with jdk1.4 or if multiple JDK's are installed. Warning: ensure the right Java Plugin is installed for HTML applets. b) Tested satisfactorily using Nexternet's Pivoron browser http://www.nexternet.com Netscape 4.79 (but not Netscape 6.2 due in installation problems). Significant performance improvement shown on all scenes. A few new browser bugs are now being diagnosed and reported. Thanks to the Pivoron team for a great job! c) X3D-Edit updated to match changes in these release notes. Note that default X3D filename extension is now .x3d instead of .xml. http://www.web3D.org/TaskGroups/x3d/translation/README.X3D-Edit.html X3D-Edit has 3 XSLT launch buttons: Internet Explorer VRML, Netscape 4.79 VRML and pretty-print HTML. Use the middle button to view DIS-capable scenes. Only one DIS scene can be loaded at a time, kill Netscape completely before reloading a new one. d) EspduTransform now has parameter networkMode [standAlone | networkReader | networkWriter] (default networkReader) to explicitly control whether the PDU is either in standalone local-scene operation, is receiving PDUs, or else is sending PDUs. Allowed networkMode values (1) standAlone: ignore network but still respond to local events (2) networkReader: listen to network as copy of remote entity (3) networkWriter: output to network as master entity at writeInterval Default value networkMode="networkReader" for legacy compatibility. May set default value networkMode="local" to ensure that DIS network activation within a scene as networkMode master (PDU writer) or remote (PDU reader) is intentional. Following boolean eventOuts report status changes to scene: - isStandAlone: Whether networkMode="standAlone" - isNetworkReader: Whether networkMode="networkReader" - isNetworkWriter: Whether networkMode="networkWriter" readInterval/writeInterval (seconds) are still used but no longer control network mode. The networkMode parameter will likely be added to signal PDUs as well. eventIn parameter setNetworkMode is also planned once this capability exists in code. To modify existing VRML scenes, add the following entries to the EspduTransform EXTERNPROTO declaration: field SFString networkMode # "standAlone" | "networkReader" | "networkWriter" eventOut SFBool isStandAlone eventOut SFBool isNetworkReader eventOut SFBool isNetworkWriter Default value will be "standAlone" meaning no reading/writing via the network. Add the following line to modify EspduTransform instances as appropriate, using string-value "networkReader" or "networkWriter": networkMode "networkReader" # "standAlone" | "networkReader" | "networkWriter" X3D scenes are easily edited to match these changes using X3D-Edit. No header insertions or modifications are needed for X3D scenes. e) EspduTransform traceSize renamed to traceFontSize, accessType changed from exposedField to field, and type is changed from Vector3Float to Float. This requires changes to any EXTERNPROTO declarations in previously existing content, as follows: exposedField SFVec3f traceSize # VRML text scale to field SFFloat traceFontSize # VRML text scale ========================================================================== Progress, changes and bug fixes in the July 27 2001 release: a) Tested satisfactorily using Netscape 4.79. ========================================================================== Progress, changes and bug fixes in the June 19 2001 release: a) Added Windows installation executable DisJavaVrmlInstaller.exe on the download page. Icons moved to a menu under Program Files, CLASSPATH should get modified OK. Success and bug reports welcome. Thanks to Jonathan Roberts (jtls@rolands.com) of Rolands & Associates (http://www.rolands.com) for building and testing the installer. Current DJV release is included on the Extensible 3D (X3D ) Graphics Software Development Kit (SDK) CDs, on Volume I under Source. We'll distribute around 5000 copies of this 2-CD set at SIGGRAPH. http://sdk.Web3D.org b) Upcoming tutorial: DIS-Java-VRML will be covered during the morning session of our annual SIGGRAPH course on Internetworked 3D Graphics. *** Course 26: Internetworked 3D Computer Graphics: Overcoming Bottlenecks, Supporting Collaboration, and Stepping up to Wireless Connectivity. Theresa-Marie Rhyne (North Carolina State University), Robert Barton (Fraunhofer Center for Research in Computer Graphics), Don Brutzman (Naval Postgraduate School), Grantley Day (Electronic Arts Inc.), Michael Macedonia (STRICOM, U.S. Army) Monday August 13, 8:30 am - 5 pm, Los Angeles Convention Center. http://helios.siggraph.org/s2001/conference/courses/crs26.html http://www.crcg.edu/events/events.php3 c) Upcoming presentations: we will demonstrate numerous DJV applications during the MOVES Open House, August 28-30 2001, NPS Monterey California. Some seats are still available, preregistration is required. http://MovesInstitute.org/OpenHouse.html Of particular interest are the numerous vehicle models and an amphibious raid scenario being networked using DJV. Please see SAVAGE project for the model repository. SAVAGE stands for Scenario Authoring and Visualization for Advanced Graphical Environments, and is funded by the Defense Modeling and Simulation Office (DMSO) in support of the U.S. Marine Corps (USMC). http://web.nps.navy.mil/~brutzman/Savage/toc.html and (watch out to keep long URL together) http://web.nps.navy.mil/~brutzman/Savage/Scenarios/CampPendletonCalifornia/NpsRedBeachRaidScenario2001May2.html d) DJV tested satisfactorily under JDK 1.3.1 production release http://java.sun.com/products/jdk/1.3.1 http://java.sun.com/j2se/1.3.1/relnotes.html Note that the Java jdk default installation directory changes from c:\jdk1.3 to c:\jdk1.3.1 so you may want to deinstall Java first before reinstalling. Other packages such as Java Media Framework (JMF) or Java3D may require re-installation. Note that the JDK documentation is also updated http://java.sun.com/j2se/1.3.1/docs.html e) Initial test under jdk1.4 beta failed: not able to send multicast. Message: "Object called back to threw an exception." Other applications (such as X3D-Edit) run OK. Investigating. f) Tested satisfactorily using Netscape 4.77 http://home.netscape.com/download g) Restored missing linear-acceleration terms in dead-reckoning and smoothing calculations performed by mil.navy.nps.dis.EspduTransform. g) Relaxed exceptions to warnings when casting to simple-type int, in mil.navy.nps.util.UnsignedInt and mil.navy.nps.util.UnsignedLong. These methods are needed when mapping some of the TransmitterPdu and other RadioCommunicationsFamilyPdu types to VRML SFInt32. This has cleared up undesirable Script-node run-time exceptions in mil.navy.nps.dis.RadioCommunicationsPduScriptNode. ========================================================================== Progress, changes and bug fixes in the January 22 2000 release: a) Trace messages disabled for DatagramStreamBuffer exceptions while troubleshooting. ========================================================================== Progress, changes and bug fixes in the official December 28 2000 release: First note. We have experimented with a wide range of improvements and programmatic changes this year. As a result, the interim test releases of this software were quite different from the official release. Huge numbers of changes are now successfully integrated. We're finally upgrading the official release to match the latest code. We expect resume monthly updates of the official release, matching ongoing improvements the interim releases. Second note. This is a pretty sizable software distribution: 16MB. There are a bunch of installation steps necessary, and this software only runs if you have a direct network connection (such as Ethernet). So the DIS-Java-VRML project remains targeted towards developers and researchers. We continue our efforts to automate installation and make the streaming behaviors work independently of network connectivity. These efforts are part of our larger strategy (with X3D and vrtp) to make internetworked 3D graphics worlds easy and ubiquitous. Plenty of work remains. Project collaboration is always of interest. We are especially grateful for collaboration with students and faculty at George Mason University (GMU) Netlab in Fairfax Virginia. http://netlab.gmu.edu Lots of improvement reports now follow, 2000 has been a productive year. Comments are welcome. Enjoy! a) Configuration change: ensure that your system CLASSPATH includes: c:/vrtp/dis-java-vrml.jar; either for System (Administrator) or yourself. The earlier CLASSPATH entries c:\vrtp and dis-java-vrml-Signed.jar are no longer valid and can prevent proper operation. There's now a dummy .jar file included to overwrite previous versions of the dis-java-vrml-Signed.jar version. This change has improved portability of the distribution to allow installation on other logical drives besides the C: drive. Thanks to Jane Wu of Rolands & Associates for assistance debugging this. Further details on setting CLASSPATH are found on the download page: http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/download.html b) Installation on alternate drives beside C: is now possible, thanks to this revised CLASSPATH approach. Tested on drive D: satisfactorily. Update CLASSPATH variable and desktop shortcuts to match your drive. Autoinstall to arbitrary locations using InstallShield is being tested and will be released when ready. c) Tested satisfactorily using Netscape 4.74, 4.75, 4.76. Using 4.76. Netscape updates available at http://www.netscape.com/download Netscape 6 is still in early release and not sufficiently stable. We continue to use CosmoPlayer since no other browser companies properly support standards-compliant Java + VRML functionality. Internet Explorer is not yet compatible due to a completely different security model for signing applets to gain network access. NPS is purchasing Verisign certificate-signing software since all of the open noncommercial applet signing methods have tested and do not work together. d) The X3D-Edit authoring/editing tool for Extensible 3D (X3D) Graphics now supports native XML tags for DIS-Java-VRML: EspduTransform (which also includes CollisionPdu, DetonationPdu and FirePdu) plus RadioCommunicationsFamily: ReceiverPdu, SignalPdu and TransmitterPdu. Automatically translates X3D back to standard VRML 97 code. Includes strong checking of node relationships, eliminating most authoring errors. Freeware. X3D-Edit also supports Humanoid Animation 1.1 and GeoVRML standards. It is pretty cool to edit a scene and launch the translation, then watch it connect to the networked game and show live updates. X3D-Edit development is performed at NPS so comments are most welcome. http://www.web3d.org/TaskGroups/x3d/translation/README.X3D-Edit.html e) Agents agents agents! For details, please see the Software Reference page under the helicopter package. A full report at c:/vrtp/demo/helicopter/AgentsCaptureTheFlag.pdf tells how Kim Roddy and Mike Dickson created roboHelo and roboTank, playing either offense or defense. These are now "team play" agents that are coordinated via agent negotiations inside the Referee. Another package has been added to support this functionality, mil.navy.nps.relate, and rules are instantiated in demo.helicopter. Even though we have only given them a 60 knot speed capability, compared to 120 knot speed capability available to human controllers, the agents are very tough to beat. Stand by for action! f) Capture the flag: added narrow viewpoint for CAVE use and reordered others. Also added a box on the terrain when entities are seen from distant viewpoints, in order that entity "ground position" is evident. Fixed the startup bug that had let FirePdu's kill panels and Referee while they listen during startup. Adding the Fort Irwin antenna world. Pushed all inactive players down 50000m so that buggy software drivers for 3D-acceleration hardware don't mistakenly draw trace text. Made default visual trace TRUE because agent-driven entities tend to drive so quickly that it is hard to manually turn their tracing on. g) Human team control and aggregation/disaggregation: Tom Miller has added control panels and VRML/X3D scenes for H-Anim humanoids. Includes group aggregation/de-aggregation and squad behaviors. His thesis work shows how to control humanoids across the network, either singly (RedNancy) or in coordinated groups (Blue team). Individual and group control panels also provided. Group behaviors include transition between a variety of actual Army squad formations. Capstone behavior is team alignment and entry into a helicopter, then flying around in relative coordinates inside the helicopter, then coordinated dismounting, then the ability to individually shift back to independent world coordinates again. Thus precise positioning is possible to avoid "popping" when attached to vehicles. Included in Capture the Flag as part of the demo.helicopter package. h) Radio signal visualization: Dave Laflam has added DIS PDUs for RadioCommunicationsFamily, RadioCommunicationsObserver, ModulationType, ReceiverPdu, SignalPdu and TransmitterPdu. His thesis work shows how to use DIS-Java-VRML for radio signals visualization. The Antenna Control Panel can read/write antenna positioning data files used by Network Planning Terminal (NPT) software. Added X3D/VRML RadioCommunicationsPrototypes.xml/.wrl, scenes AntennaSceneFortIrwin.xml, AntennaSceneFortIrwin.wrl and RadioCommunicationsObserver.xml/.wrl exemplar. Included in Capture the Flag as part of the demo.helicopter package. XML/X3D versions of signal visualization scenes testing satisfactory. All prototypes are handled by RadioCommunicationPduScriptNode.java ReceiverPdu.java SignalPdu.java TransmitterPdu.java in the mil.navy.nps.dis package. i) Added mil.navy.nps.UnsignedLong to support ModulationTypeRecord. This has 63-bit support vice DIS-mandated 64-bit support. A downstream possibility is using java.math.BigInteger as a better way to get that last little bit. j) After many months of effort, PduPlayer is working well. This multithreaded application is like a VCR for recording/playing PDUs. We finally localized a bad bug: it had trouble with the various other PDU types besides ESPDU. David Holland of GMU has fixed a bunch of problems and revised the logger package so that output streams are encoded/decoded properly by using BehaviorStreamBuffer. Don McGregor then took everything to the next level by implementing similar BehaviorStreamBuffer classes for file reading/writing as well as TCP streaming. He is working on PDU recording edit capabilities. Past recordings are no longer compatible, unfortunately. New sample recordings are being recorded and included. This will help us keep statistics, run 24x7 exercises, and improve control panel efficiency. Powerful and exciting capabilities! Initial session recordings for PduPlayer are available in C:\vrtp\demo\pduRecordings\ AgentEagleCaptureFlag.pdu EagleShrikeFireDetonateCollisionOtherPduTest.pdu ShrikeVersusShredder.pdu k) EntityDispatcher now implements the Singleton pattern. This ensures that only one instance of EntityDispatcher class exists per session. Instance creation is via the ".getEntityDispatcher()" method, rather than the more typical "new EntityDispatcher()" constructor. Current singleton implementation is limited to a single multicast group, tho. Details and streaming-class-hierarchy diagram appear in Javadoc at http://web.nps.navy.mil/~brutzman/vrtp/javadoc/dis-java-vrml/mil/navy/nps/dis/EntityDispatcher.html l) Early hand-authored class dis.PduTypeEnum is no longer available, use autogenerated disEnumerations.PduTypeField (note capitalization) for enumeration values instead. m) Renamed abstract class mil.nps.navy.dis.SimulationManagementPdu.java for consistency to mil.nps.navy.dis.SimulationManagementFamily.java n) Tutorials and public demos performed this past summer: SIGGRAPH 2000: Integrating Networking and 3D Graphics, New Orleans Louisiana, July 25 2000 DS-RT Symposium: Fourth IEEE International Workshop on Distributed Simulation and Real Time Applications San Francisco California, August 24-26 http://www.cs.unt.edu/~boukerch/DS-RT2000 NPS Modeling, Virtual Environment and Simulation (MOVES) Open House Monterey California, August 30-31 2000 http://www.npsnet.org/~moves/OpenHouse/OpenHouseAgenda.html o) NPS Masters Theses using the current version of DIS-Java-VRML: AUTOMATICALLY GENERATING A DISTRIBUTED 3D BATTLESPACE USING USMTF AND XML-MTFAIR TASKING ORDER, EXTENSIBLE MARKUP LANGUAGE (XML) AND VIRTUAL REALITY MODELING LANGUAGE (VRML) by Mark W. Murray and Jason M. Quigley, June 2000. http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/archive/ DisJavaVrml-AirTaskingOrderThesis-MurrayQuigleyJune2000.pdf INTEGRATING REALISTIC HUMAN GROUP BEHAVIORS INTO A NETWORKED 3D VIRTUAL ENVIRONMENT by Thomas Erik Miller, September 2000. http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/archive/ DisJavaVrml-HumanoidTeamsThesis-MillerSeptember2000.pdf.gz DisJavaVrml-HumanoidTeamsBrief-MillerSeptember2000.ppt 3D VISUALIZATION OF THEATER-LEVEL RADIO COMMUNICATIONS USING A NETWORKED VIRTUAL ENVIRONMENT by David W. Laflam, September 2000. http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/archive/ DisJavaVrml-SignalsVisualizationThesis-LaflamSeptember2000.pdf.gz p) BehaviorStreamBuffer is now an abstract class, meaning it can't be instantiated. Instead use BehaviorStreamBufferUDP, BehaviorStreamBufferTCP or BehaviorStreamBufferFile. This consistent interface across a variety of stream types is a powerful improvement - great work by Don McGregor. See mil.navy.nps.dis package javadoc for details. Future examples will exercise TCP and File functionality. q) Future work: - InstallShield for Java to provide automatic installation & setup - Verisign signatures on applets to simplify security permissions and gain compatibility with Windows Internet Explorer - Addition of more vehicle types. Model contributions welcome. - Receipt of CreateEntity PDU provoking retrieval of geometry via URL and automatic instantiation into an active virtual world - Integration with Xj3D, the Java3D-based open-source VRML/X3D browser, so that applets can automatically load and run without prior DIS-Java-VRML installation on a host machine. - GeoVRML 1.0 georeferenced terrain integrated with DJV team-play cooperating agents, radio signal visualization, run-time choice of UDP unicast/UDP multicast/TCP/file recording, and even aggregated multiple human control, all in one big happy world... ========================================================================== Progress, changes and bug fixes in the 9 July 2000 release: a) Tested under JDK 1.3.0 production release. http://java.sun.com/products/jdk/1.3 b) Development (Makefile etc.) tested using latest version of Cygnus gnutools under windows. http://sources.redhat.com/cygwin c) Improved launching and playing of PduPlayer, via batch and shell scripts. See icon/link on Examples page and desktop. Recordings are kept in the /vrtp/demo/pduRecordings subdirectory. PduPlayer (or possibly Referee) still has a go-to-zero bug, where recording appends a bunch of PDUs with zero values at the end of a playback, but only after capturing & returning the flag. Otherwise everything appears to work OK. defaultPduRecording.pdu (same as EagleCapturesFlag.pdu) shows helo Eagle capturing and returning the Blue flag. d) Improved timing and time synchronizationWorking of Referee and HeloActionInterpreter. c) Ensure you do NOT have dis-java-vrml-Signed.jar in your classpath or in your vrtp/ directory, since that no longer works in Netscape 4.73. Digital signatures in the jar files are not currently supported. Correct entry is CLASSPATH .;c:\vrtp;c:\geovrml\geovrml.jar; f) Adding georeferencing via GeoVRML to Fort Irwin. Other goodies in the works for SIGGRAPH. Tutorial course Monday July 24 2000, Course 28, New Orleans Louisiana. http://www.siggraph.org/s2000/conference/courses/crs28.html g) 'make stubs' for building the VRML 97 stub classes/interfaces now hides/unhides the Java3D and Xj3D classes so that everything again compiles satisfactorily. ========================================================================== Progress, changes and bug fixes in the 12 May 2000: a) Tested satisfactorily under Windows 2000, Windows NT and Windows 98. Tested satisfactorily using Netscape 4.73. Tested under JDK 1.3 release candidate 2 (build 1.3.0rc2-Y). b) Verify your local install follows the recommended PATH/CLASSPATH settings (details in download.html installation instructions). Summary: CLASSPATH .;c:\vrtp; PATH .;c:\jdk1.3\bin; c) Security signing of applets did not survive transition to Netscape 4.72+, but everything else works fine. So signed applets are again disabled in this release. It is possible that only commercially based signing of applets will work reliably. However a promising new book under review addresses these issues: _Java 2 Network Security_ by Marco Pistoia, Duane F. Reller, Deepak Gupta, Milind Nagnur and Ashok K. Ramani, IBM, Prentice Hall, Upper Saddle River New Jersey, 2000. http://www.redbooks.ibm.com/redbooks d) Andy Kimsey successfully linked and used DJV in a Java3D application. Not too surprising, since Java is Java! However we decided not to include this application in the build because it is extremely large (Hermann Hall walkthrough). e) Tom Miller diagnosed that Inlined/duplicated sound nodes are causing a huge number of threads in the Capture the Flag scene. He restructured the scene and we've optimized sound a great deal. Threads went from 430 to 130 - it appears that Sound node and other internal threads in CosmoPlayer cause this heavy thread use, not DIS-Java-VRML. We made a number of other enhancements to Capture the Flag sound and lights, so it runs faster now. f) Olivier Doucy SIREHNA has successfully integrated Matlab with DJV. We are working on testing and usage documentation in a separate distribution. g) Our multicast relay server devo.stl.nps.navy.mil is down for hardware repairs. Interim versions of of DJV and AUV distributions are now available at http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml.zip http://web.nps.navy.mil/~brutzman/vrtp/dis-java-vrml.tar.gz Local NPS availability of DJV and AUV distributions also includes \\troy\public\uw3303\dis-java-vrml.zip and \\troy\public\uw3303\auv-uvw-pc.zip ========================================================================== Progress, changes and bug fixes in the 7 February 2000 release: a) Added digital signature of classes in dis-java-vrml-Signed.jar Significant configuration change for all users, change CLASSPATH to CLASSPATH=c:/vrtp/dis-java-vrml-Signed.jar;%CLASSPATH% This is a significant usability improvement - if you click 'remember' when acknowledging the security certificates for vrtp/dis-java-vrml, you no longer need to acknowledge these certificates during each run. See vrtp/images/vrtpTestCertificateAuthorization.png and vrtp/images/vrtpTestCertificateNicknameDialogBox.png to read authentication values and see what this looks like - hopefully the last time for a long time! Many thanks to Marlon Smith, who helped Don Brutzman and Don McGregor finally get this working under Netscape - it has been a long time coming! We will revisit and retry CAB signing for Internet Explorer soon. We are using temporary certificates (created using Netscape's signtool v1.3) which will be replaced every three months. b) PDU timestamp is now provided as an eventOut by EspduTransformPROTO. This affected all of the EspduTransformPROTO EXTERNPROTO definitions in the various VRML scenes. c) David Holland of George Mason University made numerous improvements in the PduPlayer record/playback code. - The record thread transitions from splice to append if the end of the tape is crossed - PduPlayer reports the number of Pdus loaded into memory when a file is opened - Users can switch on or off the ability to send streams of Pdus out during rewind and fast forward operations. This is useful if you want to back up to a previous point in the tape while continuing to fly - The streaming playback inverts the linear velocity vectors when playing in reverse, in order to allow for a smoother animation - The user has the option of clearing the pdus in memory without having to open a new file - The default file appears to save and load ok - The user's guide has been corrected and updated to reflect these improvements, and the version number has been upped to 2.0. ========================================================================== Progress, changes and bug fixes in the 17 December 1999 release: a) Upgraded to Cygnus tools B20.1 with no problems. b) Tom Miller added a humanoid compliant with the H-Anim specification, Cindy Ballreich's 'Nancy' model. This is great! Currently we can drive her around, as her speed increases she transitions from STAND to WALK to RUN behaviors. Interpolators remain with the h-anim figure and don't go over the network. Details on the H-Anim 1.1 Specification at http://ece.uwaterloo.ca/~h-anim c) Ivan Chang produced a DIS-HLA assessment that looks at the feasibility of building a DIS-HLA bridge compatible with this codebase. Slideset available in the dis-java-vrml/archives directory at http://devo.stl.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/archive/DIS-HLA-AssessmentIvanChangDecember1999.html d) Updated PlayCaptureTheFlag batch files & launch icon (currently the PlayCaptureTheFlag and Referee Restart icons land on WinNT desktop). Ivan Chang made numerous of startup and reliability improvements, preventing multiple copies of Referee or any of the players. For example, blue and red team selection panels first listen to who is already playing, eliminating duplicate players with same entity. He also eliminated the double-click nuisances. Most of these enhancements are in response to the following usability references. e) New references in archive: startup & playability usage analyses on Capture The Flag, by students in Rudy Darken's September 99 course CS4203 INTERACTIVE COMPUTATION SYSTEMS. These reports have lots of quantitative data and qualitative assessments on what works well and what doesn't. There are about a jillion interface improvement suggestions here - lots of good projects! http://www.web3D.org/WorkingGroups/vrtp/dis-java-vrml/archive/ http://devo.stl.nps.navy.mil/~brutzman/vrtp/dis-java-vrml/archive/ C24203StartupAnalysisCaptureTheFlagSeptember1999.pdf (2.5 MB) C24203UsabilityAnalysisCaptureTheFlagSeptember1999.pdf (900 KB) CS4203 course catalog description: This course studies principles of human-computer interaction (HCI). The design of an interactive system is much different than that of a conventional, non-interactive one. An understanding of the users of the system and how best to design for their needs is of vital importance to the success of an application. In addition, an understanding of implementation issues and constraints is equally important. All interactive systems have constructional as well as behavioral components. The primary focus of the course is on a design project that takes students through an entire interactive design process; from problem statement and requirements definition through prototyping and implementation, evaluation, and field testing. Course material will survey the field of HCI including interaction techniques and styles, design methodologies, evaluation techniques, software development, and input/output devices. Students will learn how to approach problems from the user’s point of view, how to study usability issues, and how to incorporate the strengths and limitations of people into the design of interactive systems. f) David Holland of George Mason University (GMU) continues making improvements to the PduPlayer code & manuals in the logger package. Dale Bigham NPS is working on an alternative version, splitting the PduPlayer into a client interface and server recorder/player, using Java Remote Method Invocation (RMI) to communicate between them.. g) Ambiguous setRunDone(boolean) method in BehaviorStreamBuffer renamed to shutdown (), permitting proper thread termination. Don't forget to call this if your application which uses a BehaviorStreamBuffer is ever shutting down to relaunch another reader process. h) Some tweaks made to EspduTransform and PhoenixPROTO to support ArticulatedParameters properly. APs from 0 to 14 are now available to VRML scenes. More can be added when used solely with Java. i) Corrected/renamed MESSAGE PDU to COMMENT PDU in disEnumerations. Ivan Chang added CreateEntity, Comment (for geometry URL) & RemoveEntity to HeloActionInterpreter, TankActionInterpreter and Referee. j) Good entry-level student projects: improving the Javadoc to match DIS specification guidance, and also to link enumeration values. So far we are just buffing up documentation for the basic PDUs. Thanks to Ivan Chang, Tom Miller, Christian Taranti, & Dave Laflam. k) Numerous helicopter control panel enhancements made (by banging on the AWT code) with Dave Laflam and Tom Miller. Start it up! l) Dave Laflam is adding networked radio antennas, initial version is included. ========================================================================== Progress, changes and bug fixes in the 12 October 1999 release: a) Upgraded to (as yet unadvertised) Java JDK 1.3 beta with no problems. http://java.sun.com/products/jdk/1.3 Upgraded to Netscape Communicator 4.7 with no problems. b) David Holland of George Mason University streamlined and improved Millie Ives' PduPlayer in the logger package, providing a panel application for PDU recording and playback via user-defined PDU logfiles. Great job David! c) Several fixes have been made to demo.helicopter.Referee for the Capture the Flag game. d) Improved the high-above-airfield viewpoint using Leonard Daly's Viewpoint discovery/debugging in VRML Console window. http://www.realism.com/vrml/example.html#Viewpoints http://www.realism.com/vrml/Example/WhereAmI/WhereAmI_Proto.wrl This is a playability enhancement. Viewpoint, PROTO and instructions can be found in vrtp/demos/helicopter/CaptureTheFlag.wrl e) Added optional Real-time Transport Protocol (RTP) headers to DIS PDUs, using Francisco Afonso's RtpHeader class in conjunction with ProtocolDataUnit. Strictly speaking, this changes the over-the-wire format of the PDUs and makes them non-compliant with DIS. Nevertheless it makes them more router friendly and this is an important step in our ongoing evolution of behavior packets. RTP status can be accessed from VRML scenes via the RtpHeaderExpected field & the RtpHeaderHeard eventOut. Downstream steps include data collection using Francisco's application vrtp.org.web3d.rtp.rtpMonitor, and (maybe someday) an RTP RFC proposal. Client code is able to automatically determine whether RTP headers are present (and remove them). Thus the VRML hint field RtpHeaderExpected may get dropped, since its use appears to have little functional value. The rest of the rtpMonitor work is a separate vrtp distribution: http://www.web3d.org/WorkingGroups/vrtp http://www.web3d.org/WorkingGroups/vrtp/rtpMonitor http://devo.stl.nps.navy.mil/~brutzman/vrtp/rtpMonitor http://www.web3d.org/WorkingGroups/vrtp/rtpMonitor/manual.html http://www.web3d.org/WorkingGroups/vrtp/rtpMonitor/AfonsoRtpMonitorThesisPresentation f) Ambient sound for helicopters is now audible from most helo-relative viewpoints. What do people think? Is this more fun to play with sound all the time, or does it bog down performance unacceptably? To modify this, just reduce the values in the minFront..maxBack fields as follows: /vrtp/demo/helicopter/helicopter.wrl Sound { minFront 20.0 # modify these front & back values to 3.0 (meters) maxFront 30.0 # for cockpit-only ambient sound minBack 20.0 maxBack 30.0 g) Shutdown () methods of threads are much better behaved, everything should shut down satisfactorily when leaving the scene page. Restarting a scene may require fully killing & restarting the browser. h) Security: this code finally gets past all multicast-related security exceptions and runs inside Internet Explorer. This has been a monstrously large and important piece of work. Some major problems & caveats remain, unfortunately. Most of this writeup can be ignored, unless you are interested in descending into the morass of dissimilar Netscape/Microsoft/Sun security models with us. The worst problem is that CosmoPlayer soon crashes without a trace, even once running and receiving PDUs inside InternetExplorer. But at least it does run. Likely failure is buggy CosmoPlayer, or possibly a synchronization/deadlock problem in the dis-java-vrml code that isn't triggered under Netscape. Don Mcgregor's security code has been rewritten for cross-platform access. 2D AWT control panels now can read/write multicast packets inside both Netscape and Internet Explorer (IE). The command-line applications also all work, using Microsofts "jview" command-line JVM (instead of "java"). This is all good progress. A final fix for Microsoft-specific security exceptions (thrown on EspduTransform for insufficient threading permissions) is to digitally sign the applet code in a dis.cab file (similar to a jar file). Related change to enable use of cross-platform security: org.web3d.vrtp.net.DatagramStreamBuffer has replaced mil.navy.nps.util.DatagramStreamBuffer Added org.web3d.vrtp.net and org.web3d.vrtp.security to javadoc and distribution. Recent Java console trace text detailing the security exception output from runnig EspduTransformEXAMPLE.wrl in IE is kept in /vrtp/dis-java-vrml/latest-IE-crash-console.txt /vrtp/dis-java-vrml/latest-Netscape-crash-console.txt For the moment, these run cleanly. For details on security issues and compiling see the following two files in the dial-a-behavior protocol (dabp) directory: /vrtp/dabp/security.html /vrtp/dabp/compiling.html Setting up IE 5: Check Tools->Internet Options->Security->Local Intranet. Click on the "Custom Level", scroll down to Java, and click on low security. Developer debugging notes: - this is extremely involved work being actively pursued by Don Brutzman & Don McGregor, talk with them if you're serious about working on this - must turn on initialization of trace variable DEBUG = true; in /vrtp/mil/navy/nps/dis/EspduTransform.java /vrtp/mil/navy/nps/dis/BehaviorStreamBuffer.java /vrtp/mil/navy/nps/dis/EntityDispatcher.java /org/web3d/vrtp/net/DatagramStreamBuffer.java /org/web3d/vrtp/security/SecurityStrategy.java /org/web3d/vrtp/security/MicrosoftSecurityStrategy.java - when monitoring the IE Java Console, have it opened to full screen first or IE tends to crash (apparently bogs down with lots of text) - have active PDUS available when starting up (usually by running java demo.auv.AuvPduGenerator) to avoid the tunnel-setup code - stopping the PDU stream ends tracing, making it easier to view console text once a full startup cycle is complete - check that any changes still haven't broken regular unbuggy Netscape/CosmoPlayer operation! ... Microsoft Java SDK integration notes... Microsoft SDK 3.2 (and hence Internet Explorer) supports JDK 1.1.4 http://www.microsoft.com/java/sdk/32/ Developers may want to load it in order to support compilation of Microsoft security classes for cross-browser multicast security permissions, but use of the SDK is not required for development of other dis-java-vrml functionality (and ignored via the dabp Makefile if not present). Example PATH addition for SDK utilities (such as jvc compiler): d:\Program Files\Microsoft SDK for Java 3.2\Bin; Microsoft Java SDK references of interest follow. D:\Program Files\Microsoft SDK for Java 3.2\RelNotes\whatsnew.htm which includes links to samples, white papers and documentation. Samples overview D:\Program Files\Microsoft SDK for Java 3.2\Samples\start.htm \Samples\Debugger\java debugger\JavaDebugger.java D:\Program Files\Microsoft SDK for Java 3.2\Samples\Security\sign\security_inifiles.htm D:\Program Files\Microsoft SDK for Java 3.2\Samples\Security\loader\classloader_security.htm with demo.java & SampleLoader.java showing how to read & set class permissions XML Data Source Object Samples as an XML data provider for HTML D:\Program Files\Microsoft SDK for Java 3.2\Samples\Profiler\profiler.htm How to handle events from Java applets using scripting D:\Program Files\Microsoft SDK for Java 3.2\Samples\Scripting\Event\event.htm Other useful security references from Sun (which actually don't say very much at all about how Microsoft scrambles everything inside out): - http://java.sun.com/sfaq/ Frequently Asked Questions - Java Security - http://java.sun.com/security/ Java Security API Code Signing for Java Applets (both Netscape & IE - a great reference!) http://www.suitable.com/Doc_CodeSigning.shtml PRB: SecurityExceptionEx Exception Running a Java Applet http://support.microsoft.com/support/kb/articles/q175/6/22.asp HOWTO: Make Your Java Code Trusted in Internet Explorer http://support.microsoft.com/support/kb/articles/Q193/8/77.ASP More info about signing? Maybe someday. ========================================================================== Progress, changes and bug fixes in the official 8 August 99 release: a) Upgraded to Java JDK 1.2.2 with improved helo/tank panel performance. Upgraded to Netscape Communicator 4.61 with no problems. Also everything still tests satisfactorily in 4.08. b) Lots of usability and performance improvements for Capture the Flag. Fixed 3D text tracing for helicopters & tanks - click the vehicle to enable the trace text. Color coded red and blue for each team. Vehicles stay hidden beneath the surface until driven by a player. Vehicles being traced also show their 'marking' name when viewed from a distance (such as the "Top View of Airfields" viewpoint). Our new team lineups of names and entity numbers: Helicopters Tanks ================== =================== Red 22 Eagle Red 27 Blaster Red 23 Falcon Red 28 Crusher Red 24 Shrike Red 29 Renegade Blue 30 Hawk Blue 35 Shredder Blue 31 Owl Blue 36 Charger Blue 32 Raven Blue 37 Maverick Team tactics definitely improve your chances of scoring. A map for planning tactical exercises is provided demo/helicopter/FortIrwinAirfieldTacticalMap.gif c) Improved performance of control panel load/reload by making the terrain static and only reading once on startup, rather than each time a new vehicle is selected. There is a big improvement in run-time performance also. The ascii terrain file is 736KB of polygon data, so apparently parsing (and maybe management of moderate chunks of memory) is a performance issue. Anyway, it's more flyable! d) Fixed some pitch-angle shooting problems for both helo & tank. Also fixed "double explosions" bug. Bang! e) Added command line switch -timeToLive ### (allowable ttl range 0..127) to demo.helicopter.StartPanel and demo.helicopter.Referee for global games. Default is ttl 15 (local LAN/campus). Successfully seeing sdr session advertisements and PDUs between NPS Monterey California, and Fraunhofer Center for Research in Computer Graphics (CRCG, http://www.crcg.edu) in Providence Rhode Island USA. f) We're conducting global exercises for SIGGRAPH demos at the Los Angeles Convention Center (LACC). Dates: Tuesday-Wednesday-Thursday August 3-5, 10-1100 PDT Monday August 9, 10-1200 PDT during SIGGRAPH tutorial 21 Wednesday August 11, 21-2200 PDT during SIGGRAPH Web3D Roundup If you'd like to play, get the latest interim software release and let your sdr accumulate sessions for at least 15 minutes first. Note that - we will have to coordinate choice of entity numbers before joining - MulticastRelayClient echo problems will break the game for others, so you'll need a direct MBone connection to play g) We recently tried adding an unserialized sendingAddress to ProtocolDataUnit. Unfortunately this is not feasible, because DatagramPacket does not include any address from the sending host, only the address for delivery (unicast or multicast). So all of the nonstandard sendingAddress accessors in ProtocolDataUnit have been removed again. We'll need to find another way to track sending addresses - perhaps SimulationManagement PDUs, perhaps by listening before offering entity selections via the start panels. h) Noted that any sending EspduTransform only actually sends PDUs when the overall VRML window is active. i) We now have the original DIS specification from 1995 in hand. This means we now have a complete set: 1278.1-1995 IEEE DIS Application Protocols 1278.1a-1998 Distributed Interactive Simulation (DIS), 1278.2-1995 DIS Communication Services and Profiles, 1278.3-1996 DIS Exercise Management and Feedback, and 1278.4-1997 DIS Verification Validation and Accreditation Available at http://standards.ieee.org or 1.800.678.IEEE (4333) or http://standards.ieee.org/catalog/design.html#1278.1-1995 We paid a total of $350 for .pdf versions of these five documents. (Minimum needed for serious specmeisters is the first, which ranges from $70-131 depending on IEEE member/nonmember & hardcopy/.pdf). j) Checking MulticastRelayClient and AwtMulticastRelayClient problems, since loopback of PDUs received on a tunnel can cause a routing loop. ========================================================================== Progress, changes and bug fixes in the 10 June 99 release: a) Upgraded to Netscape Communicator 4.6 with no problems. However, the CosmoPlayer 2.1.1 install is stupid about detecting v4.6, so you might want to install CosmoPlayer onto Netscape 4.5 and then upgrade to Netscape Communicator 4.6. b) Now compiling using the Sun's 'hotspot' compiler for Windows. We might have to back off from this once we go cross platform. http://java.sun.com/products/hotspot/ http://java.sun.com/products/hotspot/launch/README.html JavaWorld article on hotspot is available at http://www.javaworld.com/jw-06-1999/jw-06-hotspot.html?052499txt C:\vrtp\dis-java-vrml> java -version java version "1.2.1" HotSpot VM (1.0fcs, mixed mode, build E) c) We have purchased the latest copies of the IEEE DIS specs: 1278.1a-1998 Distributed Interactive Simulation (DIS), 1278.2-1995 DIS Communication Services and Profiles, 1278.3-1996 DIS Exercise Management and Feedback, and 1278.4-1997 DIS Verification Validation and Accreditation Available at http://standards.ieee.org or 1.800.678.IEEE (4333) or http://standards.ieee.org/catalog/design.html#1278.1-1995 We paid a total of $270 for .pdf versions of these four documents. Minimum needed for serious specmeisters is the first, which ranges from $70-131 depending on IEEE member/nonmember and hardcopy/.pdf. d) Updated various demo.helicopter VRML scenes and Java code. We are making the project.wrl demo into a two-team CaptureTheFlag.wrl multiplayer game. The flags are controlled by the Referee. Invocation summary: - CaptureTheFlag.wrl - java demo.helicopter.StartPanel (for each participant on LAN/WAN) - java demo.helicopter.Referee (once per game to control flags) This work has been accomplished by a number of students as part of class projects in a pair of graduate courses this quarter at NPS: Physically Based Modeling, and Modeling & Simulation. We just gave a few successful 10-player demos - well done, folks! We are also planning to submit an entry in the SIGGRAPH 99 Web3D Roundup. See http://www.web3dRoundup.org for submission details. e) Added terrain from Fort Irwin California, prepared from DTED data by CAPT Tim McLean USA using MultiGen. Tanks now can terrain follow by using these same terrain files, implemented by LCDR Marlon Smith USN. They each improved the terrain texture using PhotoShop. See the link to demo/helicopter/FortIrwinMetadata.html for details. f) LT Mithat Aldor of the Turkish Navy added improved collision detection of fired projectiles, as well as the vertical component to shooting and being hit. LT Andy Kimsey USN added object-to-object collision detection. g) CAPT Quay Jones USA has been doing much of the code-integration work. Need to change hit announcements from CollisionPdu to DetonationPdu. Need to add second fired munition type to VRML PROTO so that we can properly differentiate between primary & secondary weapons, e.g. a tank's primary projectile is fired by the main gun and the secondary projectile is fired by the coaxial machine gun. h) Brian Christianson has created improved helicopter & tank control panels using the swing classes instead of awt. Results look & feel great, though performance has been inconsistent across machines tested. More work is continuing. Current default is to use swing versions. Select which variation you want compiled via make helo-awt or make helo-swing which copies & compiles the appropriate versions of ActionInterpreter.java, TankActionInterpreter.java, HeloControlPanel.java & TankControlPanel.java i) New snapshots in /vrtp/dis-java-vrml/images: heloTankFire2.png, heloTankFire3.png, heloTankFire4.png and heloTankFire5.png j) Improved the 3D position/rotation tracing text displayed by EspduTransformPROTO.wrl to limit the number of decimal places. k) Texture appearance can look dramatically different if Best Quality rendering is selected on CosmoPlayer's performance panel. This will also cause significant slowdowns if the machine does not have 3D graphics hardware acceleration. Game-play results on a new ATI-Rage-accelerated Keynote laptop are acceptable. "Most improved" category this month: the new NT-based SGI Visual PCs look fantastique! l) mil.navy.nps.util.DatagramStreamBufferNetscape.java now prints a security announcement at startup to the Java console revealing all of the current browser settings and preferences for Java. We may use this feature if we ever automate trouble reports. You may wish to turn it off. Some example Java VM properties: browser=Netscape Communicator awt.toolkit=sun.awt.windows.WToolkit browser.applet=true file.encoding.pkg=sun.io package.restrict.definition.sun=true java.rmi.loader.packagePrefix.applet=true java.version=1.1.5 browser.version=4.0 java.compiler=jit3240 java.debug.agent=symantec/tools/debug/Agent java.vendor=Netscape Communications Corporation user.timezone=PST user.name=brutzman os.arch=x86 console.bufferlength=32768 os.name=Windows NT user.dir=C:\Program Files\Netscape\Communicato... java.class.path=C:\Program Files\Netscape\Communicato... os.version=4.0 [etc.] m) Another multicast bug discovered in Windows NT: packets are lost on the stack when in standalone mode with DHCP turned on. Bleah. n) Some of the first org.web3d.vrtp classes have been included as part of Don McGregor's herculean effort to get network, file & privilege security permissions resets working equally under Netscape and Internet Explorer. It appears that he is close, but you never know until the last undiscovered browser bug is dead. Stay tuned. ========================================================================== Problems, changes and bug fixes in the 21 April 99 release: a) Upgraded to JDK 1.2.1 (also known as SDK 2) which means that your your default CLASSPATH needs to change to .;C:\vrtp; and your default PATH needs to change to .;C:\jdk1.2.1\bin; Tested in conjunction with Netscape 4.5.1 and CosmoPlayer 2.1.1 b) Changed EntityStatePdu's ArticulationParameter 64-bit payload value from long to double for easier access. Need to provide this value to VRML via EspduTransform, though this means downcasting to a 32-bit SFFloat on the VRML side. EspduTransform now supports 16 ArticulationParameter values. These are implemented as individual eventOuts (rather than an array) for simplified use in VRML scenes. More can be added if anyone needs them, the spec doesn't give a limit other than the unsignedByte which counts them (and presumably the 1500-byte Maximum Transmission Unit MTU convention for packet size). c) Fixed the FirePdu detection (in horizontal plane, within 25m proximity range of targets at nearest approach, in files demo/helicopter/ActionInterpreter.java (for helicopters) and demo/helicopter/TankActionInterpreter.java (for tanks). Intermittent crashes when a FirePdu was heard were finally isolated to the sending of MFVec3f eventOuts directly from Java to geometry inside the PROTO. This bug is avoided by, uhh, not doing that... Instead a munitionStartPoint and munitionEndPoint are provided as individual SFVec3f eventOuts for reconstruction into a MFvec3f via an EcmaScript (i.e. JavaScript) node in EspduTransformPROTO. Yet another case of a very hard-to-isolate Java-related bug in CosmoPlayer. Note that firePdu values are only provided to the firing entity in each VRML scene, rather than all entities, in order to prevent rendering duplication and also sidestep nondeterministic targetting issues. All FirePdus are received by control panels, in order that they might check for their particular entity being shot, in which case they issue a CollisionPdu and change their behavior to complete and rapid dissassembly, i.e. they explode. Still need a DetonationPdu mechanism so that one FirePdu doesn't kill a long line of independent targets. Sounds complicated? Naah, not really. Wait until we upgrade the hit detection algorithm from 2D to 3D, that will sound complicated. d) Fixed longstanding bug that caused readInterval and writeInterval to be rounded off to nearest integer. Their types remain SFTime. Both readInterval and writeInterval now support fractional values. Note that the network read/write code cuts these values in half, in order to ensure that underlying reads/writes occur within those intervals regardless of threading delays. More scrutiny is warranted but performance and responsiveness is much much better. e) The changes in EspduTransformPROTO.wrl mean that any other worlds authored elsewhere need to revise their EXTERNPROTO definitions, to match those shown in /vrtp/mil/navy/nps/dis/EsduTransformEXAMPLE.wrl or /vrtp/demo/helicopter/project.wrl f) Added shutdown methods to ensure that EspduTransform, EntityDispatcher and BehaviorStreamBuffer threads go away in a well-behaved manner. Sometimes the tank & helo control panels are less civilized about dying gracefully - those threads need to be properly shut down. g) Added about 50 autogenerated classes to the DisEnumeration package from the recently augmented JDBE DIS documentation. Lots of standardized constant values! It would be great if someone decides to insert a ton of javadoc links between the dis and disEnumeration packages. h) Added three VRML scenes and two associated scripts (HelloWorld.wrl, ScriptNodeEventOutControl.wrl and ScriptNodeFieldControl.wrl) along with a local copy of the VRML-Java paper in the testing package. These scenes let you check your browswer for proper VRML-Java operation. Available via SoftwareReference.html#testing page. This test shows that the recent CosmoPlayer 2.1 on Irix conclusively fails the Java JSAI scripting tests. Bug reports are being submitted to SGI, since no one is left as CosmoSoftware/PLATINUMtechnology. SGI reports that they've got the ScriptNodeEtc. worlds working, and I've requested that they test dis-java-vmrl also (or let us do it). This is encouraging progress. i) Manuel Oliveira from University College London reports that the mil.navy.nps.bridge.MulticastRelayClient works through the NPS firewall. Good news! Thanks Manuel. j) We have purchased several sound effects CDs from Hollywood Edge at http://www.hollywoodedge.com which are like totally excellent. The electronic versions of these clips can be freely distributed and used with the dis-java-vrml distribution. For further redistribution or other use, please contact info@hollywoodedge.com at Hollywood Edge. k) Worked with Eric Bachmann to produce a 3D gimbals model that shows the relationship between VRML and DIS coordinates, including Euler angle values for entity posture in the DIS coordinate system. /vrtp/demo/gimbals/DisCoordinateSystemGimbals.wrl plus a snapshot at /vrtp/dis-java-vrml/images/DisCoordinateSystemGimbals.png Very handy tool for visualizing postures and angles. Compressed inlined version (produced using Chisel) will be available at http://www.web3D.org/WorkingGroups/vrtp/demo/gimbals/DisCoordinateSystemGimbals.wrz l) Special thanks to Quay Jones, Bill Bohman and Doug Miller for our continuing progress on the project.wrl shoot-em-up demo. More to follow next time! ========================================================================== Problems, changes and bug fixes in the 17 March 99 release: a) Moved dis-java-vrml directories under the vrtp tree, and thus changed CLASSPATH. You need to delete previous dis-java-vrml installations. b) Tested under new bugfix version of Windows CosmoPlayer 2.1.1, available at http://www.cosmosoftware.com and Netscape 4.5.1, available at http://www.netscape.com Testing underway for new CosmoPlayer for SGI's Irix operating system (only works with SGI's version of Netscape 4.07). c) Revamped download.html to include configuration information for developers, detailed PATH/CLASSPATH setup, PC Software Tools and dis-java-vrml distribution installation instructions. d) Manually downloaded all of the DIS Data Dictionary pages from http://SISO.sc.ist.ucf.edu/dis/dis-dd/ which provide detailed descriptions of all the Protocol Data Unit (PDU) types, as well as extensive enumeration values to be used in PDU fields. The data dictionary pages are now available as part of this distribution at file:///C|/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/dis-dd.html http://www.web3D.org/WorkingGroups/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/dis-dd.html or via the original pages at http://SISO.sc.ist.ucf.edu/dis/dis-dd/ e) Fixed various EspduTransform bugs, traces and inefficiencies. Added FirePdu and CollisionPdu. The helo demo is becoming cool. f) Happy Saint Patrick's Day. March the 17th, sleep the 18th! ========================================================================== Problems, changes and bug fixes in the 20 February 99 release: a) Please delete prior dis-java-vrml distributions when installing this build. Local installation remains necessary for proper dis-java-vrml software operation. We are working towards the directory structure specified in http://www.web3d.org/WorkingGroups/vrtp/DirectoryStructure.txt b) Moved website and mailing list archives to http://www.web3d.org/WorkingGroups/dis-java-vrml/ Changed mailing list address to dis-java-vrml@web3d.org Meanwhile http://devo.nps.navy.mil/dis-java-vrml remains as both the primary multicast bridging server and the backup distribution server. This should fix most of our long-standing problems with NPS server availability. c) Please update your mailbox and web browser links for dis-java-vrml! http://www.web3d.org/WorkingGroups/dis-java-vrml/ dis-java-vrml@web3d.org d) Upon moving to the www.web3D.org server, we have 167 subscribers. If you are no longer interested in subscribing to this mailing list, please mail the message body unsubscribe dis-java-vrml to majordomo@web3d.org e) CosmoPlayer 2.1.1 is now available at http://www.cosmosoftware.com You should upgrade your machine. Reportedly available for Mac though no one has tested this code under that architecture. Note that this changes the Makefile variable EAI_CLASSPATH to /Program Files/CosmoSoftware/CosmoPlayer/npcosmop211.zip This only matters if you also set your CLASSPATH environment variable manually for java source compilation. If you already use the recommended CLASSPATH settings, and either avoid recompilation or use the dis-java-vrml Makefile, no changes are necessary for your machine - except for upgrading CosmoPlayer, of course! f) Added default local location and primary/backup http servers to AUV-related URLs. This helps in emailing functional top-level scenes. g) Rearranged subdirectory and package structure in anticipation of integrating this work into the virtual reality transfer protocol (vrtp) software build. - eliminated JavaViaScriptNode: VRML PROTOs moved into /dis package - created top-level /demos tree for the /demos/auv, /demos/helicopter packages in preparation for inclusion in a vrtp distribution - moved all AWT-based bridging code from /awt to /bridge - moved all javadoc to docs/dis-java-vrml/ - long-term directory plan is maintained at http://www.stl.nps.navy.mil/~brutzman/vrtp/DirectoryStructure.txt The next release of dis-java-vrml will likely move the entire tree under shared parent directory vrtp/. Stay tuned. g) mil.navy.nps.dis.EspduTransform.java and EspduTransformPROTO.wrl: added Espdu write capability. Also added collided, active, firedUpon collisionTime and firedTime eventOuts for readers (although functional implementations remain slightly incomplete). Also added FirePdu geometry to draw line of fire, draw munitions in flight, and play back an appropriate sound clip. Diagnosing why sound capability goes silent when many PDUs received. Automating the unicast bridging of multicast connectivity by adding multicastRelayHost and multicastRelayPort. This effort is still under testing. We hope to automate automatic transition to unicast PDU bridging via a multicastRelayServer if no multicast PDUs are heard. Added an important diagnostic to EspduTransform.java: a catch-all exception handler which prints otherwise-unseen run-time exceptions to console. without this diagnostic, processEvent can die silently and get called again by VRML browser, only to die again silently after again partially running! this is a big enhancement to the usual debug technique of figuring out where a million trace statements suddenly go silent. wish we'd thought of this about 400 mystery bugs ago... h) mil.navy.nps.dis.EntityDispatcher: added capability to dispatch Fire and Collision PDUs to EspduTransform for entity use. Also added exception catching. Don McGregor implemented a large amount of code for automatic connection via unicast to multicast relay server if no multicast heard on startup. i) We will have a combined DIS-Java-VRML and virtual reality transfer protocol (vrtp) working groups meeting at the VRML 99 Symposium, Paderborn Germany, Friday February 26 1999, 1400-1530 in Room 4. The vrtp group has been approved as the first Web3D Working Group and is moving to website http://www.web3d.org/WorkingGroups/vrtp/ j) The helicopter demo will be presented at the VRML 99 Web3D Roundup. It is almost done but some important work remains, including - getting helo, tank and bullets pointing in same direction - finishing helo and tank panels - detect Fire PDU hits and then issue Collision PDU - have receipt of Collision PDU cause VRML switch to destroy vehicle ========================================================================== Problems, changes and bug fixes in the 5 January 99 release: a) Compiling under "final final" JDK 1.2 (also known as Java Platform 2) and Netscape Communicator 4.5. Note that installation of the latest build on your hard disk remains a prerequisite for proper operation of the VRML, since VRML can't download or swallow .jar files. b) Commenced global advertisements and ESPDU transmission for the default NPS AUV example. Connectivity confirmation and problem reports are welcome. See the MBone Testing page for more details, and sdr/cache/ for SAP announcement files. Please tell us if you see the sdr advertisement and the PDUs, we need connectivity confirmation! Don McGregor has verified that the outgoing PDUs indeed have global ttl=127 by packet sniffing using tcpdump. For details on that, see www.stl.nps.navy.mil/~mcgredo/projectNotebook/packetSniffing.html c) Changed entity ID defaults for auv beachtank example AuvInBeachTanks.wrl using entityID 1 for the tank 1 default, 2 for tank 2 and 3 for tank 3. d) As part of the CS 4472 Advanced Physically Based Modeling course, Tim McClean has improved the beachtank scene design and efficiency, removed extraneous light, & optimized it using Chisel from http://www.trapezium.com This background scene was produced using the CosmoWorlds authoring tool. Don Brutzman produced the Phoenix AUV underwater robot PROTOs based on geometry adaptations by prior students Martin Whitfield and Kevin Byrne, as part of research funded by the Office of Naval Research (ONR). e) Added Espdu smoothing to EspduTransform.java. This work was done by Scott Heller as part of course CS 3773, Java as a Second Language. Smoothing makes client playback of Espdu's look much better since it interpolates prior and current dead-reckoned position & orientation. He added velocity smoothing too (which is not required by the DIS specification but is a nice enhancement at minimal computational cost). Scott's project writeup appears as SmoothingDesign.pdf and the code appears in the dis package under EspduTransform.java, RunningAverage.java and Timer.java (for properly measuring pdu and frame rates). f) Julian Williams of NPS has improved the MulticastRelayClient and MulticastRelayServer code, making the client & server much more robust at detecting and recovering from lost connections. Unfortunately an error still exists in the MulticastRelayClient applet: it successfully reports retrieving PDUS from the MulticastRelayServer, and then relays the PDUs properly (as evidenced by our ability to create very fast routing loops on the local-area network!). Unfortunately it does not relay such PDUs to other windows on the same machine, which is very frustrating. More line-by-line debugging is necessary, probably by comparing to the successful AwtPduSender applet code. Excellent work, almost complete... His project report is included as dis-java-vrml/mil/navy/nps/bridge/MulticastRelayProject.html f) Millie Ives' logger code has been tested satisfactorily. A little more work is needed to remove the earlier versions, upgrade the Javadoc and tweak links on the documentation pages. See the logger package in the Software Reference. Larry Brachfeld of NPS has done some evaluation of this work and reports positive results. g) Added the initial version of a four helicopter battle game. See the helicopter package in the Software Reference. There is also a pretty cool interface panel to drive the helo. Contributed by Bill Bohman and Doug Miller of NPS. More work is in progress. h) Automated Makefile generation of .zip files using java's jar command. i) Primary dis-java-vrml website at NPS is subject to Navy web policies. Excerpt from Federal Computer Week announcement, December 14 1998 at http://www.fcw.com entitled "DOD provides guidance on Web sites" says "The Defense Department has released its long-awaited policies and procedures document governing the posting of official information on DOD Web sites. The document puts unprecedented discretion in the hands of local commanders and marks a significant departure from past guidance." http://www.fcw.com/pubs/fcw/1998/1207/web-dodweb-12-11-98.html Current DoD web policy is at http://www.defenselink.mil/admin/dod_web_policy_12071998.html Current NPS disclaimer is at http://www.nps.navy.mil/disclaimer/ j) Renumbered our NPS LAN, devo.stl.nps.navy.mil is now 131.120.178.128 Our other server www.stl.nps.navy.mil should be back up soon. k) Added LOD culling to VRML trace text, disappearing at (default) 25 m. To change that, see javaViaScriptNode/EspduTransformPROTO.wrl code. Removal of unneeded 3D text is an important optimization. ========================================================================== Problems, changes and bug fixes in the 2 December 98 release: a) Added new auv package: a variety of test applications, integrating various degrees of physically based modeling with DIS. This provides a new primary example. Ongoing work by this quarter's Advanced Physically Based Modeling course students. b) Using WinNT 4.0 Service Pack 3, Netscape 4.5, Cosmoplayer 2.1. WinNT Service Pack 4 threw Don Brutzman's laptop into a fatal tailspin that required reformatting & complete reload. You might wish to avoid it. Cosmoplayer 2.1 is a fairly old build and is not smart enough to install itself properly into Communicator 4.5. It does work fine if you install it into Communicator 4.08 first, then install 4.5 right on top of that without any deinstallations. c) Several security-related improvements. The Netscape security manager classes are no longer instantiated or called in BehaviorStreamBuffer unless they can be found at runtime. This means that the DIS library can now be linked without modification by standalone applications that are independent of the browser. e) Fixed local javadoc links due to new javadoc file naming convention used in jdk1.2. e) Upgraded to new B20 build of Cygnus Solutions c++/unix gnu tools> These (great!) tools are used for Makefile and a few other tasks. f) Updated the Annotated References links to conform with the new www.ietf.org site organization. g) Under scrutiny: Netscape codebase principals. Currently appears optional. More information available at http://developer1.netscape.com/docs/technote/security/sectn2.html ========================================================================== Problems, changes and bug fixes in the 13 November 98 release: a) A raft of bug fixes. Some long-running synchronization bugs fixed. Better reliability and performance too! You can now open the VRML world from a bookmark or link and see things work, rather than having to go through the file->open rigamarole. The infamous "# Cannot create java object array for the events" error message in Cosmo's VRML Console was apparently triggered by threading/ synchronization conflicts and out-of-range values in the Application ID/Site ID/Entity ID fields. Long may it rest in peace. Tested satisfactorily using CosmoPlayer 2.1 under Netscape 4.08 and 4.5, Windows 98 and Windows NT 4.0 (service pack 4). Compiled and tested successfully using either JDK 1.1.7 and JDK 1.2 rc1 (manually selectable in the Makefile). Backing up, going forward and shift-reloading AWT & VRML pages all seems to work fine without requiring a Communicator restart. b) The EntityDispatcher object (nee SimulationManager) has been modified to implement a publish/subscribe design pattern, from the Gang of Four book. (Observable pattern, pp. 293-299, _Design Patterns_). This is done with two new java interfaces, PduPublisher and PduSubscriber. EntityDispatcher implements PDUPublisher; clients subscribe to it by calling addListener, in a way similar to what the JDK 1.1 event model does. Subscribers must implement the PduSubscriber interface, as EspduTransform now does (which is just a single method, receivePdu ()). This fixed problems using the HashTable to keep track of multiple active EspduTransform Script nodes. c) New features: Java Beans. A few user interface objects have been "beaned." Mostly these objects represent the user interface for getting input about sockets--what port to listen on, multicast or unicast, what multicast address, time to live, etc. The beans are also stand-alone objects that can be inserted into applets with a single line. This should cut down considerably on the code required to write new applets that require this sort of input. EspduSender and PduViewer have been modified to use these new objects. d) The Recursive Ray Acoustics (RRA) sonar algorithm java class library is also placed under the mil.navy.nps package structure. RRA is a library for real-time computation and generation of 3D underwater sonar beams using Java and VRML. Available separately at http://www.stl.nps.navy.mil/~brutzman/rra.html e) Upcoming work (we hope): fix the EAI examples, test and integrate Millie Ives' PDU logger/playback routines, a more interesting AUV example world, and add ESPDU smoothing. ========================================================================== Problems, changes and bug fixes in the 28 October 98 release: a) Upgraded to JDK 1.2 (release candidate 1). Testing in progress. b) Fixed backslash/forwardslash mixups for dis-java-vrml.jar access by the awt/*.html applets. As yet untested, awaiting upgrade of SGI Netscape to 4.5 (since 4.05 Java applets don't work and 4.07 Java applets default to a widgets font and are unreadable). ========================================================================== Problems, changes and bug fixes in the 25 October 98 release: a) Upgraded to Netscape 4.5, which uses jdk1.1.5 and appears compatible with the dis-java-vrml distrubution compilation using jdk1.2beta4. No recompilation of the dis-java-vrml classes was necessary for proper operation, so portability is improving. Nevertheless this build includes some class improvements, so complete file replacement remains recommended (as always). b) Great news: the maddening Netscape/CosmoPlayer change-directory bug is fixed by the Netscape 4.5 upgrade. You can now launch DIS-enabled VRML files (such as EspduTransformEXAMPLE.wrl) via HTML link, VRML link (Anchor node), clicking on the file directly, selecting via Netscape's File Open menu, or drag & drop. c) Netscape 4.5's Java Console is selected via the following menus: Communicator -> Tools -> Java Console. d) EspduTransformEXAMPLE.wrl and EspduTransformPROTO.wrl have been moved back to the javaViaScriptNode directory. In general, pressing Netscape's shift-Reload button reloads classes as well as content, but this doesn't reset EspduTransformEXAMPLE.wrl properly. Apparently we need to add finalize methods, or a 3D icon which provides the user with a finer grain of Java class methods control. ========================================================================== Problems, changes and bug fixes in the 21 October 98 release: a) Upgraded to jdk1.2beta4, which appears compatible with Netscape 4.07. This is questionable (since Netscape uses jdk 1.1.5) but so far seems to be working. Lots of deprecation fixes made on awt .java and .html code. b) awt/PduViewer sockets are now selectable multicast/unicast at runtime. c) awt is now using dis-java-vrml.jar archive file for classes. Still work and testing before VRML examples can also do so. This may eventually mean that prior installation will no longer be needed for use over the web. Currently we recommend installation before use. d) Fixed and consolidated the JSAI example as EspduTransformEXAMPLE.wrl and (unfortunately) placed it in the dis package directory. It is not very movable due to the Netscape/CosmoPlayer change-directory problem. Accompanying PROTO file is EspduTransformPROTO.wrl which is also in the dis package directory. Maddening Netscape/CosmoPlayer change- directory bug remains:you can only launch EspduTransformEXAMPLE.wrl via the File Open menu. e) Security model set up for netscape only. We are no longer going to fuss about trying to make a browser-neutral security solution, since it doesn't work! VRML browsers use their own JVM and can't be overridden by the Java Plugin. f) Javadoc has major improvements throughout, thanks to jdk1.2b4. g) NetworkMonitor is replaced by BehaviorStreamBuffer. Several JDK 1.1 time-to-live (ttl)-related methods are deprecated in JDK 1.2, but the new 1.2 methods are not supported at all in JDK 1.1. The new method (setTimeToLive) is commented out and can be restored when the Netscape browser supports JDK 1.2. We did not change any thread code to avoid problems with browser Java Virtual Machine (JVM) compatibility. h) EntityState and SimulationManager have been replaced by the completely rewritten EntityDispatcher. A major performance improvement was seen by setting EntityDispatcher sleep settings. Since the VRML browser, EntityDispatcher and BehaviorStreamBuffer are all threaded, further tuning (based on readInterval/writeInterval in the VRML scene) will be performed. i) EspduTransform.java combines all the variants from before. Next step is to restore PDU writing from the scene. In general, however, multiple versions of the same VRML scene can be avoided by generating PDU values in a separate process, reading PDUs on local and remote hosts alike. j) You can now turn Java console tracing on/off without recompiling by setting the javaTrace field in the EspduTransform node. Default is javaTrace FALSE. VRML tracing is still triggered by clicking on the entity. k) Extracted the recursive array acoustics (rra) sonar algorithms package into a separate distribution. rra installs into the same directory hierarchy. http://www.stl.nps.navy.mil/dis-java-vrml/rra.html l) Live multicasting of our PDU stream is currently restricted to NPS and will be restored soon. ========================================================================== Problems, changes and bug fixes in the July 30 1998 release: a) Now compiling using JDK 1.2beta4. AWT code no longer works due to new deprecations appearing under JDK1.2beta4. EspduTransform example worlds also have problems. Nevertheless, this broken build was important to get out so that other work can continue. Sorry! We'll keep going... b) Verified that complete installation of dis-java-vrml on your local machine is necessary to run the examples. Apparently there is no way to have a single NetworkMonitor.class pull down the entire dis-java-vrml package behind it via a http connection. This is unlikely to be fixed until next-generation VRML scripting occurs. c) Upgraded to Vorlon 1.2 VRML 97 syntax checker. Available via http://www.trapezium.com d) Added vrml.* Java Script Authoring Interface (JSAI) stubs constructed by Greg Seidman, Brown University/NIST gseidman@acm.org to provide browser-independent vrml.* class access during compilation. http://zing.ncsl.nist.gov/~gseidman/vrml/JSAIstubs.zip Thus we're still fiddling with CLASSPATH, trying to make it all platform independent. Getting closer... thus the guidance in AnnotatedReferences.html#PCSoftwareSetup is being updated too. e) Fixed a major configuration problem: the Makefile fails bitterly if it is not run with --unix on the command line. This is necessary in order to use the CDK /bin/sh.exe shell instead of the Windows command shell. Now documented in the Makefile. You can also set this mode permanently by setting environment variable MAKE_MODE=UNIX. f) Don McGregor will be installing a cross-browser security workaround to enable both Netscape and Internet Explorer to recieve multicast. We had hoped to use the Java Plug-In, but the Intervista browser forces use of the Microsoft Java Virtual Machine (JVM) and the CosmoPlayer browser's future is in doubt. Stay tuned... ========================================================================== Changes and bug fixes in the 31 May 98 release: a) Split documentation directories in order to overcome javadoc bug. ========================================================================== Changes and bug fixes in the 26 May 98 release: a) Renamed many directories to improve javadoc referencing and alphabetization. Please delete your old dis-java-vrml distribution before installing the new dis-java-vrml build. b) NPS MBone connectivity is restored, more or less. Please let us know if you are interested in participating in global tests. c) Added weblint syntax checking of HTML pages, to accompany the already-in-use vorlon syntax checking of VRML pages. d) Verbose compilation mode is now selectable by editing the Makefile. e) Work currently in progress: - Combine read & write functionality into a single EspduTransform - Investigate whether a browser-neutral security fix is possible. The new Java Activator classes run in both Communicator and Internet Explorer as a plug in. However they seem to only work with applets... ========================================================================== Changes and bug fixes in the 15 May 98 release: a) Yes, we're still alive! b) Development environment upgraded to run under JDK 1.1.6 with the Netscape Communicator 4.0.5. Specifically, we've unravelled the CLASSPATH problem. Testing currently performed on Windows NT 4.0. Be sure to read this, development station configuration is different than before. See Annotated References section on PC Software Setup. c) NPS campus connectivity is in transition. We now have DS-3 45 Mbps connectivity via the Defense Research & Engineering Network (DREN), which is in turn linked to the VBNS high-speed Internet backbone, as well as our National Tele-Immersion Initiative (NTII) research partners under the Internet2 framework (http://www.advanced.org). Unfortunately re-fiber-ing of our campus topology has had a major negative impact on our resuming large-scale multicast appliction testing. Our goal: 100 multicast groups with 1 Mbps steady-state aggregate traffic by July 98, for a global demo at SIGGRAPH in Orlando. d) Many additions have been made to the Annotated References. e) Added pointers to public-domain multicast tools for Windows. Audio, video, session directory and whiteboard now work for Windows NT. Again see Annotated References section on PC Software Setup. ========================================================================== Changes and bug fixes in the 15 February 98 release: a) Provided consistent capitalization for mil.navy.nps.Math package. b) Added Netscape JSObject classes to CLASSPATH and updated get/set method invocations: EaiDemoAUV and EaiDemoBoids now compile. Still untested. ========================================================================== Changes and bug fixes in the 9 February 98 release: a) Defaults set to multicast addresses. localBridge no longer needed (yea). Can run AwtMulticastRelayClient in combination with multicast-listening browser on same machine and get connected. (The command-line version of MulticastRelayClient still needs to have its defaults updated.) b) (Awt)MulticastRelayClient can connect to the MulticastRelayServer and successfully brings MBone PDUs (bridged as unicast UDP PDUs) across a PPP modem line. c) New class SimulationManager added to dis package to handle multiple simultaneous entities. d) New generator EspduSender.html and associated classes added to Awt. e) javaViaScriptNode classes are now grouped together in a package. We are working on a single one-size-fits-all version of EspduReadTransform that will include EspduReadTransformTrace functionality. f) SiteId and ApplicationId together are given defaults of dotted decimal IP number of associated host. Hopefully this is a long-term convention. g) miscellaneous dis bug fixes including markings. h) Added a Multicast Backbone (MBone) testing page. NPS MBone connectivity is still unidirectional, unfortunately. ========================================================================== Changes and bug fixes in the 29 January 98 release: a) javaViaScriptNode EspduReadTransformTraceExample.java now works, i.e. we finally have DIS PDUs hitting the VRML scene, either multicast UDP or unicast UDP, tested under Communicator 4.04 + Cosmo 2.0. These are major breakthroughs, a lot of other work and cleanup can now proceed. b) DisEnumerations package complete, thanks to Ronan Fauglas. Enumerations now are primitive types (instead of UnsignedType classes as before) so that they can be used inside switch/case statements. This also allows users to enter actual constant values (e.g. 71) as an alternative to the formal DisEnumerations (e.g. CountryField.FRANCE). c) New util package contains Java routines that are not specific to DIS, including parent/child utilities, UnsignedByte, UnsignedShort, UnsignedInt. To use the util package classes: import mil.navy.nps.util.*; // General-purpose utilities d) Either localBridge/localBridge.bat or MulticastRelayClient can be used to bridge multicast PDUs into the browser. We're now working on incorporating MulticastRelayClient functionality into the DIS package. Our goal: make multicast connectivity transparent to users, regardless of their MBone connectivity. We shall see... ========================================================================== Changes and bug fixes in the 25 January 98 release: a) Don McGregor has found and implemented a workaround to the previously crippling Netscape 4.0x UDP read bug. It seems receiving a UDP packet always threw an exception. Slick workaround: catch the exception and read the same packet again. Voila, data arrives and no further exception thrown. Now that we have restored connectivity, we can work on making access much easier. For now, the Awt PduViewer.html example works if the localBridge is running. Tested using Netscape Communicator 4.04. b) Numerous DIS Enumerations now appear in the disEnumerations package. These are autogenerated from the JDBE online documentation. c) We are now putting source code under version control. Details appear on the Code Design and Coding Standards page. d) Ronan Fauglas will leave us soon, following a wonderful internship. He is heading back to France for his military service. Ronan did superlative work squaring away all of the JavaDoc documentation, writing a perl script to autogenerate the DIS enumerations, and investigating various version control software packages. He is an exceptional programmer. Letter of reference is available on request. Hire him if you can. Thank you Ronan! Bon voyage, please keep in contact. ========================================================================== Changes and bug fixes in early-January 98 release: a) Java documentation: Ronan Fauglas has completely upgraded the Java source code to produce excellent Javadoc documentation. This is a major task with many benefits. New source files for the djv distribution need to follow the conventions described in the Style Guide (draft in dis directory). There will be a few more unannounced builds in the near future Software reference page is also revamped and renamed as softwareReference.html - usability suggestions are welcome. We are now using JDK 1.1.5. We will not go to JDK 1.2 while it is in beta. b) Testing programs: removed package restriction. Tests need to be exercised much further. We are issuing the build now anyway, due to big improvements in documentation and references. c) Global multicast channel: We are trying to go global (ttl 127) by sending 1 ESPDU per 2 seconds from host mcclain.cs.nps.navy.mil to multicast address 224.2.181.145, port 62040 NPS is still off the MBone due to campus administration problems :( Users with MBone access will be able to connect using default setups. Users without MBone access will be able to connect using the multicast relay bridge, which is being tested by Mike McCarthy. d) dis-java-vrml Servers: devo.stl.nps.navy.mil primary file server, multicast relay www.stl.nps.navy.mil alternate file server challenge.stl.nps.navy.mil used for experimentation e) Annotated References has been greatly extended. Biggest improvement is that online links to DIS PDU references are now available! These links also appear in context throughout the DIS package documentation. What a wonderful resource. Abstracts & annotations show the significance of references at a glance. f) Miscellaneous Directories BoidsDemoEAI/BoidsDemoAUV renamed EaiDemoBoids/EaiDemoAUV a variety of programs and methods have been renamed for better consistency. don't overwrite previous distributions, get rid of old stuff completely. accessor methods being consistently used with get and set prefixes only default socket ports going from two half-duplex to full duplex a zillion minor fixes continue, Ronan and javadoc are really helping establishing version control using cvs, the Code Design page has details. g) Problems: lots, unfortunately, but the list is getting smaller... Netscape 4.0x UDP read problem continues to cripple our demos. Don McGregor is examining a TCP (!) solution as a workaround to gain basic connectivity while UDP is broken. We need to start testing WorldView 2.1/Internet Explorer Examples, FAQ, Open Issues pages need updating. We are approximately at version 0.9. ========================================================================== Changes and bug fixes in 22 October 97 release: a) Added remoteReaderBridge and remoteReaderBridge.bat (Unix/DOS scripts) which permit a unicast only host (such as a PC connected via modem) to telnet, launch a bridge program and recieve PDUs via a remote host connected to the Multicast Backbone (MBone). b) Correct version flaws in 21 October 97 release. ========================================================================== Changes and bug fixes in 21 October 97 release: a) All VRML files are being checked using the Vorlon syntax checker. http://www.trapezium.com/vorlon.html b) New light-weight demo program: javaViaScriptNode\EspduReadTransformTraceExample.wrl (the MontereyBayDemo is still there but unfortunately it's so big that execution is unreliable). The new demo lets you click on the entity to see translation/rotation information on a text billboard: javaViaScriptNode/EspduReadTransformTraceExample.wrl Be sure you switch to one of the defined cameras prepositioned relative to the vehicle or the AUV will move out of view. c) MyFish2 PDU generator is now running around the clock on multicast address 224.2.176.166 port 61794 with global scope (ttl 127). This is visible on the Multicast Backbone (MBone), advertised using sdr as dis-java-vrml. This means that if you are on the MBone, you can receive PDUs from NPS in Monterey. To learn more about MBone connectivity, see our paper (listed on the References page). Planned: write a multicast bridge program that lets you connect to the MBone from a unicast-only site (such as a home PC dialed in using PPP). Caveat: NPS connectivity to MBone is sometimes poor. :( d) Simulation Management PDUs. Simulation management PDUs have been added to the DIS library, mil.navy.nps.dis. Author: Alex Rua of University of Porto, Portugal. These are PDUs from the 1278.1 DIS spec. -Start/Resume PDU: StartResumePdu.java -Stop/Freeze PDU: StopFreezePdu.java -Acknowledge PDU: Acknowledge.java -Action Request PDU: ActionRequestPdu.java -Action Response PDU: ActionResponsePdu.java -Data Query PDU: DataQueryPdu.java -Data PDU: DataPdu.java -Event Report PDU: EventReportPdu.java -Comment PDU: CommentPdu.java -Create Entity PDU: CreateEntityPdu.java -Remove Entity PDU: RemoveEntityPdu.java All of these PDUs inherit from a new abstract class, SimulationManagementPdu.java. This class contains the originating and receiving entity IDs. These IDs are used in every subclass, so it makes sense to include these in a common superclass. e) Assorted bug fixes to CommentPdu.java, including moving it under the SimulationManagement class (rather than ProtocolDataUnit class), to match the DIS specification hierarchy. f) Timestamp in ProtocolDataUnit... Prior to this release, the timestamp value in the ProtocolDataUnit abstract class was simply set to zero by default. Though it could be set manually, no one was really doing this. With this release, a timestamp value is automatically inserted into the timestamp field when the constructor for ProtocolDataUnit is fired. The timestamp value DOES NOT conform to the dis spec (which is pretty obscure/braindead since it recommends microseconds past the most recent hour). Instead, we "sorta" conform to Time as defined by the VRML spec. Inside the PDU, we use the number of milliseconds since midnight of the day the program started up is used by default. This makes it relatively easy to 1) sort PDUs based on timestamp, without having to worry about the timestamp rolling over every hour, as it would if the DIS spec was used; 2) is sufficiently precise to be used in VRML and sufficiently compact to be saved in the 32 bits reserved for the timestamp value; and 3) is easily converted into the VRML definition of time. VRML uses a double (64 bit) floating point to hold the number of seconds since 1970. The ProtocolDataUnit code can update the timestamp of an instance with a call to makeTimestampCurrent(). The VRML definition of time can _still_ be retrieved from the PDU with getVRMLTimestamp(). This returns a 64-bit double Time, accurate to milliseconds, and assuming same day same clock on all machines. Since all PDUs inherit from ProtocolDataUnit, these methods are available in all PDUs. This is not a final solution! It does point out limitations in the DIS spec. We expect that further dialog on the list will be necessary. This will likely be a significant contribution to DIS usage conventions. A complete solution will likely include: - GMT time zone - Network Time Protocol (NTP) synchronization of clocks - Real-Time Protocol (RTP) header profile that has 64-bit time and is compatible with other MBone-related multicast streams - No hack internal changes to internal PDU format, to retain backwards compatibility (and strict compliance) with DIS spec g) CollisionPDU added by Jeffrey P. Link, NPS. h) Most new PDUs have not been well tested, and documentation improvements are were not all completed in time for this build. Caveat emptor. ========================================================================== Changes and bug fixes in 5 September 97 release: a) EspduReadTransform and EspduWriteTransform internals updated in order to properly match all fields of Transform node b) MontereyBayDemo works! but not always... run EspduReadTransform first, the browser is having trouble loading a big scene plus starting Java. Caching EspduReadTransform.java beforehand seems to help. More debugging to follow. c) Added NetworkMonitorExample (what it says) and MyFish2 PDU generator for MontereyBayDemo. ========================================================================== Changes and bug fixes in August 97 release: a) javaViaScriptNode tested satisfactorily for single reader/writer b) Added browserBridge, defaultReaderBridge and defaultWriterBridge batch files & shell scripts to Bridge subdirectory c) NetworkMonitor threading improved, javadoc automated, various fixes d) Documentation pages improved, more to follow e) Now working on MontereyBayDemo f) An astonishing number of people lurk on the dis-java-vrml list... ========================================================================== Changes and bug fixes in July 97 release: a) BoidsDemoEai b) javaViaScriptNode c) various directories renamed, various fixes ========================================================================== Bug fixes in June 97 release: a) Z location value being set correctly in EntityStatePdu.java b) Bridge no longer gets NullPointer errors This release contains several Java packages that implement 1) A subset of the DIS protocol; 2) A 3D math library; 3) Datagram bridges that bypass Netscape 3.01 browser security; 4) A simple virtual world that interacts with VRML using EAI applet; 5) A simple virtual world that interacts with VRML using Script Nodes; 6) A partly-functional AWT-based PDU viewer; 7) A demo html file that demonstrates the virtual world The code was written on a PC, so the text and .java files are in PC text format. Generally I set my tabs to two spaces per tab, replacing the tab with space-fills. A few tabs may have snuck in, though. The text files are in PC format, so you may need to run PC-to-Unix text conversion routines on them if you work in a Unix environment. This was compiled with the JDK 1.1.1 compiler. There are a number of deprecated calls in there, but I left 'em in for now, for the most part, since a lot of people still have to interact with Netscape 3.01. 1. DIS Protocol The DIS protocol is partly implemented. The Entity State PDU, Fire, Detonation, and Comment PDUs are functional, if not completely tested. The API to DIS is subject to change; it is likely that it will be modified to fall more closely in line with the setup outlined in the DIS spec. See the README file in the dis directory for more details. 2. 3D Math Library Done by Kent Watsen (http://www.mbay.net/~watsen). Assorted math libraries that are useful for 3D work, such as Quaternions, etc. See the README file in the math directory. 3. Datagram Bridges Datagram bridges are used for two purposes: to bypass Java sandbox security restrictions, and to implement multicast capabilities in non-multicast browsers. These are essentially repeaters that accept datagrams on one port and write them out on another; see the bridge directory README for details. These are a kludge that should go away once everyone has signed applets and Java 1.1 browsers. 4. Virtual World Applet This applet runs in a browser with a VRML plugin. The applet displays a simple vehicle navigating in 3D space, with dead reckoning. Other vehicles can interoperate in the same space, with each display showing both vehicles. To get around Java applet sandbox restrictions, communications must be done through the datagram bridges, described above. See the README file in the EAIViewer directory. This has been tested mostly with CosmoPlayer, though it seems to work with WorldView as well. 5. Script-node Based World Applet Very similar to the virtual world applet described above in (4). This uses the Java script node rather that the EAI interface. This has been tested mostly with WorldView. It might or might not work with CosmoPlayer; script node support for that VRML browser has been an on-again, off-again affair. See the ScriptNodeViewer file. 6. AWT-based PDU Viewer This is a simple applet that listens for PDU packets on the wire, translates them, and displays the contents in a browser window. See the README file in the directory PDUViewer. 7. Demo HTML file This implements the EAI virtual world in a Netscape browser. See the file demoHowTo.txt for details on configuration and running of this applet. ========================================================================== authors: Don Brutzman and Don McGregor