Classification: UNCLASSIFIED
Caveats: NONE

1.  This is an excellent point that illustrates just how wickedly complex our 
problem is.  The short answer is "yes", we could do it locally.  However, the 
distribution of the shared experience is a hard requirement and the final state 
of the bricks must be accurately portrayed to all client connections.  One way 
to handle this is to treat this like a state machine and make sure all clients 
have precisely the same start conditions and then apply the same physics 
calculations.  Theoretically, we would have the same end conditions.  
Afterward, we could queue the state changes of all the object and then have an 
arbitration process at the server make sure everything is actually at the same 
global location and orientation.

This is a complex issue as it is contrary to the current world state model and 
would require the server to temporarily relinquish control of prims during the 
physics action, then take it back after steady state.

3.  Our PhysX work is simply to ensure the physics calculations we need in the 
83ms interval is actually completed and not dropped.  It is address any "rubber 
banding" effects you see.  It should also address jitter.  It is a balance 
between update rate, network saturation, and QoS.

4.  The DSG middleware approach gave us many insights into how a truly 
distributed simulator could work.  That was extremely valuable work for us and 
we were privileged to have excellent collaborators in Intel and a strong 
community of MOSES users willing to help us test. 

v/r -douglas

Douglas Maxwell, MSME
Science and Technology Manager
Virtual World Strategic Applications
U.S. Army Research Lab
Simulation & Training Technology Center (STTC)
(c) (407) 242-0209



-----Original Message-----
From: opensim-dev-boun...@opensimulator.org 
[mailto:opensim-dev-boun...@opensimulator.org] On Behalf Of Mister Blue
Sent: Wednesday, April 15, 2015 12:21 AM
To: opensim-dev
Subject: Re: [Opensim-dev] New MOSES Physics Video

1. Is the explosion of blocks or prims something that the viewer can handle? Or 
is this too tricky to make happen with the wide variations of machine running 
viewers and even more so that soon the viewer will run in a web browser? 
It is something a viewer could do but I don't know what mechanism could be used 
in the existing viewer.


2. Is there a way to make the explosion an overlay streaming event that runs 
over the current screen? - Just a crazy idea.... I am thinking of this more on 
a browser-viewer as that needs to run on devices that would have issues 
processing all that...
In interesting idea but, again, would be viewer modifications.


3. Is it possible to make OS Physics run faster than 11FPS?
Yes. The default configuration is for the simulator heartbeat time to be 11FPS 
and for the physics engine to be in sync. You can change the simulator 
heartbeat time but there are some known problems with that (too many 
assumptions in some places). If you run BulletSim on its own thread, you can 
speed up BulletSim but that would just make more updates.


4. It seems that the number of avatars exponentially changes the workload here. 
Maybe a graphics server could be designed as a sub service to handle that type 
of load, maybe running on a GPU instead of a CPU? It just seems to me that with 
all the other things that the region server has to do, offloading some of the 
heavy lifting would be a good thing. Maybe it is time to think of an OS "Pro" 
level of setup that separates the workload a bit more would be a good idea

That was the design of DSG. For client connections, the simulator fed on client 
manager who multiplied the connection to multiple viewers. So you could have a 
simulator feeding 10 client managers who were each feeding 30 viewers for a 
total of 300 connections. DSG also run script and physics servers to off load 
the central server from the computation from those operations.


== mb

On Tue, Apr 14, 2015 at 1:49 PM, Dahlia Trimble <dahliatrim...@gmail.com> wrote:


        I believe there is a means in the LLUDP protocol to stuff many updates 
for many objects into a single packet, though I'm not sure OpenSimulator is 
smart enough to do it in your simulation. It may be a way to improve networking 
performance quite a bit when may physical objects change velocity during the 
same simulation frame.
        

        On Tue, Apr 14, 2015 at 1:44 PM, steve l <salbiederm...@gmail.com> 
wrote:
        

                Hi!
                
                
                Robert- Thanks for the answer and the thought you put into it!
                

                So I am going to play dummy (Not far from the truth!) here. 
This means that we need to do re-writing on several parts of OS to speed things 
up and eliminate bottlenecks. a couple of questions then.
                
                
                1. Is the explosion of blocks or prims something that the 
viewer can handle? Or is this too tricky to make happen with the wide 
variations of machine running viewers and even more so that soon the viewer 
will run in a web browser? 
                
                
                2. Is there a way to make the explosion an overlay streaming 
event that runs over the current screen? - Just a crazy idea.... I am thinking 
of this more on a browser-viewer as that needs to run on devices that would 
have issues processing all that...
                
                
                3. Is it possible to make OS Physics run faster than 11FPS?
                
                
                4. It seems that the number of avatars exponentially changes 
the workload here. Maybe a graphics server could be designed as a sub service 
to handle that type of load, maybe running on a GPU instead of a CPU? It just 
seems to me that with all the other things that the region server has to do, 
offloading some of the heavy lifting would be a good thing. Maybe it is time to 
think of an OS "Pro" level of setup that separates the workload a bit more 
would be a good idea.
                
                
                These things always get me thinking...!
                
                
                Steve LaVigne
                
                A Dimension Beyond, Inc.
                
                www.adimensionbeyond.com
                

                On Tue, Apr 14, 2015 at 10:45 AM, Adams, Robert 
<robert.ad...@intel.com> wrote:
                

                        I don’t think the only problem is finding a physics 
engine that can handle 240 moving objects. Another is optimizing the updates 
from the physics engine.

                         

                        Think of the whole pipeline: the physics engine 
computes interactions and new locations/rotations for each object. That 
position update is sent to the simulator. The simulator updates the object data 
structures and sets an update flag. The location/position update is noticed and 
an update packet[1] is created and placed in output queues for each viewer. At 
some time, the packet is transmitted to each viewer.

                         

                        The update processing time can easily be more than the 
physics engine time.

                         

                        The OpenSimulator physics engines are run 11 times a 
second so they generate 11 position updates a second for each moving object. 
So, even an efficient physics engine will generate (240 * 11) updates per 
second which then turn into (240 * 11 * numberOfAvatars) packets sent per 
second.

                         

                        There are many optimizations possible in this chain.

                         

                        -- mb

                         

                        [1] This is technically wrong for the current version 
of OpenSimulator. For the technically inclined, an ‘update needed’ packet is 
put in the output queue and the actual packet to transmit is created when it is 
time to send the update. This is done because the update output packet queue 
can get long and the position/location information can be stale if multiple 
updates are in the queue. Only one ‘update needed’ packet is put in the queue 
and the current object location/rotation is put in the transmitted packet at 
the time of transmission.

                         

                        From: owner-moses-l...@lists.mitre.org 
[mailto:owner-moses-l...@lists.mitre.org] On Behalf Of steve l
                        Sent: Tuesday, April 14, 2015 8:09 AM
                        To: Michael Emory Cerquoni
                        Cc: opensim-dev@opensimulator.org; 
moses-l...@lists.mitre.org
                        Subject: Re: [Opensim-dev] New MOSES Physics Video

                         

                        Hi!

                        An excellent video on the physics of exploding grenades 
and the wall.  On the OS Dev list Mister Blue has an excellent observation that 
the server crashes are due to the extreme amount of changes that have to be 
sent to every avatar. His idea of a client side solution might just be a good 
one. In the end is there any way that OpenSim can handle more events than that 
in it's present form? Is there any physics engine that can handle 240 moving 
scripted objects moving at once without lag?

                        If we could get OS to the point that it would handle 
this load easily, we would have all our load issues solved!

                        Steve LaVigne

                         

                        On Tue, Apr 14, 2015 at 6:33 AM, Michael Emory Cerquoni 
<nebadon2...@gmail.com> wrote:

                        Could these test scripts be shared so testing against 
other engines can occur as well, I would be interested to see how this same 
test goes against ODE and BulletSim as well.

                         

                        On Tue, Apr 14, 2015 at 8:18 AM, Maxwell, Douglas CIV 
USARMY ARL (US) <douglas.maxwell3....@mail.mil> wrote:

                                Good Morning, as you all know the MOSES 
developers are working on PhysX integration into the Open Simulator to support 
functionality currently not possible in the platform.  We are a methodical 
group and a couple months ago I asked one of our interns to work with the 
developers to create a series of baseline physics behavior case studies.  The 
first case study is a destructible wall caused by an explosive charge.  This 
wall is composed of blocks that are tested at a high density and a low density 
to simulate different destruction effects.  

                                 

                                The goal here is to eventually have all of the 
prims in the sim loaded with the scripts needed to react to any type of random 
explosive charge set by the participants in the training scenario.

                                 

                                The video can be found below:

                                 

                                https://youtu.be/jSofWcwWi7g 
<blockedhttps://youtu.be/jSofWcwWi7g> 

                                 

                                Your feedback is welcome.

                                 

                                Observations:

                                1)  Current limitations of the open simulator 
prevent us from expanding the tests beyond a simple wall.

                                2)  The scripts exercise the engine well and 
expose limitations between the sim frame rate and the physics frame rate.

                                3)  It is easy to crash the sim with this 
demonstration, especially if more than a handful of people are present (more 
than 3-4 client connections).

                                 

                                Douglas Maxwell, MSME
                                Science and Technology Manager
                                Virtual World Strategic Applications
                                U.S. Army Research Lab

                                Human Research & Engineering Directorate
                                Simulation & Training Technology Center
                                (c) (407) 242-0209 
<blockedtel:%28407%29%20242-0209> 

                                 

                                _______________________________________________
                                Opensim-dev mailing list
                                Opensim-dev@opensimulator.org
                                
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev 
<blockedhttp://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev> 

                        
                        
                        
                        -- 

                        Michael Emory Cerquoni

                         



                _______________________________________________
                Opensim-dev mailing list
                Opensim-dev@opensimulator.org
                http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev 
<blockedhttp://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev> 
                
                



        _______________________________________________
        Opensim-dev mailing list
        Opensim-dev@opensimulator.org
        http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev 
<blockedhttp://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev> 
        
        



Classification: UNCLASSIFIED
Caveats: NONE


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Opensim-dev mailing list
Opensim-dev@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to