A brief rundown of data flow programming packages
I have been teaching myself yet another piece of data flow programming-media wrangling-presentation type software this week, and it has occurred to me just how many of these things there are now, and how completely baffling and overwhelming all these different packages might be. Trying to figure out what does what and when to which one is pretty confusing, to say the least. So, in an effort to summarize some of the packages available, I decided to do a blog post on the subject.
TouchDesigner is a software product from Derivative (Toronto and Los Angeles) which is used to build interactive 3D and 2D applications. It is “procedural”, “node-based”, real-time and is considered a visual programming language. It is designed to give its users enormous flexibility in building applications without needing to program in a conventional way.
When I first started watching the instructional videos on TouchDesigner, I thought the terms “CHOps” and “TOps” sounded awfully familiar, so it wasn’t much of a surprise to find out that its roots are in Prisms/Houdini.
Here you can see a screenshot of the example project, and as you can see, it is definitely a “data flow” node-based approach to programming. Scripting capability is available via Python (not sure where yet, but it’s there somewhere,) and you can access the 3D functions of your GPU, use OSC (Open Sound Control,) etc. As TouchDesigner has its roots in graphics, both 3D and 2D, it makes sense that most content created with it is graphics-oriented. I will make more entries about TouchDesigner as I learn it, because, as I mentioned, I just started with it. But it seems like an enormously flexible tool.
Max is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling ‘74. During its 20-year history, it has been used by composers, performers, software designers, researchers, and artists for creating recordings, performances, and installations.
Alright, now onto the ones that I have absolutely no experience with, but they’re worth a mention.
VVVV is “a hybrid graphical/textual programming environment for easy prototyping and development. It is designed to facilitate the handling of large media environments with physical interfaces, real-time motion graphics, audio and video that can interact with many users simultaneously.” As you can see, we have yet another very Max-like interface.
This is vvvv’s wikipedia entry.
Pure Data is “enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. “
As you can see, we once again have a very Max-like interface.
Isadora is a package that’s enormously popular in theater and live performance.
"The award-winning, real-time media manipulation software to create stunningly interactive visuals, sounds, and environments."
There are also many, many others (like those specializing in VJ applications) that I haven’t mentioned, and then I suppose that one could argue that there is also some crossover with 3D content creation tools like Unity.
To complicate matters, there’s a lot of crossover among the tools. While most people consider MadMapper to be a projection mapping tool, for instance, you can also do similar things with Max, TouchDesigner, or Isadora. Right now I’m just going to focus on learning TouchDesigner and will blog about my progress here.