Physics Abstraction Layer
Encyclopedia
The Physics Abstraction Layer (PAL) is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 physical simulation API abstraction system. It is similar to a physics engine
Physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

 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 simulation
Dynamical simulation, in computational physics, is the simulation of systems of objects that are free to move, usually in three dimensions according to Newton's laws of dynamics, or approximations thereto...

 methodologies, including rigid body
Rigid body dynamics
In physics, rigid body dynamics is the study of the motion of rigid bodies. Unlike particles, which move only in three degrees of freedom , rigid bodies occupy space and have geometrical properties, such as a center of mass, moments of inertia, etc., that characterize motion in six degrees of...

, liquids
Computational fluid dynamics
Computational fluid dynamics, usually abbreviated as CFD, is a branch of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows. Computers are used to perform the calculations required to simulate the interaction of liquids and gases with...

, soft body
Soft body dynamics
Soft body dynamics is a field of computer graphics that focuses on visually realistic physical simulations of the motion and properties of deformable objects . The applications are mostly in video games and film. Unlike in simulation of rigid bodies, the shape of soft bodies can change, meaning...

, ragdoll
Ragdoll physics
In computer physics engines, ragdoll physics is a type of procedural animation that is often used as a replacement for traditional static death animations.-Introduction:Early video games used manually-created animations for characters' death sequences...

 and vehicle dynamics
Vehicle dynamics
Vehicle dynamics refers to the dynamics of vehicles, here assumed to be ground vehicles. Vehicle dynamics is a part of engineering primarily based on classical mechanics but it may also involve chemistry, solid state physics, electrical engineering, communications, psychology, control theory,...

. PAL features a simple C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

, intuitive objects (e.g. Solids
Rigid body
In physics, a rigid body is an idealization of a solid body of finite size in which deformation is neglected. In other words, the distance between any two given points of a rigid body remains constant in time regardless of external forces exerted on it...

, Joints
Multibody system
A multibody system is used to model the dynamic behavior of interconnected rigid or flexible bodies, each of which may undergo large translational and rotational displacements.- Introduction :...

, Actuator
Actuator
An actuator is a type of motor for moving or controlling a mechanism or system. It is operated by a source of energy, usually in the form of an electric current, hydraulic fluid pressure or pneumatic pressure, and converts that energy into some kind of motion. An actuator is the mechanism by which...

s, Sensor
Sensor
A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. For example, a mercury-in-glass thermometer converts the measured temperature into expansion and contraction of a liquid which can be read on a calibrated...

s, Materials
Friction
Friction is the force resisting the relative motion of solid surfaces, fluid layers, and/or material elements sliding against each other. There are several types of friction:...

), and COLLADA
COLLADA
COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

, Scythe Physics Editor
Scythe Physics Editor
Scythe is a free software physics modeling program. It allows the merging of physics and graphics content in one package. It provides native support for modeling the rigid body physics for the Newton Game Dynamics, the Open Dynamics Engine and PhysX engine...

 and XML
Extensible Markup Language
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

-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
    Porting
    In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...

     - 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
    Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

     provider is acquired by another company or development is discontinued, developers can switch engines.
  • Scalable
    Scalability
    In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...

     - The abstraction layer allows developers to run their code on handheld console
    Video game console
    A video game console is an interactive entertainment computer or customized computer system that produces a video display signal which can be used with a display device to display a video game...

     platforms up to supercomputers.
  • Ease of use - Implementation details of the physics engine are abstracted, providing a cleaner interface to the developer.
  • Benchmarking
    Benchmark (computing)
    In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it...

     - Researchers can directly compare the performance of various dynamic simulations
    Dynamical simulation
    Dynamical simulation, in computational physics, is the simulation of systems of objects that are free to move, usually in three dimensions according to Newton's laws of dynamics, or approximations thereto...

     systems.


PAL is designed with a pluggable abstract factory
Abstract factory pattern
The abstract factory pattern is a software design pattern that provides a way to encapsulate a group of individual factories that have a common theme. In normal usage, the client software creates a concrete implementation of the abstract factory and then uses the generic interfaces to create the...

 allowing code to be written and compiled once and allowing runtime selection of different physics engine
Physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

s, as well as feature upgrades.

Supported engines

PAL supports multiple physics engine
Physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

s, including:
  • Box2D
    Box2D
    Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the zlib license. It has been used in Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Angry Birds, Tiny Wings, Transformice, Stripe physics2, and many online Flash...

  • Bullet
    Bullet (software)
    Bullet is an open source physics engine featuring 3D collision detection, soft body dynamics, and rigid body dynamics. It is used in games, and in visual effects in movies. The Bullet physics library is published under the zlib license. Erwin Coumans, its main author, worked for Sony Computer...

  • Newton Game Dynamics
    Newton Game Dynamics
    Newton Game Dynamics is an open source physics engine for realistically simulating rigid bodies in games and other real-time applications. Its solver is deterministic and not based on traditional LCP or iterative methods....

  • Open Dynamics Engine
    Open Dynamics Engine
    The Open Dynamics Engine is a physics engine in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine...

  • PhysX
    PhysX
    PhysX is a proprietary realtime physics engine middleware SDK developed by Ageia with the purchase of ETH Zurich spin-off NovodeX in 2004...

     (formerly NovodeX and incorporating Meqon)
  • Tokamak physics engine
    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...


Supported file formats

PAL supports multiple file formats, including:
  • COLLADA
    COLLADA
    COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

  • Scythe Physics Editor
    Scythe Physics Editor
    Scythe is a free software physics modeling program. It allows the merging of physics and graphics content in one package. It provides native support for modeling the rigid body physics for the Newton Game Dynamics, the Open Dynamics Engine and PhysX engine...

     file format
  • XML
    Extensible Markup Language
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....


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.

See also

  • Physics engine
    Physics engine
    A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

  • COLLADA
    COLLADA
    COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

    , a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications, also features physics support
  • OPAL (Open Physics Abstraction Layer)
    OPAL (software)
    The Open Physics Abstraction Layer is an open source realtime physics engine API similar to PAL. It is currently supported only by ODE, but can be extended to run off of other engines. OPAL is free software, released under both the LGPL and the BSD license...

    , a free (LGPL and BSD licensed) and open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

     cross-platform
    Cross-platform
    In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

     physics engine API
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

     abstraction system
  • Havok Physics / Havok FX
    Havok (software)
    Havok Physics is a physics engine developed by Irish company Havok. It is designed primarily for video games, and allows for real-time collision and dynamics of rigid bodies in three dimensions. It provides multiple types of dynamic constraints between rigid bodies , and has a highly optimized...

    , commercial physics engine middleware
    Middleware
    Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

     SDK
    Software development kit
    A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

     for computer and video games
  • PhysX
    PhysX
    PhysX is a proprietary realtime physics engine middleware SDK developed by Ageia with the purchase of ETH Zurich spin-off NovodeX in 2004...

     SDK, commercial real-time
    Real-time computing
    In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

     physics engine middleware
    Middleware
    Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

     SDK
    Software development kit
    A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

     developed by AGEIA
    AGEIA
    Ageia, founded in 2002, was a fabless semiconductor company. Ageia invented PhysX – a Physics Processing Unit chip capable of performing game physics calculations much faster than general purpose CPUs; they also licensed out the PhysX SDK , a large physics middleware library for game...

    • AGEIA
      AGEIA
      Ageia, founded in 2002, was a fabless semiconductor company. Ageia invented PhysX – a Physics Processing Unit chip capable of performing game physics calculations much faster than general purpose CPUs; they also licensed out the PhysX SDK , a large physics middleware library for game...

       also designed a dedicated PPU
      Physics processing unit
      A physics processing unit is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games. Examples of calculations involving a PPU might include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and...

       (Physics Processing Unit) expansion card designed to accelerate the PhysX SDK
  • Physics Processing Unit
    Physics processing unit
    A physics processing unit is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games. Examples of calculations involving a PPU might include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and...

    (PPU)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK