Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-23 Thread Sean M
Please allow me to elaborate about the MOSES Team’s PhysX integration:

· 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.

· 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.

· 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.

· 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.

· PhysX is cross-platform. Our PhysX integration will not
intentionally break OpenSim portability.

· 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.

· 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.

  [1]

Welcome to the InWorldz virtual world!, [Online]. Available:
http://inworldz.com/.

[2]

When a dream comes true, [Online]. Available:
https://www.youtube.com/watch?v=Fc5O8Jl67wQfeature=youtu.be.

[3]

InWorldz PhysX Beta 2 Race, [Online]. Available:
https://www.youtube.com/watch?v=7oed95OPI3Q.

[4]

Vehicles in InWorldz - The Road Test | Xay Tomsen, [Online]. Available:
https://www.youtube.com/watch?v=7zXPtMInJUs.

[5]

BulletSim - OpenSimulator, [Online]. Available:
http://opensimulator.org/wiki/BulletSim.

[6]

Popular Physics Engines comparison: PhysX, Havok and ODE, [Online].
Available: http://physxinfo.com/articles/?page_id=154.

[7]

Borderlands 2 GPU  CPU Performance Test, [Online]. Available:
http://www.techspot.com/review/577-borderlands-2-performance/page5.html.

[8]


http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/,;
[Online]. Available:
http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/
.



All the best,

Sean Mondesire, Ph.D.

Virtual World Research Team



On Wed, Mar 18, 2015 at 10:51 PM, Michael Emory Cerquoni 
nebadon2...@gmail.com wrote:

 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 

Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-18 Thread Shaun T. Erickson
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.


-ste

On 3/18/15 4:13 PM, Sean M wrote:

Mike,

Yes, PhysX.net is the targeted wrapper.

Cross compatibility would be nice to maintain but is not a required 
feature for this effort.


Best regards,
Sean Mondesire, Ph.D.
MOSES: Virtual World Research Team


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


Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-18 Thread Michael Emory Cerquoni
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.

On Wed, Mar 18, 2015 at 5:15 PM, David Saunders abitar@gmail.com
wrote:

 I know there be allot of grid interested in trying out the new physics
 when offer.

 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.

 I am sure smaller grids and self hosters would love it.

 But do correct me, I not looked into PhysX since  last year.

 On Wed, Mar 18, 2015 at 4:42 PM, Shaun T. Erickson s...@smxy.org wrote:

  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.

 -ste

 On 3/18/15 4:13 PM, Sean M wrote:

  Mike,

  Yes, PhysX.net is the targeted wrapper.

  Cross compatibility would be nice to maintain but is not a required
 feature for this effort.

  Best regards,
 Sean Mondesire, Ph.D.
 MOSES: Virtual World Research Team



 ___
 Opensim-dev mailing list
 Opensim-dev@opensimulator.org
 http://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




-- 
Michael Emory Cerquoni
___
Opensim-dev mailing list
Opensim-dev@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev


Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-18 Thread Michael Emory Cerquoni
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.

On Wed, Mar 18, 2015 at 10:42 PM, Michael Emory Cerquoni 
nebadon2...@gmail.com wrote:

 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.

 On Wed, Mar 18, 2015 at 5:15 PM, David Saunders abitar@gmail.com
 wrote:

 I know there be allot of grid interested in trying out the new physics
 when offer.

 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.

 I am sure smaller grids and self hosters would love it.

 But do correct me, I not looked into PhysX since  last year.

 On Wed, Mar 18, 2015 at 4:42 PM, Shaun T. Erickson s...@smxy.org wrote:

  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.

 -ste

 On 3/18/15 4:13 PM, Sean M wrote:

  Mike,

  Yes, PhysX.net is the targeted wrapper.

  Cross compatibility would be nice to maintain but is not a required
 feature for this effort.

  Best regards,
 Sean Mondesire, Ph.D.
 MOSES: Virtual World Research Team



 ___
 Opensim-dev mailing list
 Opensim-dev@opensimulator.org
 http://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




 --
 Michael Emory Cerquoni




