Distributed Interactive Simulation: The Basics

65
Distributed Interactive Simulation: The Basics Don McGregor Don Brutzman MOVES Institute, Naval Postgraduate School

description

Distributed Interactive Simulation: The Basics. Don McGregor Don Brutzman MOVES Institute, Naval Postgraduate School. Learning Objectives. What standards are used in distributed simulations in the military? What types of networks? What needs to be standardized? - PowerPoint PPT Presentation

Transcript of Distributed Interactive Simulation: The Basics

Page 1: Distributed Interactive Simulation:  The Basics

Distributed Interactive Simulation: The BasicsDon McGregorDon Brutzman

MOVES Institute, Naval Postgraduate School

Page 2: Distributed Interactive Simulation:  The Basics

2

Learning Objectives

• What standards are used in distributed simulations in the military?

• What types of networks?• What needs to be standardized?• How can we use dead reckoning to reduce network traffic?• What coordinate systems are used?

Page 3: Distributed Interactive Simulation:  The Basics

3

Topics

• What’s distributed simulation?• Military modeling & simulation distributed simulation

standards• Underlying TCP/IP networks• DIS: Entity State PDUs• DIS: Entity Types and Entity IDs• DIS: Coordinate Systems• DIS: Shooting• DIS: Research Topics• Bibliography

Page 4: Distributed Interactive Simulation:  The Basics

4

What Do We Want to Do?

• People who want to learn about Distributed Interactive Simulation (DIS) usually want to create a virtual world. This means we need to exchange state information between hosts on the network about entities in the world

• To view someone else in the virtual world, we need to know their position, orientation, and other state information

• Typically entities are controlled by different hosts that are connected via a network. The state information is usually exchanged via TCP/IP

Page 5: Distributed Interactive Simulation:  The Basics

5

State Information in Distributed Simulations

State Information

Location, Orientation, Velocity, &cover the TCP/IP network

TankHelo

Page 6: Distributed Interactive Simulation:  The Basics

6

State Information Exchange

• The tank & helicopter in the simulation are controlled by different hosts. The simulation running the tank needs to know about the helicopter’s position, and the helicopter needs to know about the tank’s position

• We have to come to all sorts of agreements to exchange information. It’s harder than it looks!

• But why do we want to standardize, rather than let every vendor do his own thing?– Vendor lock-in considered harmful

Page 7: Distributed Interactive Simulation:  The Basics

7

Simplest Possible Distributed Simulation Case

• We want to describe the position and orientation of a simulated tank in a virtual world. What do we need?– We need to send state information such as position and

orientation from the host controlling the entity to one or more other hosts participating in the simulation

(X, Y, Z)

Controlling Host Host Receiving Information

Page 8: Distributed Interactive Simulation:  The Basics

8

Simplest Possible Distributed Simulation Case

• We assume that some host has authoritative information about the entity state information. Typically this is the host controlling the entity via a joystick, keyboard, AI, etc. We want to inform other hosts of the location of that entity

• We also have to send information about orientation, articulated parts, velocity, acceleration, and so on

• We transmit the state information to another host, which often displays a graphical representation of the entity

Page 9: Distributed Interactive Simulation:  The Basics

9

What’s So Hard?

• For performance reasons the state message is usually sent in binary format. The format of binary messages needs to be exactly specified.

• What coordinate system is being used? You need one that works well for ground and air systems, can handle curvature of the earth issues, and everyone has to agree on one

• Network issues: what happens if a message is dropped?• Scalability issues: how can we get a reasonable number of

entities to participate?• Latency: can we keep the message latency reasonable?

Page 10: Distributed Interactive Simulation:  The Basics

10

Distributed Interactive Simulation

• DIS was the first standard to tackle these problems in a systematic way

• Originated in the SIMNET project in the 80’s. DARPA supported converting the SIMNET research into a standard; SISO developed the standard and took it to IEEE for approval.

• This means anyone can get the standard from IEEE, implement it, and participate in a simulation

• Development of standard is continuing; updated DIS standard should be approved soon

Page 11: Distributed Interactive Simulation:  The Basics

11

Distributed Simulation Standards

• There are many ways to exchange the state information, but we want a standard way so we can interoperate with simulations from many vendors rather than being locked in

• In the case of defense modeling and simulation, the big three are– TENA: Test and Training Enabling Architecture– HLA: High Level Architecture– DIS: Distributed Interactive Simulation

• We will see that TENA and HLA borrow many semantic concepts from DIS. Understanding DIS has many carry-overs to other standards

