x3d distributed interactive simulation (dis) implementation and run-time discovery of new entities...

45
X3D Distributed Interactive Simulation (DIS) Implementation and Run-Time Discovery of New Entities using X3DOM Don McGregor, Byron Harder, Don Brutzman . Modeling, Virtual Environments Simulation (MOVES) Institute Naval Postgraduate School, Monterey California Web3D 2015 Conference, Crete Greece 18 June 2015

Upload: myles-ellis

Post on 23-Dec-2015

249 views

Category:

Documents


1 download

TRANSCRIPT

X3D Distributed Interactive Simulation (DIS) Implementation and Run-Time

Discovery of New Entities using X3DOM Don McGregor, Byron Harder, Don Brutzman .

Modeling, Virtual Environments Simulation (MOVES) Institute

Naval Postgraduate School, Monterey California

Web3D 2015 Conference, Crete Greece

18 June 2015

2

Topics

• Standards Approach for Networked Virtual Environments (NVEs)– X3D, JavaScript, X3DOM and WebGL– DIS, WebSockets and WebRTC– Geospatial and Modeling Conventions

• X3DOM source for X3D DIS component• Performance and Demonstration• Conclusions and Future Work

3

Standards-Based Approach for Networked Virtual Environments (NVEs)

• Motivation: Web is the real NVE– Everything else is smaller

• Twenty five year challenge

• “Break out” time!

4

X3D, HTML5 and JavaScript

Multiple technologies need to be aligned• X3D and Script node• HTML and scripts• Bridging event models between X3D, HTML• X3DOM implementation, X3D v4 strategy

– http://x3dom.org– http://web3d.org/standards

5

IEEE Distributed Interactive Simulation (DIS) Protocol

Network protocol, IEEE standard since 1995– IEEE 1278 is a communications standard for

physically based distributed simulations– Standard defines binary layout of messages

used to transmit simulation information– Often used in military applications since IEEE

1278 covers a wide range of data: entity location, velocity, and orientation, and more features such as signal and supply support

– Civilian applications: air-traffic control, etc.

6

DIS protocol and X3D

– IEEE Distributed Interactive Simulation (DIS) protocol has been used for many years to build networked simulations that share state

– X3D DIS component aligns these capabilities with X3D scenes to enable sharing of state data

– EspduTransform: protocol data units (PDUs) for EntityState, Collision, Fire, Detonation

– Signals: ReceiverPdu,SignalPdu,TransmitterPdu– Real-time discovery, display of new entities:

DISEntityManager, DISEntityTypeMapping– Tutorial slides X3D for Advanced Modeling, DIS

7

WebSockets Networking

• IETF/W3C standard API – RFC 6455 et al. (Wikipedia)– Language agnostic, includes JavaScript API

• Technical summary: – TCP-like sockets for web browsers, http/https– Reliable connection-oriented, provides framing– Client-server architecture (not peer-peer)– No broadcast or multicast

• Browser support excellent (including mobile)

8

WebSockets diagram

A TCP socket is establishedfrom the web browser to the server, and stateupdates relayed throughthe server

9

WebSockets Browser Adoption

~85% of deployed browser user base can use WebSockets, including mobile

http://caniuse.com/#feat=websockets

10

WebRTC Networking

• IETF/W3C standard API– RFC standards still in development– Language agnostic with JavaScript API

• Browser support growing (including mobile)• Technical summary:

– UDP-like sockets for web browsers; encrypted– Best effort (e.g. “unreliable”) message-oriented,

acceptable to drop packets– Client-server or peer-peer (rendezvous point) – No broadcast or multicast

11

WebRTC diagram

After signaling step, direct browser-to-browser communication of data possible using WebRTC UDP

Initial signaling step usingexternal rendezvous serviceallows browsers to find each other

12

WebRTC Browser Adoption

~ 50% of installed browser user base is capable of using WebRTC

http://caniuse.com/#search=WebRTC

13

Geospatial Conventions

• X3D: WGS84 and other datums allowed• Many different terrain models in the heterogeneous

DIS application domain• Caveat tester: current prototype uses “flat earth”

coordinates, clamped data inputs to surface

• DIS Coordinate System• Uses WGS84 Geocentric

coordinate system (only)• Problem: missing geospatial

conventions

14

Modeling Conventions

• DIS– Orientation: Euler angle rotations from

geocentric earth fixed world coordinate system to body coordinate system

• X3D– Orientation convention: X nose, Y up, Z RHS– X3D Scene Authoring Hints collects numerous

“best practices” for compatible, scalable models– Savage Developers Guide lists our design

patterns for configuration and setup

15

Performance

• Chen-Fu Hsiao thesis 2014 looked at WebSocket & WebRTC performance in a 3D environment– Significant performance differences between browsers at the time

of publication; this is likely to converge as implementations mature

• Approximately 5000 messages per second can be achieved with commodity desktop/laptop; low value of ~2000 messages per second with some implementations of WebRTC, likely due to immature browser implementation. Some test results > 10K PDUs/second !!

• That is a LOT of state transfer possible! – Enough for numerous networked games and NVES

• Further scalability possible through server-to-server bridging and filtering, area of interest management, etc.

16

Demonstrations available

Web-Enabled DIS Maps with Websockets• https://track.nps.edu

