Dream Creditor

Dream Creditor
Dream Creditor by XZM (2009)

4K intro made for Assembly’2009, created by me and XMunkki. Ended up at fourth place in the competition.

XMunkki did most of the effect coding, while I made the music (using 4klang softsynth) and handled most of the general direction and design. Pieces of the production were put together and refined at the event during a few hours.

Download Windows zip

YouTube video:

2 responses:

  1. Kevin says:

    Hey, I really liked the demonstration you have there. I was wondering if you could give me a little more feedback on how you did it? I want to create something similar using Computer Shader in DX11 as a test for a personal project I am working on.
    My main questions:
    What algorithms are you using?
    It looks like you are just adding the color by density to achieve those effects. Any more insight into special tweaks you made to get those amazing results?
    Was the music data used to generate the display ( by some conversion algorithm? )

  2. XMunkki says:

    Hi, I’m one of the other coders in that 4k and I did the visuals. The effect you see belongs to the group of chaotic attractors. Basically chaotic attractors are really simple. You have a point and a mathematical mapping function, that maps the point into a new point. You then feed that new point back into the function, again and again, as many times as you want. Then you plot the points in any way you like. The 4k used additive points, though the simulation ran in the CPU so I think we got something like 130k points there (might remember totally wrong). Because of that and because of the bit depth of the target buffer, the individual plots were quite large.

    For more closer detail, check out the Chaoscope project ( http://www.chaoscope.org/ ). I recommend reading the manual since it contains a lot of technical detail and ideas about different shading techniques (solid and translucent). There are many types of chaotic attractors and we chose the Pickover one since it seemed like it would probably be the easiest to have continuing ranges of animation slides (by interpolating the function parameters). It mostly worked, but they sure still were chaotic =).

    Good just with making the DX11 version. The problem with parallelizing chatoic attractors comes from the fact that one point leads to the next, like a Markov chain. One thing to try is to choose millions of starting places, have each run like 16 iterations and hope it looks good enough. I did try this approach with 4 different starting places and 4 CPU cores. It did look a bit better but not worth the bytes the threading code would’ve taken from the 4k. But doing it in the shaders might be worthwhile. Not sure you need DX11 though; I think even DX9 might be enough. Just one 1024*1024 4*float texture which contains the randomized starting positions, then in vertex shader just run the chaotic function in a loop x times (I’d try 8 to 16 but this is all guesswork) and then plot as normal points.

    BTW, the music was not used to generate the display. We handtuned the function parameters to match the music. The dev 4k had this mode that read all the parameters from a .txt file and it outputted the final .h file for the release. It would also run the intro with those parameters and poll for the file. If the file changed, it restarted the intro. This made the iteration times quite fast indeed so we were able to tweak the parameters to match better.

    But in any case, good luck with your endeavor end let us know how it turns out! =)