Interview with Demoscener – iq (RGBA)
When someone asks me what the demoscene is, I often pull out some demos for an example to quickly explain what it is. A demo is worth a million words… (but I always recommend watching ”Moleman2” to know more.. seriously this 90 minutes documentary will change your life or viewpoint)
I’m usually doing this to people who are not so good at “computerized stuff” and I’m pretty much on the same level, so the explanation has to be short and easy for both our sakes.
Basically what I want to say is two things:
1. Can you believe it? This thing is made of computer programs, only numbers and alphabets, not drawings!
2. Can you believe it? This whole thing is packed in 4KB/64KB size! It’s like hiding a watermelon in a matchbox!
Among many other demos that I kept for this occasion, RGBA+TBC’s “Elevated” has been in my frequent playlist. No wonder. This demo covers 2 things that I mentioned and is one of the perfect examples to show the coolness of demoscene…
This time, I interviewed iq, a coder of RGBA. He kindly shared some stories behind this legendary demo, his inspiration, his workspace and the reason why he chose demo and mathematics to express himself…
Enjoy! 🙂
——————————————————————–
First of all, could you please introduce yourself briefly?
My real name is Inigo Quilez, hence the “iq” nickname that I’ve used since way before I was in the demoscene (or knew how to talk English for the matter). I belonged to several demogroups before joining/co-founding RGBA. I have always been a democoder in all of those groups, although once I helped organize a demoparty and so learnt that it’s too much work. I rather program a demo/intro in assembler from scratch than organizing a party! I have written music for a couple of small productions too, but that’s really not my thing. Coding it is.
When was the first time you used computer?
I used my first computer quite late I think, I was already 14. But I jumped into programming straight away. There was little more I could do with that old second hand 8088 IBM PC computer. You know, that massive heavy box with a microwave shaped green screen (text mode only, no graphics!) and two floppy disk drives (no hard drive back then, my friends!)
I spent lots and lots of time obsessively learning to program. Pretty much by trial and error, for that was the times before the internet existed. I’d done that for up to 2 or 3 years, in complete isolation from the world and hence the demoscene.
What were you programming at that time? Making games?
I did small text-mode games in GW-BASIC in a 8088 PC at first. Then I got a i386 PC with mode 13h, so I could do graphics, and I started doing fractals and other graphics experiments. Never wrote a game again in my life since.
So you were playing with fractals but had zero connection to demoscene back then? Completely isolated?
Once however I visited a local event in my hometown where, according to my father, there was “computer stuff going on”. So I went. And it happened to be the so called “Euskal Party” (demoparty held in Spain), a pretty big party with a few thousand people, many of them were demosceners. I sneaked in for a couple of hours, and honestly didn’t understand anything of what I saw on the big screen. In retrospect, I am pretty sure I saw their 4 kilobyte compo, but back then all was weird potatoes rotating on a huge screen without any context to me. Still, I fell in love, so I asked around a bit. I learnt people were using a “compiler” to do those things, which was so much more advanced than my GW-BASIC and QBasic interpreter I had been using till then.
So that’s when you found the demoscene…
However, after this short contact with the demoscene, I lost track of it until 3 years later when I re-discovered them through my university roommate. He showed me “GENESIS” (video), a demo by the Spanish group Dosis, and then “Second Reality” (video). I was then finally formally introduced to the demoscene.
Good for you 🙂 And did you start creating your own demo soon after you are introduced to that world?
It was immediate. That same evening I saw GENESIS and Second Reality, I started coding a demo. I had been programming in isolation for 4 years, almost like in a mystic mission waiting for a divine announcement for the purpose of the 4 years training. So that evening I started to do what “I had been meant to do”, lol. Coding a demo.
Wow, if it’s a movie, you would hear the bell at the moment… 🙂
However I spent as much time writing music in FastTracker as I did in writing metaballs in the Watcom C compiler. Unfortunately I was studying electrical engineering, so I was all by myself again in terms of learning programming and algorithms. But nights were long, and morning classes were not so interesting… so planets aligned again and I’ve never stopped coding demos (or things close enough to demos) since then.
Electrical engineering? You had secret dream to make something… like rocket or warp tunnel?
Not that crazy really. I loved electronics and I wanted to build a computer from the ground up (from gate design and VHDL to the OS and software later) which I did at my second year of studies (a 14 bit computer, LOL). But again, I chose electrical engineering because it was easy for me, not because I was that madly in love with it. I’m just lazy.
For the record, you said “not that crazy” at first.. but anyway… 🙂 I want to know your creation process. Do you set any specific theme or schedule before making demos? Do you write it down or draw your ideas in a notebook?
Hm. So far it’s being pretty unstructured and wild. No story boards, sketches or plans whatsoever. It’s always been an organic process, an instinct driven by a desire to prove something to myself (or the world sometimes). Most productions have been a necessity to do something. Except for “Elevated” perhaps, which became a mix of that and carefully planned production. This time I was collaborating with Mentor and Puryx, so I couldn’t just do a random demofart. I knew I had to behave a bit for the Danish. We sort of worked regularly in the demo for a few weeks (two months?) almost as if we had official homework to complete. But that was an exception for me.
4KB demo “Elevated” by RGBA & TBC (2009)
In terms of the content in the demo, I have images in my mind of what I want. Sort of “moments” or “key-beats” that I want to see in the demo. I want those particular moments to impress myself and also to get a “wow” from the people that will watch the demo. But besides those demo moments, which usually are pretty sharp in my mind, the rest is all very vague.
And when do you decide the title?
The title of the demo comes in the very very last minute sometimes, just before submitting to the demo party. All my demos are called “main.exe” until renamed it otherwise at .zip packaging and uploading time. “Paradise” and “Elevated” were exceptions though. “Paradise” got its name months before it was complete, and “Elevated” was suggested by Mentor a couple of weeks before the deadline.
64K demo “Paradise” by RGBA (2004)
Hmm, that’s interesting to know.. You said “Elevated” was different or “exception”. Why? In what sense it’s different from others?
“Elevated” was different in the sense that we planned the whole compo domination. We decided to have great music, great cams, optimize the hell out of the code, and do it with time in advance (2 months!) so we would have time to polish. We didn’t rush at all. I had broken up with my girlfriend after 6 years together, so I was alone but more than ready to invest time coding. I did the imagery and main coding in the evenings and night, in a huge 40 square meter living room that I had that was empty except for a couch and a projector. It was a private screening room!
The visuals were of course not storyboarded or anything, but still, we got lots of time to polish and try different cameras and pick the best ones, improve the music, etc. We finished the demo 3 days before the compo, with something we knew it was going to win. Basically, we were satisfied with the result. Which is so unusual!
It’s tough to believe that you created it without any storyboard though! Then where do you get your inspiration for the demo?
“Harry Potter”, “The Lord of the Rings”, “Pirates of the Caribbean”,” The Hobbit”. I guess, matte painters and VFX studios. But it’s very indirect. They inspire me because I see their movies and (I feel) “I WANT TO DO THAT!!!!!!!!!” But then I’m a lazy bastard and never download or buy their work and study it. Instead I just watch the movie and set some sort of target quality bar that I want to hit by some miraculous process. Which is stupid, I should study those things more systematically. But I always end up doing random exploration, and more often than not, failing.
I also get inspiration sometimes from some motion graphics or demoreels, visual experiments and such. But much less, cause I find them more boring.
Are these your favorite movies or just for inspiration?
They are not my “favourite”. In fact, I don’t watch movies really. I don’t have TV nor Netflix or streaming services. I only watch movies if somebody I am with want to watch a movie. These HP, TLOTR and Pirates are inspiration. I find their visuals pretty (and cheesy, but I like cheesy).
Totally out of curiosity, do you dream while you’re sleeping? Does your dream have colors?
I very, very rarely dream. Maybe once a month or less. People say that we all dream but we don’t remember. However I’m kind of pretty sure that I don’t. When I do, I don’t dream in color or monochrome, nor do I in any particular language. This is a common question – do you dream in Spanish, or Basque, or English? And the truth is I don’t dream in any language or color.
I don’t “hear” or “see” my dream like a movie. Is that how you guys experience them? I simply dream of the communication or the situation or views, not the mechanics of the communication (language) or set (colors). I think I experience dreams more in first person, rather than in third person. Like in normal life, you simply “tell people things” but don’t worry nor even realize the grammar or language you use – you simply tell them what you are interested in telling them. Same way, when I’m in a store I am in the store, not in a world of colors or black and white. Dreams are the same, they are not very different from reality. So, no particular palette or language when I dream. Which is not often.
…I’m really tempted to dig more about this topic, but maybe some other time 🙂
Could you show us where your demo is born? Do you do anything particular while making demo… like listening to music, drinking beer, coding in the darkness…?
I’m a total unrecoverable night person. If I wake up in the morning and it happened to still be dark, I’d feel miserable.
I work at nights, when the city sleeps and there are no noises, when people don’t disturb me nor do I commit to do any other thing. I usually work in the dark, although it’s being 5 years now that I have the bedroom full of Christmas lights 24h/365d. So darkness and Xmas lights. On the desk, a lamp to my left which I switch on if I need to write something down or draw something. And the computer to the right, all in a big (but cheap) Ikea table. It’s being like that (except for the Xmas lights) since I was 14. It’s totally a habit thing more than a convenience, I think.
No drinking, no smoking. But yes condensed milk and yogurt with cereals. Maybe some music, but very very rarely. I am very simple monotasking system. I have been known for not believing/trusting people who code or read and listen to music at the same time. Now I know they can, and that I cannot (unless I’m doing something simple – but then what’s the point of doing it). So usually, no music.
Ha ha, It’s fun to picture you coding in Xmas lights holding cereal bowls 🙂 Okay, so… unfortunately I won’t be able to understand… but here’s one for readers who makes demo… What program do you use to make demo? Do you create your own tool?
Visual Studio. And now that I built Shadertoy with my colleague Pol Jeremias, I use Shadertoy too. I don’t know how to use Maya or Max or Photoshop. I want to learn to use After Effects or something for making videos, but I haven’t invested the time yet 🙁
So Visual Studio, and a pen. No paper. I use all the fucking propaganda letters and advertizing magazines I involuntarily get in my mailbox every day (America is crazy, even if you tell them not to, you still get lots of stuff). So I use the backsides or borders of these, otherwise useless paper to do annotations or solve the little math thingies that I need to solve.
For production, no demo-tools either. I tried once to make one, and I catastrophically failed. I am not a tool-maker. I get bored to death. I also realized that I don’t even “believe” in the concept of demo-tool either, not as a medium term solution to demo making (maybe it’s ok for one or two productions). I know I’m wrong, yet, it still “feels” wrong to me. It all depends of course who will make the demo in the end, an artist or a coder.
You made some video tutorials to show the process of translating mathematics into graphics. And as you mentioned, you have built the community called “Shadertoy” where people can share their code. And I wonder… you seem to have quite many hobbies to express yourself, but why do you choose programming and mathematics?
Cause maths/coding are “easy”.
What?
… Wait, I need to explain this. As a kid, at school I always enjoyed maths because I found them intuitive and natural. I bet most of, if not all, coders feel the same way. Maths class was always easier than language or history. So, because it was “easier”, and I am lazy, I spent more attention to maths than any other subjects. And because of that, I got better, which made them look even easier. It was a positive feedback loops. At some point however, instead of being lazy and be happy about their ease, I became curious about them. I started learning maths by my own. Later in time I naturally chose a technical career at the university because it was just easier to me that way.
Video tutorials “formulanimations tutorial :: the principles of painting with maths” by iq
Maths became an entertainment as soon as I mixed the computer in the equation (pun). That was the time I started learning to program, and the whole thing evolved into fractals, demoscene and mathematical paintings. All driven by laziness. I am a natural procrastinator, and in fact I often get in serious trouble because I delay things beyond all reason. And guess what I do when I procrastinate, instead of those other important things that I should be doing? Very often it is “math and images”.
Oh wow… so math and images are your hobby…
All is not maths and images though. Among the other things I do or have done are skiing as number one (I was involved in competition for a few years, and I still love/need the white free sliding), contemporary dance (have you ever been on a stage? I have!), writing, learning new stuff, and I don’t know, so many things many of which cannot be said in public!
Ok, then I won’t ask you further about your hobbies here… 🙂 I’m personally not good at maths but I often hear that there’s beauty in maths from people who are good at it. Will you explain to me “the beauty of mathematics” in your own words?
I think there are many levels of beauty. I myself don’t grasp the meaning of that sentence at some of those levels, since I am not a mathemagician and I don’t understand all of the abstractions and constructions involved in high level mathematics. Those levels that I don’t reach must be like a philosophical poetry of some sort I think. I am not there. To my limited understanding, however, there’s a lot of beauty in the mathematical concepts and ideas that I manage to understand and build intuitions for. I remember building such intuitions in the past and feeling tickles in my brain, such to speak, when doing so.
However, I don’t use the sentence “the beauty of mathematics” as much as I use “mathematics can crate beauty”. And what I am doing there is a very practical and non-philosophical claim – that you can use maths to paint images that are beautiful. That simple. And is not philosophy nor needs further faith. It is one of the very basic principles of the demoscene or CG movie making, which are phenomena that exist and are tangible. But of course most people out there don’t know that, and they don’t know these demos or movies are made with tons of mathematics. Hence my obsession of spreading that message.
Right. I really didn’t know that. And I still cannot believe that… Back to demo making subject, regardless of what demo you’re making, do you set your own rule or goal? Is there anything you care about when you make demo?
Absolutely. If I am not impressed with myself by what I just did in experiment/demo, I don’t release it. I have very, very high standards for myself (and also for other demosceners). If I don’t release something it’s because I’m not happy with what I have yet.
Now, the problem is that quality needs time. And I’m also aware of the 90%/10% law. However, my position is that not releasing is not a problem. The world won’t change if I don’t release a demo, who cares. So I can wait until my skill level and knowledge improve, until I’m become a better artist and coder. I can just wait until reaching my expectations fast enough, no rush. Also, I am not systematically trying to improve those skills or learning, I’m too lazy for that (remember laziness is part of who I am).
Instead, I do other things and learn the things I need to learn just as a background process, almost by osmosis, by being in supposed to or close enough to the things that I think better than what I do (again, movies, work, etc). Then, every now and then (every few years) I retry my experiments, and usually fail again. Then continue with life and other stuff.
Your work is often packed in very small size such as 4kb or 64kb. Does size matter? Why does it have to be small?
Size certainly matters. You can compensate with quality, but if the proper size, then the better!
Oh, are we talking about…
And this applies for demos too. If you can do a beautiful demo, and it happens to be small, then it’s twice as magical. And size limitations also help proving that “maths can create beauty”, cause if it’s small it has to be mostly mathematical naturally.
64KB demo “195/95/256” by RGBA (2005)
Okay 🙂 Then let me throw a bit mean question. I don’t know anything about programming so this is just guessing.. but to show that much graphics and music with just a few lines of codes, you have to optimize and optimize to the point where you cannot make it smaller than that. So in the end, each code must be very smart and will do many things at once. But generally speaking (in general business world), isn’t this unpractical? I mean, you may have to write up whole thing if there’s problem.. or not every programmers can handle such polished code… Can the beauty co-exist with practicality in programming?
I don’t know. I think there’s in fact a middle point between crazy obfuscated over size-optimized code, and regular so-called “well designed” code, which often is over-engineered, excessively generic, too much documented, and absurdly unusable. We all know this style of coding and the programmers behind them of which there are many. Those are who know a lot about design patterns but little about making proper programs. But they have been trained to do so, so it’s only partially their fault.
I think that somewhere in between academic programmers/trainer engineers, and democoders, there’s a sweet spot of elegant design-robust code that makes use of both practical business-oriented programming and simple (meaning small) code..
Very interesting. So there are different “styles” of coding, not just programming languages… Okay, then shall we move on to this classic question? Your favorite demo, memorable demo, demo that changed your life… anything. Tell us a demo which is special to you.
“GENESIS” by Dosis, “Second Reality” by Future Crew, “Tesla” (video) by Sunflower, “fr-08: .the .product” (video) by Farbrausch… I don’t know, many!
The encounter with demoscene has changed you or your life in any way?
Certainly YES. I make demos for a living now. They are offline rendered and do serve a story, but everything I do at work is democoding. And surely enough I wouldn’t be the same without my relationship with the demoscene! (note: Here’s what he’s doing at work)
Wow, so it was indeed divine announcement! 🙂 Then what do you expect the future demoscene to be?
Hopefully demos won’t look like “demos” one day. It’s an outdated concept I think. Surprising people with impossible images made thru mad skills and producing beauty with code, that’s what I hope it will survive. The demo in its current format, I’d liked it died soon (like a caterpillar) for something better to come (something more like a butterfly).
Beautiful imagery. And finally, your message for demosceners and demo fans out there please.
Demosceners You rock!
Demo fans? Go make a demo? Or thanks for watching? I don’t know ^__^
——————————————————————–
Thank you very much for answering all the questions and photos, iq! It was, in so many ways, full of surprising answers 🙂
On his website, you can check his various works; demos, images, articles (including tutorials around Elevated), and there’s not-so-techie blog too. (yay :D) On RGBA’s website, you can check their demos and source code of their work.
And if you’re a person who enjoys programming and such, be sure to check and join his co-founded “Shadertoy” (you need a WebGL-enabled browser for this website). You can check more video tutorials from here. For more about Shadertoy, he shares some stories in diskmag called Hugi.
———————————————————————-
In case you’re wondering what “demo” or “demoscene” is, better check out the well-made documentary called Moleman2. (and the director, M. Szilárd Matusik’s interview can be read in here.)
#1: q from nonoil/gorakubu is here.
#2: Gargaj from Conspiracy, Ümlaüt Design is here.
#3: Preacher from Brainstorm, Traction is here.
#4: Zavie from Ctrl-Alt-Test is here.
#5: Smash from Fairlight is here.
#6: Gloom from Excess, Dead Roman is here.
#7: kioku from System K is here.
#8: kb from Farbrausch is here.
#9: iq from RGBA is here.
#10: Navis from Andromeda Software Development is here.
#11: Pixtur from Still, LKCC is here.
#12: Cryptic from Approximate is here.
#13: 0x4015 aka Yosshin is here.
#14: Flopine from Cookie Collective is here.
#15: noby from Epoch, Prismbeings is here.
– Why I’m interested in demoscene is explained in this article. And for some of my other posts related to “demo and “demoscene” culture is here.
Great interview (as always), good reading 🙂
Thank you! you're always very kind to me Biter! 🙂