<div dir="ltr"><a href="https://freewrl.sourceforge.io/tests/28_Distributed_interactive_simulation/elevator/">https://freewrl.sourceforge.io/tests/28_Distributed_interactive_simulation/elevator/</a> <br><div><a href="https://freewrl.sourceforge.io/tests/28_Distributed_interactive_simulation/elevator/Elevator3_4players.png">https://freewrl.sourceforge.io/tests/28_Distributed_interactive_simulation/elevator/Elevator3_4players.png</a> <br></div><div>MMO - massively multiplayer online</div><div>4 players (4 instances of freewrl with scene elevator3.x3d, and just the 'application' number changed for each one) and the viewpoint pose in world space is transferred to the other app instance via DIS distributed interactive simulation, via an internal function run once per frame that gets the viewpoint-agnostic view matrix at world scene level and parses into xyz and ypr and transmits as an EntityState pdu.</div><div>The elevator3.x3d scene has a DISEntityManager node and a Group node that newly discovered entities are addChildrened / parented to</div><div>As one player navigates, the associated cone avatar pose is updated in the other app instances.</div><div>In theory a regular web3d node could spit out DIS compatible geo coords and ypr orientation. It needs to be viewpoint agnostic world space, so perhaps singleton navigation info could do that. And then could be routed to an Espdu node in the source scene, for relaying updates to other app instances. And then wouldn't need the special function. But then we may have hand-wand-controlled or walk/stand/run or arm-pointing articulation parameters to relay in the future, so having a special function may be helpful for all that.</div><div>-Doug</div><div><br></div></div>