• Simple text HTML• GoogleMaps API• Three.js• X3DOM

17

Google Maps Demo

• Generate simulated traffic for San Francisco Bay Area

• Entities displayed on map real-time

• Can easily hook up live ship position feeds from Automated Information System (AIS) streams

18

X3DOM

• Same traffic as Google Maps scene

• Live 3D entities added to scene

19

Demonstration topology

• track.nps.edu• Backend: open-source Jetty WebSockets

Server, modified X3DOM javascript engine, models, and maps loaded from server

Crete Internet(proxies OK!)

NPS and otherenterprise firewalls

https://track.nps.eduServes content

20

Various implementation issues

• Choosing and implementing a terrain model• Nonconventional entity models (and workarounds)• Modeling dynamic features like shot animation and

damage/destruction• Practical limits of unicast routing• EspduTransform + Transform workaround• Ungraceful degradation of connection-oriented

protocol (WebSocket) forwarding UDP stream– Application gateway filtering may be appropriate, TBD

21

X3DOM source for X3D DIS component

• sourceforge.net/projects/open-dis – Java, JavaScript, C++, C#, Objective-C– XML definitions + code generators = agile, easy

• x3dom.org – Checked out a pull, sent back a push– github.com/mcgredonps/x3dom – Several work-weeks effort– Ready to work with Fraunhofer team

22

X3D specification coverage

• Available for X3DOM– EspduTransform including ESPDU, Fire,

Detonation PDUs

• TODO– Collision PDU (integrated with EspduTransform)– Receiver, Signal, Transmitter PDU– Align X3D DIS and Geospatial components– Specify parameters for WebSockets, WebRTC

as part of url field

23

Current State

• Connect to websocket server and load X3DOM-powered viewer page

• Display, navigate on flat map• Forward DIS via websocket• Display and move entities

driven by DIS PDUs• Display basic entity info

Demonstration video: https://savage.nps.edu/videos/McGregorHarderBrutzmanOpenDisX3domWeb3d2015.mov

34

Remaining Issues

• Clamping entity elevation to (flat) sea level, need integration with geospatial X3D terrain

• Proper scaling while also maintaining useful user visibility and interaction conventions– “Highlighting bubble” for quick visual location

• Smooth animation between movement locations based on ESPDU dead reckoning

• Display FirePDUs, DetonatePDUs – boom!• Testing (and debugging) on bigger networks

35

Conclusions

• X3DOM-based client deployment of DIS is feasible with initial implementation available– Availability of models, documentation, code

• Ready to make this technology mashup reliable and maintainable– Extending to entity control and PDU injection in

dynamic simulations

36

Future work 1

• Integrate with X3DOM– Add, integrate other PDUs in EspduTransform– True dead reckoning

• Candidate future PDUs for X3D specification – Comment and Simulation Management PDUs– Intercom PDUs (Voice over IP)

• Open-DIS– Coordinate system conversion

libraries– Orientation conversion

37

Future work 2

• X3D-Edit– Embed Jetty web-socket server– Auto-configure connections to Web3D channels– Simplified DIS network integration into scenes

• Web3D Projects Wish List– Stand-alone fully configured X3D server – Compatible with open-source GeoServer

38

Contact

Don McGregor, Byron Harder, Don [email protected] [email protected] [email protected]

Modeling, Virtual Environments Simulation (MOVES) Institute

Naval Postgraduate School

Monterey California 93943-5000 USA

39

BACKUP SLIDES

40

Overview

• Use Cases• Sequence Diagram• Domain Model• Deployment Diagram• Current State• Remaining Issues• Conclusion

41

X3D Simulation Viewing System

Simulation Observer

View Simulation inReal Time

Simulation FederationRecord Simulation

Run

PlaybackSimulation Run

Use Case Diagram

42

WebsocketServerclientBrowser SecuritySystem

webpageConnection

requestConnection

dispatchAccessRequest

challengeSecurityCredentials

respondSecurityChallenge

approveSecuritySession

provideAvailableSimulations

spawn

connectToSimulation

sendSimulationSessionRules

sendInitialScene

entityModelRepository

requestEntityModels

sendEntityModels

Sequence Diagram: Session Setup

43

WebsocketServerClientBrowser

X3Dscene

-location

SimulationX3Dmessage

+receiveFromSimulation()+sendToClient()

WebpageConnection

SimulationNetwork

-allowedCameraAngles-fogOfWar?-displaySelf?

SimulationSessionRules

-elevationData-textureData-levelOfDetail

TerrainData

-location

SimulationNativeMessage

< Connects-to

Spawns Communicates-with

1

*

Sets

< Conforms-to

Sends < ReceivesListens-to

^Broadcasts

-locationBounds

TerrainDataRepository

< Serves

Requests-from

Displays

-locationBounds

SimulationFederation

^Broadcasts-on

Domain Model

EntityModel-enumerationMapping

EntityModelRepository< Serves

Requests-from

Displays

44

Internet

Client Browser

Websocket X3D Gateway Server

Deployment Diagram

Simulation Network

45

Browser

Server Pages

X3DOM

X3DOM-DIS

X3DOM-DIS-PLUS

WebGL

X3D

HTML

Javascript

SimulationViewer

DIS

X3Dmodels__X3Dmodels_X3Dmodels

Package Dependencies