Sunday 8 August 2010

The end

I'm sitting here at Vantaa airport waiting for my flight back home, feeling very tired but also satisfied with my journey: it was probably my favourite visit to Assembly (although I wasn't there this time with any of my Greek friends). Many greetings to everyone I spoke to and the new people I met, especially Zden from Satori; man, I hope to see you again at a party!

I will remember our studio compos with Smash, Okkie and the other folks... it was a pity we didn't arm wrestle in the sauna, that would've been interesting. I bet I would win again hehe....

Now, the demo. Well, it is what it is. Love it, hate it, remember it, forget it... Iconoclash is done.

Nice talking to you through this blog. This is my last post! good night everyone.

Friday 6 August 2010

2nd day at Assembly

Friday today and I had lots to do. On the field ground that is, throwing CDs and diskettes. My throws were ok, around the mark of my previous records but I'm not sure I'll get a prize... competition is getting stronger!

I've been involved in the 4k and 64k jury, which means that I have seen already all of these productions. I'm not going to spoil it for you, however:
  • There is at least one production that will capture your imagination. Guaranteed.
  • I was disappointed by the productions of two groups with famous names; one was going like slideshow, the other had very questionable design
  • There are *a lot* of productions this year on both platforms. The session is going to take a long time to finish

Other than that, I had a very pleasant afternoon on the new boozembly hills. Spoke to many heros of the modern and not so modern scene and finally said a hello to Zden in person.

I gave my lecture which I thought was ok (the audience was probably a bit disinterested, or maybe they were just reserved or tired). Many thanks to my lovely wife for giving me her yoga mat... I had a lovely sleep!

Tomorrow is the big day. But now there is nothing else we can do, production already submitted.

Thursday 5 August 2010

Here at last

It is actually not that far from home; only 3 hours on the plane and another one on the bus.

First impressions: Assembly is always impressive. There is so much going on! I now have to relax a bit, and maybe try the showers/sauna.

Leviathan and amusic are still working on our production. Cool. I'll update this blog more often now that I'm in the dragon's den... come and say hello if you wish, I am at O3/3 ( but nobody knows what is the correct ordering of places up here, so... well, just come to the oldskool area, third floor 316 exit).

Oh and by the way: I'm made a clan called "oldskool demozz" (yeah, exactly) to play football tomorrow. Join if you have the proper shoes.... :-)

Tuesday 3 August 2010

Stella's review of The wind under my wings and comparisons

I got Stella to do another interview after watching "The wind under my wings" (yes, she watched it without even twitching. Her attention span is, still, longer than us youtubers).

  • The total silence after my question "what was in this demo"
  • Her making fun of my Greek accent (it was one of these rare occasions when I spoke to her in English, which she found quite amusing)
  • What happens at the end of that demo? "Wow and colors"
  • Her revealing that she likes both demos equally: wind and iconoclash

Here is the file.

Sunday 1 August 2010

Stella's review of Iconoclash

I asked Stella (my daughter, who is 3 years old) to watch "iconoclash" and tell us her opinion, in English.

Here is what I got out of her.

Saturday 31 July 2010

Burning the midnight oil

Not that much time left now. Found a massive bug that causes cpu crash on random machines. Got to be careful with all the graphics cards from different vendors - who is going to throw white triangles on screen first, nVidia or ATI?

Running the demo again and again trying to fit visuals with music, one of the hardest tasks (but thanks to Leviathan and aMusic this can be done in a couple of nights).

Oh and writing this post while waiting to get to the final scene of the demo; no FF on this engine I'm afraid :-(

Thursday 29 July 2010

Eat demos, sleep demos, drink coca-cola

Almost 7 days to assembly; can't take my mind off it!

I give a lecture on Friday 7.30pm, somewhere inside the Hartwall arena. Come and say hello!

Monday 26 July 2010

The wind under my wings and Iconoclash

