<div dir="ltr"><p class="MsoNormal">Please allow me to elaborate about the MOSES Team’s PhysX
integration:</p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>We are not reinventing the wheel: InWorldz [1] has successfully integrated
PhysX into 2010’s OpenSim 0.6.5 with impressive aircraft [2]and ground vehicle [3, 4]movement. We commend
Elenia and David from InWorldz for their PhysX initiative and information
sharing. We are encouraged and inspired by their results. With that said, the
MOSES team is integrating the latest PhysX version (3.3.3) into current OpenSim,
with anticipated, continued support for future OpenSim versions. Our support
includes the sharing of the integration source code, documentation, and
published experiment results that will compare performance between PhysX to
BulletSim. </p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>With our effort, we are providing an alternative
physics engine. Just like the introduction of BulletSim into OpenSim when ODE
was the default, our effort will introduce another option for region owners. The
code we share will follow the OpenSim plug-in architecture [5] and only require minimal
OpenSim configuration file changes to employ PhysX, making it easy for region
owners to run their regions with PhysX and experiment/test with the engine
themselves.</p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>From two separate OpenSim profiling events
conducted November 2014 and this January, BulletSim’s CPU demands were observed
to be alarming. Specifically, when comparing all of the components of the
OpenSim.Region namespace (one of the heaviest CPU consumers in OpenSim), we
uncovered that physics dominated consumption by using over 41% of CPU
processing time. It was concluded that because BulletSim physics required such
a large disproportionate amount of CPU, the current physics engine must be reanalyzed
with multithreading and GPU processing capabilities targeted for efficiency.</p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>The most current release of PhysX, 3.3.3 is
open-API, open-sourced, multi-threaded, with complete GPU capabilities. The BulletSim
2.8 engine that is default in OpenSim is single-threaded and does not support GPU
processing; multi-threading and GPU processing capabilities will be introduced
in BulletSim 3. We have turned to PhysX because it offers these capabilities,
with the additional possibilities of n-bodied physics and more realistic
vehicle and robotic movements straight, out of the box, today.</p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>PhysX is cross-platform. Our PhysX integration will
not intentionally break OpenSim portability. </p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>PhysX offers the best open-source use of GPU
physics calculations available [6]; similarly, Nvidia
graphics generally outperform the AMD equivalents [7]. Both of these
observations steer us towards making OpenSim support the best performing
external libraries and hardware possible. It should be noted that the speed-ups
PhysX brings to games and simulators are attributed to tight collaboration and
integration between the physics engine developers and the GPU manufacturer
(Nvidia to Nvidia), commercial software development focused on efficient use of
the GPU, and continuous improvements to the SDK [8]. We are integrating
PhysX into OpenSim because the data suggests that it will give us the best
performing physics engine available.</p>

<p class="" style><span style="font-family:Symbol">·<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">        
</span></span>Once our integration is complete, we will share
performance benchmarking methods and tools and performance analysis generated from
our MOSES grid. We will systematically measure OpenSim performance with and
without PhysX.  We strive to provide
OpenSim with the tools for performance and the best simulation experience.</p>


 <p class="MsoNormal"></p>
 <table class="" border="0" cellpadding="0" width="100%" style="width:100%">
  <tbody><tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[1] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"Welcome to the
   InWorldz virtual world!," [Online]. Available: <a href="http://inworldz.com/">http://inworldz.com/</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[2] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"When a dream
   comes true," [Online]. Available:
   <a href="https://www.youtube.com/watch?v=Fc5O8Jl67wQ&feature=youtu.be">https://www.youtube.com/watch?v=Fc5O8Jl67wQ&feature=youtu.be</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[3] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"InWorldz PhysX
   Beta 2 Race," [Online]. Available:
   <a href="https://www.youtube.com/watch?v=7oed95OPI3Q">https://www.youtube.com/watch?v=7oed95OPI3Q</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[4] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"Vehicles in
   InWorldz - The Road Test | Xay Tomsen," [Online]. Available:
   <a href="https://www.youtube.com/watch?v=7zXPtMInJUs">https://www.youtube.com/watch?v=7zXPtMInJUs</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[5] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"BulletSim -
   OpenSimulator," [Online]. Available: <a href="http://opensimulator.org/wiki/BulletSim">http://opensimulator.org/wiki/BulletSim</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[6] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"Popular
   Physics Engines comparison: PhysX, Havok and ODE," [Online]. Available:
   <a href="http://physxinfo.com/articles/?page_id=154">http://physxinfo.com/articles/?page_id=154</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[7] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"Borderlands 2
   GPU & CPU Performance Test," [Online]. Available: <a href="http://www.techspot.com/review/577-borderlands-2-performance/page5.html">http://www.techspot.com/review/577-borderlands-2-performance/page5.html</a>.</p>
   </td>
  </tr>
  <tr>
   <td width="1%" valign="top" style="width:1%;padding:0.75pt">
   <p class="">[8] </p>
   </td>
   <td valign="top" style="padding:0.75pt">
   <p class="">"<a href="http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/,">http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/,</a>"
   [Online]. Available:
   <a href="http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/">http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/</a>.</p>
   </td>
  </tr>
 </tbody></table>
 <p class="MsoNormal"> </p>
 <p class="MsoNormal">All the best,</p><p class="MsoNormal">Sean Mondesire, Ph.D.</p><p class="MsoNormal">Virtual World Research Team</p>


