Chipmunk physics engine
Encyclopedia
The Chipmunk SDK is a portable open-source
2D physics engine
written in C99
by Scott Lembcke and published under the MIT license. Middleware physics engines like Chipmunk allow game developers to avoid writing their own code to handle the complex physics interactions possible in modern games. Chipmunk is a real-time
rigid body
physics engine that is designed to be lightweight, fast, and easy to use. Objective-C
bindings are popular for use on the iPhone, and there are Ruby
bindings, and third party interfaces for Python
, Haskell
, Objective Caml
, and others. Chipmunk is supported by both the Aerosol and cocos2d-iphone
game libraries.
Chipmunk has been widely used on the iPhone, Mac/Windows/Linux, and other platforms, including Nintendo Wii and Sony PSP.
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
2D 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...
written in C99
C99
C99 is a modern dialect of the C programming language. It extends the previous version with new linguistic and library features, and helps implementations make better use of available computer hardware and compiler technology.-History:...
by Scott Lembcke and published under the MIT license. Middleware physics engines like Chipmunk allow game developers to avoid writing their own code to handle the complex physics interactions possible in modern games. Chipmunk is a 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...
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...
physics engine that is designed to be lightweight, fast, and easy to use. Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
bindings are popular for use on the iPhone, and there are Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
bindings, and third party interfaces for Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, Haskell
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
, Objective Caml
Objective Caml
OCaml , originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996...
, and others. Chipmunk is supported by both the Aerosol and cocos2d-iphone
Cocos2d
Cocos2d is an open source 2D game framework. There are two versions, one written in Python and one written in Objective-C targeting iOS.-iOS port:...
game libraries.
Features
Chipmunk supports multiple collision primitives attached to one rigid body, and bodies may be joined by constraints. It has a flexible collision detection system with layers, exclusion groups and collision callbacks. Callbacks are defined based on user definable "collision types" and may reject collisions and even override the calculation of friction and elasticity coefficients.Chipmunk has been widely used on the iPhone, Mac/Windows/Linux, and other platforms, including Nintendo Wii and Sony PSP.
External links
- Chipmunk Forums
- chipmunk-ffi, a more up-to-date Ruby interface using Nice-FFI.
- Chipmunks Ruby Bindings, with more functionality wrapped.
- Demos of Chipmunk on YouTube