We got some very mixed (more like negative) reviews for our latest demo "The wind under my wings" at pouet. This is understandable, as I have mentioned before the audience for demos like that is quite small. Let me come back to this issue after I give out some details on the concept of "wind":

  • I've been trying to make a demo exactly like that for maybe 7 years. This is more time than for anything else we ever planned. To be precise, this production started my interest in trippy ambience and controlled noise; but I had never been able to transfer that into one of our productions. "eon", "aphorism for the masses", "walls of eryx" and "captive" were steps towards "the wind under my wings". I'm happy that I have resolved this even if it took so long. The future is open for further experimentation.
  • There is an underlying theme, very obscure (and it is even more if you haven't seen "Iconoclash" yet, which I'm sure you haven't): "The wind under my wings" continues the "rupture/chameleon" saga, in which the hero/avatar is chased away from this world into the unknown. Rupture/chameleon left us at complete destruction (presumably death), after a journey through the real world (objects of the real world functioning as they should, motorcycles run, helicopters fly etc.). Twinned Wind/Iconoclash demos continue in the "ether-world", or what I imagine lies further. Lets call it the spiritual universe where memories and thoughts are all messed up as in a dream.
  • Wind/Iconoclash more or less describe the same thing (with some cross-referenced elements) but with some important differences, other than the style and computer graphics techniques: while Wind is futuristic and expresses despair and anxiety, Iconoclash belongs to the past: it is gothic/baroque and depicts horror and confusion.
  • The choice of music (with the vocals) for Wind has already found lots of enemies. I believe it helps to create the element of anxiety I described above. Maybe the same would have happened with an ambient/noisy track - but that would have been quite predictable.
I find it much easier to immerse into "Wind" after having watched this demo (as you would expect) hundreds of times. Maybe it is that the brain needs to work out the patterns and rhythm slowly, one step at a time. Some demos need that, require your full attention and your devotion.

What started as an awkward attempt to break a 7 year curse has grown up considerably inside me. Maybe it will grow on you too.

Sunday 25 July 2010

Live from Euskal 2010

I've been here at the Euskal encounters 2010 for the past 3 days, enjoying good weather, good company and good food. If you have never been there please do so, maybe next year or the year after; the place is mind-blowing huge! there are activities and computers eveywhere, although, sadly, the scene area is a shadow of its former self.

We presented a demo too:

Don't mind the critics, this is a very good demo indeed; (yeah, a thumb up from me too, we did a pretty good job with Amusic and his gal). It looked clean and focused on the big screen (unfortunately on a 4:3 aspect ratio) and gave me the warm feeling you get inside you once you see your production with the public.

I understand this is not for everyone, but I'll be more than pleased to see a rating of approval from certain people.

Clean-cut types who like their demos with phong and textures, suck your thumb... and wait.

Tuesday 13 July 2010

Return of the prodigal son

So I went on holidays with my family last month and forgot to return home.

We went to Greece, to do what common people do there:
  1. Wake up at 10:00, have breakfast
  2. Drive to the beach, swim and tan for a few hours; drink a bit of coffee
  3. Go home, have lunch at 16:00, have a siesta for the next couple of hours
  4. Visit family, have dinner out
  5. Put baby to sleep, have a drink out, watch the world cup together with thousands of Yugoslavian tourists. Paradise!
  6. Go to sleep as the temperature just dips below 30'C
Would be nice wouldn't it. Only this is the life of a tourist. The reality is slightly different for many who live and work there:

  1. Wake up at 7:00, have a strong coffee
  2. Work in an air-conditioned office either making shitty java plugins or selling overpriced clothes to the nouveau poors
  3. Go home to wash and watch some crap on the tv, laced with a million of commercials for things you never needed anyway
  4. Go out to see friends and moan together about the crooked politicians, when it was you who voted them and your parents who, long ago, benefited from this chaos
  5. Go to bed wondering how you can afford one day to have your own children, your own house and your own furniture. Say goodnight to mother who looks after you.

Anyway, the first and last seconds of "Iconoclash" (our assembly demo... remember that?) are copied and pasted from my swimming experiences in Greece. I'll try now to post more often (although I'm going away again in 2 days) and keep you up to date; only 3 weeks left!

Tuesday 8 June 2010


The words Summer, Assembly and this will be linked forever within me.

Monday 7 June 2010

Demo for Euskal finished!

So let's see what is in there:

  • One day demo, I took a day off work to do some tidying up in my house but ended up doing the demo instead. It is the fastest production since EON.
  • Based on an idea I had about geometry generation through subtractive synthesis: shapes are generated through CSG "boolean intersection/difference". I wanted to do this since watching Medium ages ago.
  • No loaded textures, all (very simple) textures that you see are generated on the fragment shader.
  • Only a couple of meshes loaded and used as "noise" rather than geometry.
  • Hard camera cuts, hard visuals, not a very pretty sight.
  • This demo is not for everyone. It will either come first or last in the compo. I personally rank it very highly amongst our demos so far. I love this demo.
  • Pouet thumb prediction for first 6 months: 110 thumbs up, 25 thumbs down. Oh and 3 cdcs. You know you want to ! :-)
We still need some music for it though... but we'll get there shortly after music for "Iconoclast" finishes.

Thursday 27 May 2010


I have now purchased plane tickets for Euskal encounters and Assembly. I'll be giving some sort of lecture at Assembly too so come and see me if you are around.

I'll be bringing one demo for each of these parties too.

Tuesday 25 May 2010

Timing in demos

In my previous post, I talked about aligning visuals and music by introducing "delay/speed-up taps" for DeltaT.

It was suggested that an even better solution would be to make all effects as functions of an input value f going from 0 to 1 and then scaling that accordingly. This is actually similar to what I am proposing. But whether it works or not depends on the granularity (and number) of your effects.

A "part" is a long segment (1 minute+) that consists of very many effects. I find it much easier to tune the timing of a part than of the many effects within the part. What I do now is this:

Record the demo as an .avi, then play it back (with the music) inside my engine. This is much faster to load and "scratch" (forwards/backwards). The delay/speed-up taps can then be added and their exact timing copied as is into the original real-time demo.

Wednesday 19 May 2010

Visual/Music synchronization

Ok here is a good idea I had that will make my (and hopefully your) life easier:

Lets assume that your visuals are ahead of the music (in terms of production time). How do you make sure that they fit perfectly? I'm not talking about the easy case of a "beat every other second with a screen flash" but of longer segments that may need to fuse and they are off by a couple of seconds or more.

This is what we do: lets say that the music is slower than the visuals. You introduce a small "delay" factor that is a function of time. So:

DeltaT*=1.0-0.1*sin(max (0,min (1, (time-20)*0.1)));

this will slow down time for the visuals by the integral of this function all over 10 seconds. It is not noticeable. (Yeah I know, it is not really all that framerate independent, maybe you have a better way of doing so?).

Once you digest this piece of information I will continue with the rest.

Tuesday 18 May 2010

Tempest within your brain

My sources suggested at the possibility of a Satori demo at Assembly 2010.