<p class="MsoNormal"> </p></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 18, 2015 at 10:51 PM, Michael Emory Cerquoni <span dir="ltr"><<a href="mailto:nebadon2025@gmail.com" target="_blank">nebadon2025@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">on a other note, if GPU support is the end goal for MOSES team, it should be noted that Bullet also can do GPU support and even multi-threaded cpu support, as it stands right now its only single thread for Bulletsim, though it can be loaded into a separate thread removed from the simulator heartbeat, it should also be noted that very little effort has gone into fully optimizing what Bullet could potentially do in OpenSimulator.  I do kind of wonder why the choice to not improve this effort instead of trying to re-invent the wheel so to speak with yet another platform that ultimately is not all that much better than Bullet in the end and potentially not cross platform. I must admit my interest will be very limited if I am required to use MIAB and likely would not do much testing myself if that is the case, also I would have absolutely no interest at all if it turns out to not have cross platform support though I am not sure that is true.<br></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, Mar 18, 2015 at 10:42 PM, Michael Emory Cerquoni <span dir="ltr"><<a href="mailto:nebadon2025@gmail.com" target="_blank">nebadon2025@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">GPU is not required for PhysX there is a cpu level it can operate at as well, and while GPu support is good, I would also be surprised if OpenSimulator could actually fully utilize a GPU before mono would barf anyway, mono can only handle so much threading and even offloading all of that processing to the GPU, all that data ultimately has to flow back through mono / C# / OpenSim HTTP server and I suspect there will be a huge bottleneck there that would not allow for much more performance than the CPU itself could handle anyway, there would likely be some improvement though, the question is does that warrant the inclusion of an expensive GPU in a server, its going to draw a lot more power, and will not make a lot of sense in a standard data center style setup with 1U rack servers, expanding rack size increases costs quite a lot, the question is does that increased cost benefit performance enough to justify it, the only way to really find out is to try, I wonder if InWorldz does any GPu offloading for their implementation of PhysX, i suspect they do not but would be great to know for sure.<br></div><div class="gmail_extra"><div><div><br><div class="gmail_quote">On Wed, Mar 18, 2015 at 5:15 PM, David Saunders <span dir="ltr"><<a href="mailto:abitar.com@gmail.com" target="_blank">abitar.com@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I know there be allot of grid interested in trying out the new physics when offer. <div><br></div><div>THe only big drawback of people adopting the PhysX is that relies on a GPU to do its processing and not sure if you run more then one engine on a machine.</div><div><br></div><div>I am sure smaller grids and self hosters would love it. </div><div><br></div><div>But do correct me, I not looked into PhysX since  last year.  </div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, Mar 18, 2015 at 4:42 PM, Shaun T. Erickson <span dir="ltr"><<a href="mailto:ste@smxy.org" target="_blank">ste@smxy.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>It would be sad if this were ultimately
      for Windows only, as that would rule out its use by a large
      segment of the OpenSim community.<span><font color="#888888"><br>
      <br>
      -ste</font></span><span><br>
      <br>
      On 3/18/15 4:13 PM, Sean M wrote:<br>
    </span></div><span>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Mike,</div>
        <div><br>
        </div>
        Yes, PhysX.net is the targeted wrapper.<br>
        <div><br>
        </div>
        <div>Cross compatibility would be nice to maintain but is not a
          required feature for this effort.</div>
        <div><br>
        </div>
        <div>
          <div style="font-size:12.8000001907349px">Best regards,</div>
          <div style="font-size:12.8000001907349px">Sean Mondesire,
            Ph.D.</div>
          <div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">MOSES: Virtual World
              Research Team</span><br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </span></div>

<br></div></div><span>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br><br clear="all"><br></div></div><span><font color="#888888">-- <br><div>Michael Emory Cerquoni</div>
</font></span></div>
</blockquote></div><br><br clear="all"><br></div></div><span class="HOEnZb"><font color="#888888">-- <br><div>Michael Emory Cerquoni</div>
</font></span></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>