[interview #3: Iñigo Quilez aka iq.........................]
According to this interview, it seems anyone can do a 4k after all...

             And this *simple* math equation generates...

Hello folks.

DaTunnel returns after the break with a long long long long interview to our beloved coder Iñigo Quilez (mind the "ñ"), which is the man who brought us (along with Rgba, his group) unforgettable pieces of jaw-breaker coding and compression like "Paradise" in 2004 or "Elevated" at the latest Breakpoint.

So let's switch to the Spanish keyboard (for the "ñ", obviously) and let's go on.

1) Ten years ago, TASM was sufficient to make a 4k intro. Now you need at least a degree in mathematics. Did the scene really change like that? Did the bar rise so high?

Well, well, TASM was not enough. You had to know numbers like 0xa000 or 0x3c8 by heart, and all the other registers of the VGA card, and some int 0x21 routines too. You also needed to go mad to setup a linear frame buffer in 32 bpp with VESA and a bit of crazy protected mode interruptions. Then you could start to write a rasterizer and implement a good clipping routine in fixed point. Today you don't need all that, maybe knowing how a perlin noise function looks like is more useful.

So did the scene really change like that? Sure.

Did the bar rise so high? Not sure. The difficulties have shifted.

... a butterfly (on a rhino)
4k today are mostly about procedural content, so of course knowing a bit of maths helps, but you don't need a degree in maths at all. I'm electrical engineer myself, and for making an intro I don't use even 10% of the maths I learned. In reality you just need to know what's behind words like dot product, smoothstep, noise and cosinus. I think anyone who could build a trifiller for a 4k in the 90s will easily understand what a smoothstep is. So I'm not sure the bar has risen.

In the other hand it's true the expectations of 4ks have increased, so somehow it might be more difficult to make a 4k today... but at the same time now we have plenty of tutorials, websites and source code examples of 4k intros out there, so it's easier to learn.

So I really don't know, I cannot answer the question. (sic!, ndFriol)

2) You are the coder of many well known (and party-winner) 64k or 4k intros. Are there any 4ks from other groups that make you say "how did they do that", "how did they fit that in 4k"?

Not really. I guess most 4k coders can spot all the techniques and many of the tricks of an intro by just watching. I never got the "but how did they do that" thing, and I'm pretty sure none of the other 4k coders did neither. What I (we) usually think is more like "shit, they found this nice trick, and I didn't see it in all this time, damn it".

In fact I think 4k today is not really about expertise in coding as much as it is about finding a nice idea/algorithm. So basically when somebody makes a nice intro it doesn't make me go "how they did that" but "shit those bastards found this nice algo before me" and then "ok no problem, I will have to find a better one now". I bet it's the same for the rest of 4k coders.

The same applies to 64k intros - no real surprises anymore since Stash o fr08, except for when I watched Tracie/TBC and I felt again the "but how the fuck?" magic in my body. Then I saw the shader code and I said "ah, oh, of course, damn you Mentor!".

Movement got better after the infamous 'Bambi'...

3) What is your opinion on the "eternal dispute" between who forgives the use of "system" DLLs in 4k intros and who doesn't?

Ideally one should use whatever s/he needs and just be clear about it, with no cheats, and let the people judge accordingly.

Now in the real world, for a party competition where you need to set some minimum set of rules, I would probably disallow using external DATA (gm.dls, OS wallpapers, OS sounds or music), and I would allow to use external FUNCTIONALITY if it's provided by default with the platform of choice.

In my opinion the renewal of the hardware and APIs are the main cause for the progress of the 4k scene lately (plus improvements in compression techniques of course). I think that if we didn't allow to use the new functionalities provided by the pc platforms we would still be coding i386 intros, just in 3 gigahertz machines, but they wouldn't look any different than those of the late 90s (perhapse we would have few hundred raytraced spheres instead of ten). But that would probably be very boring.

Also, I think there is some misconceptions about system DLLs, I dare to say that this is especially true for those old school sceners. System DLLs don't have 3d engines, system DLLs don't have 3d object, system DLLs don't have image filters, system DLLs don't have glDrawMountains( GL_BEAUTIFUL, GL_PLEASE ) or D3DX_BuildArchitecture( D3DX_AN_ATRIUM ). System DLLs don't have sound synthetisers, or camera animation systems, nor they do glApplyEfect( GL_GLOW ) or anything like that. The most advanced thing a system DLL possibly does is to give you the geometry of a sphere or a rectangle, perhaps a cube if you are lucky. And in case you were to try to impress the audience with some cubes (?), the system DLL would save you the same 100 bytes that you would be wasting anyway initializing the DLL itself. Also, most intros today are heavily based on raymarching, where generating a polygonal mesh is anyways useless.

In my experience abusing a system DLL can save 200 bytes total of your intro, if you are heavily using the functionality in it. Does this help? Yes of course. Now, are those 200 bytes gonna make the difference between your prod being a great intro or just an average intro? I don't think so! Awesomeness must surely come from another place, not from the 200 bytes you will save by using system DLLs.

