Pure Data Packet (PDP) is an extension library for the computer music program Pure Data (PD), by Miller Puckette and others. Its goal is to provide a way to use arbitrary data types (data packets) as messages that can be passed around inside PD, along side the standard PD numbers and symbol types. In short it puts any data object on the same level as a float or a symbol.
That's the main goal, but we're not there yet. PDP is very much work in progress, but reasonably stable and usable as is. PDP runs on Linux and OSX. The OSX version depends on Fink, which is not in the "point & click" stage yet, so setting it up will require some efford. There is no windows version. The reason for this is simple: i don't use windows myself. Porting would require writing code for input/output and getting the libraries pdp depends on to work. If anyone is willing to do this, just let me know.
Currently, PDP's focus is on images and video, but there is no reason it should stay like that. There is limited support for matrix processing included in the main library (like Jitter or Gridflow). There is an extension library for 1D and 2D binary cellular automata, opengl rendering (like Gem). Some plans include audio buffers (like Vasp), ascii packets, text buffers, ... Finally there's a library that enables you to connect a scheme interpreter (guile) to pdp. For more image processing objects, have a look at Yves Degoyon's PiDiP library.
PDP is centered around the concept of packets and operations on packets. From the outside, all there seems to be is video processing objects, but on the inside a type system and processor model is growing. One of the interesting features in PD is the possibility of connecting everything with everything. If you want to generalize this to all kinds of media objects, the complexity starts to grow quite fast. Therefore pdp has a type conversion system. A packet always has a type description (a mime type if you want) that will enable it to be converted to another type without to much bookkeeping. Most of this will become automatic later, but right now you can already do the conversions manually.
An example: You can use the basic pdp library together with the cellular automata library and the opengl rendering library to use a cellular automaton as an input to a video processing chain. You can convert the processed image to a texture that can be applied to a 3d object, which then can be drawn to the screen, captured as a texture, converted back to an image, which can then be converted to a sound, processed and converted back to an image, etc... You get the point. The possibilities are endless.