Yes, you read it right. The masters of controlled noise, ambience and hypnotic effects could be there in person. If so I'll pay my respects.

Friday 14 May 2010


Over the past 4 days a dark cloud is hanging above me. The new soundtrack for "iconoclash" (now almost breaking the 4 minute threshold) is my perpetual companion: the music plays in my head wherever I go. Its sorrowful melodies blend inside me when I cycle in the morning, when I shower, when I sleep.

But I'm in no emotional tension anymore. My graphics work is in very good hands. Bring on the rest!

Monday 10 May 2010

Gentlemen; allelujah!

Finally, after months of silence we got a draft of the first 2 minutes of the music for Iconoclash, by courtesy of Leviathan. As I understand it they'll work like that: Leviathan will set the rhythm/chords, then Amusic will add the melody/orchestration. When the first draft is made then they'll add live instruments/vocals/whatever is needed.

The piece so far is very rough, as expected at this phase, but its mood is spot on. I wonder where they'll take it next!

Thursday 6 May 2010

Bad news

Oops... seems like I've lost part of the demo when I foolishly deleted some files yesterday. Serves me right for storing everything in a directory called "temp".

Oh well, it's frustrating but we'll survive. :-(

Monday 3 May 2010

Snooker and demos

Have you ever wondered: if the demoscene was a sport, what sport would it be? I've been thinking about it recently while watching the snooker world championship on BBC.

I've been an avid snooker fan for the past 13 years. I'm fascinated by the complexity of play, the perfection of rules and combination of technical skill, logic and imagination.

There are other parallels between snooker and the demoscene: first of all, unlike most other sports, snooker players/demoscene groups stay around for more than a few years (since mind deteriorates slower than body). It is not uncommon to see players stay in the circuit for 20 or more years! Just like the demoscene, snooker is also very topical, a kind of curiosity only really popular in great Britain and some commonwealth states.

But for me the most obvious connection is this: you either get snooker/demoscene or you don't. People are saying "why waste your time on something that won't make you money" or "what is fascinating about baize and balls" - it is an esoteric society you belong to and it gets better and better the more you get involved with it.

Wednesday 28 April 2010

Assembly 2010 groups

So who else will be there? I'll give you a tongue-in-cheek list of the groups that will deliver a demo for the combined compo; together with the odds of actually making it to Hartwall arena!

Disclaimer: I have absolutely no inside information, bet at your own risk!

  • Farbrausch: Odds 1/6. This group is always the unknown factor. Anything can be expected! I believe that their big demo of the year was Rove, but then again with so many parallel projects that I'm sure are running at "the product" WHQ there may be another teutonic surprise around the corner.
  • Andromeda: Odds 1/8. They are cooking something. On the PC. I can smell it. And this time it's going to hurt. Problem is, they've never actually *been* to Assembly before so the odds are quite low, but you never know.
  • The black lotus: Odds 1/3. It has been a while since we last saw a demo from this most excellent group. Maybe they got too old for this or maybe they've been secretly waiving the spider-web for over 3 years now.
  • Plastic: Odds 1/12. Their unbeatable productions come on all sorts of platforms and maybe they will be lured by the official support of PS3.
  • Traction: Odds 5/6. Local group will grace our screens with more particles, glowing lines and lots of fireworks.
  • Pyrotech: Odds 1. Can they make it (almost) three in a row? Space-opera-shader-hell meets guitar boy demo *will* be there for sure.
  • SQNY, MFX and friends: Odds 5/6. I have high hopes for something magical this time, music-wise at least. Expect a "tempest inside your brain" performance.
  • Fairlight and friends: Just stay home.

Wednesday 21 April 2010

Perfectly blue sky and the power of dreams

Over the past week the weather gods have blessed us with a beautiful sunshine: I woke up today at around 8.00am and just laid on my bed for an hour listening to the morning world.

The coming of summer has been painful to me for a number of years, always for the same reason, the beginning of the exam period: whether at school or university we all had to go through the laborious task of studying and worrying about the insignificant.

But the end of summer and the advent of autumn was sweeter still: anxiety was replaced by aspiration and hope for all the new, exciting stuff that the new season might bring.

And every October, back at the time when I was living in Greece, 15 years and more, I used to sit on our balcony and dream of my ultimate demo. And of Assembly, the Gathering, the Party; all the unknown, exotic places I may visit one day, and of other things that make the heart thump.

Tuesday 20 April 2010

Alea iacta est

Looks like there is going to be a demo for Euskal 2010 as well as Assembly 2010. Yesterday I was experimenting with different ideas and found something that can evolve into a small, solid demo.

Euskal is a great party. If nothing else you get to visit the beautiful country of Spain and eat some of its delicacies (jamon ibericon - yam!). I'll keep you posted on our progress on project "euskal 2010" and hope to see you there!

Friday 16 April 2010

2007 and now

I was asked yesterday to explain in which way my new demo "engine" is better to work with than the previous one (the one used in, for example, Lifeforce). I have given some technical details in random posts in the past, but today I'm going to list all of the reasons that make demo-making a far more pleasant experience.

  • On a personal level I'm a happier person than I was in 2007. I have more free time ( it is easier now that my daughter is 3 years old, back then she was a newborn) and I'm completely satisfied with my job: my commuting time is less than 20 minutes door to door compared to almost one hour.
  • My colleagues in ASD (Amoivikos, iM and Ch3) have more free time. I believe Amusic and Leviathan too.
  • As expected, we have accumulated even more experience with demo-making: since Lifeforce we've made some alternative productions (such as Metamorphosis and Rupture) which tested the waters with the scene. The fact that the scene liked our direction gave us an extra boost of confidence.
  • Better equipment and hardware: I wrote all of lifeforce on a crappy 17 inches CRT monitor using a geForce 5600. I had to see things on a 400x300 pixels window. Now I have 2x 24'' monitors and a pair of geForces and ATIs. I run the demo in full resolution.
  • On a technical level: big change is moving from Cg to GLSL. It made my life so much easier as I have direct access to the OpenGL state machine.
  • Use of .obj files instead of .3ds. Now I don't have to ever run 3D studio again! textures and shaders are hardcoded in code rather than from inside the .3ds file: much faster.
  • Use of shader model 3.0 instead of 2.0: I use loops and conditionals to put a lot of the demo logic inside a big shader file. Rather than having one different shader per material I now have one shader for many materials that share some functionality.
  • Use of flexible buffer objects: a big step forward from using the inflexible pbuffers (in 2007).
  • Use of deferred shading to achieve effects such as SSAO. This means that I don't have to do any pre-baked lightmap ever again. So no more horrible Blender. All I need for modelling is Wings3D.
  • All this results in a much smaller package: Lifeforce had 12 distinct parts which were coded in separate .cpp files. Each file was around 3000 lines. So that was around 40 seconds per part and 75 lines of code per second. Ideally I want to maximize seconds per part (in order to make the demo more "tight", to rely on less camera/mood changes and things that can go wrong with transitions) and also minimize lines of code per second. Iconoclash stands, at the moment, at 120 seconds per part and 30 lines of code per second.
  • Compilation times for the project are also down to a couple of seconds (on my new and more powerful computer). I also have a way to reload shaders on the fly, so I can change shader code - press space - change again all in realtime without the need to recompile and run. It used to be the case that I had to re-ran the application once every 20-30 seconds. Now it may take 10 minutes before I have to make a change that requires a recompilation.
So that's what we've been doing over the past 3 years: making sure that producing demos stays a more and more pleasant experience.

Thursday 15 April 2010

News and future

I have been busy with work recently and also had a rough cold after coming back from my holidays, so I didn't do much work on "Iconoclash". It gave me some time to think of the next steps:

  • At the moment all of the demo has been finished - but where is the music? Apparently our musicians are working on it. I can then work on the "emotional synch" and fine tune details.
  • Iconoclash on ATIs ? yes. And it goes like stink on my 4850. I spent a lot of time optimizing this and that, and it shows.
  • Is there room for a *second* demo for this summer? I have been invited to visit Euskal 2010. That could be an idea, *if* I think of something small and interesting to make for the party. I'll keep you posted.
  • For the first time I can think of at least 3-4 demos to be made *after* iconoclash. It is very easy with my new platform. Ironically, this new platform is far more minimalistic than the previous one (lifeforce), but somehow allows me to do more with less work. Will these demos materialize? Time will tell.
Now I need to think of a good idea for a good summer demo.

Friday 9 April 2010

Breakpoint 2010 comments

Guess what my favourite thing is just after easter: to dissect all the recent productions from Breakpoint and the Gathering and see what is the level of competition out there. Don't take me wrong though: I enjoy all new demos for what they are - 4 minutes of audiovisual entertainment - but as a producer myself I need to know what and who is at the forefront of PC demo development.

So here are some random thoughts:

  • Pleased to see the return of satori with a demo that nobody else could reproduce. I am envious, in a good way, of Zden and I hope they make another one in the near future.
  • The farbrausch demo was interesting: in the first 20 seconds I was bracing for a "paradigm-shift" production that would leave me in complete awe (echoing the days of debris). It didn't follow my expectations (they were too high anyway) for a number of reasons. Mainly because of too much repetition, not much of a storyline and several design issues (typography being a major one). Regardless, the demo is clearly amongst the best 5 of this year (if not then it's going to be one hell of a year for PC demos).
  • The winner demo from the Gathering had almost everything that you would need in a 2010 killer production: top effect, graphics, timing with the music. Yet it is not destined for the pantheon. Why is that, you ask? This is an important question and I'll elaborate in another post, stay tuned!
  • I've expessed my admiration for the demo from Fairlight - rightful winner and a very hard demo to beat in any competition (including next year's scene org awards). "Less is more" worked really well and I'm looking forward to their next step using this technology or something similar.