Page 12: Distributed Interactive Simulation:  The Basics

12

TENA

• Used on ranges; often the “L” in Live-Virtual-Constructive simulations

• Designed for real time and embedded systems, real sensor systems, etc

• In effect it is thinly disguised CORBA distributed objects with some new features to help it work in a simulation environment

• Can gateway it to other standards, such as DIS or HLA• See http://tena-sda.org

Page 13: Distributed Interactive Simulation:  The Basics

13

High Level Architecture

• HLA is very general and intended to cover most of the defense modeling domains including training, analysis and engineering in addition to virtual worlds

• Participants communicate via an agreed-upon Federation Object Model (FOM) and an API associated with a Run-Time Infrastructure (RTI)

• Specification is maintained by SISO (http://sisostds.org), is IEEE standard 1516 and has implementations by MAK (http://www.mak.com), Pitch (http://www.pitch.se), Portico (older version) (http://porticoproject.org) and others

• http://www.pitch.se/hlatutorial

Page 14: Distributed Interactive Simulation:  The Basics

14

Distributed Interactive Simulation

• DIS is the original distributed simulation standard for military M&S– Targeted at virtual environments modeling entities in the world,

such as tank/helicopter combat– Many of the concepts worked out in DIS are borrowed in TENA

and HLA. For example, the most widely used HLA FOM, RPR-FOM, is patterned after DIS

– Maintained by SISO, which presents it to IEEE for approval as 1278.x

• Substantial commercial support; MaK & others, open source implementations, many home grown implementations of portions of the standard

Page 15: Distributed Interactive Simulation:  The Basics

15

Distributed Interactive Simulation

• What is it?– A standardized way to exchange messages about entities in a

virtual world– Common semantics for things like coordinate systems, and how

to describe specific entities– Common practices to ensure interoperability

Page 16: Distributed Interactive Simulation:  The Basics

16

Networking: The Protocol Stack

• DIS defines the format of the messages, but doesn’t specify how to get the messages from one host to another. Almost always this is done via TCP/IP

Link and Physical

IP

TCP UDP

ApplicationDIS Implementations

How messages areexchanged betweenhosts

Page 17: Distributed Interactive Simulation:  The Basics

17

TCP/IP

• TCP/IP is the underlying substrate for almost all network communications. Web servers, streaming video, email and almost everything else you use on the internet all rely on TCP/IP

• Users typically implement things at the “application layer” at the top of the stack. This is where DIS lives

• The lower layers of the stack are responsible for delivering messages. We can usually ignore this part; it’s all handled by operating system vendors

• We interact with the TCP/IP stack via either the User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) APIs.

Page 18: Distributed Interactive Simulation:  The Basics

18

TCP/IP

• TCP has higher latency, higher jitter (variation in latency), and doesn’t scale to large numbers of hosts well

• UDP has lower latency, lower jitter, scales to large numbers of participants better, but is unreliable

• DIS typically uses UDP• Hold on—UDP is unreliable? What’s up with that?

– Individual UDP messages may be dropped by the network; there’s no guarantee that a UDP message will be delivered. This is a tradeoff to achieve lower latency and jitter and more scalability

– Not as big a deal as it might seem. If we’re getting position updates from an entity every 1/30th of a second, does it matter if we drop one?

Page 19: Distributed Interactive Simulation:  The Basics

19

Byte Endianess

• Back in the elder days of computing different CPU makers made different decisions about how to arrange bytes in numbers. TCP/IP does not hide these decisions from you!

• Consider a 4-byte binary integer on the wire• DIS chose to use “big endian” or “network byte order” to

represent binary numbers. Intel CPUs use little endian byte order. Beware!

A B C D

D C B A

Big Endian: Most significant bit on the left

Little Endian: Most significant bit on the right

Page 20: Distributed Interactive Simulation:  The Basics

20

Unicast, Broadcast, and Multicast

• UDP messages are like postcards: they contain a fairly small amount of data, and we need to address them to a destination– We can send them to one host (based on IP number): called

unicast– We can send them to all hosts on a local network: called

broadcast– We can send them to those hosts, on the local network or not, that

are interested in the message: called multicast• DIS messages are contained inside of UDP packets and can

use any one of these addressing schemes. Broadcast is very common. Multicast is better.

Page 21: Distributed Interactive Simulation:  The Basics

21

DIS Messages

• We know what we want to do: send a message that tells another host what the state of an entity is

