[x3d-public] Distributed Interactive Simulation Component

Don Brutzman brutzman at nps.edu
Fri Apr 6 15:48:19 PDT 2018


Thanks for your interest and scrutiny Doug.

Backgrounders:

IEEE Distributed Interactive Simulation (DIS) protocol is a long-running networking standard used by many DoD systems for creating shared virtual environments, Live Virtual Constructive (LVC) hybrid simulations/exercises, etc.

     https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation

As it turns out, NPS has an extensive body of active effort in this arena.  We expect to be able to tackle this with partners sometime after Soft Launch this summer.  Current course work is testing and improving a number of Web-based examples using the OpenDIS library.

Integration with X3D is relatively easy.  We have a DIS-networked EspduTransform node which can be the scene-graph parent of any moving entity.

X3D-Edit has pretty good support including sender-receiver-tester-recorder-player tools.  It works, we ran it many times in class last quarter, tested with WireShark, etc. etc.

Further references for people who want to read ahead:

a. IITSEC 2017 slideset, DIS 101
    https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/raw/master/presentations/IITSEC2018_DIS_Tutorial.pptx

b. X3D and Distributed Interactive Simulation (DIS)
    http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf

c. X3D v3.3 Distributed interactive simulation (DIS) component
    http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/dis.html
   
d. IEEE Standards Maintained by SISO SAC
    https://www.sisostds.org/ProductsPublications/Standards/IEEEStandards.aspx

The protocol is quite mature, evolving since early 1990s.  Multiple commercial players.

Our team is "getting back up on the horse" and gradually rejuvenating the OpenDIS implementation.  It has code generators for API binding in multiple programming languages (Java JavaScript C++ C# others).  We are working through examples and fixing them in a pair of courses, 3-months into a 12-month cycle.  Initial bindings existed in X3DOM at some point, not sure of their current status.

You are asking good questions, n.b. that good answers exist too.  Too bad others didn't follow through "back in the day" but certainly happy that you are pursuing this.  IMO it has huge potential value, especially as we make progress on using Javascript inside HTML to bridge to web services or other connections rather than UDP multicast.

I expect that sometime after Web3D 2018 Conference we will have our internal work ready for broader sharing.  Can you wait until then?  We will be keen to help and test together - sounds like a great student team project actually.  Topmost priorities right now include HAnim spec and Motion node, other OpenDIS work is slowly progressing and will help.

Step by step, again thanks...

v/r Don

On 4/6/2018 11:33 AM, GPU Group wrote:
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/dis.html
> Q1. should DIS be dropped from future specs
> Q2. is there a more web3d-like way to do something like it?
> -Doug
> 
> 
> I can see why this isn't widely implemented.
> x half-baked - looks like student papers - just a prototype or proof of concept
> x only one implents it -xj3d-, and I have yet to see it run with DIS nodes (it whitescreens on me when run from x3d-edit), so difficult to reverse engineer fuzzy concepts
> x the flavor of some nodes like radio transmitter, receiver, signal seems too specific/high level compared to the rest of web3d which is more about general capabilites that can be combined flexibly in many permutations
> x the DIS specs are very 1990s like
> x DIS specs are big
> 
> But it also seems to fill some gaps versus EAI:
> * node level synchronization (versus EAI access via rootnode > tree)
> **- so easier to bury inside proto bodies
> * wireline protocol
> ** so compatible among any browsers or utilities that implement the protocol
> * no server -peer-to-peer, nothing bad happens if peers join or leave
> 
> And it has problems:
> - using broadcast udp means no ACK / resend if packet lost
> - better at regular / heartbeat updates
> -- if one is dropped, just wait a few seconds
> -- if peer joins late, just wait a few seconds
> x, poor at one-time state intializations / transfers
> xx if packet lost, DIS spec full of bandaids for this issue
> xx if peer joins late, awkward

> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman




More information about the x3d-public mailing list