[x3d-public] Distributed Interactive Simulation Component

GPU Group gpugroup at gmail.com
Sat Apr 7 07:36:06 PDT 2018

Thanks for the Background on DIS and links, I missed a few.
>  Can you wait until then?
(I had hoped to reach v3.3 FULL_PROFILE to prove it can be done, not
illusive goal -just 6 DIS nodes away from full profile- but ..)
Yes, or maybe I can go just a little further and prepare a few more
questions / complaints / notes as seen from non-DIS-expert trying to
implement, to share with your class. And yes would be great to work with
your students on it if I'm available at the time. The great thing about DIS
it should work with any tool that can join the exercise.
I'll prepare a .msi installer in the next few weeks. Or if any of your
students can stomach C they are very welcome to try hacking freewrl.

PS I do have the simple transform part of espdu working in scenes like
(which white-screens for me in x3d-edit embedded xj3d in win10 and Ubuntu)
and tested wtih x3d-edit sender panel
and used the xmlpg to do a CGenerator.java to generate a flat-C .h/.c used
in freewrl
x haven't done dead reckoning, geoCoords, collision, fire, detonation,
create/remove, manager or radio,
(in large part because of personal confusion about how its supposed to work
-never seen professional DIS simm- and no DIS-working xj3d to test
hypotheses^ against, lack of specific examples for collision, fire,
detonation, manager.)

^Hypotheses how geoCoords work for DIS nodes:
like GeoLocation,
.LCS (local coordinate system as described in precision section of
geospatial: shared cartesian)
..(dis node with geoCoords)
... TCS - topocentric coordinate system aka LGS local geodetic system as
described in GeoLocation
.... Transform part of espdu
..... children in entity coords
On Send from isWriter/owner, the translation and rotation are combined with
TCS translation and rotation, converted to GC and sent as GC
On Receive, GC converted to TCS, TCS to LCS transform is updated, and
translation, rotation part of Transform is set to default 000 0100

Hypothesis for how Manager node works:
- its an isReader, there's no simulation manager in web3d specs, no way to
generate create/remove events
- when espdu gets create/remove pdus, it does nothing with them, and the
scene needs to route/forward them to the Manager for creating/removing

On Fri, Apr 6, 2018 at 4:48 PM, Don Brutzman <brutzman at nps.edu> wrote:

> 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/Dis
> tributedInteractiveSimulation.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/brutzma
> n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180407/13087414/attachment-0001.html>

More information about the x3d-public mailing list