• We know how we do this: we send the message via TCP/IP, typically in a UDP message over broadcast or multicast

• What are the actual messages?– This is what is specified by the DIS standard. – There are dozens of possible messages to send. The most

common by far is the entity state Protocol Data Unit (PDU)

Page 22: Distributed Interactive Simulation:  The Basics

22

DIS Messages: Entity State PDU

• We want to inform other hosts of the position of an entity we control

• Contains information such as:– Entity ID: a unique identifier that describes one entity in the world– Entity Type: a series of enumerations that specify what this entity

is. For example, an M1A2 tank, AH-64 attack helicopter, German F-16C, and so on

– Position, orientation, velocity, acceleration, angular velocity, and dead reckoning algorithm to use

• All messages are in binary format

Page 23: Distributed Interactive Simulation:  The Basics

23

DIS: Entity IDs

• The entity ID is a unique identifier for each entity in the world. Before we can tell an entity “hey you, do that” we need a way to differentiate between entities

• In DIS this is done via a triplet of three numbers: the Site, Application, and Entity

Page 24: Distributed Interactive Simulation:  The Basics

24

DIS: Entity IDs

• Example: before the simulation starts we agree on the following numbers

Site NumberChina Lake 42

Norfolk 17

Orlando 23

Application NumberLockMart M1A2 Simulator 112

Boeing UCAV Simulator 417

JCATS 512

Page 25: Distributed Interactive Simulation:  The Basics

25

DIS: Entity IDs

• An tank entity controlled by the LockMart simulator at China Lake may have an entity ID of (42, 112, 17) and no other entity in the simulation should have the same entity ID

• An UCAV entity controlled by a Boeing simulator at Norfolk would have an EID of (17, 417, 18), and no other entity should have the same ID

• Note that this depends on all the participants agreeing to use the same arbitrary numbers! We’ll see the same phenomenon later with Entity Types.

• This concept of Entity IDs is also used many places in HLA such as the RPR FOM and in some places in TENA

Page 26: Distributed Interactive Simulation:  The Basics

26

Entity IDs

TankEID: (42, 112, 18) at (x0, y0, z0)EID: (42, 112, 19) at (x1, y1, z1)

HeloEID: (17, 417, 18) at (x2, y2, z2)

Boeing simulator at Norfolk controls an aircraft

LockMart simulator at China Lake controls two distinct tanks

Page 27: Distributed Interactive Simulation:  The Basics

27

DIS: Entity State PDU

• So a simulator issues an ESPDU, saying “This is the entity’s unique ID, and this is where it is.”

• We may need some other information. What if we want to draw this entity? We need to know what this is—a tank, a helicopter, a ship?

• This is done via something called the Entity Type, which in turn depends on a SISO document called the “Enumeration and Bit Encoded Values” (EBV).

• The EBV document is a long listing of standardized enumerations that lets us identify military hardware

Page 28: Distributed Interactive Simulation:  The Basics

28

Entity Type From EBV Document

Page 29: Distributed Interactive Simulation:  The Basics

29

Entity Type

• The Entity Type is a collection of several numbers that precisely define what piece of hardware this is– (1, 1, 225, 1, 1, 6) is an entity type that defines a vehicle, on land,

from the US, that is a tank, specifically an M1, and even more specifically an M1A2 with DU armor.

– (1, 4, 225, 1, 3, 10) defines a vehicle, undersea, from the US, that is an SSBN, of the Ohio class, that is the USS Pennsylvania (SSBN-735)

– (1, 1, 222, 2, 1, 1) defines a vehicle, on land, from Russia, that is an armored fighting vehicle, a BMP-1, basic model

• Everyone should agree on the EBV document version used!• These enumerations are also often used in HLA and TENA

Page 30: Distributed Interactive Simulation:  The Basics

30

Entity State PDU: Position

• What does it mean if we say an entity is at (x, y, z)? This has no meaning without a coordinate system. We need to agree on one, and where the origin is

• DIS chose to use a geocentric coordinate system

Page 31: Distributed Interactive Simulation:  The Basics

31

ESPDU: Coordinate Systems

• If you want to specify the location of an entity in DIS, you have to specify it in terms of how far from the center of the earth it is. You should also agree on the shape of the earth (eg WGS-84) and terrain

• This seems strange, but DIS has to deal with all sorts of entities, and has to also account for curvature of the earth issues if the simulation demands it. The geospatial people have done the math to convert geocentric to things like (lat, lon, alt) or MGRS. The geocentric coordinate system is often used in TENA and HLA

