Intro to Compute Shaders
A design and code class
This advanced class introduces compute shaders via a series of video tutorials
related to biological simulation.
It lasts 6–8 weeks.
There are three two-week units.
Each unit has a few hours of tutorials, as well as an optional assignment.
The assignments emphasize both design and code.
All content and chat is based in Discord.
Lessons are asynchronous.
The aim is to learn to use the GPU to quickly explore
algorithmic spaces in search of surprise and beauty.
Sign up here
Section 1 introduces compute shaders and basic GPU concepts. Here is a sample video.
The videos walk you through implementing cyclic
Section 2 covers automonous agent simulations. The tutorials walk you through implementing a
physarum simulation. This also helps us learn about GPU compute buffers, passing data to the gpu, and
other compute shader techniques.
Section 3 introduces many ways to bring your simulations into 3D,
with Unity's shader graph and VFX graph, as well as GPU instancing.
By the end of the workshop,
students have a strong foundation in compute shaders,
biological simulation methods,
and the basics of parallel programming.
By the end of the class, students are able to implement
something similar to this post:
Past cohorts have included students who work at The Mill, Apple, Oculus, Unity, Google, Future
and many game studios.
This is primarily for experienced programmers who are also
interested in simulation, math, art and design.
However, the tutorials are done such that students of almost any level can follow along.
If you are an experienced programmer,
the tutorials might take you 2-4 hours a week.
If you are newer to
programming you can still attend the class, but
it might require up to 6-20 hours a week.
Ideally you should either have completed a significant project using Unity and C#
a strong CS or technical art (e.g. Houdini) background and be willing to wade through the Unity
is primarily used
as an interface to the GPU, so the actual C# we write is quite simple.
Do I need to have experience with fragment or vertex shaders?
No. But you may want to go through The Book
Shaders and Shader
prior to beginning this class. They are both quite fun.
What if I have limited or no prior coding experience?
GPU code can be quite painful to debug, so I would recommend starting with something that is a bit simpler.
In addition to core programming
I would suggest Catlike
Unity tutorials, as well as The Book
Shaders and Shader
Must I be good at math?
No. If you would like to fully understand how some equations work, it is helpful to know (or
be willing to learn) a bit of
college-level math — however this is not essential. For example, one can implement and explore
Scott reaction diffusion without understanding the math.
Can I participate from [Country x]?
Yes. The class is async, so time-zone does not matter.
How much time does this require?
For the cohort based class, please be able to do at least 7 hours a week during the workshop cohort.
Each unit is two weeks and includes a week for tutorials and a week for an assignment. There are two
catch up weeks. Assignements are due Sunday evenings.
Many students are able to complete the class by allocating Sundays to it.
Depending on your experience level and how much time you spend on the artistic aspects of the
assginments, the course takes 4-18 hours a week.
Will lectures be recorded?
Yes. Due to time zones and the challenges of live-coding, all lectures will be pre-recorded
Why are there limited spaces?
A small group creates a more friendly environment and allows me to give individual feedback.
Can I share a space with a friend?
No, please sign up individually. I do these classes in lieu of taking on additional
contracts, so your money goes directly towards supporting me eating while making more of this work.
you would like to take the course at the same time as a friend, please DM me, and I can try to
get both of you into the same session.
Can I use Touch Designer, UE4, or Houdini?
Several students have completed the course using touchdesigner. Many of the principles are the same,
there are several aspects that you will have to figure out on your own (e.g. working in 3D in TD is
different to Unity).
UE4, as of when I developed the course, did not have compute shader support that was as easy to use
However, if you are a UE expert, it should be straihgtforward to convert the material to UE.
Houdini has a feature where you can use the GPU, but it will also be very difficult unless you are
advanced in Houdini.
In all cases, I recommend following along in Unity first, and then attempting in your preferred
Please DM or @mention me.