[Opensim-dev] Prospective ODE physics changes

Justin Clark-Casey jjustincc at googlemail.com
Tue Jan 3 21:32:24 UTC 2012


On 02/01/12 20:56, Melanie wrote:
> Hi,
>
> On 02/01/2012 21:51, Justin Clark-Casey wrote:
>> I'm thinking of making two ODE related changes.
>>
>> 1) Replace the current ODE libraries in OpenSimulator with ones compiled using the older GIMPACT collider instead of
>> OPCODE.  This is to address ODE crashes in simulators with more than one region as detailed in [1] and [2].  These don't
>> appear to occur with GIMPACT.
>
> I'm not happy with that as a general decision. We should, if
> anything like that is done, include both versions to give users the
> choice. The OPCODE should remain the default in order to not
> jeopardize existing setups and the GIMPACT libs can be copied in by
> those experiencing the bug.
> Many people don't run multiregion at all and would see only
> downsides if this were done.

Multi-region is a non-experimental configuration that is useful to a large number of people.  In my view, it's not 
correct for out-of-the-box OpenSimulator to continue with such crashes in the long term.  This hurts adoption and 
ultimate long-term success/survival.

However, it just so happens that on scouring the Internet, GIMPACT is actually the newer collider, as per [1].  I don't 
know why I thought it was the other way around - I may have misinterpreted something that somebody said.

Indeed, apparently for our common use case (mostly static objects), GIMPACT should perform better, so I was also wrong 
about the performance issue.  However, as I said, in my own testing I haven't yet noticed any significant difference and 
these questions are complex ones.  But it's certainly my experience that using GIMPACT eliminates the ODE crashes in 
stress-testing, possibly due to something connected with [2] where global object caches are shared between collision 
spaces.  But this is still a wild-assed guess (we can't use TLS as OpenSim crashes immediately upon startup).

>
>> 2) Reducing contacts_per_collision in [ODEPhysicsSettings] from 80 to something much lower, maybe even 1.  In my own
>> testing, reducing this number can halve scene physics time.  Normal avatar operations, such as standing on prims or
>> walking up ramps appear to be unaffected even at 1.  However, more testing is probably needed to arrive at a compromise
>> number.
>
> This would greatly affect scripts using physics. I believe the
> optimum would be 16-20, which would ensure that the scripting
> maximum (16) collision contacts are always available.

According to [2], the maximum reported scripting collision contacts is 8.

Testing with 8 on Wright Plaza today in the Tuesday meeting seemed to greatly reduce physics scene time compared to 
previously without any apparent loss of required fidelity (50ms with 18 avatars, albeit mostly sitting down - 
unfortunately I didn't record previous week's numbers but they were higher.  Nebadon tested one of his vehicles).

Testing will continue on the osgrid plazas.

[1] http://www.ode.org/old_list_archives/2006-October/020664.html
[2] http://groups.google.com/group/ode-users/browse_thread/thread/f38c56584c650536#
[3] http://wiki.secondlife.com/wiki/Collision

-- 
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc



More information about the Opensim-dev mailing list