• The folks at SEDRIS have provided an open source framework for dealing with these issues in their Spatial Reference Model (http://www.sedris.org/hdr1trpl.htm)

Page 32: Distributed Interactive Simulation:  The Basics

32

DIS: Coordinate Systems

• Very often you set up a local, flat coordinate system for convenience and use that for simulations that cover up to perhaps 20KM. When you actually send the ESPDU you need to convert back to global coordinates; SEDRIS SRM can do this

Page 33: Distributed Interactive Simulation:  The Basics

33

Coordinate Systems

Y

X

The local coordinate system origin set at (lat, lon, alt). The simulation does all itscalculations in this coordinate system, because it’s convenient. Before sendingentity information out in a DIS ESPDU, convert from local to geocentric coordinates

(lat, lon, alt)

Page 34: Distributed Interactive Simulation:  The Basics

34

DIS: Dead Reckoning

• So far, we can send an ESPDU message that has an entity ID, entity type, and its position. If we’re running a visual simulation, how often do we need to send these?

• If running at frame rate, about every 1/30th of a second. – If we have 500 entities in a simulation, this works out to 15,000

UDP messages per second. If you’re doing other computation on the host this will tax your CPU budget

– Do we really need to send that fast? If we know how fast and in what direction we’re moving, we can dead reckon in between receiving an ESPDU and draw our entity there.

– Sure, we could be lying to the user. Got a problem with that? If our DR is wrong, we just correct our position stealthily when we get better info on the next packet

Page 35: Distributed Interactive Simulation:  The Basics

35

DIS: Dead Reckoning

• What DR algorithm is best? It depends! In some situations we might want to include acceleration or angular velocity, but not in others. The ESPDU sender specifies what DR algorithm to use

• Typically the sender also performs its own DR to determine what the recipients are seeing. If the sender decides the clients are probably wrong in their guess about where the entity is, it can issue another ESPDU with better location information

Page 36: Distributed Interactive Simulation:  The Basics

36

DIS: Learning About the World and Heartbeat

• If we’re running a DIS simulation, how do we learn about all the other entities in the world?– One design choice DIS could have chosen is to use a server.

Instead, the designers chose for DIS to be peer-to-peer; there is no central server, and hosts simply talk to one another directly

• In DIS all we have to do is listen for ESPDUs. The ESPDUs contain what we need to know: entity type, location, velocity, orientation. This is simple and avoids a single point of failure, and makes configuration easy

Page 37: Distributed Interactive Simulation:  The Basics

37

DIS: Heartbeat

• To make this work, every entity has to periodically send and ESPDU even if its state hasn’t changed. This is called a heartbeat– This is simple and robust but affects scalability. Especially so

since we are often sending redundant information in the ESPDU, such as the entity type

• Typically an entity must send an ESPDU at least once every 5 seconds, which means you should learn about every entity in the world within 5-15 seconds. (Remember, UDP packets may be lost because UDP is unreliable)

Page 38: Distributed Interactive Simulation:  The Basics

38

DIS: Entity State PDU

• So far we’ve looked at an ESPDU, which contains– Entity ID– Entity Type– Position, orientation, velocity, etc– Specifies a DR algorithm for the receiver to use

• We’ve also seen that we need to agree upon a coordinate system, and agree on the enumerations that describe things like the entity type and portions of the entity ID.

Page 39: Distributed Interactive Simulation:  The Basics

39

DIS: API

• DIS doesn’t have an API. This seems strange to people coming from HLA or TENA, but reflects common practice in networking protocols– The standardized part is the format of the messages on the wire.

The standard is silent about how to create or receive those messages

– Different DIS vendors have different APIs, but all produce the same format messages. This is in contrast to HLA, which has a standard API, but is silent about the format of messages on the wire. As a result, different HLA RTI vendors usually use different message formats for exchanging information

– TENA standardizes the API, but there is a single implementation of the equivalent to the RTI; this sidesteps the wire standard problem

Page 40: Distributed Interactive Simulation:  The Basics

40

DIS: Message Format Standardized

MaK DIS API KDIS DIS API

Open-DIS DIS API

Standard Format Messages

JCATS Sim Code Boeing Sim Code

ONE-SAF Sim Code

Network

Page 41: Distributed Interactive Simulation:  The Basics

41

HLA: API Standardized

HLA API HLA API

HLA API

RTI Vendor-Specific Format Messages

JCATS Sim Code Boeing Sim Code

ONE-SAF Sim Code

Network

While the API is standard, implementations of RTI API from different vendorswill produce different format messages

Page 42: Distributed Interactive Simulation:  The Basics

42

DIS: API

• The implications of this are that while HLA has a standardized API, RTIs from different vendors can’t typically talk to each other. This makes changing vendors easy, but getting RTIs from different vendors talking to each other hard--you need to use a gateway

• DIS in contrast makes changing vendors hard (since it involves changing the API your simulation code uses) but talking between vendors easy (since all the messages on the wire are in the same format)– The lack of an API can help when using unusual languages, such as Objective-

C, C#, and Python. Since there’s no API, just make one up. As long as they produce standard messages, it doesn’t affect anyone else

Page 43: Distributed Interactive Simulation:  The Basics

43

DIS: PDU Format

• Remember, all this information is being sent in binary format in (typically) a UDP packet

• The exact format that an ESPDU must have on the wire is specified in the DIS standard. This includes byte order

• For example, the EntityID field starts 12 bytes into the ESPDU message, is in the order (site, application, entity), and each field entry is 16 bits long and unsigned

Page 44: Distributed Interactive Simulation:  The Basics

44

DIS: ESPDU Format

Page 45: Distributed Interactive Simulation:  The Basics

45

DIS: Looking at ESPDUs

• What do ESPDUs look like? We can examine them on the network with a free tool called Wireshark, which can decode DIS packets– http://www.wireshark.org/

• Remember, it’s the format of the messages on the wire that count. The DIS standard specifies the exact format of binary messages, and any tool that produces or consumes those messages is fine with DIS. How you create them is none of DIS’s business

Page 46: Distributed Interactive Simulation:  The Basics

46

Wireshark: Capture Packets

Page 47: Distributed Interactive Simulation:  The Basics

47

Wireshark: Decode Packets as DIS

Page 48: Distributed Interactive Simulation:  The Basics

48

Wireshark: Examine DIS Packets

Page 49: Distributed Interactive Simulation:  The Basics

49

DIS: Implementations

• Format– We know what information we want to send: entity type, entity ID,

position, orientation, etc– We know what coordinate system we want to use– We know where to find the arbitrary, agreed-upon values—the

EBV document• How do we get the information into the format we want on

the wire?• This is where DIS implementations come in

Page 50: Distributed Interactive Simulation:  The Basics

50

DIS: Implementations

• Where can you get a DIS implementation?– Write your own– Buy one. MaK, RedSim, and others offer commercial

implementations– Use an open source version

• Open-DIS (http://open-dis.sourceforge.net)– Java, C++, C#, Objective-C, some Javascript

• KDIS (http://sourceforge.net/projects/kdis/)– C++

• Aquaris (http://sourceforge.net/projects/aquariusdispdu/)– C++

• JDIS (http://sourceforge.net/projects/jdis/)– Java

Page 51: Distributed Interactive Simulation:  The Basics

51

DIS: Implementations

• I like the open source option, but I’m biased. The commercial implementations offer excellent out of the box usability but licensing issues can be problematic. How long is the life cycle on DoD software? Will the vendor still be offering licenses five years from now? Do you really want to write your own instead of just getting on with your problem?

• “Free as in free puppy”

Page 52: Distributed Interactive Simulation:  The Basics

52

DIS: Sending

• Remember, DIS has no official API. Every implementation is different. This example will use the Open-DIS API. Implementation available at http://open-dis.sourceforge.net

• Source code for this example is available at http://www.movesinstitute.org/~mcgredo/iitsec/

• The example contains a lot of supporting libraries for things like writing DIS to a relational database, or marshaling to XML format. Ignore that for now

• All code is BSD open source license; use any way you see fit

Page 53: Distributed Interactive Simulation:  The Basics

53

DIS: Send ESPDUs in Java

Page 54: Distributed Interactive Simulation:  The Basics

54

DIS: Receive PDUs in Java

Page 55: Distributed Interactive Simulation:  The Basics

55

DIS Sending and Receiving PDUs

• There are similar idioms for other languages such as CPP, Objective-C (IOS/MacOS) and C# (Windows phone)

• Note that this requires that you do a bit of socket programming, which TENA and HLA hide from you. Socket programming isn’t that bad

Page 56: Distributed Interactive Simulation:  The Basics

56

DIS: Shoot at something

• We’ve been sending ESPDU messages back and forth, but there are dozens of other sorts of messages. What if we want to shoot at someone? What does this involve?

• We can use a Fire PDU, which contains– The entity ID of the shooter– The entity ID of the target (if known)– The type of munition being fired, fuse, quantity, etc. This is very

similar to the entity type– Enough information to compute the path of the munition

Page 57: Distributed Interactive Simulation:  The Basics

57

DIS: Shoot at Something

• The Detonation PDU usually follows a Fire PDU. It contains– Location of detonation, shooter ID, target ID– Fuse, munition type, and so on

• When a Detonation PDU is received simulations assess the damage to their own entities. This means simulations are on the honor system; James T. Kirk can Kobayashi Maru

• Example: F-16 drops a JDAM– Fire PDU issued by F16 with shooter and target IDs included– An entity is created during the JDAM flight– It impacts, causing a Detonation PDU– All receiving simulations assess the damage to their own entities

Page 58: Distributed Interactive Simulation:  The Basics

58

DIS: Other messages

• There are many other messages that can be used in DIS– Electronic warfare– Logistics– Directed energy weapons– Collisions– Simulation management– Data exchange

• It’s a big topic!

Page 59: Distributed Interactive Simulation:  The Basics

59

DIS and Other Standards

• How can DIS interoperate with HLA or TENA?• The HLA Real Time Platform Reference Federation Object

Model (RPR-FOM) is closely modeled on DIS– Same entity types, same entity IDs, same coordinate system, and

the content of the messages sent is nearly a 1:1 mapping to DIS– This was done to make transition from DIS to HLA easy– There are several gateways to translate between DIS and RPR-

FOM. Rumored Canadian Forces open source gateway• TENA has a generalized gateway functionality that can map

TENA events to DIS and vice versa

Page 60: Distributed Interactive Simulation:  The Basics

60

DIS: Research Topics

• Other Formats for DIS– Back when DIS was created we had Intel 386 CPUs at 16 MHz. Now we have

multi-core CPUs at 3 GHz and gigabit Ethernet (soon 10 Gbit) with HW accelerated graphics. iPhones are probably more powerful than a desktop from that era

– Richard Hamming rule: a change of an order of magnitude can produce a fundamentally new effect

• In the end, what we’re interested in is the semantic content of the DIS messages, not the binary format, which is only a means to an end. Why not use other formats for the semantic content of DIS messages?

• Send DIS messages in XML, or archive in XML or SQL• Send DIS messages in Javascript/JSON

Page 61: Distributed Interactive Simulation:  The Basics

61

DIS Research Topic: 3D in the Web Page

• Websockets are an emerging standard from IETF and W3C. The idea is to provide a direct Javascript-based TCP socket into a web page without having to use AJAX polling techniques

• Javascript is a widely used language for dynamic web content

• WebGL is Javascript binding for OpenGL which allows us to use accelerated 3D graphics inside the web page– WebGL can be the substrate for higher level graphics standards

such as X3D• Put all three together and you can implement a networked

virtual environment in a web page

Page 62: Distributed Interactive Simulation:  The Basics

62

DIS Research Topic: 3D in the Web Page

Web Server

Websocket transmitting DISin JSON format

Network with conventional binary DIS

Web page with JavascriptWebGL scene updated byJSON

Page 63: Distributed Interactive Simulation:  The Basics

63

DIS Research Topic: 3D in the Web Page

Page 64: Distributed Interactive Simulation:  The Basics

64

WebLVC

• The combination of this—WebGL, WebSockets, and fast Javascript in the web browser—has emerged recently

• SISO WebLVC Working Group – http://discussions.sisostds.org/topiclistview.aspx?fid=256

• See also Virtual World Framework – http://virtualworldframework.com

• Active research topic

Page 65: Distributed Interactive Simulation:  The Basics

65

Bibliography• SISO: http://sisostds.org• SISO DIS Protocol Support Group:

http://discussions.sisostds.org/topiclistview.aspx?fid=32• Open-DIS: http://open-dis.sourceforge.net• SEDRIS SRM: http://sedris.org• MaK: http://www.mak.com• Kdis: http://kdis.sourceforge.net• Wireshark: http://wireshark.org• WebGL: http://www.khronos.org/webgl/• X3D: http://www.web3d.org http://x3dgraphics.com/slidesets • WebLVC: http://discussions.sisostds.org/topiclistview.aspx?fid=256 • WebSockets: http://tools.ietf.org/html/rfc6455 , http://www.w3.org/TR/websockets