The Physics Abstraction Layer (PAL) is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
physical simulation API abstraction system. It is similar to a
physics engine wrapper, however it is far more flexible providing extended abilities. 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. It supports a number of
dynamic simulation methodologies, including
rigid body
In physics, a rigid body (also known as a rigid object) is a solid body in which deformation is zero or so small it can be neglected. The distance between any two given points on a rigid body remains constant in time regardless of external fo ...
,
liquids,
soft body,
ragdoll, and
vehicle dynamics. PAL features a simple
C++ API and intuitive objects (e.g.
Solids,
Joints
A joint or articulation (or articular surface) is the connection made between bones, ossicles, or other hard structures in the body which link an animal's skeletal system into a functional whole.Saladin, Ken. Anatomy & Physiology. 7th ed. McGraw- ...
,
Actuator
An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system, for example by opening a valve. In simple terms, it is a "mover".
An actuator requires a control device (controlled by control signal) a ...
s,
Sensors, and
Materials
Material is a substance or mixture of substances that constitutes an object. Materials can be pure or impure, living or non-living matter. Materials can be classified on the basis of their physical and chemical properties, or on their geologica ...
). It also features
COLLADA,
Scythe Physics Editor, and
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
-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
physics 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
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement c ...
provider is acquired by another company or development is discontinued, developers can switch engines.
*
Scalable – 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.
*
Benchmarking – Researchers can directly compare the performance of various
dynamic simulations systems.
PAL is designed with a
pluggable abstract factory
The abstract factory pattern provides a way to encapsulate a group of individual factory object, factories that have a common theme without specifying their concrete classes. In normal usage, the client software creates a concrete implementation of ...
allowing code to be written and compiled once and allowing runtime selection of different
physics engines, as well as feature upgrades.
Supported engines
PAL supports multiple
physics engines, including:
*
Box2D
*
Bullet
A bullet is a kinetic projectile, a component of firearm ammunition that is shot from a gun barrel. Bullets are made of a variety of materials, such as copper, lead, steel, polymer, rubber and even wax. Bullets are made in various shapes and ...
*
Newton Game Dynamics
*
Open Dynamics Engine
*
PhysX (formerly NovodeX and incorporating
Meqon)
*
Tokamak physics engine
The Tokamak Game Physics SDK is an open-source physics engine.
At its beginnings, Tokamak was free for non commercial uses only. Since May 2007, it has become open sourced under a BSD License. Now it can be used under BSD or Zlib license, in ...
Supported file formats
PAL supports multiple file formats, including:
*
COLLADA
*
Scythe Physics Editor file format
*
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
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. Care should be taken when deciding on which engine to actually use though, since engines may be tweaked in ways which PAL doesn't support.
References
External links
*
Interactive PAL benchmark
{{Physics engines
Computer physics engines