Chipmunk (software)
{{Short description|Physics engine}}
{{Infobox software
| name = Chipmunk physics engine
| logo =
| screenshot =Image:Chipmunk Physics Logo Smash Demo.png
| caption =
| author = Scott Lembcke
| developer = Howling Moon Software
| latest_release_version = 7.0.3
| latest_release_date = {{start date and age|2019|06|07}}
| latest_preview_version =
| latest_preview_date =
| operating_system = Cross-platform
| programming_language = C, Objective-C
| genre = Physics engine middleware
| license = MIT License, formerly open core
| website = {{URL|http://chipmunk-physics.net/}}
}}
Chipmunk2D is a 2-dimensional real-time rigid body physics engine written by Scott Lembcke that is designed to be portable, lightweight, fast, and easy to use.[http://www.macnn.com/articles/10/08/16/update.reduced.cpu.hits.for.sleeping.items/ Chipmunk2d update reduced CPU hits for sleeping items] Prior to version 7, two main versions of the library existed. Chipmunk2D Free was written purely in C99, and freely available under the terms of the MIT License. Chipmunk2D Pro was a proprietary upgrade designed for development on mobile devices. It included several high-level subroutines in Objective-C, and floating-point optimizations for the ARM processor.{{cite web |url=https://chipmunk-physics.net/chipmunkPro.php |title=Chipmunk2D Physics Pro |publisher=Howling Moon Software |accessdate=2014-05-26 }} However, after version 7 the project was fully open-sourced.{{cite web |url=http://howlingmoonsoftware.com/wordpress/chipmunk-7-released-pro-tools-open-sourced/ |title=Chipmunk 7 released- Pro tools open sourced |last=Korth |first=Andy |publisher=Howling Moon Software |accessdate=2015-07-21 }}
Aside from Objective-C, there are official bindings for Ruby, and third party interfaces exist for Python,[http://pymunk.org/ Pymunk] Haskell,[http://hackage.haskell.org/package/Hipmunk Hipmunk: A Haskell binding for Chipmunk] OCaml,{{Cite web |url=http://www.linux-nantes.org/~fmonnier/OCaml/Chipmunk/ |title=ocaml-chipmunk |access-date=2009-05-04 |archive-date=2009-01-16 |archive-url=https://web.archive.org/web/20090116110646/http://www.linux-nantes.org/~fmonnier/OCaml/Chipmunk/ |url-status=dead }} and others.[http://chipmunk-physics.net/bindingsAndPorts.php Bindings and Ports] Chipmunk is endorsed by a number of game libraries, including [http://code.google.com/p/aerosol/ Aerosol], Gosu,{{cite web |url=https://github.com/jlnr/gosu/wiki/Ruby-Chipmunk-Integration |title=Gosu Chipmunk Integration |last=Johnson |first=Dirk |website=GitHub |accessdate=2014-05-26 }} and Cocos2d.{{Cite web |url=http://cocos2d.org/ |title=Cocos2d |access-date=2010-10-02 |archive-date=2011-07-25 |archive-url=https://web.archive.org/web/20110725183702/http://cocos2d.org/ |url-status=dead }}
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.
Version 7 of the library introduced "Autogeometry", an image tracing feature that transforms a raster graphic into a polygonal shape usable by the library. This feature is currently only available in the Objective-C version of the library.
Chipmunk has been widely used on the iPhone, Mac/Windows/Linux, and other platforms, including Nintendo Wii and Sony PSP.[https://www.youtube.com/watch?v=qplaML30ZQU "Chipmunk Physics ported to the PSP"]
See also
References
{{reflist|30em}}
External links
- {{official website|http://chipmunk-physics.net/}}
- [http://www.slembcke.net/forums/viewforum.php?f=1 Chipmunk Forums]
- [https://github.com/beoran/chipmunk Chipmunks Ruby Bindings], with more functionality wrapped.
- [https://github.com/shawn42/chipmunk-ffi chipmunk-ffi], a more up-to-date Ruby interface using Nice-FFI.
- [https://www.youtube.com/view_play_list?p=307AC638FB390970 Demos of Chipmunk on YouTube]
{{Physics engines}}
{{DEFAULTSORT:Chipmunk Physics Engine}}
Category:Computer physics engines