<div>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.</div>

<div> </div>
<div>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.<br>
<br></div>
<div class="gmail_quote">On Wed, Sep 30, 2009 at 5:24 PM, Mark Malewski <span dir="ltr"><<a href="mailto:mark.malewski@gmail.com">mark.malewski@gmail.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><br><br>
<div class="gmail_quote">
<div> </div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>
<div>What are your thoughts about implementing PAL into OpenSim?</div>
<div><br></div>
<div><br></div></div><br><span style="LINE-HEIGHT: 19px; FONT-FAMILY: verdana">
<p style="PADDING-BOTTOM: 2ex; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex">The <a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://pal.sourceforge.net/" target="_blank">Physics Abstraction Layer</a> (<b>PAL</b>) 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.</p>

<p style="PADDING-BOTTOM: 2ex; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex"><b>PAL</b> provides a number of benefits to game and simulation developers. First of all <b>PAL</b> is very<i>easy to use</i>, so you can easily integrate physics into your application. Secondly, it does not restrict you to one particular physics engine. This gives you more <i>flexibility</i>, 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 <i>performance</i> for your application. Finally, <b>PAL</b> has an extensive set of <i>common features</i> such as simulating different devices or loading physics configurations from XML, <a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.collada.org/" target="_blank">COLLADA</a> and <a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.physicseditor.com/" target="_blank">Scythe</a> files.</p>

<p style="PADDING-BOTTOM: 2ex; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex"><b>PAL</b> makes physics development <i><b>FLEXIBLE</b>, <b>FAST</b> and <b>EASY</b></i>.</p></span>
<div>
<div><span style="LINE-HEIGHT: 19px; FONT-FAMILY: verdana">PAL supports a large number of <a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html" target="_blank">physics engines</a>. It provides a unique interface for: 
<ul>
<li>Physics Engines 
<ul>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#box2d" target="_blank">Box2D</a> (experimental)</li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#bullet" target="_blank">Bullet</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#dynamechs" target="_blank"><strike>Dynamechs</strike></a>(deprecated)</li>

<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#havok" target="_blank">Havok</a> (experimental)</li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#ibds" target="_blank">IBDS</a> (experimental)</li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#jig" target="_blank">JigLib</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#meqon" target="_blank"><strike>Meqon</strike></a>(deprecated)</li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#newton" target="_blank">Newton</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#ode" target="_blank">ODE</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#ot" target="_blank">OpenTissue</a> </li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#novodex" target="_blank">PhysX (a.k.a Novodex, Ageia PhysX, nVidia PhysX)</a></li>

<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#spe" target="_blank">Simple Physics Engine</a> </li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#tokamak" target="_blank">Tokamak</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/engines.html#trueaxis" target="_blank">TrueAxis</a></li></ul></li>
<li>File Formats 
<ul>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/benchmark.html#COLLADA" target="_blank">Collada</a></li>
<li><a style="BORDER-BOTTOM: rgb(0,102,204) 1px solid; COLOR: rgb(0,102,204); TEXT-DECORATION: none" href="http://www.adrianboeing.com/pal/benchmark.html#Scythe" target="_blank">Scythe</a></li>
<li><strike>PAL XML</strike>(deprecated)</li></ul></li>
<li>Collision subsystem</li>
<li>Solver subsystem (Multithreaded / Hardware acceleration)</li>
<li>Bodies (Static and Dynamic) 
<ul>
<li>Box</li>
<li>Capsule</li>
<li>Compound Bodies</li>
<li>Convex</li>
<li>Sphere</li></ul></li>
<li>Geometries 
<ul>
<li>Box</li>
<li>Capsule</li>
<li>Convex Mesh</li>
<li>Concave Mesh (Terrain)</li>
<li>Height field (Terrain)</li>
<li>Plane (Terrain)</li>
<li>Sphere</li></ul></li>
<li>Links 
<ul>
<li>Spherical (Ball and Socket) Link</li>
<li>Revolute (Hinge) Link</li>
<li>Prismatic (Slider) Link</li>
<li>Generic 6DOF Link</li></ul></li>
<li>Sensors 
<ul>
<li>Contact</li>
<li>Compass (Angular position)</li>
<li>GPS (Global Positioning System - Position)</li>
<li>Gyroscope (Angular velocity)</li>
<li>Inclinometer (Angular position)</li>
<li>PSD (Position Sensitive Device - Ray casting)</li>
<li>Sonar (Ray casting)</li>
<li>Velocimeter (Linear velocity)</li>
<li>Transponder (Distance between two objects)</li></ul></li>
<li>Actuators 
<ul>
<li>Force actuator (Generic)</li>
<li>DC Motor</li>
<li>Servo Motor</li>
<li>Hydrofoil</li>
<li>Propeller</li>
<li>Spring</li></ul></li>
<li>Fluids 
<ul>
<li>Particle Fluids (SPH)</li>
<li>Grid-Based Fluids (Dampened Shallow Wave)</li>
<li>Buoyancy Force</li>
<li>Drag & Lift Forces</li></ul></li>
<li>Vehicles</li></ul></span></div>
<div><br></div>
<div><br></div>
<div>
<div>Physics Abstraction Layer:</div>
<div><br></div>
<div><a href="http://www.adrianboeing.com/pal/index.html" target="_blank">http://www.adrianboeing.com/pal/index.html</a></div></div>
<div><br></div></div><font color="#888888">
<div><br></div>
<div>           Mark</div></font>
<div>
<div></div>
<div>
<div><br></div><br>
<div class="gmail_quote">On Wed, Sep 30, 2009 at 7:10 PM, Mark Malewski <span dir="ltr"><<a href="mailto:mark.malewski@gmail.com" target="_blank">mark.malewski@gmail.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><span style="BORDER-COLLAPSE: collapse">Toni, 
<div><br></div>
<div>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.</div>
<div><br></div>
<div>The new "MegaRegions" is the equivalent of up to 1,024 of the old size regions!</div>
<div><br></div>
<div>So I think that is a VERY decent size, and that would solve the "handshake" problem between the old small 256m x 256m regions.</div>
<div><br></div>
<div>The new larger MegaRegions would eliminate the current border crossings problem.</div>
<div><br></div>
<div>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).</div>

<div><br></div>
<div>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! </div>

<div>  </div>
<div>Is there any possibility we can get this new MegaRegions feature implemented and to work properly with OpenSim/ModRex?</div>
<div><br></div>
<div>Also, what are your thoughts of replacing the OpenSim/ModRex Physics subsystem with PAL?</div>
<div><br></div>
<div>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.</div>

<div><br></div>
<div>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).</div>

<div><br></div>
<div>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).</div>

<div><br></div>
<div>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?</div>
<div><br></div>
<div>I believe these are the only three major hurdles that we have left (the Naali Viewer, MegaRegion support, and PAL support).</div>
<div style="COLOR: rgb(80,0,80)">
<div><br></div>
<div>What are your thoughts on this?</div>
<div><br></div></div><font color="#888888">
<div>                  Mark</div></font></span></blockquote></div><br></div></div></blockquote></div><br><br>_______________________________________________<br>Opensim-dev mailing list<br><a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br><br></blockquote></div><br>