You’ve no doubt been knee-deep in a TouchDesigner project and found yourself thinking “Ugh, I wish I knew a bit more math, this would be a lot easier.” But where does one begin? It’s easy for folks who came from a computer science background or more academic careers like architecture. For artists and musicians, all the maths can feel overwhelming. I know personally, I stopped taking math as soon as I could in high school! It was an amazing feeling at the time! Looking back, I don’t regret the choice, but I now realize the value of maths. So what should you start with and how should you learn?
Order of operations
The greatest weakness in most people’s math is a lack of basics. There are many fundamental rules in math that make math equations a lot easier and more manageable. Being comfortable with orders of operations is a huge one. I’ve seen a lot of TouchDesigner networks that were failing because of math processes trying to be implemented were converted into CHOP networks in an incorrect order. Plain and simple. No weird bugs or unavailable features. Just plain old improper interpretation of the order of operations. Not knowing your order of operations in math is especially useful when you want to use tutorials for other softwares (like Houdini or Processing) and convert them into TouchDesigner programs.
Rules of Algebra
The rules of algebra make math wayyyyyyy easier. How do negatives effect equations if they’re inside the brackets vs outside? What happens when you divide by 0 (please dont’t!)? Do I need to multiply things in a specific order? You could of course always take the slow route and work through these questions by solving them outright one step at a time, but the rules of algebra give you quick and easy answers to so many common situations. I highly recommend learning the basic shortcuts. Not much else to say about this one, they’re the basics and knowing them will make your life easier.
Expansion & Substitution
Expression expansion and substitution are particularly useful in TouchDesigner. We spend a lot of time porting and turning existing techniques and operations into TouchDesigner programs. A lot of the time these are pretty expressions from research papers like some of these examples of the Aizawa attractors:
You might feel intimidated looking at this, but there’s nothing in here other than basic math presented in a way that’s unfamiliar to many TouchDesigner developers coming from an arts.
Expression expansion is when you go through an equation and remove all the bracketed areas so that the math that needs to happen is all written out. You’re essentially “flattening” out the expression. This is a necessary step if you wanted to take one of these expressions and put them into something like a Point SOP. Expansion is an easy process to learn and makes porting math into TouchDesigner much more straightforward.
On top of that substitution is necessary in many cases because you’ll often have expressions like the ones above that reference variables that are other expressions themselves. This is fine in a research paper or write up, but our softwares are usually not smart enough to easily do those substitutions for us. So then you’d need to not only do a bunch of expansion, but also substitution (which is tedious but easy) to make those maths easy to implement in TouchDesigner.
Where to learn?
I can’t speak enough about Khan Academy. Khan Academy is a free online school that was started by Sal Khan many years ago and covers many topics and skill levels. It was the main resource I used when I wanted to improve my math skills and get introductions to different science fields. Did I mention it’s free??? It takes no investment from you to get started. What I find to be invaluable about it is how the courses are laid out. There are tons of tiny segments that make it very easy to learn at your own pace. Have 5 minutes a day? 10 minutes a day? 30 minutes a day? You can easily fit as many small chunks of lessons into your day as you like in an easy to manage way that works for you. That’s the most important thing. Make a schedule and process that works for you everyday, no questions asked. How could you not spend 10 minutes a day doing something? In 2 weeks, 4 weeks, and beyond, you’ll continuously be surprised by how much you’ve learned with such small daily time investments.
When I was using Khan Academy, I would just sit down with my notebook and copy exactly whatever was on screen and work through it with the class. I still have all my math notebooks. I started a pre-school math and worked my way through most of the math courses over a few months time. It almost felt like cheating and I can’t recommend Khan Academy and even just this approach in general of bite sized learnings every day.
I hope these resources and perspectives have been helpful. Like I mentioned, it doesn’t take a lot of advanced math to make your graphics programming life a lot easier. The internet is also a point that there are so many resources available for all different learning styles. Don’t like videos, do a web search for intro books or similar. I promise you, spending a little bit of time every day for 2-4 weeks will have a huge impact on your abilities. Enjoy!