"An Introduction to TouchDesigner" is completely free and accessible online. It is set up as a main text/book that comes with example project files and HD video walkthroughs. The source code for the book is available on the nVoid GitHub and licensed under creative commons to allow anyone to edit, add, and share - which means that this book will continually grow and remain current.
Needless to say, we are THRILLED to have access here not only to Elburz' extensive gained-in-the-field experience but also to his 'curation' of existing knowledge repositories like the forum, wiki - and we are looking forward to what happens next.
We had a few questions for the author...
I come from an art background, and more specifically a musical background. I was a professional trombonist for many years working in classical and commercial music, and eventually wound up in electronic music production, composition, and performance.
I really wanted to create my music live when performing and starting getting involved with tools like Cycling 74's Max. I started building quite a number of tools and eventually volunteered to make the visual tools for the shows I was putting on with colleagues. This led to me exploring a multitude of generative and customizable video applications like Resolume and TouchDesigner.
Now I am the Technical Director at nVoid Art-Tech Limited and we specialize in creating interactive experiences - both large and small in scale. We work across the globe with many different technologies to augment installations and narratives with designers, artists, brands and institutions. We have had the privilege of working with incredible partners on projects for google, Kanye West, Giorgio Armani, Nike, Bionic League, the Seattle Art Museum, Verizon, the National Museum of Scotland, Nuit Blanche, MacLaren Momentum, Informa Canada, and Random Media Core.
Derivative: How did you get into TouchDesigner?
Elburz: I heard Richie Hawtin was using TouchDesigner for his Plastikman shows so I decided to check it out. It started out as a natural extension to all the Max programming I was doing on the audio side of things - we were making video players and VJ tools to compliment our live shows. Then I used TouchDesigner with the Ableton Sync Environment to create a number of live shows and at the time thought to myself, "well, we're creating all the audio in real-time, what if we did something other than just play back video clips?". I slowly started generating content, and fell down that rabbit hole which led to creating more and more interactive works, and working on larger and larger TouchDesigner projects... here we are now!
D: Can you talk about your incentive and reasoning for making this book?
E: There were quite a number of reasons for making the book. The first was that I spend a lot of time on the forums, and found that I answer the same questions a great deal; not to the fault of the beginner - it's just hard to find certain types of information quickly. There are a lot of abstract concepts you need to wrap your head around in the world of node-based programming, data processing, video processing, and scripting - and that's even before you get to little intricacies of TouchDesigner! Because all this information draws from so many different disciplines, answers and rationale are generally spread out all over the place and hard to find or bring together.
The second was that I think a lot of people in skilled TouchDesigner positions either learned these things from colleagues or going deep-sea diving on the web and in the Wiki, but that's not easy for someone who doesn't even understand basic things like UV maps or how to arrange projector outputs in Windows. The Wiki is a fantastic resource but it's like trying to learn a language by reading the Dictionary. Similarly, the forum is a fantastic resource, but sometimes even I get the feeling like I'm watching TV in a language I don't understand and there's no subtitles!
The third incentive was to curate a lot of the knowledge I had gained from both mission-critical projects and what other people have taught me. So I thought I should put it all in some kind of order that would make sense and would be easy to follow for someone who has never used a node-based programming environment.
A more personal reason was that I've never written anything longer than a handful of pages, so I wanted to try. I like keeping myself challenged in a lot of different fields - it keeps me fresh! It ended up being my late night pet project for months as we were still in full production mode during the writing of it.
D: How did you go about writing this book? What was your process?
E: At the beginning, the process was pretty relaxed, I made a list of important things in TouchDesigner and started writing about them in an Evernote notebook. That notebook started filling up quickly and becoming more and more complex and involved, so I moved over to using a more professional writing package that would help organize things better. I was able to start making more defined sections and split out larger chapters into smaller sections. Then I would get new ideas and the software would allow me to re-arrange things quickly and make notes easily.
As I went along I realized that it would be helpful if there were diagrams and really simple project files you could open up to see the text in action. This led to the idea of making some video tutorials where I walked the reader through the build out of some tools. All of a sudden, I had a few hours of HD video, a lot of text, and bunch of example project files.
We knew early on that we wanted to make something that could keep up with TouchDesigner's continued rapid development pace, so GitHub seemed like the best choice for creating an Open Source resource that could be used and managed by many people. The next step was figure out how to format it so that GitHub could handle all the merging changes, while still allowing the book to easily be turned into a regular PDF for the more casual reader - and that's where LaTeX came in.
LaTeX is a programming language for publications and this means everything including output page size, chapter breaks, table of contents, and more are generated at compile time. So if you wanted to print out a version for a specific e-reader or a specific print size, it's as simple as changing a variable in 1 line of code before re-compiling. Working with it is pretty simple too and most people won't need to remember more than 3 commands.
Once we went with LaTeX, we were able to break up the book into a handful of smaller files like any other piece of software. Each separate file contains a chapter that is referenced by a master file that pulls everything together at compile time. This makes it incredibly easy to manage and update only certain portions of the book.
D: Explain how the book works from here . What can people contribute and how do they do it?
E: Our first goal was for people to download and learn from the resource, so I think we'll have traction there.
Our bigger hope is that this becomes a community driven effort and that my fellow colleagues and TouchDesigner professionals, who all have such vastly different talents and abilities, will take this resource beyond what I alone could do.
Simply put, I don't know everything, and will never know everything, so why not allow others to share the things they know that I don't? To do anything else wouldn't make much sense in my mind.
We have a few new chapters and additions over the next few months - things that we missed during the initial authoring, such as the concepts behind edge blending projectors; or things that we didn't have a chance to go into a lot of depth with, like working more with Python, GLSL, etc.
We couldn't resist printing a few physical books to present to the author at our user meetup in Toronto last week and we are looking forward to seeing how much fatter it is a year from now as it is augmented and fed by the expertise of the community-at-large.
A massive thank-you Elburz and also to Byron Kent Wong Managing Director at nVoid for all of your hard work.