Workshop: Working with Shaders in TouchDesigner
TouchDesigner is rapidly becoming the de facto software for audiovisual performances, installations, projection mapping, and interactivity in experimental, artistic, and commercial projects. Its enormous flexibility and power come from its integration of a node-based programming paradigm, Python as a scripting language, GLSL, and much more.
This workshop focuses on understanding the principles and programming patterns using shaders in the TouchDesigner platform. Shaders are programs written specifically for the GPU, which can massively accelerate computations required in graphical and non-graphical applications. In this workshop, we will explore the idea of pixels as containers for data, beyond just elements to draw things on the screen, and study practical applications that you can later integrate into your projects.
- š July 1st, 13:00 - 17:00
- š Havenloods, Nijverheidsweg 6, Utrecht ā VOGELFREI
- š« ā¬40 (regular) / ā¬20 (student)
šØāš» The artist
Darien Brito is an audiovisual artist and creative coder, currently based in The Netherlands. He holds a BA in Composition from the Royal Conservatory of The Hague and an MA from the Institute of Sonology.
From a musical background, Darien developed a strong interest in algorithms, computer graphics, micro-sound, generative art and complex systems. He taught himself several programming languages and got immersed in the creation of audio-visual experiences conducted by algorithmic processes.
Driven by a pragmatic approach and focusing on strong sensorial experiences, he has created work in a wide array of formats: from music for solo instruments, orchestra, electronics, theatre, film, opera and dance, to visual effects, interactive installations, live audiovisual performances and digital art.
He actively works as a programmer and consultant for other artists and is often involved in multidisciplinary collaborations using technology.
š§Ā Requirements
Touchdesigner knowledge
You must have at least an intermediate level to follow the session. That means you dominate the interface, understand how and why instancing works, and can comfortably move across data types in TouchDesigner. For example, you know how to transform TOPs to CHOPS and vice versa and have no problem referencing operators and channels. Furthermore, you must have some familiarity with a programming language. For example, you can do some scripting in Python, and know what a function, a loop, and a variable is. That being said: it is not as important that you are proficient with coding as it is that you LIKE to code.
Shaders knowledge (GLSL)
You may or may not have already experimented with shaders in the past. Either way is alright. I will cover the fundamentals and adjust the pace and content based on participants' reactions.
The workshop will focus on understanding how things work and why, not on formulas to get quick and nice-looking results. Expect to get your hands dirty from the beginning, make many mistakes, and be ready to ask questions and help your colleagues.
šÆļø Topics
I will keep things flexible, and we may cover various topics, from introductory to more advanced. That all depends on the general level and interest.
The following two subjects are mandatory:
- Parallel computations at the pixel level
- Writing visual effects on a fragment shader
While potential topics include:
- Manipulating geometry with a vertex shader
- Instancing and the rendering pipeline
- Writing a GPU particle system
- Understanding SDFs
- Fundamentals of ray-marching
- Creating a versatile ray-marching engine
š Practicalities
- Bring a computer running the latest version of TouchDesigner on Windows or Macintosh.
- I highly recommend a three-button mouse with a scroll wheel.
- Keep in mind:
- The software should be installed and working on your computer before the workshop. Given our limited time, I will not wait for participants who have not done so.
- This course has a no-cell phone policy. I expect you to turn off your device while attending. It is highly disruptive for the instructor and your colleagues if you are checking your phone screen. Please make arrangements so that you can be fully present (even if it implies the occasional boredom).
- Last but not least, please be on time.