4) In your Function '08 paper, your conclusion is that demosceners are attracted by "CUBE-based" productions, but "organic" and "not-abstract" stuff is harder to do. Isn't there the risk to be like "Dr. J. Evans Pritchard" of Dead Poets Society in classifying artistic productions? Who is right: the masses, that make "Candystall" win against "Stiletto" at Assembly 2007, or 0,1% of demosceners, that love "organic and non-abstract" stuff?

I don't think it's bad to do a classification according to some parameters you choose (classifications can coexist), as it probably helps to make a dissertation or to communicate (like when you naturally classify when telling about a demo to your friend - "hey, did you see this demo? It's a olschool demo, minimalistic". Nothing wrong with that probably. In the case of that presentation at Function '08, it helped me to (hopefully) communicate an idea (more on that shortly).

The risk would be, I suppose, to give value or judge a piece of art or demo by measuring it thru a given criteria or classification, like when Dr.J.Evans Pritchard phD measure indeed how "great" something is. Thankfully demos are not valued like that, but by the rule of thumb and mouth to mouth.

And indeed the classification I made was not to compute which intros were good or bad, but to study the taste of the intro audience and the preferences of the intro coders themself. First I contextualized the type of intros acording to a criteria that helped me explain my experience. My message was that after having tried myself all the type of intros I found that indeed abstract ones are far more simple to produce than non abstract, and that at the same time they are by no means less powerfull to transmit an idea/feeling, or even to simply seduce an audience.

Also, I love this retoric games where you investigate things by taking all the view angles possible, whatever you agree with them or don't. Ocassionaly you find big "truths" or ideas.
Sometimes I also like to force myself to play the bad guy (like when "I hate cubes"), although I'm not very good at it.

5) We've seen futuristic cities ("Micropolis"), landscapes ("Mojo dreams" and "Elevated") and half women ("Stiletto") in 4k intros. Where are 4k intros (or 4k image executables) headed from here (technically and artistically)?

Well, you have described "non abstract" intros only (hey, classifications!).
Abstract intros (Texas, Nucleophile, Receptor, Kindernoiser) will continue their own progress I guess, there isn't any "logic evolution" for them from my point of view, they will continue to look nicer and be more artistically impressive.

But for non-abstract intros, indeed, after cities, landscapes and half-women, I guess the easy (!?) way would be to have more realistic cities, more alive landscapes and body-complete women :) However not many want to or can go that way.

If I had to do a prediction, I would say that for one or two years we will have a bit of the same things. Since 2007 we are apparently in the "raymarched intros" era, so we will see more Tracies, Sults and Nevadas (see prods of BP09 and Evoke09!). But who knows, one of the nice things of the demoscene is precisely that everything is "just as before" until somebody makes a super cool intro suddently, out of the blue. And that can be anytime!

Well, looks good, even without penguins

6) Each time I've seen the sea scene with icebergs in "Paradise", I've always thought that something was missing there for lack of space/time on your side. Now, can you tell us what you *really* imagined in that scene? :)

Paradise (2004) was my second production for Windows and hardware rendering, and my first with shaders, so not only I was heavily limited by the deadline itself but by my graphic abilities at the time too. My goal with Paradise was indeed twofold: to learn shader programming and to see how far I could go on realism. And so, for the icebergs scene my idea was to have done a better snow material (softshadow, a better subsurface scattering approximation, etc) and a better ocean surface. For the content, I didn't have the time to make the tail of the whale appear as it enters the water. The scene of the desert is also embarrasignly unfinished and empty. I think only the rhinos was properly finished. (oh god, I always thought they wanted to put *penguins* there... dream shatters, ndFriol)

7) Last question: we know you've made great work and research on character's movement in intros, but do you agree on the definition "the Bambi that walks like the robot from Kasparov" for that lamb in "Paradise"? :)

Hehe, well, in fact it walks much worse than the robot from Kasparov. It looks awful :)
Just for the record, there was no animation system in Paradise, nothing like skeleton animation and skinning or anything. Instead, animations (whale, dolphin, rhinos, etc) where done my moving the vertices of the meshes with formulas. So was the Bambi, where every vertex was moved every frame with some combination of smoothsteped cosinus and exponentials.
The final version of the intro has a somehow better animation, although it's still terrible (it's uploaded to Pouet I think, although the video capture has never been updated). But well, Paradise was the first time I was formulanimating characters, and at the time I was reasonably satisfied even with the Bambi.

Oh well, we thank so much iq for this great interview, and suggest him to register the term "formulanimating", could be worth millions in some decades. By the way, you can find all the productions of Rgba here. Don't forget to check also iq's work in 4k procedural rendering (you can find more infos on his site).

[Update!!! I was right on the penguins after all:
> 2009/8/6 iñigo quilez:
> Btw, you are right, there were some penguins in the icebergs at some point,
> I forgot about them!! I had to remove them because they were not good
> looking enough!

posted by friol at 8/06/2009 10:30:00 AM - under: , , - comments? here (6)

6 commenti:

Peter ha detto...

Great to see you back! Keep it coming :)

Cesare Castiglia ha detto...

Ace! (Dixan here...)

bdk ha detto...

Nice interview :)

Anna jones ha detto...

Awesome !!!
nicely faced interview.

Optimus ha detto...

Nice interview. Great to see your blog back in action.

friol ha detto...

Thanks for your encouragement, will try to keep it up :)

the tunnel - demoscene blog - (c) friol 2k10