PAL (software)
   HOME

TheInfoList



OR:

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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
cross-platform Within 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 platform, computing platforms. Some ...
physical simulation A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
abstraction system. It is similar to a
physics engine A physics engine is computer software that provides an approximate simulation of certain physical systems, typically classical dynamics, including rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics. I ...
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 Dynamical system simulation or dynamic system simulation is the use of a computer program to model the time-varying behavior of a dynamical system. The systems are typically described by ordinary differential equations or partial differential equ ...
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 negligible, when a deforming pressure or deforming force is applied on it. The distance between any two given points on a rigid body rema ...
,
liquids Liquid is a state of matter with a definite volume but no fixed shape. Liquids adapt to the shape of their container and are nearly incompressible, maintaining their volume even under pressure. The density of a liquid is usually close to th ...
, soft body,
ragdoll The Ragdoll is a List of cat breeds, breed of cat with a distinct Point coloration, colorpoint coat and blue eyes. Its Morphology (biology), morphology is large and weighty, and it has a semi-long and silky soft coat. American breeder Ann Baker ...
, and
vehicle dynamics Vehicle dynamics is the study of vehicle motion, e.g., how a vehicle's forward movement changes in response to driver inputs, propulsion system outputs, ambient conditions, air/surface/water conditions, etc. Vehicle dynamics is a part of engineer ...
. PAL features a simple C++
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
and intuitive objects (e.g.
Solids Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
,
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 machine element, component of a machine that produces force, torque, or Displacement (geometry), displacement, when an electrical, Pneumatics, pneumatic or Hydraulic fluid, hydraulic input is supplied to it in a system (called an ...
s,
Sensor A sensor is often defined as a device that receives and responds to a signal or stimulus. The stimulus is the quantity, property, or condition that is sensed and converted into electrical signal. In the broadest definition, a sensor is a devi ...
s, and
Materials A 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 ge ...
). 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 data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-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 A physics engine is computer software that provides an approximate simulation of certain physical systems, typically classical dynamics, including rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics. It i ...
to see which engine provides their needs, as well as quickly testing a new engine. *
Portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide a ...
– 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 program 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 imple ...
provider is acquired by another company or development is discontinued, developers can switch engines. *
Scalable Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system. In an economic context, a scalable business model implies that ...
– The abstraction layer allows developers to run their code on handheld
console Console may refer to: Computing and video games * System console, a physical device to operate a computer ** Virtual console, a user interface for multiple computer consoles on one device ** Command-line interface, a method of interacting with ...
platforms up to supercomputers. * Ease of use – Implementation details of the physics engine are abstracted, providing a cleaner interface to the developer. *
Benchmarking Benchmarking is the practice of comparing business processes and performance metrics to industry bests and best practices from other companies. Dimensions typically measured are Project management triangle, quality, time and cost. Benchmarking is ...
– Researchers can directly compare the performance of various dynamic simulations systems. PAL is designed with a pluggable
abstract factory The abstract factory pattern in software engineering is a design pattern that provides a way to create families of related objects without imposing their concrete classes, by encapsulating a group of individual factories that have a common theme w ...
allowing code to be written and compiled once and allowing runtime selection of different
physics engine A physics engine is computer software that provides an approximate simulation of certain physical systems, typically classical dynamics, including rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics. I ...
s, as well as feature upgrades.


Supported engines

PAL supports multiple
physics engine A physics engine is computer software that provides an approximate simulation of certain physical systems, typically classical dynamics, including rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics. I ...
s, including: *
Box2D Box2D is a free software, free Open-source software, open source Dimension, 2-dimensional Physics engine, physics simulator game engine, engine written in C (programming language), C by Erin Catto and published under the MIT license. It has been ...
*
Bullet A bullet is a kinetic projectile, a component of firearm ammunition that is shot from a gun barrel. They are made of a variety of materials, such as copper, lead, steel, polymer, rubber and even wax; and are made in various shapes and constru ...
* Newton Game Dynamics *
Open Dynamics Engine The Open Dynamics Engine (ODE) is a physics engine written in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine. It is free software licensed both under the BSD license and the LGPL. OD ...
*
PhysX PhysX is an Open-source software, open-source Real-time computer graphics, realtime physics engine middleware Software development kit, SDK developed by Nvidia as part of the Nvidia GameWorks software suite. Initially, video games supporting Ph ...
(formerly NovodeX and incorporating Meqon) * Tokamak physics engine


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 data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...


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