[Opensim-dev] Mega Regions and PAL support in OpenSim?

Frisby, Adam adam at deepthink.com.au
Thu Oct 1 01:36:13 UTC 2009


I wont speak for him here, but Teravus has looked at PAL repeatedly in the past with a general result of 'Not ready yet, check again later.'

Adam

From: opensim-dev-bounces at lists.berlios.de [mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of Dahlia Trimble
Sent: Wednesday, 30 September 2009 6:24 PM
To: opensim-dev at lists.berlios.de
Subject: Re: [Opensim-dev] Mega Regions and PAL support in OpenSim?

OpenSim already has an abstraction layer for physics engines, and several engines have been interfaced already. ODE is probably the most complete implementation. There are also some implementations that exist outside of core, most notably the Mica N-body simulation on forge.

We're watching PAL and may consider it when we find it to be sufficient for use with OpenSim. Another factor to consider is the majority of OpenSim developers are unpaid volunteers and it's difficult to find people who have the knowledge and expertise for implementing physics simulations and are willing to donate their time and services. If you have this expertise or know of someone else who would be willing to help implement PAL then please do consider creating a PAL module and donating it to the community.
On Wed, Sep 30, 2009 at 5:24 PM, Mark Malewski <mark.malewski at gmail.com<mailto:mark.malewski at gmail.com>> wrote:


What are your thoughts about implementing PAL into OpenSim?




The Physics Abstraction Layer<http://pal.sourceforge.net/> (PAL) provides a unified interface to a number of different physics engines. This enables the use of multiple physics engines within one application. It is not just a simple physics wrapper, but provides an extensible plug-in architecture for the physics system, as well as extended functionality for common simulation components.

PAL provides a number of benefits to game and simulation developers. First of all PAL is veryeasy to use, so you can easily integrate physics into your application. Secondly, it does not restrict you to one particular physics engine. This gives you more flexibility, allowing you to easily upgrade your physics system if you decide to pursue a commercial engine, select different engines for alternative platforms, or swap to another engine if the physics engine developers stop development and support for their engine. This flexibility allows you to choose the engine that gives you the best performance for your application. Finally, PAL has an extensive set of common features such as simulating different devices or loading physics configurations from XML, COLLADA<http://www.collada.org/> and Scythe<http://www.physicseditor.com/> files.

PAL makes physics development FLEXIBLE, FAST and EASY.
PAL supports a large number of physics engines<http://www.adrianboeing.com/pal/engines.html>. It provides a unique interface for:

 *   Physics Engines

    *   Box2D<http://www.adrianboeing.com/pal/engines.html#box2d> (experimental)
    *   Bullet<http://www.adrianboeing.com/pal/engines.html#bullet>
    *   Dynamechs<http://www.adrianboeing.com/pal/engines.html#dynamechs>(deprecated)
    *   Havok<http://www.adrianboeing.com/pal/engines.html#havok> (experimental)
    *   IBDS<http://www.adrianboeing.com/pal/engines.html#ibds> (experimental)
    *   JigLib<http://www.adrianboeing.com/pal/engines.html#jig>
    *   Meqon<http://www.adrianboeing.com/pal/engines.html#meqon>(deprecated)
    *   Newton<http://www.adrianboeing.com/pal/engines.html#newton>
    *   ODE<http://www.adrianboeing.com/pal/engines.html#ode>
    *   OpenTissue<http://www.adrianboeing.com/pal/engines.html#ot>
    *   PhysX (a.k.a Novodex, Ageia PhysX, nVidia PhysX)<http://www.adrianboeing.com/pal/engines.html#novodex>
    *   Simple Physics Engine<http://www.adrianboeing.com/pal/engines.html#spe>
    *   Tokamak<http://www.adrianboeing.com/pal/engines.html#tokamak>
    *   TrueAxis<http://www.adrianboeing.com/pal/engines.html#trueaxis>

 *   File Formats

    *   Collada<http://www.adrianboeing.com/pal/benchmark.html#COLLADA>
    *   Scythe<http://www.adrianboeing.com/pal/benchmark.html#Scythe>
    *   PAL XML(deprecated)

 *   Collision subsystem
 *   Solver subsystem (Multithreaded / Hardware acceleration)
 *   Bodies (Static and Dynamic)

    *   Box
    *   Capsule
    *   Compound Bodies
    *   Convex
    *   Sphere

 *   Geometries

    *   Box
    *   Capsule
    *   Convex Mesh
    *   Concave Mesh (Terrain)
    *   Height field (Terrain)
    *   Plane (Terrain)
    *   Sphere

 *   Links

    *   Spherical (Ball and Socket) Link
    *   Revolute (Hinge) Link
    *   Prismatic (Slider) Link
    *   Generic 6DOF Link

 *   Sensors

    *   Contact
    *   Compass (Angular position)
    *   GPS (Global Positioning System - Position)
    *   Gyroscope (Angular velocity)
    *   Inclinometer (Angular position)
    *   PSD (Position Sensitive Device - Ray casting)
    *   Sonar (Ray casting)
    *   Velocimeter (Linear velocity)
    *   Transponder (Distance between two objects)

 *   Actuators

    *   Force actuator (Generic)
    *   DC Motor
    *   Servo Motor
    *   Hydrofoil
    *   Propeller
    *   Spring

 *   Fluids

    *   Particle Fluids (SPH)
    *   Grid-Based Fluids (Dampened Shallow Wave)
    *   Buoyancy Force
    *   Drag & Lift Forces

 *   Vehicles


Physics Abstraction Layer:

http://www.adrianboeing.com/pal/index.html


           Mark


On Wed, Sep 30, 2009 at 7:10 PM, Mark Malewski <mark.malewski at gmail.com<mailto:mark.malewski at gmail.com>> wrote:
Toni,

With the "MegaRegions" support it allows regions that are 8,192m x 8,192m (instead of 256m x 256m), which would be great for vehicles and boats.

The new "MegaRegions" is the equivalent of up to 1,024 of the old size regions!

So I think that is a VERY decent size, and that would solve the "handshake" problem between the old small 256m x 256m regions.

The new larger MegaRegions would eliminate the current border crossings problem.

MegaRegions seems to be in the OpenSim Trunk right now.  A 1,024 region system (8,192m x 8,192m) would only require about 5GB of memory to host.  You can make regions any size (it's only dependent upon the amount of ram the server has).

So I think this is a great idea, and I can't imagine anyone wanting to host more than 1,024 regions on a single server.  I have dual quad-core XEON's (8-cores) and 32GB of ram, and I think this would be great for hosting a single 1,024 region RealXtend demo region!

Is there any possibility we can get this new MegaRegions feature implemented and to work properly with OpenSim/ModRex?

Also, what are your thoughts of replacing the OpenSim/ModRex Physics subsystem with PAL?

Using PAL (Physics Abstraction Layer), it is an OpenSource wrapper for several physics engines (allowing for seamless integration of Bullet, JigLib, Newton, ODE, nVidia PhysX, Tokamak, and TrueAxis).  PAL also has experimental support for Box2D, Havok, IBDS, OpenTissue and Simple Physics Engine.

But if we implemented PAL into RealXtend, at least we could have seamless integration of multiple Physics engines (including PhysX), and with PhysX we could have hardware accelerated Physics, and if you have a server with a GeForce 8000 series card or higher then the graphics card would perform all the Physics calculations, thus taking the load off of the CPU (greatly reducing the lag).

If we get into a sim with racing or boating, we definitely want hardware-accelerated physics, or at least something better than what ODE can handle.  The use of the Physics Abstraction Layer would definitely open up new possibilities and streamline the physics code (allowing various physics engines to be used).

PhysX and Havok are free for personal use.  What are your thoughts on implementing PAL into RealXtend/ModRex, and implementing the OpenSim MegaRegion support into RealXtend/ModRex?

I believe these are the only three major hurdles that we have left (the Naali Viewer, MegaRegion support, and PAL support).

What are your thoughts on this?

                  Mark



_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de<mailto:Opensim-dev at lists.berlios.de>
https://lists.berlios.de/mailman/listinfo/opensim-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20090930/e41f6f7d/attachment-0001.html>


More information about the Opensim-dev mailing list