For me the question was: what would happen if Iconoclash was presented at that party (assuming the music and a hundred different details left to finish were all there) ?
It would have been one hell of a compo (not that it was bad as it was): a class of two mammoth demos (ours and "rove") against the sweet delicacy from Fairlight.

...I have a fairly good idea of what would have happened to the final rankings; but I'm not going to tell you.

Sunday 4 April 2010

Back to England & awards

My 10-day long holidays in Greece have finished and me and my family returned home. It was fun while it lasted, even the weather was good enough for long visits to the beach. I always try to get some inspiration from the sea (its colors, living organisms and general ambience of the deep) and this time it was no exception.

On Saturday night we all sat to watch the awards on the live stream. I thought we were going to win a couple of awards (after all we did have 8 nominations, so, statistically speaking, it would be very bad luck to not get anything). Eventually we got 3! - my family was celebrating, I was more reserved with emotion. Congratulations to all winners!

It feels good to get an award - it is a recognition of your effort. For me it is one of the driving forces for making better demos and hopefully we'll be nominated next year too.

In case you missed, here are the videos I made with the help of Stella, my daughter:


Stella will be 3 years old in just a few days. She was born on the 9th of April 2007, when a demo that was going to affect me in more ways than any other demo had ever done was released: debris, at Breakpoint 2007 !

Tuesday 23 March 2010

Lifeforce draft #1

The date is 26th of April 2007 and Archmage of Andromeda joined forces with ASD to work on a new demo codenamed "lifeforce"! I wrote the following storyboard in our mailing list to introduce him to the concept.

It is interesting to see how much (or little) the demo has changed since then:


Lifeforce by ASD
A demo for Assembly 2007

Sequence of parts:

1) Desert part (part_desert). Introduction: pan over
dried landscape with a few artifacts scattered (the
skeleton fish from iconoclast) and maybe some ruins
(church/ancient). In the style of 'deformation of the
cranium'. It is dawn or dusk, the color of the sky is
blue/reddish with some clouds.
As the camera pans it focuses on a pillar (ruins?)
where several polaroids (from iconoclast) are pinned
(the move by the wind in sinuisoidal fashion). The
camera zooms in (or rather FOV is reduced) to one
polaroid. The next scene starts inside the polaroid.
Duration: 15-20 secs.

2) Introduction (part_introduction). The part with the
head-god from iconoclast. There will be some
worshippers there. This is essentially a continuation
from the last scene of iconoclast. The head opens, we
dive in, animations, the ASD logo and dive further
down. Duration: 64 secs.

3) Rainbow ride (part_afterintro). Camera pans to the
right, parallel scrolling, all objects rendered as
silhouettes. Trees pop-up, then the VW (?),
spits out the name of the demo. The rainbow strips
extends and camera traces it. Some other VWs are
riding it. Eventually only the red strip is left and
it is laid upon a hand in space. A knife cuts through
the strip. The camera changes to show the blood
pouring out and zooms into the red. Duration: 75

4) Air-bubbles in liquid (part_liquid). Black air
bubbles rise in a container of viscous red fluid. A
bonzai tree is also part of the scenery. The whole
part is again 2D, rendered with stylized vectors in
black and red. The bubbles reach the surface. Then a
tree "dives" in the liquid and the camera pans and
zooms into its roots (the tree is upside down). What
follows is probably some sort of fractalesque growing
of the roots and zoom into the next scene. Duration:
26-28 secs.

The following parts might be in a slightly different
sequence. Haven't made my mind yet.

5) Rendering of the "jones brahmins" statue
which will be on a plane, probably floating in
space/skybox. The rendering will be photorealistic
and it will look like it is carved out in realtime (in
2.5D), starting from a completely flat surface. Use of
bump, parallax, ambient occlusion mapping. It
should look as good as the statue in
lapsus( Once
the rendering has finished the plane will rotate to
reveal something else at the back. For that I'm
thinking of something rendered with the
crystallized/refraction rendered. Probably if we could
find a model of the human heart, then I could do it as
transparent and add some blood vessels in
there. Once this is done the plane will rotate once
again. This time, instead of statue there will be a
simple merry-go round. The lights will go down and
from realistic the rendering will become two-tone
again. This is also an ambient moment for the music -
there will be some speech: the three female voices (in
different age) talking about the passage of time
(similar to the beginning of dark side of the moon by
pink floyd). As this is finished, the camera will
rotate/zoom into a feature of the merry go round which
will be a tower bell ringing. All rendered in b/w. The
ringing will be in grave rythm. This is the point of
the demo after which whatever follows is the
'catharsis' - We are beyond the midpoint. Something
like the 'blood' part in planet risk and the music box
in iconoclast. Fade out. Duration: 25 secs for the
statue, 30 secs for the heart (?), 20 secs for the
speeches and 10 secs for the bell =
85 secs.

6) Scene of the toy shop: a shop with shelves. The
shadow of a person (2?) looking into the shop is cast
upon the front glass. Camera moves past the glass,
zooms into a box which is a bathroom, all rendered
photorealistically, textures, ambient occlusion etc.
The camera goes to the floor where there is a light
bulb the goes on/off. A cable extends from the light
bulb and surrounds objects in the scene - maybe also
snakes ? The camera eventually goes into the plug-hole
of the sink/bath. The feeling here is dark - colors
are brown/ dirty.
Duration: 55-60 secs.

7) Infinite zoom with stylized vector graphics in
animation, some combination of 'infite zoom with
pixelled graphics'. The camera zooms in, pans, moves.
There is alot of energy here. Some simplified 3D in
here, all rendered with minimal colors (4-5 shades of
b/w). Eventually zoom out and next scene.
Duration 60 secs.

8) A scene similar to the first one, only now it is
water and it is night. We get out of the polaroid and
look at the distance. It is idyllic, very big moon on
the sky. From a distance a giant hand comes out of the
water and grabs the moon, pulls it down, and then a
nuclear explosion (like in second reality) happens in
the distance. All this happens within 5-6 seconds. The
heatwave/debris hits us after 4-5 seconds. Fadeout.
Duration: 15-20 secs.

9) Credits. A cross section of the floor of the sea
with rigid-body stones (with our names carved) that
sink slowly and interact with the sand (and each
other). The end.

Duration: 20 secs.

wow what a ride. Lets see how much time all this will
take: About 430 seconds, which is 7.10 mins.
Iconoclast was 8.00, so I think we are ok. There are a
couple of effects that can be interchanged, especially
in the bathroom/merry-go-round/heart scene. Now, some
will say that this is all silly. OK this is only a
demo remember. There is a common element which I'll
try to explain:

The demo is about the passage of time. How is time
affecting the living/organic things and their
constructions. I want to give it a dark/futile edge:
So, for example, while you have a rainbow with lovely
bright colors, it all ends with a knife and blood.
Several other scenes are also dark: The statue with
the humans in a philosophical pose - Not living any
more (cast in stone!) as opposed to the heart which
beats (the other side of the plane). The fact that it
starts and ends very similarly also helps the
narrative. Lets say that this is all a big nightmare,
and we want the viewer to feel numb - excited for the
spectacle (graphics + music) but numb about the

Anyway this is a first draft. I'm working on almost
all parts at the same time but trying to finish them
in sequence. Part 6 and 7 must be done with lots of
gusto and will need some help from our graphicians.

Pls reply with your thoughts


Friday 19 March 2010

Nominations and news

It is just a week to Breakpoint and the award nominations are out! We got quite a few this time for our demos Rupture and Chameleon. We thank the jury for considering our demos and look forward to the award ceremony itself. Have a look at who is nominated for what here.

So it is a week until Breakpoint opens its door, but I won't be going there. I'll be in Greece with my family, celebrating the orthodox easter which falls on the same weekend as the catholic one. I'll try to watch as much as possible on a stream (I hope there will be one).

Before travelling to Greece my plan is to finish a good "beta" of iconoclash, with all the timings/cameras/effects/animations finished. No music yet, but I'll record the demo on a video to give the musicians an idea of the mood of the later stages. Also before I go I'll post something on my blog that our hardcore fans may appreciate: the original draft of Lifeforce, written about 3 years ago in English. Why was it written in English and how much of the storyboard made it into the demo? you'll discover soon.

Tuesday 16 March 2010


Today I'll talk about changing scenes by fading in-out. I use it very rarely when moving from one scene to a different one and more often when moving between cameras that point to the same environment. The list goes like that:

  • No fades. Camera just cuts from one scene to the next: useful in fast paced demos.
  • First scene plays, cut, second scene fades-in: I quite like this; there is no fade-out on the first scene, so there is no sacrifice of a couple of seconds of valuable screen time.
  • First scene fades out, darkness, second scene fades in: I use it in the rare occasions that I want to change from one scene to the next without doing anything clever with transitions. The fade-to color is almost always black but sometimes it is white or "tv noise".
  • Cross fades: very hard to do in realtime - you need to render two scenes at the same time. While feasible it will "spike" your framerate down if not done carefully.
I try to keep it so that there are only 2-3 "fade" effects per minute. I think this is the sweet-spot for megademos.

Friday 12 March 2010

Look ma! no cubes!

Cubes in demos have dominated our screens since the beginning of time. It is easy to see why: they are very easy to model, UV and render efficiently. With cubes you can make tunnels, emulate physics (by stacking them, for example, then pushing the bottom one and watch them crumple as in jenga) , or create more complex objects by putting thousands of them in a voxel-space like arrangement.

For me cubes is a turn-off, unless it is done with extreme finesse (like in Debris and Stargazer) . It is very hard to replicate the wonderful effects in these demos, so, I won't be bringing any cubes with me this time then.

Wednesday 10 March 2010

On typography

Traditionally, typography has an important place in demos. We use text for various reasons:

  • To name the demo (i.e. "Dreamchild")
  • To name our group ("ASD")
  • For all credits ("code: navis, music: Amusic" , or shorter: "navis, amusic etc.")
  • To greet other groups ("rgba, fairlight, mfx etc.")
  • To name the event (i.e. "presented at Assembly 2003" )
  • To write scene poetry ("We used to exist.. used to dream.. blahblah")
Adding text is an easy way to add 30-40 seconds of content and give your demo a chance to take a short break from its usual flow. Everybody expects to see at least the name of the demo, group, credits and greetings, it is part of the demoscene conventions.

But I do have a problem with it. When I present demos to the public, people always ask me "What/how the hell is fairlight, rgba, mfx etc." and then I have to explain. That was one of the reasons why there were no greetings in Rupture (the other, more important, because there was no place for them).

I haven't made my mind yet about what will happen with all the typography in "Iconoclash". But if you don't see your group greeted don't worry - yet again, function follows form.

Tuesday 9 March 2010

Rendering a face

In my previous message I described the pipeline for rendering a frame. Today I will talk about the common material shader I use for pretty much all objects in the new demo.
  • I use Lambert shading, almost all faces are flat (hard edges in Wings3D). However, object are well tessellated.
  • There is an ambient component, a very slight diffuse (the difference in intensity between the face looking towards the light and away is less than 20%) and in most cases no specular.
  • UV coordinates for texturing are calculated on the fly, based on direction of normal (vertex shader). I never store UVs in a file (although I could, using wings3D's auto-UVing, but it would be a waste of time: I get a very good result with my own auto UV-ing anyway). Needless to say, all textures are tileable. I do a couple of passes adding different octaves of textures to reduce any sense of repetition.
  • Shadow mapping is performed as usual with projected texture look-ups. Sometimes I do more than one passes with slightly different projection matrix to smooth-out the artifacts on the edges of shadows.
  • On top of everything I project and multiply a "Gaussian blob" texture in the direction of the camera. This adds a slight spotlight effect and improves realism quite a bit. An extra step here is to alter the projection matrix by a factor determined by the texture underneath. This way I can emulate pretty well a very soft "bump/gritty" effect. You can see this effect in the bathroom scene in Lifeforce.
  • Then there is an element of fog - furthest objects appear darker. Pretty easy that.
That list covers, more or less, the vast majority of material shaders that I use.

Saturday 6 March 2010

Graphics pipeline

I will describe today our new graphics pipeline:

  • One or more passes (from a different camera) of the geometry is done to produce the shadow map(s).
  • Using flexible buffer objects I then render the scene into 3 buffers: one buffer holds the lit & textured objects, another the normals, and another the depth map.
  • If needed, another pass calculates the relative movement of all objects during the last frame and stores the direction of all moving pixels in a 2D "velocity" map. This is used to emulate the motion blurring effect.
  • They are all combined (in what could be called deferred shading) by a 2D pass - in here we get the screen space ambient occlusion and occasionally some other minor effects (the effect in rupture is done in this pass).
  • The output of that pass (a 2D texture) is passed to a "blur" and "radial blur" filter, in much lower resolution (a quarter in each dimension). There is a per pixel flag (stored in the alpha channel and calculated in the second step) to determine which pixels are blurred and which are not.
  • The combined output of all that is passed to a further "depth of field" full resolution 2D effect. This pass also does the per pixel "smearing" that is easily calculated using the velocity map. Additionally there is a very light full screen motion blurring effect to enhance the "handycam" effect.
And then you have a frame. Enjoy.

Thursday 4 March 2010


Magical "5 minutes" reached. The beginning of the end is near!

I like it when a big project reaches that state. I can now concentrate and try to wrap it up properly. No need to panic, plenty of time till August. All the hard work, with regards to texturing, animation and modelling, has now been done.

Tuesday 2 March 2010

Relaxation time

I was reading this article in-between work and play, and thought of having a go myself. So I wrote this little program. This is the outcome.

Top image is original, second left is how it is fed into my filter and then how it comes out. 50% of pixels are missing, yet the result is not bad at all.

Back to my demo now. Got to hurry!

Monday 1 March 2010 awards 2010

I'm pretty sure there will be an award ceremony this year at Breakpoint 2010. In case there isn't, here are my *personal* winners:

  • Breakthrough performance: easy. Adinpsz. Check out their crazy demo from Main 2009.
  • Most original concept: nothing stands out, but my vote goes to Jesus Christ Motocross by nature & traktor and *not* the Golden path (as you would expect) for obvious reasons.
  • Best Graphics: Frameranger by Fairlight.
  • Best Soundtrack: Rupture by ASD.
  • Best Direction: Can Elevated get it? if not then Frameranger.
  • Best Effects: Frameranger by Fairlight.
  • Best Animation: nothing memorable this year. I'd not give the award to anyone.
  • Best 4k intro: Elevated by rgba & tbc, obviously.
  • best 64k intro: Transform by ate bit. Not a great 64k year though.
  • Best demo on oldskool platform: Jesus Christ Motocross.
  • Best demo: Rupture by ASD - or Frameranger. But then again I'm biased :-)

Wednesday 24 February 2010

The cheats of europe

Yeah I know, one way or another, we Greeks have made a complete mess out of it. It is, however, an oversimplification to assert that it is all because of the egotistical, negligent nature of the people.

The matter is more complicated, and for a wider view of Greece, its tribulations and hopes in the wake of the 20th century, have a good read of this book.

Monday 22 February 2010

Make a demo with 3 simple rules

The other day I was thinking that the continuity of parts and effects in our demos (mostly big demos that go to Assembly and the gathering) can be expressed in 3 very simple terms:

  1. A scene/effect is established on either a plane (quasi-2D) or within a cylinder/sphere (3D). Camera moves accordingly to show the effect.
  2. Planar scenes follow cylindrical scenes and so on.
  3. Long segments of the demo are dedicated to move from one mode to another. This process is called a "transition".
I'll give you an example: in iconoclast there is a scene with a glass-like cube. Camera rotates around (cylinder) -> camera goes inside a door, underwater scene (plane) -> second reality references (cylinder) -> music box, polaroids (plane) -> shark in cube (cylinder) -> final scene and end credits (plane).

Maybe your demo follows a similar pattern too!

Friday 19 February 2010

GLSL effect #1

I'm going to type in 3 cryptic lines in GLSL. Try them out yourself - maybe they can find a cozy home in one of your demos.


you can probably contract that into 1 line.

Thursday 18 February 2010


So you are making a demo and you are on the lookout for some nice organic, abstract 3D models to grace your scenes. You know how it works: put one of these models in the middle of the scene, one (much larger) surrounding the scene and forming the background. Then put the camera in the middle and rotate, keeping the first object in dead center. Add a bit of hypnoglow, a bit of particle-dust, a bit of typography and you have 20-30 seconds of bliss.

How do you create these object then. Here is an idea: use TopMod. It is a simple 3D modeller that you can use to make 2-manifold meshes, with arbitrary genus. There are some youtube videos showing some models in action.

But take a very very deep breath in before you start using TopMod. It is annoyingly easy to crash. Use it wisely with wings3d (as in do all the fancy genus stuff with TopMod and let Wings do the dirty work of smoothing and refining) and you'll be in demo nirvana.

(for the record I've never used TopMod for modelling for demos. But that is another story...)

Wednesday 17 February 2010

Realtime raytracing on GPU

Further to my comments on my new year's resolution, I also vowed to stay clear of any effect that uses "realtime raytracing" on the GPU.

It was a very tempting thought: over the past year I have been writing raytracers for viewing medical data for my company Ambivu. Have a look at some youtube videos here.

However, beyond visualizing big datasets, I don't see how realtime raytracing can help us with our new demo. I understand that it is useful for very small demos (4ks, even some 64ks) where you want to visualize a simple, or less than simple volume function in order to make, for example, a tunnel effect. For that use, it is ideal. For anything else, I honestly don't understand the point of using raytracing in place of triangles. Yes, you get proper reflections and shadows for free, but you can fake all that much more efficiently with the 3D graphics pipeline.

I have seen "demos" of real-time raytracing from commercial companies and I wasn't convinced it is the future yet. A mirror-like car in a plastic environment (running at barely interactive framerates) just doesn't convince me otherwise. Maybe you, reader, have a different opinion.

Monday 15 February 2010

New year's resolutions

Making Lifeforce back in summer of 2007 almost cost me my physical and mental health. It was far too big a project to carry out given the very limited time I had for my hobby. If I ever was going to make another demo of similar scope in 2010, things had to change.

I needed to alter my methods and streamline the process. So, in January, I made some new year's resolutions that I thought would help:

  1. Ditch Cg. I've been using Cg for almost 7 years and it served me well. But with the advent of GLSL, Cg is pretty much obsolete. So gone are all the little nuisances and extra C code to "link" my external variables with the shaders. GLSL works much more transparent and I need fewer recompiles.
  2. Ditch Blender, Maya and 3D Studio. I admit that I'll never become a master of those modelling programs, as I don't have the zen-like calm of a Tibetan monk to learn (of all things especially Blender) properly. They may be super-programs but for me they have always been a source of annoyment. First of all having to run them in the first place adds time! I will be doing something in code in visual studio and then I need to scale something in Blender or 3D Studio. All this process of run/load/finetune/save is costing in time. Part of the reason things had to be like that was my old insistence and total reliance on the .3DS format. There are historical reasons for that (the first "engine" that supported bump mapping, in planet risk, was using certain tokens in .3DS files). But that should change. So, ditch everything except, of-course, my sweet Wings3D - and use the .obj (Lightwave?) format. Yes, it is very primitive, loads slow and probably won't let you do materials and textures, at least with my loader. But it has everything else I need: geometry, UVs (if you need them, I never do), hard/soft edges, grouping of objects. Simplified my life by looong margin.
  3. Never do another "baked lighting" texture again. It takes forever to auto-uv and bake the model in annoying Blender. I still remember the absolute nightmare that Size Antimatters (which uses such textures extensively) was. Nice way to spend your evenings, waiting for the radiosity pass to finish!
  4. Start writing everything in a linear fashion. Start with Part 1, 2, 3 ... last part. And keep "parts" as long as possible, in order to reduce the number of total parts and hence complexity. Lifeforce had 11-12 parts, I'm aiming for a maximum of 6-7. It should make a lot of difference at the end when we have to link everything together (music and parts).
  5. Put more "program logic" (i.e. if (time>20) do this ..) in shaders, using ps3.0: conditional, loops. As a result, the complexity of the C++ code has gone down dramatically. Most of my code is now shader-work. I estimate that the C++ "engine" is probably around 80% down in lines of (horrible) code compared to Lifeforce. Important exception to this is the camera-work and all functions associated, and I'll explain more in future reference.
  6. Speaking of shaders, allow for reloading of all shaders for a given part while the demo is running (by pressing the space key). This has already reduced the refinement cycle times by a long margin. An additional tip is this: I put all my "real-time user-defined variables" (mouse position, buttons etc.) as arguments in *all* shaders. So if I want to fine-tune something and then something else I can do it with the mouse without having to restart the demo. It works very well.
I will elaborate more in due time. Further to this list, my new year's resolutions also include:

  1. Keep and use 2 computers for coding: one with a crappy NVidia 8600 and another one with a more modern ATI 4850. Do most of the coding on the 8600 and only occasionally try the demo on the 4850. Aim for a 16-20fps at HD on the 8600, it should be sufficient.
  2. Stop watching vimeo videos and, trying to get "inspiration" (or, in other words, steal other people's ideas). It just doesn't work with me - usually a static image (one that is actually unrelated to computer graphics and effects) does the trick: a photo of a city, of a fruit, of a weird animal is more inspiring than most copy-and-paste "motion graphics" videos (some of them are really cool, though, and carry concepts I wished I had thought of myself).

I'll stop here for now. Yesterday someone asked me if my estimation of "33% of demo completed" is accurate or not. It really isn't, but I want to think it is, to give myself some courage.

Hello all!

Hello all,

This blog is all about a forthcoming demo from our group ASD (

I (navis) will be posting sporadic information on our progress over the next few months. For the time being this is all I can say:

  • The demo will not be presented at Breakpoint 2010. It wouldn't be possible anyway, there is tons of work left to do. I also won't be able to get there (or at the Gathering 2010) - Catholic and Orthodox holidays are on the same weekend this year and I'll be spending the time in Greece with my family. Looking forward to good food and warm weather!
  • Next stop would be a big party in Summer. Assembly 2010? Could be. Will depend on other factors. I'm sure we can finish the demo by then though.
  • The name of the demo is NOT "iconoclash"
So it is now middle of February and progress bar shows "33% done". Unlike all previous big demos that we did (planet risk, iconoclast, rupture, lifeforce etc.) this one is written in a strictly linear fashion: the introductory part was made first, followed by the next part and so on until, hopefully, we'll have the "picardy third" in the final cadenza sometime in July.

So far so good then.