This project is an implementation of a physical dynamics environment which can be controlled via OSC, so that audio projects such as PureData can create physical objects in a virtual space, and then let them interact with each other, colliding and otherwise moving around. Data about objects' position and acceleration, for example, can be retrieved and then used to affect some sort of audio synthesis. It is a part of the "force feedback for audio systems" IDMIL project and was first presented at NIME 2007.
The environment can also be used for interacting with a hand controller haptic device.
This is all accomplished via many GPL (or similar) libraries, such as:
It is cross-platform, running on Linux, OS X, and Windows. Unfortunately, most haptic devices only provide drivers for Windows, though CHAI 3D does support the SensAble Phantom family of devices under Linux if you have the driver.
An alpha version of this software is available here:
This version of DIMPLE has still got many bugs and missing features, so don't worry if you have some trouble.
Snapshots of older versions are also available.
To run the included test patch, test.pd, you'll need PureData. It actually makes use of some features of PureData 0.40, but also needs the OSC and makesymbol objects in the extended build, which is not yet available for 0.40. Well.. this means none of the pre-made downloads will currently work, which is kind of annoying. Until the 0.40 extended build is ready, I've provided a .zip file for Windows users that they can use which should work out of the box:
Just extract it and double-click pd/bin/pd.exe to run. It should work just like that. Remember to run dimple.exe before clicking the “Initialize” bang.
If you'd like to track the development version, or even contribute patches, please feel free to clone the git tree with the following command:
git-clone http://idmil.org/git/dimple.git
This works fine with Cygwin on Windows as well as on Linux and OS X. Please run the bootstrap.sh script before compiling, which takes care of downloading and compiling dependencies on the respective platform.
To get an overview of the current development branches, the commit logs are available for browsing.
NOTE: We are currently going through a major refactoring process in the internal_osc branch. Once this is more solidified I'll provide some better internal documentation.