Physics Abstraction Layer
The Physics Abstraction Layer (PAL) is an open source cross platform physics engine API abstraction system. PAL is free software, released under the BSD license.
PAL is a high-level interface for low-level physics engines used in games, simulation systems, and other 3D applications. Features a simple C++ API, intuitive objects (e.g. Solids, Joints, Actuators, Sensors, Materials), and COLLADA and XML-based file storage.
The Physics Abstraction Layer provides a number of benefits over directly using a physics engine:
- Flexibility - It allows developers to switch between different physical engines to see which engine provides their needs, as well as quickly testing a new engine.
- Portable - Developers are able to use the physics engine which provides the best performance for different platforms, and are able to write platform independent code.
- Security - If a middleware provider is acquired by another company or development is discontinued, developers can switch engines.
- Scaleable - The abstraction layer allows developers to run their code on handheld console platforms up to supercomputers
- Ease of use - Implementation details of the physics engine are abstracted, providing a cleaner interface to the developer
PAL is designed with a pluggable abstract factory allowing code to be written and compiled once and allowing runtime selection of a different physics engines, as well as feature upgrades.
Supported Engines
PAL supports multiple physics engines, including:
- Bullet
- DynaMechs
- JigLib
- Newton Game Dynamics
- Open Dynamics Engine
- OpenTissue
- PhysX (formerly NovodeX and incorporating Meqon)
- Tokamak physics engine
- True Axis
Benchmark
The PAL project provides a set of standard benchmarks allowing developers to directly compare the physics engines and select the engine that provides the best solution in terms of computational efficiency and physical accuracy.
See also
- COLLADA, a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications, also features physics supports.
- OPAL (Open Physics Abstraction Layer), a free (LGPL and BSD licensed) and open source cross platform physics engine API abstraction system.
- Havok Physics / Havok FX, commercial physics engine middleware SDK for computer and video games
- PhysX SDK, commercial realtime physics engine middleware SDK developed by AGEIA
- Physics Processing Unit (PPU)