-- 
Michael Emory Cerquoni
___
Opensim-dev mailing list
Opensim-dev@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev


Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-17 Thread Maxwell, Douglas CIV USARMY ARL (US)
You bring up some great talking points, Michael, and I'll try to address them 
in a logical order:



1)  I agree the submission of one large patch is a bad idea.  We would like for 
the developers to be informed of our work in-situ and even participate if they 
want.  Since this is a major effort, we will be holding weekly IPT meetings in 
MOSES to discuss progress.



2)  Does the OpenSimulator project have a formal patch acceptance process?  
What is your testing and QC regimen?  If you don't have these practices in 
place, I'd be happy to help you formulate.



3)  We are attempting to actively engage this list so that you are all aware of 
our work.  If you want to be involved, please speak up.



4)  We are acutely aware that we are building on open source software and 
abiding by all licensing terms.  Further, we have made our enhancements and 
grid management software available via GitHub for anyone to download and use.  
We will be working from our GitHub on this physics effort and you are welcome 
to download the latest code at any time.  We will also be submitting patches of 
our progress periodically to the community once we understand what the 
submission process is.  https://github.com/M-O-S-E-S



I can only make the code available to you, I cannot make you use it.  We are 
not concerned with backwards compatibility, nor are we concerned with SL 
compatibility.  It is likely there will be a situation where the OS core 
developers may like the new performance or functionality we are working on but 
you may need to massage the code to align it with your requirements.



v/r -doug







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-0209tel:%28407%29%20242-0209

From: opensim-dev-boun...@opensimulator.org 
[opensim-dev-boun...@opensimulator.org] on behalf of Sean M 
[mondesire.s...@gmail.com]
Sent: Monday, March 16, 2015 4:40 PM
To: opensim-dev@opensimulator.org
Subject: Re: [Opensim-dev] PhysX Integration into OpenSim

Thanks for the response Michael. Our PhysX-OpenSim development is now underway. 
We wanted to make the announcement and let the dev community know of our plans 
to share the fruit of our labor.

On Mon, Mar 16, 2015 at 11:56 AM, Michael Emory Cerquoni 
nebadon2...@gmail.commailto:nebadon2...@gmail.com wrote:
Sounds great Sean, however I must say that submitting monolithic patches into 
OpenSimulator is not something we tend to accept or encourage, it would be 
considerably better if development was actively done in smaller pieces so it 
could be tested on a very wide audience as development is occurring so that the 
OpenSimulator team can have a say in the process and help out with testing as 
well, I hardly speak for the entire collective but I can offer my perspective 
on things being involved in this project from nearly the beginning, I do look 
forward to seeing what you guys can come up with and I do hope you consider 
working closer with the OpenSimulator development team and not try to pull off 
this massive feat in a closed environment, I would hate to see all this work be 
done and then not end up in OpenSimulator code base.

On Mon, Mar 16, 2015 at 11:49 AM, Sean M 
mondesire.s...@gmail.commailto:mondesire.s...@gmail.com wrote:
Greetings,

The MOSES Team has begun the integration of Nvidia's PhysX physics engine into 
OpenSim. The effort's motivation stems from a deep review of the capabilities 
PhysX can bring the simulator and a number of discovered limitations that 
exists with ODE and BulletSim. Abstractly, we want to improve the overall 
performance of physics in our grids. Specifically, we turn to PhysX for its 
internal multi-threaded capabilities (not just relying on physics being 
executed on a separate thread from the OpenSim core), optimized performance 
with the use of dedicated GPUs, and the potential to bring more realistic 
physics to the system (vehicle movement, n-bodied physics, etc). Upon 
completion of this effort, the integrated code will be shared with the 
community.

PhysX: http://www.geforce.com/hardware/technology/physx
MOSES: http://www.militarymetaverse.org/

Best regards,
Sean Mondesire, Ph.D.
MOSES: Virtual World Research Team

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




--
Michael Emory Cerquoni

