Information about Physics Engine
A physics engine is a computer program that simulates Newtonian physics models, using variables such as mass, velocity, friction and wind resistance. It can simulate and predict effects under different conditions that would approximate what happens in real life or in a fantasy world. Its main uses are in scientific simulation and in video games.
There are three major paradigms for physics simulation:
Physics engines have been commonly used on supercomputers since the 1980's to simulate the flowing of atmospheric air and water, in order to predict weather patterns. This is known as computational fluid dynamics modeling, where particles of air are assigned a force vector, and these combined forces are calculated across vast regions of space to show how the overall weather patterns will circulate. Due to the requirements of speed and high precision, special computer processors known as vector processors were developed to accelerate the calculations.
Generally weather prediction is still an inaccurate science because the resolution of the simulated atmosphere is not detailed enough to match real-world conditions, and small fluctuations not modeled in the simulation can drastically change the predicted results after several days.
Similar fluid dynamic modeling is also commonly used for designing new types of aircraft and watercraft, and can provide engineers the information that used to be obtained solely from wind tunnel testing.
Tire manufacturers use physics simulations to examine how new tire tread types will perform under wet and dry conditions, using new tire materials of varying flexibility and under different levels of weight loading.
Electronics manufacturers use fluid dynamic modeling to examine how cooling air will flow through the computer case, to locate thermal hotspots that may need additional cooling.
In the real world, physics is always active. There is a constant brownian motion jitter to all particles in our universe as the forces push back and forth against each other. For a game physics engine, such constant active precision is unnecessary and a waste of the limited CPU power. In the 3D virtual world Second Life, if an object is resting on the floor and the object does not move beyond a certain minimal distance in about two seconds, then the physics calculations are disabled for the object and it becomes frozen in place. It remains frozen until a collision occurs with some other actively physical object, and that reactivates physics processing for the object. This freezing of stable nonmoving objects allows the physics engine to conserve processing power and increase the framerate of other objects currently in motion, but can lead to unusual problems such as a huge slow pendulum freezing in place on the upswing, as it slows down and starts to reverse direction.
The primary limit of physics engine realism is the precision of the numbers representing the position of an object and the forces acting on that object. When the precision is too low, errors can creep into the calculations due to rounding, causing an object to overshoot or undershoot the correct position. These errors are compounded in situations where two free-moving objects are fitted together with a precision that is greater than what the physics engine can calculate. This can lead to an unnatural buildup energy in the object due to the rounding errors, that begins to violently shake and eventually blow the objects apart. Any type of free-moving compound physics object can demonstrate this problem, but it is especially prone to affecting chain links under high tension, and wheeled objects with actively physical bearing surfaces. Higher precision reduces the positional/force errors, but at the cost of greater CPU power needed for the calculations.
Another unusual aspect of physics precision involves the framerate, or the number of moments in time per second when physics is calculated. Each frame is treated as separate from all other frames, and the space between frames is not calculated. A low framerate and a small fast-moving object leads to a situation where the object does not move smoothly through space but in fact seems to teleport from one point in space to the next point in space as each frame is calculated. At sufficiently high speeds a projectile will miss a target, if the target is small enough to fit in the gap between the calculated frames of the fast moving projectile. In Second Life this problem is resolved by making all projectiles as if they were arrows; a long invisible shaft trails behind the bullet so that as the bullet teleports forward, the shaft is long enough to cover the gap between successive teleports of the bullet and collide with any object that might fit between the calculated frames.
Physics based character animation in the past only used rigid body dynamics because they are faster and easier to calculate, but modern games and movies are starting to use soft body physics now that it is possible. Soft body physics are also used for particle effects, liquids and cloth. Some form of limited Fluid dynamics simulation is sometimes provided to simulate water and other liquids as well as the flow of fire and explosions through the air.
An early academic PPU research project[1][2] named SPARTA (simulation of physics on a real-time architecture) was carried out at Penn State [3] and University of Georgia. This was a simple FPGA based PPU that was limited to two dimensions. This project was extended into a considerably more advanced ASIC-based system named HELLAS.
<gallery caption="Academic PPU research projects">
Image:SPARTA_animation.jpg|Example SPARTA animation
Image:SPARTA_board.jpg|SPARTA Printed circuit board
Image:Hellas_die.jpg|Hellas die photo
</gallery>
NVIDIA's GeForce 8 Series supports a new GPU-based Newtonian physics acceleration technology named Quantum Effects Technology - which will compete directly with the PhysX PPU hardware. NVIDIA provides an SDK Toolkit for what they call CUDA™ (Compute Unified Device Architecture) technology that offers both a low and high-level API to the GPU. Few technical details are available about the physics side of it, and it is not yet clear whether this is part of Havok FX SDK, and/or AGEIA PhysX SDK, or a completely separate engine.[3]
ATI & AMD offer a similar SDK for their ATI-based GPUs and that SDK and technology is called CTM™ (Close to Metal™) which provides a hardware interface thin (thin hardware interface). AMD has also announced the AMD Stream Processor product line (combining a CPU and a GPU technology on one chip).
Description
There are generally two classes of physics engines, real-time and high precision. High precision physics engines (or dynamic simulations) require more processing power to calculate very precise physics and are usually used by scientists and computer animated movies. In video games, or other forms of interactive computing, the physics engine will have to simplify its calculations and lower their accuracy so that they can be performed in time for the game to respond at an appropriate rate for gameplay. This is referred to as real-time physics. Computer games use physics engines to ensure realism. Recently, there has been increased interest in the reality of the physics engines in games. This may be the result of advancing processor speeds, allowing the game developer to use realistic physics to add a new level of gameplay while still creating a stunning graphical environment, along with increasing expectations of consumers.There are three major paradigms for physics simulation:
- Penalty methods, where interactions are commonly modeled as mass-spring systems. This type of engine is popular for deformable, or soft-body physics.
- Constraint based methods, where constraint equations are solved that estimate physical laws.
- Impulse based methods, where impulses are applied to object interactions.
Scientific engines
One of the first general purpose computers ENIAC was used as a very simple type of physics engine. It was used to design ballistics tables to help the United States military estimate where artillery shells of various mass would land when fired at varying angles and gunpowder charges, also accounting for drift caused by wind. The results were calculated a single time only, and were tabulated into printed tables handed out to the artillery commanders.Physics engines have been commonly used on supercomputers since the 1980's to simulate the flowing of atmospheric air and water, in order to predict weather patterns. This is known as computational fluid dynamics modeling, where particles of air are assigned a force vector, and these combined forces are calculated across vast regions of space to show how the overall weather patterns will circulate. Due to the requirements of speed and high precision, special computer processors known as vector processors were developed to accelerate the calculations.
Generally weather prediction is still an inaccurate science because the resolution of the simulated atmosphere is not detailed enough to match real-world conditions, and small fluctuations not modeled in the simulation can drastically change the predicted results after several days.
Similar fluid dynamic modeling is also commonly used for designing new types of aircraft and watercraft, and can provide engineers the information that used to be obtained solely from wind tunnel testing.
Tire manufacturers use physics simulations to examine how new tire tread types will perform under wet and dry conditions, using new tire materials of varying flexibility and under different levels of weight loading.
Electronics manufacturers use fluid dynamic modeling to examine how cooling air will flow through the computer case, to locate thermal hotspots that may need additional cooling.
Game engines
In most computer games, speed of simulation is more important than accuracy of simulation. Typically most 3D objects in a game are represented by two separate meshes or shapes. One of these meshes is a highly complex and detailed shape which the player sees in the game, for example a vase with elegant curved and looping handles. However, for purposes of speed, a second highly simplified invisible mesh is used to represent the object to the physics engine. To the physics engine, the object may be processed as nothing more than a simple tall cylinder. It is therefore impossible to insert a rod or fire a projectile through the handle holes on the vase, because the physics engine does not know the handles exist and only processes the rough cylindrical shape. The simplified mesh used for physics processing is often referred to as the bounding box. Engines that use bounding boxes or bounding spheres as the final shape for collision detection are considered extremely simple. Generally a bounding box is used for broad phase collision detection to narrow down the number of possible collisions before costly mesh on mesh collision detection is done in the narrow phase of collision detection.In the real world, physics is always active. There is a constant brownian motion jitter to all particles in our universe as the forces push back and forth against each other. For a game physics engine, such constant active precision is unnecessary and a waste of the limited CPU power. In the 3D virtual world Second Life, if an object is resting on the floor and the object does not move beyond a certain minimal distance in about two seconds, then the physics calculations are disabled for the object and it becomes frozen in place. It remains frozen until a collision occurs with some other actively physical object, and that reactivates physics processing for the object. This freezing of stable nonmoving objects allows the physics engine to conserve processing power and increase the framerate of other objects currently in motion, but can lead to unusual problems such as a huge slow pendulum freezing in place on the upswing, as it slows down and starts to reverse direction.
The primary limit of physics engine realism is the precision of the numbers representing the position of an object and the forces acting on that object. When the precision is too low, errors can creep into the calculations due to rounding, causing an object to overshoot or undershoot the correct position. These errors are compounded in situations where two free-moving objects are fitted together with a precision that is greater than what the physics engine can calculate. This can lead to an unnatural buildup energy in the object due to the rounding errors, that begins to violently shake and eventually blow the objects apart. Any type of free-moving compound physics object can demonstrate this problem, but it is especially prone to affecting chain links under high tension, and wheeled objects with actively physical bearing surfaces. Higher precision reduces the positional/force errors, but at the cost of greater CPU power needed for the calculations.
Another unusual aspect of physics precision involves the framerate, or the number of moments in time per second when physics is calculated. Each frame is treated as separate from all other frames, and the space between frames is not calculated. A low framerate and a small fast-moving object leads to a situation where the object does not move smoothly through space but in fact seems to teleport from one point in space to the next point in space as each frame is calculated. At sufficiently high speeds a projectile will miss a target, if the target is small enough to fit in the gap between the calculated frames of the fast moving projectile. In Second Life this problem is resolved by making all projectiles as if they were arrows; a long invisible shaft trails behind the bullet so that as the bullet teleports forward, the shaft is long enough to cover the gap between successive teleports of the bullet and collide with any object that might fit between the calculated frames.
Physics based character animation in the past only used rigid body dynamics because they are faster and easier to calculate, but modern games and movies are starting to use soft body physics now that it is possible. Soft body physics are also used for particle effects, liquids and cloth. Some form of limited Fluid dynamics simulation is sometimes provided to simulate water and other liquids as well as the flow of fire and explosions through the air.
Physics Processing Unit (PPU)
February 2006 saw the release of the first dedicated Physics Processing Unit (PPU) from Ageia, called PhysX, which functions in a similar manner to the Graphic Processing Unit (GPU) in a graphics card - off-loading the majority of the physics processing weight off the CPU and into a dedicated processor. The unit was most effective in accelerating particle systems. Only a small performance improvement was measured for rigid body physics. [1] The Ageia PPU is documented in depth in their US patent application #20050075849. [2]An early academic PPU research project[1][2] named SPARTA (simulation of physics on a real-time architecture) was carried out at Penn State [3] and University of Georgia. This was a simple FPGA based PPU that was limited to two dimensions. This project was extended into a considerably more advanced ASIC-based system named HELLAS.
General Purpose processing on Graphics Processing Unit (GPGPU)
GPGPU ("General Purpose processing on Graphics Processing Unit") is another promising approach for realtime physics engines, including rigid body dynamics. ATI and NVIDIA provide rigid body dynamics on their latest graphics cards, with ATI claims X1900 XT should deliver 9 X the performance of an Ageia PhysX card-NVIDIA's GeForce 8 Series supports a new GPU-based Newtonian physics acceleration technology named Quantum Effects Technology - which will compete directly with the PhysX PPU hardware. NVIDIA provides an SDK Toolkit for what they call CUDA™ (Compute Unified Device Architecture) technology that offers both a low and high-level API to the GPU. Few technical details are available about the physics side of it, and it is not yet clear whether this is part of Havok FX SDK, and/or AGEIA PhysX SDK, or a completely separate engine.[3]
ATI & AMD offer a similar SDK for their ATI-based GPUs and that SDK and technology is called CTM™ (Close to Metal™) which provides a hardware interface thin (thin hardware interface). AMD has also announced the AMD Stream Processor product line (combining a CPU and a GPU technology on one chip).
See also
- Game physics
- Ragdoll physics
- Procedural animation
- Rigid body dynamics
- Soft body dynamics
- List of games that rely on physics for their game-play
- Physics processing unit
- Cell microprocessor
Real-time physics engines
Open source
- Bullet
- Open Dynamics Engine
- OPAL
- PAL
- Tokamak physics engine
- Farseer Physics Engine - 2D physics engine for Microsoft XNA and Silverlight
Closed source/limited free distribution
- Newton Game Dynamics
- Simple Physics Engine
- True Axis
- PhysX (formerly NovodeX and incorporating Meqon)
Commercial
- Havok
- nV Physics SDK
- Vortex from CMLabs Simulations
High precision physics engines
- Mechanica from Parametric Technologies Corporation.
- Working Model, from Design Simulation Technologies. (2D only)
- Falling Bodies, from Animats. (Ragdoll physics)
External links
- Chris Hecker's "Rigid Body Dynamics" tutorial
- Adrian Boeing's physics engine list
- Open Dynamics Engine
- PhysicsAndMathLibrary This library is royalty-free for hobby use and an inexpensive alternative for commercial developers.
- Newton Game Dynamics Newton is a free physics engine for commercial and hobby use, supports multiple platforms, SDK is contained as well.
- PGNX Physics, a versatile physics engine with haptic capabilities
- Bullet Physics Library Open Source, free for commercial use collision detection and rigid body dynamics library.
- True Axis Physics SDK
- DigitalRune Knowledge Base contains a comprehensive list of physics engines and rigid body dynamics resources (master thesis, links).
- Limitations of 3D Physics Engines: Unintended Explosion Google Video demonstration of calculation errors, in the virtual world Second Life.
- Physics2D.Net A 2 dimensional rigid body physics engine written in C#.
- FastCar Library
- Atlas F1 technical forum
- Racer Free Car Simulation Physics
- Racing Physics and Maths forums at rscnet.org
References
1. ^ S. Yardi, B. Bishop, T. Kelliher, "HELLAS: A Specialized Architecture for Interactive Deformable Object Modeling", ACM Southeast Conference, Melbourne, FL, March 10-12, 2006, pp. 56-61.
2. ^ B. Bishop, T. Kelliher, "Specialized Hardware for Deformable Object Modeling," IEEE Transactions on Circuits and Systems for Video Technology, 13(11):1074-1079, Nov. 2003.
3. ^ NVIDIA 8800 features page - Quantum Effects Technology
2. ^ B. Bishop, T. Kelliher, "Specialized Hardware for Deformable Object Modeling," IEEE Transactions on Circuits and Systems for Video Technology, 13(11):1074-1079, Nov. 2003.
3. ^ NVIDIA 8800 features page - Quantum Effects Technology
A computer program is one or more instructions that are intended for execution by a computer. Specifically, it is a symbol or combination of symbols forming an algorithm that may or may not terminate, and that algorithm is written in a programming language.
..... Click the link for more information.
..... Click the link for more information.
Classical mechanics (commonly confused with Newtonian mechanics, which is a subfield thereof) is used for describing the motion of macroscopic objects, from projectiles to parts of machinery, as well as astronomical objects, such as spacecraft, planets, stars, and galaxies.
..... Click the link for more information.
..... Click the link for more information.
Mass is a fundamental concept in physics, roughly corresponding to the intuitive idea of "how much matter there is in an object". Mass is a central concept of classical mechanics and related subjects, and there are several definitions of mass within the framework of relativistic
..... Click the link for more information.
..... Click the link for more information.
velocity is defined as the rate of change of position. It is a vector physical quantity, both speed and direction are required to define it. In the SI (metric) system, it is measured in meters per second (m/s). The scalar absolute value (magnitude) of velocity is speed.
..... Click the link for more information.
..... Click the link for more information.
Friction is the force of two surfaces in contact. It is not a fundamental force, as it is derived from electromagnetic forces between atoms. When contacting surfaces move relative to each other, the friction between the two objects converts kinetic energy into thermal energy, or
..... Click the link for more information.
..... Click the link for more information.
drag (sometimes called resistance) is the force that resists the movement of a solid object through a fluid (a liquid or gas). Drag is made up of friction forces, which act in a direction parallel to the object's surface (primarily along its sides, as friction forces at the
..... Click the link for more information.
..... Click the link for more information.
computer simulation, a computer model or a computational model is a computer program that attempts to simulate an abstract model of a particular system. Computer simulations have become a useful part of mathematical modelling of many natural systems in physics
..... Click the link for more information.
..... Click the link for more information.
real-time computing (RToC) is the study of hardware and software systems which are subject to a "real-time constraint"—i.e., operational deadlines from event to system response.
..... Click the link for more information.
..... Click the link for more information.
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.
..... Click the link for more information.
..... Click the link for more information.
personal computer game (also known as a computer game or simply PC game) is a video game played on a personal computer, rather than on a video game console or arcade machine.
..... Click the link for more information.
..... Click the link for more information.
Hooke's law of elasticity is an approximation that states that the amount by which a material body is deformed (the strain) is linearly related to the force causing the deformation (the stress).
..... Click the link for more information.
..... Click the link for more information.
Soft body dynamics is an area of physics simulation software that focuses on accurate simulation of a flexible object. That is, the object is deformable, meaning that the relative positions of points of the objects can change.
..... Click the link for more information.
..... Click the link for more information.
In mathematics, a constraint is a condition that a solution to an optimization problem must satisfy. There are two types of constraints: equality constraints and inequality constraints. The set of solutions that satisfy all constraints is called the feasible set.
..... Click the link for more information.
..... Click the link for more information.
In classical mechanics, an impulse is defined as the integral of a force with respect to time:
..... Click the link for more information.
- I is impulse (sometimes marked J),
- F is the force, and
- dt
..... Click the link for more information.
ENIAC, short for Electronic Numerical Integrator And Computer,[1] was the first large-scale, electronic, digital computer capable of being reprogrammed to solve a full range of computing problems,[2]
..... Click the link for more information.
..... Click the link for more information.
Historically, artillery (from French artillerie) refers to any engine used for the discharge of large projectiles in war. The term also describes soldiers with the primary function of manning such weapons and is used organizationally for the arm of a nation's land
..... Click the link for more information.
..... Click the link for more information.
Computational fluid dynamics (CFD) is one of the branches of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows.
..... Click the link for more information.
..... Click the link for more information.
vector processor, or array processor, is a CPU design that is able to run mathematical operations on multiple data elements simultaneously. This is in contrast to a scalar processor which handles one element at a time. The vast majority of CPUs are scalar (or close to it).
..... Click the link for more information.
..... Click the link for more information.
wind tunnel is a research tool developed to assist with studying the effects of air moving over or around solid objects.
Ways that wind-speed and flow are measured in wind tunnels:
..... Click the link for more information.
Ways that wind-speed and flow are measured in wind tunnels:
..... Click the link for more information.
The axis-aligned minimum bounding box (MBB, AAMBB, AABB) for a set S in the N-dimensional space endowed with a coordinate system is the box or hyperrectangle of minimal dimensions with its edges parallel to the coordinate axes that contains S.
..... Click the link for more information.
..... Click the link for more information.
Brownian motion (named in honor of the botanist Robert Brown) is either the random movement of particles suspended in a fluid or the mathematical model used to describe such random movements, often called a Wiener process.
..... Click the link for more information.
..... Click the link for more information.
A virtual world is a computer-based simulated environment intended for its users to inhabit and interact via avatars. This habitation usually is represented in the form of two or three-dimensional graphical representations of humanoids (or other graphical or text-based avatars).
..... Click the link for more information.
..... Click the link for more information.
Second Life
Software
Linden Lab • libsecondlife • Linden Scripting Language • CopyBot
Society
Residents
Economy
Economy • Businesses and Organizations • Real estate
Related
..... Click the link for more information.
Software
Linden Lab • libsecondlife • Linden Scripting Language • CopyBot
Society
Residents
Economy
Economy • Businesses and Organizations • Real estate
Related
..... Click the link for more information.
This article or section is in need of attention from an expert on the subject.
Please help recruit one or [ improve this article] yourself. See the talk page for details.
..... Click the link for more information.
Please help recruit one or [ improve this article] yourself. See the talk page for details.
..... Click the link for more information.
Fluid dynamics is the sub-discipline of fluid mechanics dealing with fluids (liquids and gases) in motion. It has several subdisciplines itself, including aerodynamics (the study of gases in motion) and hydrodynamics (the study of liquids in motion).
..... Click the link for more information.
..... Click the link for more information.
A Physics Processing Unit (PPU) 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,
..... Click the link for more information.
..... Click the link for more information.
AGEIA™ Technologies, Inc.
Founded 2002
Headquarters Mountain View, California, USA
Key people Manju Hegde, CEO
Industry Semiconductors
Products Physics Processing Units
Physics engines
Website www.ageia.
..... Click the link for more information.
Founded 2002
Headquarters Mountain View, California, USA
Key people Manju Hegde, CEO
Industry Semiconductors
Products Physics Processing Units
Physics engines
Website www.ageia.
..... Click the link for more information.
PhysX can refer either to a proprietary realtime physics engine middleware SDK developed by AGEIA (formerly known as the NovodeX SDK) or their PPU expansion card designed to accelerate that SDK.
..... Click the link for more information.
..... Click the link for more information.
graphics processing unit or GPU (also occasionally called visual processing unit or VPU) is a dedicated graphics rendering device for a personal computer, workstation, or game console.
..... Click the link for more information.
..... Click the link for more information.
central processing unit (CPU), or sometimes simply processor, is the component in a digital computer capable of executing a program.(Knott 1974) It interprets computer program instructions and processes data.
..... Click the link for more information.
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus