Distributed Interactive Simulation |
![]() |
A. Software Download and Installation | | I.
eaiDemoAUV &
eaiDemoBoids Packages
|
B. Javadoc Documentation | | J. helicopter Package
|
C. DIS Data Dictionary | | K. logger Package
|
D. auv (Autonomous Underwater Vehicle) Package
| | L. math Package
|
E. awt (Abstract Window Toolkit) Package
| | M. relate Agent Architecture Package
|
F. bridge Package
| | N. testing Package
|
G. dis Package
| | O. util (utilities) Package
|
H. disEnumerations Package
| | P. org.web3d.vrtp.net (network) Package
|
| | Q. org.web3d.vrtp.security Package
|
A Makefile is used to compile and maintain the dis-java-vrml software. Results from the latest software build appear in makeBuild.out.
VRML Script classes are also linked for easy reference (thanks to Greg Seidman).
You will want to use the
dis
Package
to specify PDUs when writing code.
You will want to use the
disEnumerations
Package
to specify enumeration values when building or reading PDUs.
The SISO Document Library at www.sisostds.org/doclib provides a number of related resources. The DIS Data Dictionary master distribution is online at www.sisostds.org/doclib/doclib.cfm?SISO_RID_1000014 .
auv
(Autonomous Underwater Vehicle) Package demo.auv
package includes several example worlds showing physics-based applications of the DIS library.
![]() | ![]() | ![]() |
Package Summary | ||
AuvInBeachTanks.wrl
with screen snapshots
| <= this is a recommended demo | |
AuvPduGenerator.html | AuvPduGenerator.java | |
example autogenerated world:
mission.output.telemetry.wrl | TelemetryPlayback.html | TelemetryPlayback.java |
mission.output.telemetry.right_turn | TelemetryState.html | TelemetryState.java |
BeamConeEXAMPLE.wrl | BeamConePROTO.wrl |
awt
(Abstract Window Toolkit) Package mil.navy.nps.awt
package includes a Protocol Data Unit (PDU) reader & writer applets, implemented using the
Java Abstract Window Toolkit (AWT), that are useful for inspecting or setting the values of PDU fields.
bridge
Package mil.navy.nps.bridge
package includes several programs that enable multicast PDU streams to be redirected via unicast sockets.
Bridging was initially necessary because some browsers were still using JDK 1.0 and did not have
native multicast support. We have revised (or eliminated the need for) all of bridge programs
now that connectivity
to be browser (both unicast and multicast UDP) has finally been achieved. A future
software build may revise all of the default socket addresses & ports simultaneously.
We are working on simple, general and ubiquitous multicast DIS connectivity. Among other things, we expect to connect home PCs via unicast-only phone connections to multicast bridging servers. Currently this work is handicapped by problems in the Windows network stack implementations.
![]() | ![]() | ![]() |
Package Summary | ||
![]() | This preferred multicast topology diagram
shows the connectivity provided to your client browser when your local-area network (LAN)
is connected to the Multicast Backbone (MBone).
If we had this connectivity everywhere, no other bridging would be needed. Unfortunately many LANs are not on the MBone, so we must provide a bridge to connect to multicast PDU streams. | |
Here are the command-line applications to bridge multicast PDUs all the way to the browser.
Client invocation:
Server invocation on devo.cs.nps.navy.mil: | ||
![]() Multicast Relay project report by Julian Williams | MulticastRelayClient.html | MulticastRelayClient.java |
MulticastRelayServer.html | MulticastRelayServer.java | |
Here is the Abstract Window Toolkit (AWT) client to bridge multicast PDUs all the way to the browser. | ||
MulticastRelayClient.html | <= this is a recommended demo | |
AwtMulticastRelayClient.html | AwtMulticastRelayClient.java | |
AwtMulticastRelayClientFrame.html | AwtMulticastRelayClientFrame.java | |
RelayThread.html | RelayThread.java | |
Readme.txt | Here are several old varieties of applications to bridge multicast PDUs all the way to the browser.
Windows (.bat) batch files and corresponding Unix shell scripts are provided for each case. You probably don't need any of them, they are here for archive information only. Someday Don McGregor hopes to take them out behind the barn and end their misery. | |
![]() | Local reader/writer bridge program, to patch local multicast into local browser unicast socket | localBridge.bat
localBridge |
![]() | Used only to develop localBridge | localReaderBridge.bat
localReaderBridge |
Used only to develop localBridge | localWriterBridge.bat
localWriterBridge | |
![]() | Remote reader/writer bridge program, to patch remote multicast into local browser unicast socket | remoteBridge.bat
remoteBridge |
![]() | Needed to be extended into reader/writer remoteBridge. Superseded. | remoteReaderBridge.bat
remoteReaderBridge |
remoteWriterBridge.bat
remoteWriterBridge | ||
BridgeHarness.html | BridgeHarness.java | |
Bridge.html | Bridge.java | |
BridgeMulticastToUnicast.html | BridgeMulticastToUnicast.java | |
BridgeUnicastToMulticast.html | BridgeUnicastToMulticast.java | |
BridgeUnicastToUnicast.html | BridgeUnicastToUnicast.java | |
DatagramBridge.html | DatagramBridge.java |
dis
Package mil.navy.nps.dis
package is an extensive class library
that provides the core functionality
of the DIS-Java-VRML software:
reading/writing PDUs from a network stream, then parsing/building PDU contents.
This implementation of the DIS specification includes most - but not all - of the DIS Protocol Data Unit (PDU) types. Here are the status pages on implemented PDUs and implemented records.
The
mil.navy.nps.dis
package Javadoc includes stub implementations of the
vrml.*
,
vrml.field.*
and
vrml.node.*
classes as defined in the
VRML 97 specification Java scripting annex.
These stub classes are used to compile dis-java-vrml's Java source code
independently of various browser implementations.
You may also want to refer to the local copy of the DIS Data Dictionary to see what the DIS Specification has to say about PDUs.
disEnumerations
Package
The
mil.navy.nps.disEnumerations
package is an extensive class library
that provides enumerations (i.e. special constants),
which are the predefined values associated with
DIS protocol data unit (PDU) fields.
There is a very helpful local copy of the DIS Data Dictionary which includes
There is a huge range of enumeration values for PDU fields.These classes have been automatically generated from the on-line DIS Data Dictionary (SISO).
eaiDemoAUV
and
eaiDemoBoids
Packages mil.navy.nps.eaiDemoAUV
package includes a simple VRML application example using the still-nonstandard External Authoring Interface (EAI).
Needs debugging due to revised EAI.
The
mil.navy.nps.eaiDemoBoids
package includes a simple VRML application example using the still-nonstandard External Authoring Interface (EAI).
Needs debugging due to revised EAI.
![]() | ![]() | ![]() |
ReadMeFirst.txt | Package Summary | |
eaiDemoBoids.html | ||
Entity.html | Entity.java | |
NIU.html | NIU.java | |
Ownship.html | Ownship.java | |
World.html | World.java |
helicopter
Package mil.navy.nps.helicopter
package includes some cool VRML helicopters that can do a four-way shoot-'em-up battle. This demo continues to
be upgraded by NPS.
logger
Package
The
mil.navy.nps.logger
package contains several useful PDU logging and playback applications.
PduPlayer is a simple 2D-window example
that records or sends multicast Entity State PDUs,
much like a VCR player.
Written by Millie Ives and David Holland of George Mason University.
![]() | ![]() | ![]() |
logger.html | Package Summary | |
Example invocations:
PduPlayer.bat
or
| PduPlayer.html | PduPlayer.java |
DefaultEditor.html | DefaultEditor.java | |
DNDComponentInterface.html | DNDComponentInterface.java | |
DNDList.html | DNDList.java | |
EditFrame.html | EditFrame.java | |
EspduEditor.html | EspduEditor.java | |
FFwd.html | FFwd.java | |
HeaderEditor.html | HeaderEditor.java | |
NetworkDialog.html | NetworkDialog.java | |
PduCellRenderer.html | PduCellRenderer.java | |
PduEditInterface.html | PduEditInterface.java | |
PduEditPanel.html | PduEditPanel.java | |
PduSelection.html | PduSelection.java | |
Play.html | Play.java | |
PropertiesDialog.html | PropertiesDialog.java | |
Record.html | Record.java | |
Rewind.html | Rewind.java |
math
Package
The
mil.navy.nps.math
package contains several useful math-related classes.
These may be removed in a future build if we begin to use Java3D-related math classes.
![]() | ![]() | ![]() |
Readme.txt | Package Summary | |
Matrix3f.html | Matrix3f.java | |
Matrix4f.html | Matrix4f.java | |
Quaternion.html | Quaternion.java | |
Vec3f.html | Vec3f.java | |
Vec4f.html | Vec4f.java |
relate
Agent Architecture Package
The
mil.navy.nps.relate
agent architecture package is a class library that provides a framework for the team=play agents, coordinated as part of the Referee
process and directing the various offensive/defensive helicopter/tank agent controllers.
![]() | ![]() | ![]() |
Package Summary | ||
Action.html | Action.java | |
Agent.html | Agent.java | |
Goal.html | Goal.java | |
Personality.html | Personality.java | |
Relationship.html | Relationship.java | |
RelationshipManager.html | RelationshipManager.java | |
Role.html | Role.java | |
Rule.html | Rule.java | |
SensedEnvironment.html | SensedEnvironment.java | |
Sensor.html | Sensor.java | |
Thing.html | Thing.java |
testing
Package
The
mil.navy.nps.testing
package collects a variety of test programs.
Many of them need reverification and cleanup.
![]() | ![]() | ![]() |
Readme.txt | Package Summary | |
HelloWorld.wrl | <= Test proper operation of VRML browser | |
VRML-Java paper | Brutzman, Don,
"The Virtual Reality Modeling Language and Java,"
Communications of the ACM, vol. 41 no. 6, June 1998, pp. 57-64.
| |
ScriptNodeEventOutControl.wrl | <= Test proper operation of VRML with Java
ScriptNodeEventOutControl.html | ScriptNodeEventOutControl.java |
ScriptNodeFieldControl.wrl | <= Test proper operation of VRML with Java
ScriptNodeFieldControl.html | ScriptNodeFieldControl.java |
DisCoordinateSystemGimbals.wrz | Study DIS-to-VRML coordinate system naming and rotations using virtual gimbals.
This is also a helpful tool to convert between roll-elevation-azimuth and an
axis-angle SFRotation value.
Here is a screen snapshot. | |
PduTestListener.html | PduTestListener.java | |
ReceiverPduSender.html | ReceiverPduSender.java | |
SignalPduSender.html | SignalPduSender.java | |
TransmitterPduSender.html | TransmitterPduSender.java | |
BehaviorStreamBufferExample.html | BehaviorStreamBufferExample.java | |
Code Benchmarking & Performance | Benchmark.html | Benchmark.java |
CollisionMonitor.html | CollisionMonitor.java | |
CollisionTest.html | CollisionTest.java | |
DatagramReader.html | DatagramReader.java | |
DatagramSender.html | DatagramSender.java | |
DatagramTestApplet.html | DatagramTestApplet.java | |
Readme.MyFish.txt | FishPduGenerator.html | FishPduGenerator.java |
McastIU.html | McastIU.java | |
MulticastPduSender.html | MulticastPduSender.java | |
MulticastTest.html | MulticastTest.java | |
ShowProperties.html | ShowProperties.java | |
ViewUDPTestApplet.html | UDPTestApplet.html | UDPTestApplet.java |
util
(Utilities) Package
The
mil.navy.nps.util
utilities package is a class library that provides several useful extensions to Java
which are of general use (and not specific to the DIS package).
![]() | ![]() | ![]() |
Package Summary | ||
ClassUtilities.html | ClassUtilities.java | |
DatagramStreamBuffer.html | DatagramStreamBuffer.java | |
DatagramStreamBufferNetscape.html | DatagramStreamBufferNetscape.java | |
SerializationInterface.html | SerializationInterface.java | |
UnsignedByte.html | UnsignedByte.java | |
UnsignedShort.html | UnsignedShort.java | |
UnsignedInt.html | UnsignedInt.java | |
UnsignedLong.html | UnsignedLong.java |
org.web3d.vrtp.net
(network) Package
The
org.web3d.vrtp.net
network package is a class library that provides platform-independent network access.
![]() | ![]() | ![]() |
Package Summary | ||
DatagramStreamBuffer.html | DatagramStreamBuffer.java | |
SenderBenchmark.html | SenderBenchmark.java | |
SocketBenchmark.html | SocketBenchmark.java |
org.web3d.vrtp.security
( Package
The
org.web3d.vrtp.security
package is a class library that provides platform-independent security permissions for network and file access.
![]() | ![]() | ![]() |
Package Summary | ||
FileAccessBadge.html | FileAccessBadge.java | |
NetworkCommBadge.html | NetworkCommBadge.java | |
PropertiesBadge.html | PropertiesBadge.java | |
MicrosoftSecurityStrategy.html | MicrosoftSecurityStrategy.java | |
NetscapeSecurityStrategy.html | NetscapeSecurityStrategy.java | |
PrivilegeTestApplet.html | PrivilegeTestApplet.java | |
SecurityStrategy.html | SecurityStrategy.java | |
SunSecurityStrategy.html | SunSecurityStrategy.java |