By: The interview was conducted by Render magazine in advance of Inigo’s SIGGRAPH ASIA 2019, and was conducted by Inigo Quilez, co-founder of Shadertoy.com and a former pixar and Oculus employee (acquired by Facebook in 2014). He’s a shader programmer who uses code, math, and art to create beautiful graphics. He’s also a great skier. Over the course of 25 years, he continued to learn math every day and gradually became a top rendering expert.
As one of the technical people I most admire, I want to learn the experiences of Inigo, thus intensive reading this interview, and translation, this paper adopts two ways of combining literal translation and free translation, hard to avoid has a lot of colloquial expression in the interview process, with the method of free translation is more easy to understand, the translation of Chinese pen bad points out that also please feel free to comment.
Inigo Quilez introduction
Wikipedia defines Shadertoy as “ShaderToy.com is an online community and platform for computer graphics professionals, academics, and sharers to learn and experiment with rendering techniques and procedural art through GLSL Code.”
Now, mentioning code automatically triggers a negative reaction to the average artist, the difference being that Shadertoy is a portal for coding, and even the most advanced beginners are welcome at Shadertoy. In fact, Shadertoy is both a social networking site and a creative/technical site.
Shadertoy was created by Beautify (Inigo Quilez and Pol Jeremias) in 2013. As of mid-2019, the site has over 31,000 common code contributors. Here’s a cool example:
We were lucky to have a chance to talk to Inigo Quilez, one of the founders of ShaderToy. Here’s a brief background on his website:
My name is Inigo Quilez, I was born and grew up in San Sebastián (a.k.a. Donostia), a beautiful city in the Basque Country, in Europe (Spain). I enjoy mathematics, computer graphics and skiing (you can beat me at computer graphics, but not at skiing), among other things. I have a resume, a Shadertoy account, a Youtube channel, a Facebook page, a Twitter stream, a Patreon page where you can help me so I can create more content for this page, and a Redbubble portfolio where you can buy some prints.
Content of interview
Renderosity Magazine: I noticed on your website that you grew up in SAN Sebastian, one of my favorite cities in Spain. As a coder/shader and math enthusiast, how did growing up there affect your life?
Inigo Quilez: Yes, I grew up in SAN Sebastian, a beautiful city surrounded by mountains and the sea. I went skiing every weekend from November to May for 20 years, so in the winter I only used the computer on Friday between homework and dinner. When I was younger, I used to go fishing on the beach in the summer, so my computer time was also limited. I was a late comer to computers compared to other kids at the time, but I managed to squeeze in some time to learn programming from the age of 15.
So after that I became obsessed with creating fractal and 3D isometric peaks, influenced of course by my love of them and nature. So basically my life and career path was set when I was 17 or 18, even though I didn’t realize it at the time.
Question: You were active in demoscene before Shadertoy. How did you get involved? How did Shadertoy evolve from your work at Demoscene?
The first version of Inigo Quilez: Shadertoy was created after the Firefox browser first released its WebGL implementation in 2009, the same year I moved to Los Angeles, USA, and LOST touch with demoScene’s live events and parties. My last demo was released just before I flew to the US in 2009. Some time later, in December 2012, I teamed up with my good friend Pol Jeremias to rebuild Shadertoy from scratch. Pol fits the bill and is eager to co-own Shadertoy, and has his own ideas and contributions. We learned PHP, CSS, JS, and other Web technologies together, and then we launched ShaderToy in January 2013.
The whole thing started when I realized that Shadertoy needed to be a social network like Demoscene, a rallying point not only for Demosceners and hackers to show off their skills, but also to share the actual code they produced. Demosceners are very open and share their knowledge in private seminars at different demo parties, much of which is left underground like the parties themselves. I think people will flock to Shadertoy around its core features of sharing code. Unlike other attempts, such as my friend Ricardo Cabello’s GLSL Sandbox, community is key to Shadertoy, which is consistent with Demoscene.
We decided to attach a username to each shader, which not only helps users get feedback from others on their ideas through comments, but more importantly helps users build their influence as coders and artists, which of course resonates with pirates and most hackers.
So, all in all, Shadertoy is my way of helping a part of demoscene grow, so it comes in handy for me. Of course, there’s no substitute for going to a demo party, but we manage to attract people, students, academics, who usually don’t have enough interest in the Demo scene. I’m very happy with shadertoy’s balance of “absolutely hacker-friendly” and “developed and welcome”.
Question: Math is hard for some people, but it seems second nature to you. How did you get interested in math and code? Are you self-taught and trained?
Inigo Quilez: To answer the second question first, I do both self-study and training. I am an electrical engineer by training, not a computer scientist or mathematician. All the math I formally studied was actually applied calculus (including things like Fourier analysis and differential equations). Everything I knew about number theory, dynamical systems (chaos theory), combinatorics or algebra was self-taught. When I suddenly find something interesting on Youtube/Wikipedia, or when I need to do some specific math for one of the paintings, I start learning, which makes it easier to learn.
But on the flip side, it also means that my extensive knowledge is based on my intuition and doesn’t always match up with the way things actually work. So I probably know less math than you think, but I do know that I’ve developed strong intuitions that can help me use that knowledge.
To answer the first question, I think nothing is second nature unless you train enough. Of course, in my childhood, I was in the camp of those lucky people who found math easier than history. This, coupled with the lazy principle — work twice as hard on this problem and you’ll find it easiest, not hardest — led me to become proficient in math. Simple math allowed me to spend more time playing with it, which helped me develop an intuition that math is easy, which is a classic positive feedback loop that happens when you really like something. Soon, I was working around the teacher’s interpretation and finding my own way to solve certain problems. But it means I often have to take a piece of paper and a pen at home and solve math problems like sudoku, which I really enjoy. But my understanding of math didn’t come out of thin air. It came from many hours of playing with math.
I don’t think it’s any different from how professional pianists spend hours each day playing or practicing scales. I still do math exercises every day. I have drafts of new math equations on my desk, and I practice them almost every day, although most of my computer graphics or math fluff happens in the shower, when I want to relax from my real-life responsibilities.
Question: Shadertoy is a very unique site that exists as a resource for shade Coders, a social scene. How would you describe this site to someone who doesn’t know anything about coloring?
Inigo Quilez: Shadertoy is a YouTube for people who like to create graphics, images and artwork by coding mathematical formulas and computer algorithms.
If you don’t know anything about coloring techniques, then you probably don’t know what “coding mathematical formulas” and “computer algorithms” mean either, so the second definition should be:
Shadertoy is the YouTube for techies in the game development and film industries. Instead of using paintbrushes and digital sculpting tools, they create exquisite images by entering mathematical formulas into a computer.
Question: Did you expect Shadertoy to be more popular and active? What are your thoughts on the future of the site?
Inigo Quilez: Pol and I did think this site had the potential to become what it is today, which is why we created it. But we also know that just because something is needed doesn’t mean people will accept it. But luckily the site quickly took off and quickly formed a community around it. Now it’s my favorite habit and my source of happiness. The first thing I check every day when I go online and I check it many times a day is to see the funny algorithms that come out of Shadertoy. I can confidently say that a lot of people do the same, and I feel sorry for the studios that spend a lot of time on Shadertoy. On the other hand, it’s better than them checking shaders and algorithms on Facebook and Twitter, right?
In the future, Pol and I will be working on shadertoy two or three days a month, usually on Tuesday nights. We have a long, long list of things we want to improve and things we want to evolve with the site in many different directions. But we’re in no hurry. It’s still our pet hobby.
Question: There are some shaders on Shadertoy that are very encouraging. What kind of learning path would you recommend for someone who is just getting started?
Inigo Quilez: I generally don’t like to recommend a specific learning path, because I think everyone does it differently. I can only say how I did it myself. I taught myself computer graphics by applying it to projects I actually care about (demos on demoscene, rendering typing, film shooting, educational content). In each project I learn something, but I always make sure I finish the project. I’m not going to stop myself from trying to be perfect, I’m going to post my demos, typing patterns and paintings anyway. Of course I will set a high standard and keep it high, but I am aware that it takes time to meet that standard, and it does not require me to customize it.
I’ve been doing this for over 25 years, and I’m still learning and improving. So it’s useful for me to have enough patience and practice and finish the work every day. And my point is that something really important is ** make sure you repeat the wheel as many times as you need to. ** I think this is a very important point, but unfortunately it seems that software engineers have been trained to prevent duplication of wheels at all costs. I personally am very much against reusing code, libraries, and technologies in large quantities. At worst, finding your own solution is a way to appreciate just how good a good/professional solution really is.
In the best case, you can find a new algorithm to make something happen, and sometimes it might be something you’ve never done before. In the world of computer graphics it probably happens more often than people think, and it’s still green territory full of hidden gems. So stay native, reinvent the wheel, and explore new ways of doing old things.
On the non-technical side, striving for more beautiful art is a good thing. Just because you’re a technical artist, a programmer, or an engineer, it doesn’t mean you can’t open your eyes and say the difference between ugly art and beautiful art. I’ve seen a lot of people who are very technically competent, but their work doesn’t get the attention it deserves, simply because the results don’t look good enough. Learning basic aesthetics requires little effort and a little attention to film and photography work.
Last Question: You mentioned in your introductory video on your YouTube channel an easy way to create graphic effects; Aside from the great fun of creating shaders, what benefits can be gained from shader coding? Can you tell me about your talk at Siggraph Asia? What are you going to cover?
Inigo Quilez: I can answer both of these questions because my talk at Siggraph Asia will tell you exactly what benefits you can get from shader coding besides fun.
Without spoiling the conversation, I have to say that I won’t have an answer to this question for many years, ever since I worked at Pixar and Oculus, and finally I was able to make a living professionally creating graphics and beautiful content using math, which proves the tremendous practical value of using math to do graphics.
At some point, which I’ll describe in my talk, it has to do with the state of the industry and the hardware market, and there’s a lot of opportunity for people who are proficient in the art of creating math and code. The window of opportunity is wide and offers a lot of fun and opportunity, and I suspect it will happen a lot.
The talk will be about how I operate when these opportunities come up, from a code, math, art point of view, what I do, and why I think more people should do the same thing at work.
Editor: The 12th ACM SIGGRAPH ASIA will be held in Brisbane, Australia in November 2019. Inigo will be speaking and his keynote is entitled “Why I Create Images with Mathematics – A Journey of Technological Innovation”.