Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
40 lines (30 sloc) 1.27 KB


CLIPMUNK provides Common Lisp CFFI bindings for the Chipmunk Physics library. It began as a fork of Ralith's cl-chipmunk library, but after a while I got tired of writing the defcfuns by hand and switched to using SWIG to generate the bindings automatically.




Some of the functions in the Chipmunk API depend on getting struct arguments passed by value, but this is not possible with CFFI. There is a workaround for this, however: we can pass each element in the struct as a separate argument to the function, as long as they are passed in the correct order. Since the most frequently used struct (cpVect) is a fairly simple one, consisting of just two double floats, it is quite easy to adjust the generated bindings to accomodate this.

This approach seems to work nicely, at least on x86-based platforms.


CLIPMUNK is being developed and tested on SBCL running on Linux and OSX.

Something went wrong with that request. Please try again.