___
Opensim-dev mailing list
Opensim-dev@opensimulator.orgmailto:Opensim-dev@opensimulator.org
http://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


Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-16 Thread Michael Emory Cerquoni
Sounds great Sean, however I must say that submitting monolithic patches
into OpenSimulator is not something we tend to accept or encourage, it
would be considerably better if development was actively done in smaller
pieces so it could be tested on a very wide audience as development is
occurring so that the OpenSimulator team can have a say in the process and
help out with testing as well, I hardly speak for the entire collective but
I can offer my perspective on things being involved in this project from
nearly the beginning, I do look forward to seeing what you guys can come up
with and I do hope you consider working closer with the OpenSimulator
development team and not try to pull off this massive feat in a closed
environment, I would hate to see all this work be done and then not end up
in OpenSimulator code base.

On Mon, Mar 16, 2015 at 11:49 AM, Sean M mondesire.s...@gmail.com wrote:

 Greetings,

 The MOSES Team has begun the integration of Nvidia's PhysX physics engine
 into OpenSim. The effort's motivation stems from a deep review of the
 capabilities PhysX can bring the simulator and a number of discovered
 limitations that exists with ODE and BulletSim. Abstractly, we want to
 improve the overall performance of physics in our grids. Specifically, we
 turn to PhysX for its internal multi-threaded capabilities (not just
 relying on physics being executed on a separate thread from the OpenSim
 core), optimized performance with the use of dedicated GPUs, and the
 potential to bring more realistic physics to the system (vehicle movement,
 n-bodied physics, etc). Upon completion of this effort, the integrated code
 will be shared with the community.

 PhysX: http://www.geforce.com/hardware/technology/physx
 MOSES: http://www.militarymetaverse.org/

 Best regards,
 Sean Mondesire, Ph.D.
 MOSES: Virtual World Research Team

 ___
 Opensim-dev mailing list
 Opensim-dev@opensimulator.org
 http://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


Re: [Opensim-dev] PhysX Integration into OpenSim

2015-03-16 Thread Sean M
Thanks for the response Michael. Our PhysX-OpenSim development is now
underway. We wanted to make the announcement and let the dev community know
of our plans to share the fruit of our labor.

On Mon, Mar 16, 2015 at 11:56 AM, Michael Emory Cerquoni 
nebadon2...@gmail.com wrote:

 Sounds great Sean, however I must say that submitting monolithic patches
 into OpenSimulator is not something we tend to accept or encourage, it
 would be considerably better if development was actively done in smaller
 pieces so it could be tested on a very wide audience as development is
 occurring so that the OpenSimulator team can have a say in the process and
 help out with testing as well, I hardly speak for the entire collective but
 I can offer my perspective on things being involved in this project from
 nearly the beginning, I do look forward to seeing what you guys can come up
 with and I do hope you consider working closer with the OpenSimulator
 development team and not try to pull off this massive feat in a closed
 environment, I would hate to see all this work be done and then not end up
 in OpenSimulator code base.

 On Mon, Mar 16, 2015 at 11:49 AM, Sean M mondesire.s...@gmail.com wrote:

 Greetings,

 The MOSES Team has begun the integration of Nvidia's PhysX physics engine
 into OpenSim. The effort's motivation stems from a deep review of the
 capabilities PhysX can bring the simulator and a number of discovered
 limitations that exists with ODE and BulletSim. Abstractly, we want to
 improve the overall performance of physics in our grids. Specifically, we
 turn to PhysX for its internal multi-threaded capabilities (not just
 relying on physics being executed on a separate thread from the OpenSim
 core), optimized performance with the use of dedicated GPUs, and the
 potential to bring more realistic physics to the system (vehicle movement,
 n-bodied physics, etc). Upon completion of this effort, the integrated code
 will be shared with the community.

 PhysX: http://www.geforce.com/hardware/technology/physx
 MOSES: http://www.militarymetaverse.org/

 Best regards,
 Sean Mondesire, Ph.D.
 MOSES: Virtual World Research Team

 ___
 Opensim-dev mailing list
 Opensim-dev@opensimulator.org
 http://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


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