After having such a good time at MountainBytes, my new friends pretty quickly convinced me to go to the biggest demoparty of the yearly cycle: Revision in Saarbrücken, Germany. To be brief: it was incredible! To be less brief…

[editor’s note: well, it’s now something like four six months since I started writing this article, I’ve been to a whole other demoparty three whole other demoparties since then, working on it on and off. I’ve tried to bring it all up to date but there may be outdated parts. enjoy it as something like a retrospective!]

Saarbrücken, so named because of its brücke over the river Saar, is a small city (or large town) near the border with France. It’s got a few nice historical buildings, like the heavily statued Rathaus (that means town hall, though there might have been some rats inside for all I knew); but much of the city looks like any old modern European city with the same sort of concrete buildings and storefronts you’d see in most places. Not that I saw all that much of the city itself, because I was there on a mission: to go into a dark room and look at shapes on the computer along with 800+ other nerds.

  1. Revision, begision!
  2. My Revision project: Incubator
  3. The first day
    1. Shader showdown prelims!
    2. The Meteoriks
  4. The second day
    1. TIC80 jam
    2. Shader showdown final
  5. Saturday’s compos, part 1
    1. Ansi/Ascii/Petscii, aka Textmode GFX
    2. Oldskool Music
    3. Photography
    4. 3D Graphics
    5. Animation/Video
  6. Master Boot Record
  7. Saturday’s compos, part 2
    1. Amiga Intro
    2. PC 4k
    3. 256 byte
    4. Old school
  8. Sunday’s compos, part 1
    1. Music
    2. The beam team
    3. wtf is entropretty
    4. Fast music
    5. 4k Executable Graphics
    6. Oldskool graphics
    7. Wild
    8. Fantasy console
    9. Animated GIF
    10. Paintover
    11. Oldschool 4K
  9. Lynn Drumm’s set
  10. Sunday Compos, part 2!
    1. PC 8K
    2. PC 64k
    3. Amiga demo
    4. PC Demo
  11. The end
The E-Werk seen from the front, across the carpark.

The Revision demoparty takes place in a lovely brick building called the E-Werk, formerly a power station supporting the local industrial facilities. It’s now surrounded by a more modern industrial park, and functions as a kind of events centre. Each year, the diligent Revision orgas descend on it days in advance to rig up a gantry for lights, a huge projector screen, an equally huge sound system, and all the immensely complex wiring that goes into such an event.

And then Revision happens…

Revision, begision!

I elected to go by train, stopping off with a Parisian friend along the way to see some sights. Paris was wonderful: I got to look around all sorts of historical museums and buildings to learn about the fall of the ancien regime and the rise of various other regimes, to meet many strange underwater creatures, and even climb up the Eiffel Tower at sunset to watch the lights come on across the city. But we’re not here for that today (maybe another article). So let’s move on to the Gare de l’Est, and hop on another train to head over to Germany.

Inevitably I got ‘DeutscheBahn’d’, and my train was stopped and then redirected through Strasbourg and Mannheim. It worked out in the end: I met a group of old-school sceners on the train, who helpfully showed me the way to walk in. And lo, the E-Werk!

Selfie with the E-Werk building looming in the background.

It’s hard to take selfies on a DSLR!

Much as with MountainBytes, the hall was filled with long desks with powerstrips where you could grab a spot, work on your project, or wander the hall striking up conversation with sceners of various descriptions. Very much the vibe of a hacker event, with many people bringing their most interesting old computers to show off to whoever might be interested. Here for example is an old German Teletype machine:

An old black, metal German Teletype machine next to a white plastic Sieman Telex machine.

I soon found myself to the ‘Newcomer Area’ sign, right next to the (unofficial?) trans/furry table. It was cool to see how people would build a kind of little shrine of stuff at their spot: not just your laptop (or amiga) but flags, plushies, and other cute little things that helped to set the vibe. Which goes a long way! Lynn Drumm, sat opposite me, had a particularly diverse assortment of things, including a strange kinda educational computer thing, and a bright screen for her Amiga. RaccoonViolet brought her gang of raccoon plushies.

My Revision project: Incubator

pouet, demozoo

Given the short time between MountainBytes and Revision, and my existing aspiration to make a short film this year, I decided that I would enter into the Animation/Video compo rather than create an executable demo. In the previous year, third place was taken by a Blender+After Effects animation titled Orion which used a lot of procedural graphics, and I thought I might have a hope of making something in a similar vein.

I’ve previously made a Blender animation with vtuber Yuri Heart called The Tale of the Little Witch, which I wrote about here. But this time, I wanted to pull off a completely solo project, where the concept, models, music, animation etc. were all me—a sort of showcase of all my current skills to the demoscene! “i’m like you! i’ve got the stuff!” and more importantly, a milestone of where I am at as of 2025.

The music features me playing the erhu, a Chinese musical instrument which I have been learning to play for about two years now. Although I am still far from the full range of expression possible with an erhu, it’s cool to reach a point where I felt confident enough to use it in a project.

But what of the graphics? I wanted an interesting combination of procedural effects (‘cos it’s the demoscene) and character animation (‘cos that’s important to me.) I ended up having to compromise a lot on the original vision for this video, but given the various things that happened to disrupt it, I’m still proud of what I managed to put together.

I will go into the technical details of the video in another article, but let me spare a few words on the concept, because I’m not sure how much it came across. The ‘doll’ character featured in this video was originally created for my game project Thrust//Doll. These are cyborg organisms, disposable by design, who are manufactured for a purpose—in the original game, to attack a huge enemy AI system. Neotenous and playful, these dolls would not be prepared for the hostile world they are thrown into—kind of an autism symbol. The story of the game was to involve the dolls learning more about the world they inhabit and gradually developing their own purpose and desires, at increasing odds with their creators.

The video offers a very truncated version of some of these ideas: the character is born into an unfamiliar world, and her creation comes at the cost of countless alternative possibilities (the bodies in the ‘dollmass’ that forms as the incubator is opened). At first, she looks out curiously. Then, when the spotlight shines on her, she realises she is being observed. She dances briefly for the camera, and then, realising her strength, jumps out of the incubator to escape into the wider world. Was this intended, or is she an aberration? Is the arm that opens the incubator part of the system, or an invader? Perhaps I’ll make a clearer narrative in a revised version of the video.

Life did what life does, I got on new meds which threw me for a loop, and in the end I was harshly limited by time. Originally it was planned to be around three or more minutes, and have more events. The final version hits most of the beats I had in mind, but very rapidly. The animation becomes increasingly janky: I think the standing-up animation ended up quite good, but the dance animation is floaty and there’s some really bad FK/IK pops and questionable movements during the jumping sequence. The animation issues were even noted in psenough’s video… sob. But, considering how little time I ended up with to animate, I’m decently happy with it all the same…

The first day

Compared to MountainBytes, there is more of the ‘party’ aspect at Revision: a lot more live music events (with a secondary stage) where scene musicians and DJs could perform and people could dance, and food trucks outside so we wouldn’t have to travel so far. A self-contained environment terraformed for the comfort of the weird computer nerd.

Huge props must go to the skill of the beam, video and sound teams for making all the audiovisual aspects of the party so precisely spot on. The sound system sounded fantastic, powerful without being overwhelming; all sorts of attention to detail was paid to stuff like matching the phase of the sound at the entrance of the hall so it would feel continuous. A very complicated video setup supported all the different cameras, computers, livestreams and such, ensuring we wouldn’t miss what’s going on. Many of them, it turns out, went from running demoscene events to actually working in the industry to run largescale events or television, and it shows.

The view of the hall from the Beam Team platform, showing hundreds of people using all manner of computers in the huge E-Werk space.

The first day featured no compos per se, but it did show one of the coolest events for me: shader livecoding.

Shader showdown prelims!

Although I was aware of the concept of livecoding, I had not seen it done until Revision. In groups of three, livecoders took the stage, using a tool called Bonzomatic developed within the scene for this exact purpose.

Bonzomatic is used to write fullscreen fragment shaders, similar to what is created on ShaderToy. It takes your computer’s audio input and generates a FFT texture that you can sample in your shader in order to make it sync up with the music. The variant used at Revision also has access to images that can be treated sort of like compute buffers, allowing you to do compute-shader-like effects (but only conceptually! you still only get one fragment pass).

The competitors in these events were using party-provided computers, so they had no libraries or previous work to copy-paste: everything would be written onstage during the 25 minute contest, as the DJ played a set. Under such constraints, the coders work incredibly fast! No doubt they came to the competition with some idea of what they were going to make, but as I found when I joined in livecoding later, getting a working, high-complexity shader up and running under such pressure is really no mean feat.

All the resulting shaders can be seen here on demozoo, and the live competition was uploaded to youtube:

The first contest featured newcomers to livecoding on stage, which was sick. Peregrine quickly drew some SDF vector shapes, and then constructed a cool scrolling quadtree effect that looked very elegant, especially with nice colours, and got my highest vote (for overall stylistic cohesion). Marex also had a cool choice of effect, generating a Julia set masked by a set of rings sliced by some sort of parabola. (I thought perhaps this would use temporal accumulation, but it turns out you can calculate Julia sets in realtime!) Lauda used raymarched noise to create a kind of Rorschach-blob effect, recursively using the previous frame.

The second contest had some real shader veterans, and all of them elected to use raymarching. Superrogue took us on a flight through a noisy tunnel accompanied by a bright glowing line. dok had a cube of spheres, with a big amount of motion blur that led to some very interesting greyscale shapes in the end. totetmatt’s was the most ambitious, drawing an entire tree procedurally as well as a kind of voxelisation of it (tho it was a bit of a framerate killer!).

The third and final contest had wrighter, Flopine and NuSan—more names I’m coming to recognise as I engage more with the scene! Flopine did something particularly crazy, implementing Conway’s Game of Life using the compute buffers. NuSan had some kind of 3D implicit metaball function that was rendered as if it was meshed, as wireframe cubes, with a nice recursive trail effect. And Wrighter pulled off some kind of absolutely crazy temporally accumulating path tracer complete with bokeh.

Of all the shaders in all three phases of the jam, I think the one that most stuck with me is actually Peregrine’s—maybe the only shader that didn’t raymarch something! I was looking at the code later and the quadtree calculation is particularly ingenious. Let me pull it out from the shadertoy version and remove some details:

float hash21(vec2 p) {
  return fract(sin(dot(p, vec2(15.8989, 14.4535))) * 1234.3455 + mod(.0000001 * time, 20.));
}

vec3 quadtree(vec2 uv, float n) {
  vec2 id, idSum = vec2(0.);
  float rnd, turn = 0.;
  
  for(float i = 0.; i < n; i++) {
    uv *= 2.;
    id = floor(uv);
    idSum += id;
    uv = fract(uv) - .5;
    rnd = hash21(idSum);
    if (rnd < .5) break;
  }
  
  return vec3(uv, hash21(id + idSum));
}

You walk down the quadtree in recursive iterations. For each iteration, you double the UVs, then floor them to get an id. Then, you take a hash of the accumulated ids of each layer of the quadtree, and exit if the generated value is less than a threshold. Otherwise, the UVs are rescaled to cover the quadtree block. Crucially, because of the way floor works, the hash will be the same for every layer of the quadtree before a certain iteration, and then start diverging afterwards, but in a way that’s coherent across the quadtree blocks. It’s perfect for a shader! So elegant! And Peregrine used it really nicely, combining the idea of the four different shapes at both the high and low level.

I was so struck by the livecoding that I desperately went to find out how to get involved and tracked down orgas to badger them about it. I was in luck: the next day there would be a shader jam during Lynn Drumm’s DnB set, and I could hop into FieldFX and get involved. So I had a project to keep me busy during idle moments over the weekend: get to grips with Bonzomatic and learn how to cook up a shader in time for the jam.

The Meteoriks

Also on the first day was the demoscene’s own little award show, the Meteoriks! I saw the announcement at MountainBytes a few months ago, and now we could see the jury-selected winners.

I’ll save commenting on the Meteoriks for another article though. Because phew, we’re just getting started here.

The first day ended in a slightly frantic dash back to my hotel to get my key before the receptionist went home. A lesson learned.

The second day

Saarbrücken has a lovely old steel rail bridge which was the main crossing between my hotel and the E-Werk. It is long enough to create quite a cool one-point perspective shot…

A view down the pedestrian part of a long rail bridge, stretching away in a very straight line.

Shoutout to ‘Myspace’ who tagged the bridge in some pretty crazy dangerous places.

Passing the 5k runners going the other way, Jonas and I made our way into the E-Werk to get settled in. And indeed, with last-minute entries gathered, it was time for the compos to begin proper.

A group of people on the 5K run.

Animation/Video wouldn’t be until much later, but there was plenty to entertain us, including the tracker music compo. I don’t really feel qualified to discuss this in much depth; I voted mostly on how well the music grabbed me on a vibes level rather than anything technical.

Around midday (plus some leeway, Revision time) came another livecoding jam session, this time for the TIC80 fantasy console.

TIC80 jam

The TIC80 is a strange creature. It is, nominally, a fantasy console similar to consoles of the 16-bit era, with a similar memory map, scanline operations, palettes, sprites, bank swaps…

However, the programming language for this system is not assembly but Lua—or if you prefer, Python, Javascript, or a variety of other scripting languages. (Lua is most common in the scene, though.) The console presents an API allowing various drawing operations. You can also freely define global variables for your script without even touching the console memory except to invoke drawing commands. So, with the physical console metaphor, it ends up being something kind of like a 16 bit computer being controlled by another, external computer with a lot more resources.

Strange quirks notwithstanding, TIC80 programming has a flourishing scene around it, particularly in livecoding. The seven jammers did a great job showing the variety of effects the console can do.

Enfys overcame brutal technical difficulties to put in a very cool entry with a quote from Trainspotting layered with various kinds of noise. First-timer Flopine layered up various sins and bitshifts to create a flickering grid pattern. g33kou had a cool kind of set of spinning square shapes, which is teaching me a little bit about Lua data structure manipulation.

Gasman brought us a spinning, pulsing tunnel of noisy sprites created by feedback effects mixed with some cute funny comments. jtruk’s entry had lots more spinning sprites and palette swaps, while Nusan had these kind of tentacle-like things from layered circles spraying noise onto the background—somehow using the scanline callback with a mysterious hexadecimal constant. And Superogue, not content to flex in the shader showdown, knocked out a heavily codegolfed CPU raymarcher over a grid of sphere-like shapes.

I was, at this time, not really familiar with the TIC80 or how it worked, so I could really only just look on and behold the shapes. Having done a little more coding in it now, though, I can better appreciate what everyone was going for, and have some hope of spinning my own TIC80 entry next year.

A few hours later, the major compo block started and things really kicked off. We opened with the finale of the shader showdown…

Shader showdown final

Winners of the first three rounds NuSan, Peregrine and Superogue advanced to a final battle. All three of them brought out yet more, cooler shaders. I went up to the front around this point I think, running into a few other newcomers from the UK who quickly became friends ^^

NuSan’s main effect was layering up lots of lines, coming from some kind of rotating underlying structure. This is trickier than it sounds, because fullscreen fragment shaders do not natively like to draw things like particles or lines—since essentially every pixel of the screen must consider whether it is inside every line. (Usually, you would handle this by making the lines or particles with geometry such as quads, and letting the rasteriser figure out which pixels are covered.)

NuSan’s solution to this is pretty clever: to use the compute buffers and the image write operations to essentially have each fragment shader invocation write to a data buffer as well as drawing its pixel, and then copy that buffer to the screen on the next frame. This way, each fragment shader invocation could draw at most one line without having to worry about the others. I’m not quite sure the performance considerations of atomic image operations but it’s definitely more efficient. Add a bit of gradient mapping additive blending pizzazz and it ended up a really cool fireworks effect.

Peregrine created a really cool complex fractal inside a cube. Subsequently released on Shadertoy, it is apparently a KIFS fractal, which stands for Kaleidoscopic Iterated Function System, a technique she said was inspired by NuSan’s shaders. Iterated function systems aren’t entirely unrelated to the quadtree we talked about earlier, in that they use a loop to work out how many times to iteratively apply a function; the ‘Kaleidoscopic’ seems to refer to the reflections and rotations applied to the space as a whole.

Superogue stuck to raymarching, soaring the camera through a blue ocean-like environment full of glowing, rising lights along beams amidst fractal-looking coral-like structures. The watery effect is, peering at the code much later, accomplished by pushing the rays around with noise slightly as they advance through the environment.

As an aspiring livecoder, one thing I struggled with is that my coding habits are not really optimised for speed. One of my first attempts to write a raymarch shader something like…

struct RaymarchOutput
{
  vec3 position;
  vec3 normal;
  bool isHit;
};

RaymarchOutput raymarch(vec3 ray_origin, vec3 ray_direction)
{
  vec3 p = ray_origin;
  float increment, total = 1.;
  for(int x = 0; x < MAX_ITER; x+=1)
  {
    increment = f(p);
    total += increment;
    p += (ray_direction) * increment;
    if (increment <= THRESHOLD)
    {
      vec3 normal = calcNormal(p);
      return RaymarchOutput(p, normal, true);
    }
  }
  return RaymarchOutput(vec3(0),vec3(0),false);
}

The raymarching portion of Superrogue’s shader looks like this:

    for (int i=0;i<99;i++) {
       d=S(p);
      r.x+=texture(texNoise,p.xy*r.z).x*z/299;
      r.y+=texture(texNoise,r.yz*r.z).x*z/299;
      if (d.x<.01) {
          
       // break;
      }
      ll+=vec3(d.z+1,.8,1-d.z)*d.y*la;
      p+=r*d.x/4;
      z+=d.x/3;
      
    }

I can recognise bits of this. e.g. S(p) is evaluating the signed distance field. Noise is used to displace the ray as it’s marching, causing it to steer on a wiggly path. And ll is probably used to accumulate light values, based on values in the signed distance field (which also contains lighting information packed into a vector with the distance). But… that’s educated guesses, it would take some time to figure out if I’m right about all that.

So to ‘think like a livecoder’, perhaps I need to work more like this. No need to define a struct and function like this when you can keep your logic in the loop itself. No need to have long variable names which you can easily typo.

We’ll see…

Saturday’s compos, part 1

I’ve spent a lot of time in this article talking about livecoding, and it’s fair to say the livecoding left a strong impression, but the main attraction was now about to start: the compos.

The compos on Saturday included Ansi/Ascii/Petscii graphics, Oldskool music, the photography contest, the 3D graphics contest, and of course the one I was nervously awaiting, the Animation/Video contest.

Some people playing pinball on restored machines.

In the meantime of course I was continuing to enjoy the vibes. This included enjoying the pinball machines of the French company GPO Sarl, painstakingly restored including repainting the graphics on the glass. These old analogue machines were full of complexity, and it was fascinating to see them up close.

Ansi/Ascii/Petscii, aka Textmode GFX

This refers to arranging characters in a fixed-width font to create a picture. All kinds of techniques can be deployed, from using the shapes of the letter themselves to creating pixel art using rectangular characters with various dither patterns. The most elaborate entries would scroll over several screens, creating the impression of a complex mural.

To view these, you’ll need a suitable viewer; a quick search led me to an open source project called Icy Tools which lets you open ANSI files.

I don’t really know enough about Textmode graphics to know what’s difficult in it. The winner, oCat featured lighting effects; many of the entries had colour, which I believe can be achieved with special characters that change the colours of the terminal stream. It is akin to a pixel-art piece but with great big pixels and a limited palette.

Others, such as third-place By the Power of Pretzels, use the specific shapes in the characters to add sub-character details to a much smaller design. The spectacle of the big entries can’t be denied, but I appreciate the ingenuity of using the medium here.

With all the overlapping figures, there is a strong ‘street art’ vibe to a lot of this Textmode stuff, something invoked explicitly by an entry like SprayMyN4me.

Overall, pretty cool to look up and see giant ANSI pictures in a big room. Yak de culture!

Oldskool Music

This is executable music composed for old-school 8-bit and 16-bit consoles, which means using their synthesiser chips to maximum effect—no samples here, just whatever you can program using various waveforms provided by the chip. But, without knowing so much about the different chips and their capabilities, the computational side is a little lost on me, so I just had to judge their vibes as music.

I can only speculate what complicated arrangements of automations people are using to turn these chips’ simple synthesisers into a variety of instruments. I quite enjoyed the melodic lead of Arrow of Time by LFT, and the winner, Crystal Oscillator by Otomata Labs, was an exhilarating ride all the way through.

The Scenesat commentators were not audible on the day, but listening back to the recording, they do offer a bit of context, e.g. about the notorious quality of the Atari 2600 sound chip which made Nooly’s efforts more impressive. But I think this is probably a category that’s hard to engage with without either growing up in the 80s or getting my hands dirty trying to make music on these chips…

Photography

Photography is one of those competitions that’s not a ‘unique demoscene art’ but is something that many demosceners like to do. I had a great person to discuss it with in Jonas, one of my friends from MountainBytes, who had been spending the weekend playing with a variety of fascinating old cameras.

As with most competitions, the photos were ordered in roughly ascending order of quality-as-judged-by-the-orgas. The quality was overall quite solid, though there were definitely some entries that were more ‘here is a nice thing to take a picture of’ than ‘here is something interesting as a photo’. But there was no such problem for the winners!

Crab In Space very reasonably took the prize, an incredibly stylish exposure of a crab flying through the air surrounded by bright droplets. The rest covered a variety of subjects: nature, moody scenes, architecture

Not all the photos were unmodified. Mostly that was just colour grading and cropping etc., but prefiguring some of the arguments to come later in the weekend was Echoes-choes-choes by Iloé, an edited urbex photo. As well as using an AI tool to remove graffiti in the background, the author edited the architecture, e.g. taking bottom area of the image and flipping it upside down to make it seem that machinery extended up into the roof. They also added a human figure to the picture from some other photo. Even leaving aside the AI question and taking this as a photo composite, this does leave me wondering about the right way to look at such a contest. How do you judge a photo that accomplishes a lot in-camera against the work of an editor?

To be honest, comparing the original photo with the edit, I find the original more interesting—the edit feels a bit cheesy. In any case, this photo ended up with fifth place. A photobashing compo would be kind of interesting, come to think of it…

3D Graphics

Here’s a field I do know a fair bit about!

The 3D models in this compo were to be compared not as renders, but using a standard model viewer called Foxotron. During the show, the orgas would fly the camera around the model to show us various close-up details. They would also flash up a wireframe, giving us a look at the topology.

If you dig into the source code of Foxotron, you find that it has a PBR model roughness-metallic model with some decent features like convolved image based lighting. Materials are read from the FBX file, so as a model author you can only go so complex in the materials—though you can do some clever tricks with baked lighting.

Entries I found interesting: RaccoonViolet had a nicely stylised lowpoly model of a squirrel holding an Acorn program on a floppy. Androod did some nice stuff with nearest-neighbour-filtered textures. Entry 5, As a Lowpoly Frog I Refuse to Get Slow-Boiled, was a father/10yo son collab, which is cute, and full of nice little details.

The winners were full of pop-culture stuff. We have a womp smushing Mario and a Back to the Future-esque scifi scene that suffered a fair bit from hasty conversion to Foxotron’s lighting model. The winner was a Street Fighter scene featuring Ryu blasting Ken out of the screen of an Amiga—it benefitted a ton from baked lighting giving the scene a proper mood, but it’s also a nice dynamic scene.

This definitely is a category I plan to enter next year! One of the big challenges seems to be working around the limits of Foxotron, which means there’s not a lot of room for clever procedural surface shaders. But if you know what’s going on, I bet there’s a lot you can do…

Animation/Video

Here it was! My compo! I was sitting at the front, waiting to see my thing on the big screen (and slightly worried it might not have passed pre-selection for being too risqué).

The Animation/Video compo spanned a huge range this year. My project was the only fully 3D animated one, the others either had live-action elements or were basically a slide show. The first few in the compo were some… often startlingly low-effort invitations, frankly, including one by Shadow Party who for some reason decided to put three different invitations into Revision this year.

But once the slide shows were done, there were some very good works as well.

Some were pretty avant-garde. You Are Complicit by Zden and Nosfe was a blast of textured white noise, with various inscrutable shapes emerging from within. It was pretty overwhelming on the party floor.

Lambda by Xiny6581 was the first entry to make extensive use of gen-AI. I was curious what to expect when the opening slide discussed use of ComfyUI—rather naively perhaps, I hoped to see a highly technical application of these tools to do something unexpected in the hacker spirit. Unfortunately… the result didn’t really get whatever it was going for across at all, mostly images of smoke and grass overlaid/crossfading with various filters; it’s not clear why AI was used at all, really.

Funnily enough, two of the entries involved smart watches. I think Smart Things was the more entertaining of the two, depicting various computers having a silly argument.

After all the joke entries, things really kicked off with the live band cover of a demo called The Interloper; this was very well-shot, and just straight up a nice cover of the demo.

Deadline, a Berlin-based demoparty, submitted an elaborate 8-minute short film pastiching a huge variety of genres from Westerns to fighting games, whose thesis themed to be… don’t go to parties remotely, go in person? Strange message aside, it was an impressive effort, and it’s no surprise it took the win. Looking forward to going there later this year!

‘That’s gonna be a tough act to follow’, I said, and of course my film came up next. Reactions were… overall pretty positive in the demoscene discord! Lots of people noted the resemblance to the infamous demon core which killed two physicists in reckless experiments; a few joked about the nudity (“won’t stop me from fappin’” said one person in chat).

On Pouet, a couple of people said they liked the creepiness. On Scenesat, I didn’t get much comment, only that it was exactly the right length, which given how short it was… I’m not sure how to take haha. I did appreciate the person on Discord who said:

this should be realtime and longer and win the demo compo

I’m working on it!

It was a pretty great feeling having my video up on the big screen. Although I’d have loved to have gone on stage, I’m pretty happy with fourth place, especially given the strength of the entries that beat me. I was a little sad that psenough’s main comment in the Demoscene report was that the animation felt rushed. But I can’t really disagree; character animation takes a lot of hours and there was a fair bit of jank I couldn’t fix.

Differential Plasma and You by oscilloscope geniuses Bus Error Collective, put in a very nice sendup of oldschool informational videos, themed around the ‘plasma’ effects that are something of an oldschool demo cliché. It escalated really well, and honestly this was my favourite of the competition.

Master Boot Record

After this compo onslaught, it was time to relax for a bit. Master Boot Record, renowned for their chiptune-inflected metal (and among The Gamers, for being on the soundtrack to Ultrakill), had just made their demoscene debut in the oldschool music compo, and they staged a concert that was loud enough to get me to seek earplugs from the infodesk. And of course, it prompted a mosh pit to form, populated almost entirely by trans girls. Good moshing was done and I joined in a bit; whenever anyone fell down they were quickly helped back to their feet.

Master Boot Record playing in front of a demo graphic of a sword.

Isn’t it cool how we get a rim lighting effect from the concert lights?

There are some pretty cool videos of the concert, shoutout to whoever was mad enough to dance inside a dinosaur costume, and for cgi for filming the whole thing with a big heavy camera.

I didn’t stay for the whole concert, though. I was hungry. Food beckoned! And chats with demosceners. I had imagined that most demosceners would work in the games industry (since that’s also all about realtime graphics), but in fact, I found more people who worked for train companies than anything—but I did meet a few who worked for chip manufacturers like nVidia and ARM.

Saturday’s compos, part 2

Refreshed by food and the musical interlude, it was time for the most ‘big deal’ compos of the day: Amiga Intro, PC 4K, 256 byte and Old School.

A demo being played on an old Apple computer, to create a symmetric pattern of white lines.

I’m not sure which model of Apple computer this is.

Amiga Intro

Demoscene people love the Commodore Amiga. You will see the classic Boing Ball all over the place, even a physical inflatable one. “Amigaaaa!” is a common enough shout at parties when the Amiga happens to come up.

So naturally there are so many Amiga entries that the platform gets two of its own categories. Which was interesting, as a stranger to Amiga land, curious to see what all the fuss is about.

The Amiga Intro category focused on sizecoded Amiga projects, not separated by size. After a few scrollers, we got a couple of 64ks with some actual effects: perspective-projected wireframes and images acting as a texture stencil; rotating cubic point clouds, some kind of specular lighting of an embossed surface (normal mapped?).

The wildest entry was a joke called ‘1st Place’ by a group calling themselves ‘Winners of Revision’. Featuring an aggressive soundtrack of repeating samples, the entire demo consisted of rapid black and white strobing around various bits of text. It certainly achieved the intensity of impact when washing over us from the huge screen, but I sure fucking hope nobody watching had photosensitive epilepsy, because despite a warning, there wasn’t a ton of time to leave the hall. It didn’t entirely go down well on Discord, Pouet, or anywhere really… but it didn’t get last place.

It was a pretty brief compo all told. The real juicy Amiga stuff would come the next day. I think I went away from this compo not really feeling like I ‘got it’. Evidently I am spoiled by modern GPUs!

PC 4k

This was one of my most anticipated compos. Sizecoding is one of the demoscene arts that most fascinates me and the 4k scene has been absolutely on fire lately (“4k is the new 64k” they say). And believe me, this compo did not disappoint—could easily have been the highlight of the whole party. Every entry did some crazy thing to outdo the last.

A 4k intro is, in the present era, typically a few shaders and a tiny synthesiser (e.g. 4klang). Broadly speaking, the executable simply unpacks the compressed shaders, sets up a minimal graphics pipeline, and starts a render loop. So there’s a lot of overlap with Shadertoy-style coding, and many 4k effects are first prototyped there. (Indeed, there is some controversy over how ‘demotools’ allow you to make a 4k demo without touching the underlying graphics API at all, reducing it to coming up with a shader and a tune.)

But that is to severely undersell it, because you can accomplish insane things with a shader. And honestly? A lot of these were a whole lot more than just ‘a shader and some music’.

I’ll try to describe the excitement in the room when this competition rolled around. I was at the largest demoparty, and like, the old school stuff is cool and all but I’ll be honest, what I’m really here for is the modern graphics wizardry. And sizecoding definitely qualifies as wizardry for me at the moment, though in the time since the party I’m starting to learn some of the ropes. I was sitting at the front of the hall with a new friend I’d made at the party, looking up at that enormous screen and enfolded in the sound of the speakers as hundreds of graphics nerds looked on in the same awe.

Hell, let me embed the whole thing. It won’t be the same. But here:

We opened with a couple of small projects by newcomers to the 4k category (or in Kamila Szewcyzk’s case, 1k). Given the madness that was about to unfold, it’s a shame these projects got overshadowed a bit. I saw Kamila working on these first 4k projects during the party, and I’m definitely hoping to follow in her footsteps. The first one had blooming colourful lights in a lissajous figure, the second a variety of effects and a simple synth, the third a nice sort of layered watery effect with strong colour choices. A couple of these were partycoded in 3h flat, which puts them in a similar place to livecoding, and I think that’s cool!

Vitrage by Altiga took us into classic demoscene territory: moody synths and slowly panning 3D geometry. There was a narrative aspect to this, with the moon shining through a stained glass window creating godrays, then the window shattered; judging by the noise I think some kind of stochastic sampling was involved. It’s a cool effect, all the more so for being crammed into 4k!

Rasterize by Theron immediately escalated. whole game level full of volumetric godrays and fairly complex geometry; apparently this was intended to demo a framework that Theron is working on and I have to say: damn. However, I think this one may fall into the territory of ‘things that you have to be a graphics coder to know why this is hard’. There’s a lot of complex triangle geometry here, stuff that doesn’t compress well because you can’t just rely on tricks like domain repetition. (Also ngl it’s cool seeing people doing stuff with triangles still, raymarching is great but it’s not the only way to do things.)

Incendium by Bercon and Pestis… holy shit. This is when the madness started. We have a compute shader fluid sim for web which can produce all sorts of complex vortices, spiraling interacting fluids, convecting smoke and flames. It is absolutely insane to me that this is possible in 4k! With a music synth to boot! This was it, the demoscene sorcery I was looking for.

But we were only getting started!!

dipping deep dub drop started with a zoom into a Julia set fractal, a familiar enough effect, which abruptly transformed into a warping 3D landscape shaped by the fractal heightmap, distorted in time with the music to create soemthing gloriously trippy. The source is available on github along with some intricate technical details. The shader is a little hard to read given the minification tricks like packing multiple commands into an if conditional with the comma operator, but you can spot a raymarching loop here and there.

Planet X by Friol took us to spaaaaace with a tour of fractal clouds and landscapes, text rendering for shoutouts (rendering text might not sound like much but doing it in 4k isn’t ez!). Pretty neat.

Tenacity by Latitude took us into some sort of city/circuit board/refinery like environment, likely achieved by domain manipulation and raymarching, full of glows and volumes. I respect this one for clearly calling to mind the Revision logo; it’s reminiscent of some of the VR UIs in the Ghost in the Shell series as well.

AXEL… he had ONE job! by Nuance aimed for a more artistic subject (‘the origins of life, death and failure’). The result is a moody, noisy environment of warping, implicit surfaces, once again gorgeously timed to the forboding music. And a story of sorts to boot! A yonic shape creates a sorta… spermy snakey thing which melts away. You can read the implication!

vestige brought us a prod by the inimitable wrighter, and this one got very abstract, a montage of fragmentary glimpses of structures created by arcs of dots. It’s cut so you have just a moment to get a grip on each pattern (with 3D shapes increasingly appearing as the demo progresses) before it flicks away, constant motion in lots of directions. The music meanwhile created an evolving mix of texture and noise. A really cool and confident abstract piece! (If rather outside the field of things I really know how to comment on or interpret.) The effect in the party room with the huge screen casting light over everyone was impressive. Unfortunately, the party didn’t seem to know what to make of it, voting it very low, but Pouet users were a lot more excited, with the prod getting even more love than the competition winner.

Mycosphere Rising by livecoding genius NuSan created an interesting effect of glowing orbs and spars (raymarching, naturally), black and white but layered with heartbeat-like chromatic aberration as they gradually grow hairlike structures. Sick.

Hexer by LJ ended up the winner, taking things in a direction from pure technical effects to outright a short horror film (still only 4 kilobytes!) with a found-footage old-film-reel style depicting a misty forest, buildings, reflecting water, birds, and of course a monster to come menace us and even a jumpscare at the end.

Chromatophores by Loomis meanwhile took the the concept of the renowned 64k demo Empires from last year’s revision, with its fluid particles and bokeh, and made a 4k in the same vein—a very literal take on the ‘4k is the new 64k’ meme. The core of the effect seems to be drawing lots of little circles at various sizes and opacities. All sorts of compositions and twisty effects. It is kind of… insanely gorgeous and amazing that this is possible at all, let alone in 4k.

All in all… I said before, an absolutely insane competition. Watching it back on my computer at home, it doesn’t quite have the same impact as seeing it in the party hall at huge scale with no idea what to expect at each turn. Still, the level of sophistication of sizecoded 3D graphics is hard to really comprehend. Raymarching may be the ‘meta’, but as we see there are all kinds of things you can do. I hope it will never stop amazing me just how far a group of humans can go, how elaborate the strategies we can deploy, in pursuit of a goal like ‘make pretty graphics in 4 kilobytes’ or ‘complete a videogame really fast’.

I definitely want to throw my hat into the ring here, though in the months since the party I’m still getting to grips with the various techniques. I’ll document my progress elsewhere on this site.

256 byte

In the UTF-8 encoding scheme, each English character is typically one byte. So let me show you 256 bytes, not counting newlines:

123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF
123456789ABCDEF123456789ABCDEF123456789ABCDEF123456789ABCDEF

That is the entire data budget of a 256 byte intro. (Of course, this particular string is very repetitive, so a program to generate it could be smaller.) Here, I’ll embed this compo too:

Unlike 4k intros, these prods have very limited music, usually just a simple loop—but even so most do have it! Most of these ran in DOS—it seems you can simply write smaller programs in DOS, and it’s easier to get stuff on the screen with the terminal. I don’t know a lot about DOS coding, though, so I can’t really tell you very much about the clever techniques they may be using.

Let’s quickly run down what we got:

The winner was a cute one, an attempt to represent the view of the Revision hall itself with all its glowing computer screens, with a screen inside a screen showing a loop animation of a hill with houses scrolling over.

4k was a hell of a tough act to follow, even if the sizecoding required by these demos is all the more intense. It’s hard to see what ingenious logic they may be implementing, though, without some experience doing it yourself. Still, cool to see these!

Old school

‘Old school’, so far as Revision is concerned, means roughly the 8-bit and 16-bit eras of computing, also known as the 4th gen of consoles and 5th gen handhelds, except for the Amiga which is special enough to get its own category. Which in practice means computers like the Commodore 64, but contemporaries of the Amiga with its Motorola 68k. Hard to compare side by side, because some ‘old school’ is a lot more powerful than others.

I am afraid to say I left early on this one. By this time it was well past midnight, I’d seen so much already, and of course the old-school compo begins with a wall of ‘scrollers’: a simple effect with a long scrolling text message with shoutouts to everyone the authors have ever met or something. Well, I was getting tired and the buses left only so often…

This proved to be a mistake, because the bus did not actually show up (no fault of the Revision orgas, who acted quickly to sort it out), so I missed getting to watch e.g. The Trip by Fairlight on the big screen, which uses the frame story of a group of people driving to a demoparty and passing various visual effects, complete with mild peril. A film long enough to require multiple music pieces!

Beside Fairlight’s inevitable sweeping of the competition, the one that impressed me watching back was Vaporous by ‘The Twitch Elite’ for the Neo Geo, which ngl I like just because the colours are prettier and there are simply more effects possible on a 16-bit machine. Pretty pixel art, rasterised cubes, some nice sprite effects.

Some prods, like Mapperless focused on specific technical aspects of their device (using very little special hardware on the NES). A lot of them would poke ironically at their own existence as oldschool demos, with text talking about limitations or ‘old is cool’.

One aspect that is kind of interesting to me is that ‘showing a cool drawing’ can very legitimately be part of an oldschool demo, but is unlikely to be a thing in a modern PC demo. Perhaps because pixel art sort of thematically vibes better with the ‘computer art subculture’ vibes of the scene while showing a painting you did in Krita might not? I can only speculate!

With this kind of thing… I’ll probably never get it in the way somewhere who was there from the start would, but it’s really cool to tangentially be part of it. Subcultures are funny things. You don’t really set out to create one, but some humans come up with a fun thing to do and gradually it accrues into a set of symbols and rituals and practices and damn, now there is a scene. Now there’s identities.

I get the impression that, however opaque it is to me (with my newschool shadercoding ways, spoiled by fast programmable hardware with useful abstractions and memory galore), the set of techniques available for oldschool demos like this is kind of a solved problem, so it’s mostly a matter of finding interesting ways to combine them to create expression/narrative? And that’s cool. But to understand that expression you need, perhaps, some connection to the ‘language’ of the medium. If you don’t know about rasterbars it’s just a line.

This is something that Fairlight played with in last year’s oldschool demo 13:37, in which an evil AI’s inability to understand the appeal of raster splits is its downfall. I will admit straight up, I am kind of with the AI on this one. Maybe once I learn more about programming for these machines I’ll understand what I’m looking at.

Sunday’s compos, part 1

No longer worrying about the video compo, I was free to enjoy the rest of the demoparty! Sunday had, naturally, more compos, but also a chance to go on a tour of the beam team’s little castle and find out how the video sausage is made before my first taste of livecoding.

Music

The morning had some music competitions: executable music and streaming music. The former is for computer programs that generate music, i.e. synths—an element of a lot of demos but here, standing alone. The latter is the most general category: it’s music created by any means to a format like MP3.

These formats are potentially more flexible in the sorts of sounds they can make than trackers (though, trackers can do a lot) since they’re not quantised to a grid and they can do anything a program with evolving state can do in terms of audio synthesis—although some of these still use trackers. Unfortunately, once again my vocabulary escapes me. I’ll spare you a lot of variations on ‘moody’ and ‘vibes’ and instead just set it up for you to listen:

Executable music

One interesting aspect of this compo was that a lot of entries mentioned their sizecoding efforts, though there was no requirement to sizecode for the category. For example, the third entry, Peter Salomonsen’s jazz piece Swamp, is pretty damn cool for being only 32k of webassembly and creating a pretty good feelings of analogue instruments without samples. The fourth entry used 4klang; the fifth had a 28k style and ‘I have no idea how you all get these things so small’. Relatable.

Musically, Indigo Shift by liqube had some fun tension and acid sounds; Dual Silence by Filippp had a nice buildup and a really driving kick. But the final breakcore piece by eladamri was probably the winner for me… well, if I can remember what I actually voted for!

Mind you, I didn’t have much brain to think about voting, becauase I was locked in, learning how to make bonzomatic shaders the whole time.

Streaming music

Streaming music could be literally any sort of music at all, but by and large it is mostly composed in DAWs here—this is still a computer nerd event after all. This also notably featured an entry by Master Boot Record, the special guests of this event! Perhaps not surprisingly, they also won it.

I think this was a pretty strong competition all round—I looked up my votes and lots of three and four star votes were given, which means my votes ended up having little discriminating power! But honestly just put the whole set on and enjoy some jams.

The beam team

The Beam Team—and more generally, the streaming team and the tech in general—were running some tours of their little area, with various members of the team showing us the equipment, controls etc. One thing I found really cool to learn was that many of them got their start operating demoparties and then went pro with this kind of work. As such, the whole system at revision was technically extremely tight.

Lots of video equipment in use by the Beam Team, including an SSD recorder, a Stream Deck to toggle effects, and the controls for the camera.

So: Revision has various screens around the event that are showing at various times either the same or different things, a complicated sound system, a huge array of lights and even a remote controllable camera on the gantry overhead. Huge rates of high-bandwidth video data have to get piped all around the building and encoded for two different streams on Twitch and Chaos Computer Club. All of it has to be archived on a huge pile of SSDs so it can be reencoded if anything goes wrong with the broadcast.

I got to see some of the machines they use to direct interfaces around, to hear about things like phase-adjusting the sound to create nice continuity when you walk through the door of the hall, to see the various buttons they can press and custom encoding setups and arrays of layouts and so on. I stuck around a bit after the tour chatting with cgiii, who was very generous with explaining in more depth how the video encoding works. Honestly I can’t praise the Revision tech crew enough, they know their shit inside and out and seeing up close what’s involved is an experience.

A Stream Deck with various programmable buttons showing different commands.

Spot the ‘Oh Fuck’ button! This apparently kills the broadcast and shows the ‘We Remain Confident’ screen in its place.

wtf is entropretty

This year Revision—along with other demoscene events such as Assembly—got a lot of funding from some dubious crypto company called ‘Entropretty’ (it’s a portmanteau of ‘entropy’ and ‘pretty’, geddit). The idea, so far as I understand it after you parse all the crypto jargon, is that you could create a tattoo which also serves to verify that you are who you say you are, by encoding in some way a number that represents your unique ID. Sort of like a visual public key? So the competition was to create algorithms that could create images in Entropretty’s generative system, and presumably then be used by people to identify themselves with some scene art.

Honestly the whole thing seems rather convoluted for its intended purpose, but clearly Entropretty have a lot of money to splash around, and whatever the orgas felt about it they got to buy an entire compo for their service. A certain number of people entered, although I’ll be real, the vibe from the hall was not especially interested.

These guys also backed Assembly, another major demoparty and gaming event which took place in Finland. It’s all very mysterious where the money comes from because the idea seems baffling and I kind of imagined the crypto bubble had given way to the AI bubble but hey, I guess some of these guys still have loadsamoney!

Fast music

Lunch was eaten, and back into the hall, for the compos continued pretty relentlessly for the rest of the day, with a break for Lynn’s concert. Next up was fast music, and oh my god, ok, so.

Well, I’ll embed this one. Earworm warning applies.

fast music

So the idea of the ‘fast’ competitions is that you are given some requirement at the beginning of the party and you have pretty much the duration of the party to cook something up. In this case, that ‘something’ was a vocal line. It went like this:

Blitter blitter bum bum
Blitter blitter bum bum
Blitter blitter bum bum
Blitter blitter bum bum
Copper copper copper bar
Copper copper copper bar
Copper bar, copper bar
Copper copper copper bar

Explanation: the blitter and copper are two chips on the Amiga (some other similar consoles also have a blitter). The blitter does ‘blitting’ operations, which generally means copying data into a buffer at a specific position, for example sending a sprite onto the screen. The copper is the coprocessor which executes special commands linked to the progress of the electron gun across the screen, which can be used to create an effect known as ‘raster bars’ or ‘copper bars’. You can learn more about that here from some helpful furries.

So, now imagine 21 songs with this tune back to back. It’s no surprise it never left my head for days! The actual songs kind of blurred together a bit, it was hard to remember which was which. But sure is a tune. Blitter bum blitter bum.

4k Executable Graphics

This is where we move onto much firmer ground for me! The idea of executable graphics is: you create a program, 4 kilobytes or smaller, which generates a single still image. This means you’re not limited to only realtime techniques, but can do more CPU-toasty methods like path tracing, if that’s your jam. But the techniques are pretty varied! In order of final placing in the competition, then:

Oldskool graphics

Truly there are so many ways to make visions on the computer. The name of the game here is pixel art that can be displayed on old systems, mostly the Amiga and C64 but not all…

Naturally enough given the setting, computers themselves were a recurring theme, featuring in e.g. Bloom by Takoto, the charmingly oldschool-webcomic-styled Amiga Girl by by m_hawk, or Firmware upgrade by Folcka. Monsters and fantasy scenes were another, e.g. The Sphinx’s Lair, My Guardian and Cattitude, the latter two using the more demanding limited palette of the C64 to a graphical, graffiti-like effect. Of course, Vasyl brought the classic theme of cyborg girl/zergy bio girl.

Elaborate rendering using dithering seemed to be a winning technique, with lots of humans and monsters full of gnarly biological detail. The winner was Make a Wish by Steffest, a beautifully lit (if maybe a tiny bit kitschy) portrait of the artist’s daughter, which conveniently comes with a whole timelapse. Remarkably the author drew it in their own homemade image editor.

All things considered, pretty sick compo. But just wait…

Wild

The wild compo is the compo for stuff that doesn’t fit in other compos. Custom hardware, weird demoscene-adjacent creative projects… and yeah, this one was indeed wild, with all sorts of computers I’d never even heard of.

We immediately opened with a cool demo for a TI-84 graphing calculator complete with music, just in case you’re wondering what level these nerds are on. Full of demoscene allusions: vector drawing, an approximation of an effect from Second Reality, the Amiga boingball (boingball count: 1), and even 3D triangle rendering, this was definitely a crowd-pleaser to get us started.

The next project by nicode also gave us a boingball (boingball count: 2), used a partly deconstructed amiga without any RAM at all, or most of its special chips, with a very dry voiceover presentation explaining it. Still, respect for its technical achievement and AMIGA hype gave it a pretty strong score.

Next up we had demos for the Windows command prompt featuring text moving around to create illustrations—simple but a nice effect. Dance Diverse was a music disk—that is, essentially a realtime album and visualisers distributed via Amiga disk—featuring… OK, I’ll admit I’m terrible at identifying electronic music genres, but somewhere in the area of DnB, jungle and breakcore. Sorry I can’t be more specific!

We continued to explore unusual hardware. Comendo64 by PotcFdk was pretty cute: a C64-style (fake?) operating system and demo running on the Nintendo DS, main effect being a Sierpinski triangle fractal. Cute prod, I have no idea what developing for the DS is like but it seems pretty complicated going by the readme. Right after that, a smartwatch! This was some pretty impressive hardware and showed some complex 3D rotations and, yep, another boingball. (boingball count: 3)

After that it was vector time!

curvy by sdt targeted the Vectrex vector display from 1984, which like an oscilloscope draws lines with the electron gun. Pretty sweet for a first demo.

And then right after that came something like a religious experience?

So, if you’re not familiar with oscilloscope music, it uses an ingenious method of creating audio that also draws imagery on a 2D oscilloscope, with the left and right channels controlling the x and y position of the electron gun. Musicians such as Jerobeam Fenderson have shown you can do incredible things with this concept, and made available tooling for it. It’s developing into a genre of its own.

Ever since I heard about oscilloscope music I thought ‘wow the demoscene would love this’ and it turns out: yeah. Bus Error Collective put together an awesome oscilloscope piece with all sorts of cool effects, and yeah ok there was a fair bit of computer nostalgia in there: another boingball (boingball count: 4), the Revision logo, the Commodore logo, the Atari logo; also some pretty sharp text rendering and a wireframe city…

but yeah this was like exactly the sort of ‘sitting in a huge room looking at shapes’ experience I wanted at a demoparty and as soon as I realised it was gonna be an oscilloscope track. It benefitted hugely from the gigantic screen and sound—watching it back on a corner of my browser just isn’t the same. This would win the ‘audience choice’ for the whole of Revision and honestly, yeah, fair dos.

Following that came a kind of promo for a hardware device for hacking Amstrad CPC games as they’re running. Kind of an ad, but I’ll give them that the presentation was very slick and reaching in to fiddle with a running computer is you know, pretty sick.

Ho L YoYo by BoatByte was another clever concept: a yoyo with a single line of LEDs which was able to track itself well enough to use those as a display for stable spirograph effects. And of course: a boing ball (boing ball count: 5). Presentation could have benefitted from music though the audience provided a little cocio & finsprit to make up.

Back in Nintendo land, we got a cute little GBA intro by djedditt with some 3D tunnel stuff, nicely timed to music, which was also announcing… a baby being conceived. Wild thing to do but OK. Congrats on having sex!

8 bit breaker by Moods Plateau did something a little cute by recording an explanation at Revision itself, for a demo on an obscure old East German computer, featuring playback of a 5bit-quailty Amen Break. No RISC No Fun was a 256byte executable graphics rendering on RISC-V hardware, though the author didn’t share much more than that.

Castello by cce and noby rendered an impressively complex 3D scene with baked lighting on the N64. They did something even more clever than just a static scene, with the light changing with time using an ingenious technique of adjusting the palette texture at runtime, as they discuss here in their detailed writeup, allowing them to have effects resembling bloom, normal maps and tonemapping. Having been involved in an N64 demo in the last couple of months, I’m now even more impressed about what they were able to pull off here in a pure fixed-function landscape. The atmospheric music and piano worked very nicely with the ICO-like visuals. Apparently the N64 handles static scenes quite well because they can be turned into efficient ‘displaylists’, but I’m still learning how that works.

a demo, in bytebeat? gave us boingball #6, running in special minimalist synthesiser language that can be played back by various software. The demo apparently uses error messages to play back. I think people didn’t quite understand how that worked because it didn’t score highly despite being pretty damn clever.

Small64 by Pestis was a sizecoded N64 demo. Visually it was mainly just a torus getting distorted in various ways but it’s crazy that someone has managed to figure out sizecoding for a platform like N64. N64 demos really seem to be popping off in 2025! (She says, having just worked on a N64 release.)

90s Rewind by Void targeted another obscure device, the Commodore Dynamic Total Vision or Compact Disk Television console, which they used to make a musicdisk. I think this one went over my head a bit at the time because I had no idea what a CDTV even was.

Kicad brought an entirely homemade smartwatch which used what looks like an e-ink screen to optimise for min power, and showed it playing Bad Apple complete with extremely crunched sound.

Springy Break by MARMOT… the demogroup I ended up joining in the few months since Revision. Much like the one I worked on, there was a focus on cute animals. Actually it’s really cool to look back at this and see how much was implemented in the months since Revision!

Signal Carnival by Reflex falls into the ‘ingenious hacker bullshit’ category, wiring the Commodore 64’s audio output into video to create a variety of black-and-white effects along the lines of rasterbars. Very clever! Similar sort of concept to oscilloscope music.

The Opposite of AI… ok so at various points throughout the party I was hearing about a ‘human shader’ performance, and this was that! The concept was pretty cool: a grid of people would stand in formation and hold up different coloured squares according to shader code displayed on the screen behind them in what was essentially a dance. Unfortunately… this needed a lot more rehearsal to really work, and the enormous setup time did not help. In the end it all felt kinda awkward. As it happens, none other than Inigo Quilez organised a different interpretation of a human shader, asking people to compute by hand the values of a shader. It’s an interesting idea, and I’d like to see a choreographed performance like this go well—tho perhaps the Beijing Olympics opening ceremony gives a preview already!

Finally Kaleidoscopio by lft was a handcoded assembly demo targeted the Raspberry Pi Pico, a $5 RISC-V microcontroller, attached to a VGA out by a simple breadboard. I appreciate that this one had a pretty clear presentation explaining what’s interesting about hardware without dragging. And considering those limitations, he achieved some pretty crazy stuff: 3D transforms and shading, a pretty clean synth sound, scaling, intersecting Kefrens bars, kaleidoscope effects, a brief smoke sim(!), lots of wiggly distortions, particles, flappy bird with sprites, tunnels, misty 3D terrain (raymarching?), and other effects that I don’t even know the name of—seriously I feel like this managed to hit just about every old school demo effect you can think of. It also had a red and white balloon which of course turned into a boingball (that’s boingball #7!). All in all, a very welcome palette cleanser after the dance.

I think the wild compo is really kind of the heart of the ‘hacker’ side of the demoscene: an incredible imagination for what sort of random bits of tech can be turned to artistic purposes. So much ingenuity. Along with PC 4k, this was one of my fave compos.

Though for real, seven boingballs? I don’t think I’ll ever quite understand what this red-and-white ball means to people. I guess you had to be there, man…

Fantasy console

The fantasy console includes systems like the TIC80 or Pico-8: essentially, deliberately limited game engines/programming environments, which act kind of like a fictional oldschool console except for the part where they can be programmed in Lua. Popular enough, evidently to have their own category! They act as a nice on-ramp for modern young sceners like me to understand a bit more about oldschool consoles.

My friend Enfys was entering this one so I was hype for her prod, only to end up missing most of it due to a poorly timed toilet tunnel trip T_T. Still, quickly: the first couple of entries gave us a cute little 3D scene and a sizecoded cellular automaton. The ‘kex crew’ brought a couple of partycoded Pico-8 entries, the cutest one featuring a cute little character animtation system to have puppet-like dancing characters, seemingly with some kind of IK routine, which is pretty impressive for partycoding.

The later entries were naturally more elaborate. O Disaster by Rift was a nice little retro-arcade thing with some elaborate dithered 3D rendering of cuboid characters for TIC80. I’ve done some rasterisation on the TIC-80 since the party, and this is pretty nicely done—the TIC80 gives you a primitive for drawing triangles but you have to do all the 3D maths yourself, and I think the dithering might mean that they’re drawing it pixel by pixel instead… well, the nice thing about TIC80 prods is that they are inherently open-source and sure enough, they’re poke4ing the pixels directly into memory. They’re also doing some object-oriented stuff with methods that take functions as arguments that I didn’t know you could do in Lua.

The next act, Grow combined Suule’s graphics with Enfys’s music and hell yeah, actually telling a story. The music sets a wonderful mood for a scene of plants growing amidst desolation—and even a bit of traditional character animation as a deer-headed creature comes out and plants some seeds. Beautiful pixel art as you’d imagine from Suule, Enfys gave it a lovely soundtrack, and it really hit on the level of art direction and vibe.

The final entry, [Re:FORM] by ‘rivals’ teadrinker and superogue, introduced a lesser-known fantasy console, the MicroW8 sizecoding-targeting webassembly console, and naturally enough for a Superogue project, involved elaborate raymarching scenes. There’s a very nice writeup of this prod here explaining some of the techniques involved in working around the MicroW8’s limited palette. The brick-wall-like pixel layout definitely gave this prod an unusual effect, and the raymarching effects were thoroughly impressive. Well played. It’s hard to know how to compare this against the others—is it harder to write a raymarcher for MicroW8 than TIC80? I should find out!

Phew, we’re only up to mid-afternoon here. There was still more amazing stuff to come! With everything inevitably running a bit late it was soon time for…

Animated GIF

This one’s kind of a joke compo, as you might gather from the tune Cocio & Finsprit, a long-running demoscene injoke. I’ll let you listen and get the vibe. To this could be sent anyone’s looping gifs.

I’m not gonna comment on these in detail lol. But as someone at that time uninitiated into the ways of cocio & finsprit, this was a welcome blast of silliness. The gifs ranged from pixel animations through looping videos of diggers to 3D renders in ancient software. And it’s nice to see some love for animation!

Towards the end, the projects got considerably more elaborate, with some nice character animation by Duckz0rs and the Poo-Brain group (what a 2000s phrase) jumping out at me in particular. Poo-Brain seem to have some really cool animators in their ranks, strong sense of timing and motion!

Paintover

This was another fast compo, and it is one of the more unique compos of revision! The contestants are given a random mash of shapes at the outset, and turn that by some means into a digital painting. Seeing how many different ways artists interpreted the same visual prompt, and how much painting they could get done during the party, is cool!

I am running out of stamina to comment on everything, so a few highlights—the winner, Hamadryad 5 by Steffest, had some lovely grimy Gigeresque texture to it. Second place’s Oni had fantastic composition and brushwork. Hold the Line by Faith brought psychedelic symmetry. Beftex had a wild collage of bugs and plants which has to be one of the most original interpretations.

Oldschool 4K

…I’m gonna be real I went outside to eat for this one, because Lynn’s set was right after and I needed to be ready. Looking at how many scrollers there were, I think that might have been a good call. If I was writing for oldschool platforms I think I’d appreciate these more.

Lynn Drumm’s set

This was it! My livecoding debut!!

As mentioned above, the orgas were very kind in getting me into the livecoding at the last minute and getting me set up with the relevant software. Now it was time!

The atmosphere in the hall was incredible: we had a huge number of livecoders both local and remote creating effects, everyone was dancing. I was so hype. I’d been practicing all day, learning how to handle polar coordinates and such.

For the set, we were given a few textures that would be made available for the shader, including the Revision logo, Lynn’s avatar, and some other stuff that didn’t end up working. Like more than a few other players, I got the idea to take the various rings of the Revision logo and segment them to move at different speeds based on the FFT input. I’d got that effect working before the jam. So it was time to add something new…

It was going pretty well, I had a nice noise effect that was creating a cool flame-like tunnel using the previous frame as input… and then I looked at the big screen and realised disaster had struck! It turned out that there was a difference between how the FFT texture was scaled on Linux (where I was working) and on the compo machine running Windows! My shader looked way less interesting than it should’ve… oh noooooooo….

Figuring that out took some panicked messages, but with some helpful suggestions from a nearby friend looking at the big screen to see if I’d fixed it (since my effect wasn’t onscreen a lot of the time), I got the intended noise distortion effect working. And I even had time to get up and dance to Lynn’s awesome set a bit.

It’s hard to describe how amazing it felt to participate in the shader jam! I was here at a demoscene event doing demoscene stuff! Finally! And I felt the effect I cooked up—while not on the amazing level of what the jammers had done earlier—was pretty solid. I had… kinda sorta… made it :O

Since that day I’ve joined the FieldFX byte and shader jams nearly every week. Livecoding rules.

Naturally the other jammers cooked up some amazing effects tool. Nusan had Lynn’s avatar outlined in little lines, wrighter did something unique with dots, aldroid had Lynn’s face looming over a landscape full of strange mechanisms, visy had a complicated Lynn-kaleidoscope, ob5vr did some absolutely mindblowing work with, creating a hyper-stylish raytraced landscape which can be seen on compute.toys, kinkankomoti brought a gorgeous implementation of fractal flame, LLB rendered a whole sheep, Renard had a striking triangle spiral star thing, Peregrine took us to a world of rainbow soft cubes, rychveldir to an Escher-like pattern of spiralling intersecting shapes, totetmatt to a whilring tower of colourful square beams… I believe it was the largest shader jam to date. You can download all the effects here, though they won’t all work properly without the textures.

Sunday Compos, part 2!

In the afterglow of that we got to stay up and enjoy the biggest compos: the larger PC intros, the Amiga demos (of course), and then the no-limits PC demo section! I don’t remember quite how late it all ran in the end, but it was so worth it.

The Revision audience enraptured by a compo.

Who needs Plato’s cave?

PC 8K

8K is a slightly niche category—not as demanding a sizecoding challenge as as 4k, but still pretty restricted compared to 64k. But this is Revision, so the 8ks that dropped here were pretty next level.

We gotta build up to it first though!

We opened with a classic färjan, this being a long-running demoscene meme of micro demos that depict a ferry, like, it’s a thing, you know… färjans.

Next up came Train of Time, a cool browser project by parent-child team AnaMark and BlueSkuhl that makes maximal use of a gear model—I met these guys working on it during the party, and they explained how they used the browser’s PNG decoder to get DEFLATE for free in decompression. Unfortunately, downloading the demo now to watch it back, I can’t seem to get it to work in Firefox or Chrome. The clock theme continued with Were All by ThePetsMode, a lil raymarching thing.

The Reunion by Fulcrum did something I super respect, demonstrating character animation of a fairly complex dog model with terrain IK and both walk and run animations. Some more attention to art direction, colours and lighting would have made this really shine—one Pouet harshly describes it as “100% demoscene kitsch” and… yeah, they’re not wrong, but it’s sweet.

Circle by Tifeco, Teo and Chlumpie gave us a nice hypnotic montage of circles, all in all creating a kind of trancy effect.

The renowned Farbrausch group came in with a beautifully coloured fractal fluidy thing called Farbflausch. Perhaps due to being a ‘one effect demo’, this one ultimately placed surprisingly poorly!

Perspective by Altiga was my personal favourite, projecting renders onto geometry with an ingenious technique that calls to mind games like Viewfinder and Superluminal—though apparently it was devised independently of either. This is the sort of thing I really love to see, though, imaginative new effects and tight sync to music in demonstrating it. Altiga wrote a wonderful writeup explaining the effect and I’m glad they got a lot of love at the party and after.

One nice thing about 8k is that there seems to be room to implement slightly more complex algorithms than are feasible in 4k. Pac-Quack by Archee demonstrated that well, showing a whole agent system with little physics-enabled ducks interacting and pursuing food blobs on a subdivided landscape and nice soft reflections to boot.

Dune by Alcatraz would end up the winner, and honestly, yeah that’s real! A whole series of shots drawing on the style of Villenvue’s Dune movies, with bloom, mirage effects, forboding brutalist architecture and powerfully booming score that fit the cinematic style very well.

The Sheep and the Biker by Ctrl-Alt-Test went for the msot elaborate story of the bunch, drawing characters through SDF raymarching. The joke was a little predictable but adorably executed. Very clever visual storytelling to get all that in 8k, and it’s open source too!

A really inventive set all around, and a worthy match to the crazy 4k show the day before.

PC 64k

The 64k compo has become rather starved for entries these days, with most of the hardcore sizecoders going for the smaller categories and people who want something maximalist just going for the general PC demo category. So, we only had four entries here…

Quadtrip’s demo took the unusual approach of rendering using Windows UI elements like windows and buttons instead of a graphics buffer, which was cute, but broadly a joke prod. There was yet another Shadow Party invite, and it didn’t do a lot for me! I do not care about beer or sausages! The first serious entry was summoning by dok & jon, which created some kind of swirly normal map shapes and definitely seemed well-designed to fit a big party hall with that beat and the bright flashes. This one was definitely cool, I liked the refraction effects, but so far the compo here was not quite living up to those 4k and 8ks earlier…

But then the last entry was incredible. In Tension, the four-person group Digital Dynamite reimplemented a classic 3D animation by Aenima released at Evoke in 2002—no mean feat given the variety of scenes and complex mechanical detail. I wondered, watching it, how much the demo had had to take liberties to fit into 64k and indeed when you look side by side some of the models are less detailed, the photo-based textures are now procedural, and some of the bloom and lens flare effects are toned down in the realtime version… but honestly, it’s pretty damn close. One hell of an achievement of procedural modelling and animation, and a delightful blast of early-2000s era 3DCG aesthetics. Here’s a side-by-side comparison:

Spectacular thing to see. And that was the end of 64k, which left just two compos.

Amiga demo

All together now, amigaaaa, etc. etc.

So, the demoscene’s favouritest platform, now with no size limits. What did we get?

In fact, things started on a very strange note, with Lambings by LoveJesus. I did not have the lore on LoveJesus but apparently this dude is like… a guy who was active in the demoscene around 1996-8 under the name ‘Vector’, then disappeared for two decades only to abruptly reappear in 2020 with a spate of Christian-themed demos. Nobody seems to like, know him very well? If you look at his Pouet comments under the LoveJesus account, it’s almost entirely long rambling christian comments, dude doesn’t seem to have anything else to talk about. Nevertheless, he continues to come to demoparties and release prods—quite a few of them in fact. He seemed to disappear after 2020, but apparently the invention of gen-AI has brought him back, which led to… a brief Amiga demo presenting some of the core conceits of Christianity (i.e. you don’t need to be punished by God for not doing Christianity hard enough, because Jesus got tortured). Framed around Lemmings. Fascinating.

This would be far from the only weird AI thing in the Amiga category, so strap in.

Next we had a scroller running entirely on the Copper, which is something I would end up learning a lot more about a few months later for the Evoke party when I joined in the copper showdown livecoding event. I would only really understand this after the stunning NoCPU stuff to come at Evoke, but, looking back in retrospect, it’s cool to see the seed of it here at Revision! The significance totally passed me by at the time though.

After a quick beer-themed compofiller, another NoCPU demo combined a scroller with some flight sim stuff. These didn’t mean a lot to me at the time, but now I’m more interested because I still haven’t learned to drive the blitter from the copper yet.

Debut by Contain followed the ‘reel of assorted effects’ pattern, showing off some drawing of lines and vector triangles for a space scene, loosely on a scifi theme. There’s a pretty cool drawing of a frog with a gun. And at least they had the honesty to admit they used Stable Diffusion for the loading splash (a pretty standard ‘space girl with long hair’ kind of image that a lot of finetunes generate)… I wish that was not something I had to give them credit for.

Shinya 1986 by Amalgest brought some nice cyberpunk pixel art that calls to mind the video for Peturbator’s She Is Young, She Is Beautiful.

DEMOTraktor by Grillcrew was a meme demo—never thought I’d see the dancing banana in 2025—with heavily posterised tractor pictures, but actually pretty decently edited.

Pegasus by Offence and Nah-Kolor used a variety of Amiga effects I’ll probably understand better when I’ve written for the Amiga more. Besides pixel art, the main effect involved clusters of sprites that leave spiralling trails going off to the side of the screen—I assume this has a standard name but I couldn’t find it easily on some digging.

3D Demo 3: The Last Drop by Lemon made things a lot more more exciting, showing off a variety of 3D rendering methods on A500 OCS&ECS (that is, Original and Extended ChipSet). I’m not actually sure how the Amiga draws dots and vector shapes and such! Helpfully for foreigners like me, this demo came with text at the bottom identifying… something about what was being shown off in each effect: reversed Kefrens bars, lots of chunky pixels in a distorting shape, etc. The ‘voxel’ method in this demo does not refer to what we refer to as voxels in games today (3D data grids that are meshed and rendered), but a classic technique for rendering heightmaps by drawing vertical lines. Anyway, I’m sure I’ll come back to this one as I learn more about what the Amiga can do. Somehow this all goes into telling the raster beam what colour to be as it’s scanning across the screen, which is a fascinating way of relating to pixels compared to my newschool ‘the fragment shader writes values into an array’ view.

I was already impressed by all that 3D stuff, Enchanted Glitch by Cosmic Orbs immediately hit us with something perhaps even more impressive (or not, 3D Demo got the higher vote, I don’t actually know what’s hard on the Amiga…), We saw Platonic solids interpolating with their duals, complicated-looking plasma tunnels, and a kind of chunky pixellation effect, as well as what appeared to be a texture-mapped cube—probably some kind of ingenious raster trickery since it only rotated on one axis? But I’ll be real, I would not know where to begin. Luckily for us, they have a writeup explaining each effect in detail. Only… be prepared for jargon! For example, HAM is an Amiga mode called Hold-and-Modify. Something to dig into later, this could easily be a whole article to dig up what each technique involves.

If those demos were deeply impressive yet in line with ‘what I thought an Amiga could do in the hands of 1337 demoscene coders’, the next demos started making me think I was looking at a different sort of computer entirely. Like, a PS1. Of course, part of that is that I did not really know the difference between an Amiga 500 (released 1987) and an Amiga 1200 (released 1992). With the PS1 released in 1994, it’s perhaps not so surprising that similar 3D effects might be achieved on a computer that was high-end in 1992. Even so…

Fire Geisha by Nah-Kolor took us into a rush of Japan Images complete with pseudo-kana font. The ghost of Edward Said floated before me leaving rather mixed feelings. But all these texture mapped, lightmapped realtime triangles are undeniably impressive. This demo caused a fair bit of controversy on the discord, because the vocals sounded suspiciously like they’d been generated with an audio diffusion-transformer like Suno. Word on Pouet is that it was actually a ‘vocal synthesis solution’ to feminise the voice of one of the creators, which to my mind is another matter. I admit, it’s hard to know what to say about this demo—technically it’s ‘damn how did they do that’, but I simply do not vibe with all this stereotypical geisha-and-sunset-behind-a-torii imagery. Still, I can hardly criticise someone for weebing out.

The next demo, Lupus Reditus (The Wolf Returns) by Mystic and TRSI, brought a more palatable flavour of chuuni-ass 3D, featuring not just more textured triangles and environment maps but an animated skinned mesh of a running wolf. An interview with the creators has been released, giving some info about the history behind it, but less so about the specific techniques. I’m really curious: did they calculate the vertex displacement in realtime from a skeleton, did they cache the vertex positions in an array, or some other technique? (I worked on an N64 demo for Assembly which used the latter technique, which is why I wonder…)

In any case, it delivered some supremely gothic stylings: churchyards, werewolves, sinister guys in hoodies swinging chains. From a pure animation technique, a fair bit of foot sliding, but I suspect there was a technical reason for that—it looked like there was one animation loop and perhaps there was some reason it would be difficult to vary the speed. The actual animation itself looked very natural. This demo ultimately won the compo, and reasonably so.

Next came Skywards by Darkage… and oh man. This is where the AI issue really came to a head on the Discord, reflected in turn by its extremely polarised votes on pouet. This demo blatantly used diffusion model imagery and a lot of it (along with a fair few photos); it also did not disclose the use of the model (at a guess, might be the GPT-4o image generator). Stylistically, it’s clearly taking a lot of inspo from the cutout collage animations by Terry Gilliam in Monty Python’s Flying Circus… but tbh the vibe for me felt closer to 2000s-era flash animation with photos slididng and spining around, and to be fair, it nails that style. I will admit, on the technical side, I don’t know how complex it is to move big sprites like this on an Amiga. In this case, the AI imagery serves a similar artistic purpose to a roughly edited photo of a monument: it’s a kind of kitschy vibe. But honestly on some level I just don’t like to look at this stuff. It’s like reading GPT text output, at some point the style of it becomes so annoying that it overshadows all else.

Luckily, there was one more demo to wash away whatever frustrations I had. Entropy Chamber by logicoma (that is, ferris and h0ffman) took the vibe of a PC raytracing-focused intro and rendered it entirely on the Amiga 1200. How the hell you do that I have no idea! But there is a fairly long dev walkthrough on Youtube to explain how it’s done. In any case this absolutely slapped: tightly timed lights on the cube reflected perfectly on the sphere, along with non-rectilinear perspective, nicely designed text elements, all sorts of cleverness.

This compo was a ride, definitely opened my eyes to what the Amiga is capable of in skilled hands and some extremely cool prods in here. Shame about all the AI mess. Since Revision, the other German parties adopted stricter no-AI policies, so this was less of a bother later in the year.

PC Demo

A general rule at demoparties seems to be that the most spectacular thing is generally saved to last, and as such PC Demos are usually the last compo. Even though it was hours past midnight, this was one of my most anticipated compos: modern GPUs, as many bytes as you want.

Weirdly, rewatching the demos and writing now months after the party, I am finding that my memory is pretty hazy to nonexistent on what it was like in the party hall. Maybe I was just too tired. So, fair warning: most of these impressions are from the rewatch session rather than how I remember it going down at the party.

So what’d we get? Well, as usual, beginner works and compofillers to open the competition. ADSR and Feryx followed Gargaj’s excellent demo tutorial and rotated some cubes. respect to them for taking the demo plunge, look forward to what they do next year. And for compofiller there was yet another ironically min-effort shadowparty invitation. (these did not convince me to go to shadow party)

Raymarching Frontier gave us a variety of colourful shapes, using domain repetition tricks to create various infinite structures. I think my favourite was the backwards zoom through the rotating strands. It didn’t necessarily have a ton of flow to it, but it worked solidly.

Beyond every little thing by shantee immediately got groans for Suno music, and unfortunately the demo itself didn’t really do much for me either technically or visually. There’s no nfo but the slide said it was made in a tool called PlayEngine.

All in Your Head by Bala-Koala put things on a much better track, with some hand-drawn hatched artwork animated with a cutout style in WebGL. The author, Marin Balbanov, has made his own writeup of Revision. Although short, I’m pretty charmed by this entry: the artwork has a clear style and the big foot coming down felt like a reference to ‘old enough for this shitpost to be a classic animator injoke’ Bambi meets Godzilla, though being real it’s probably more of a Monty Python thing. This is more ‘2D animation’ than ‘procedural effects’ but it’s cool to see.

Stellar Bread Tricks by u+1f35e (the Unicode codepoint for the bread emoji, who seems to have a long line of bread themed demos) was another animation-focused joke demo, using Godot for 3D rendering. It’s a cute little riff on the idea of a bread-based Tony Hawk-style game spiralling out of control.

T I M E W A V E by RBBS & Doctor Gekil was an interesting concept, a story demo about a number of experiments in different periods somehow becoming linked and leading to a wormhole to come and aliens…something? The Half Life inspiration was pretty evident. I feel this demo was let down a fair bit by its rendering/lighting (the rendering was simple but didn’t exactly hit a retro vibe), and camerawork. It had the classic ‘constantly moving 3DCG camera’ problem, where the camera constantly zips around points of interest without much attention to framing. There were some cool effects, like the wormhole. Still, cool concept, I’m looking forward to seeing what these two do next.

Echoes of Delta by Freedom Systems started in a promising way (notwithstanding the acknowledged use of Stable Diffusion as a starting point for one BG), continuing the ‘weird cosmic entities from space’ theme of the previous demo with an equilateral triangle descending on Earth and psytrance instrumentation. Most of the demo ended up being a static shot of a Sierpinksi tetrahedron rotating inside this triangle emitting the letters ‘LAAAAA’. It felt… kinda unfinished? There were some cool visual ideas at least. And, I respect that they used entirely open source software for this one.

Arealights by With Love demonstrated… exactly that, classic 3D graphics motifs of ‘shiny things reflecting glowing things’ (in this case, with rough reflections that blur what’s reflected) but with a strong sense of composition and decent music sync. Looking at the info, one of the creators, Cedric Guillemet, is on the team of the rendering framework used, Babylon.js, so I’m guessing he implemented the area light effects now available in that engine.

Chuliau by ciosai_tw had both very interesting calligraphy effects (including some unusual forms of dotmatrixy sampling) and super tight choreography to the music and graphic design. Very cool motion graphics work. It’s always fun seeing what people can do with flat colours, and also I love motion typography with hanzi/kanji.

Quantum Space One by Intense gave us more Suno music, which was a shame, because the effect at the centre of it created in Tooll3 was actually rather cool, a pattern of dots of different sizes that calls to mind visualisations of the magnetic field, layered with DOF and such, which gradually gives way to golden field lines and colourful patterns. My guess is that underlying it is a shifting grid of points divided by proximity to certain radii around another set of points? In any case, very pretty effect, and one I’d be quite curious to know how it was done. This one did quite poorly in the voting, perhaps because of Suno?

Summis Vita in Armento by Jumalauta was a very cute Assembly invitation themed around conspiracy theories. I wonder what percentage of demos are invitations to demoparties? Anyway, it brought the trademark Jumalauta humour and honestly the picture-in-picture effects for the conspiracy board was a very neat form of presentation. With the soundtrack too it definitely hit the vibe of ‘late night conspiracy documentary’.

WALKMAN by Altair is when things really started getting going. Custom engine with lots of nice effects—depth of field, volumetric godrays, soft shadows, softbody physics—coupled with very strong direction and mood and a decent (maaaybe somewhat boilerplate, but you can’t argue it) set of quotes about resisting tyranny made this one hit pretty damn well!

Desatyr by Still was a short but sweet Tooll3 piece. I should mess with Tooll3 or its successor Tixl, there’s evidently a lot of power and it’s interesting to see what people can do by composing the effects. Sill, in this case, stacked flickering rectangular glitch elements and a raymarched cube shape to create imagery that called to mind a cyberpunk city or nuclear reactor. Cool stuff! unfortunately can’t get it to run on my machine due to a missing SDK component…

Epitaph for the Living saw the renowned Andromeda Software Development take the stage along with Satori. Opening immediately with VHS effects and medical imaging of a human brain. As the music builds it flashes hypnotically to the beat, transitioning from the birth imagery to a figure on a moody street. A thorough exploration of post processing effects, but the effect is absolutely arresting; the editing is especially cool with the different ‘scenes’ interleaved on the beat so there’s never an exact moment of transition. Super tight.

Melodice by Damage plays in a fun way with ‘lots of instances’, in this case of a model of a D6, animated as particles to create a variety of effects on a musical theme: photos, voxel models… a very nice use of various types of noise to flow the particles around from one pattern to another. Very nice technical work.

This Is Us by Exist takes us to a city scene with heavy bokeh and human character animation, rendered with realtime pathtracing. Now, I love the look of rainy city streets IRL. The rendering here is very clean and low noise too. In terms of cinematography, this opened with a series of slow pans through moody shots, followed by a series of effects such as fluid sims that don’t necessarily seem to have a lot of connection. There is a narrative throughline about a couple and someone ending up in hospital, but it is a little hard to follow! Still, the technical work is very good; it’s rare to see proper original 3D models and an attempt at photorealism in a demo.

BREACH by MFX opened with a photosensitivity warning while it loaded in, which is a nice gesture although I don’t know where you would have actually been able to go in the Revision hall to dodge that. We open immediately with brutalist architecture and a cubic swarm of particles twitching like an animal to erratic percussion making full use of the huge sound system at the party; with rapid cuts, the particles dissolve into an implicit surface before encountering other unsettling biological forms. For a moment, the music mellows out and the thing grows, then it’s back to rapid cuts and rumbles. It does suffer a bit from being an iteration on the familiar theme of ‘cube in a room’, but then perhaps that’s like a formal thing that it’s working within? The unsettling biological vibe of it was cool!

And that left just one demo to close things off.

Anamie by Hack N Trade & Razor 1911 did things very differently: a kind of extreme take on textmode rendering that is usually the province of oldschool demos, but with a speed and complexity permitted by PC. Enough that I wondered at points whether it was genuinely text mode or just faking the look for style! Cool stuff, and returning to the old school vibe was a nice way to bookend the party.

That was the PC competition.

The end

Not wanting to wait for the buses, I walked home late that night, fizzing with energy. Wow.

The organisers taking the stage at the end.

The whole incredible orga team. It takes a lot of people to run a demoparty this big.

The next day, those people who hadn’t already gone home came back for the prizegiving. The most amusing part of this was seeing poor Enfys have to go up on stage multiple times to pick up trophies for other people. As much as I’d hoped to place top-3 on video, I was happy enough with fourth place… well, I was filled with determination to get my hands on a glass block next year but we’ll see haha. It’s a tough competition!

Not wanting to interfere with the rapid teardown that was taking place, I wandered back to Saarbrücken, with ‘blitter blitter bum bum, copper copper copper bar’ still going round and round in my head. My train wasn’t til later, so I found my way over to the Rathaus where the rats presumably hang out, and then sat about in a random German coffee shop. And, eventually I’d be back on a train, watching the latest AI argument play out on discord.

The E-Werk with the curtains open to let in daylight.

The E-Werk looks very different with the curtains open!

There’s all sorts of random things I don’t think I’ve even mentioned in the above. Sitting by the foodtrucks with a girl from nVidia (I also met a guy from Snapdragon at the hotel, just need to meet a nonbinary person from AMD to complete the set). Someone putting up a radiation monitor in the toilet tunnel. Jonas running about to get photos on his entirely analogue/mechanical film camera. I’m sure there’s other stuff that isn’t getting pulled up by the right associative links because brains weird lol.

Maybe the sheer weight of the above conveys why I came away thinking the demoscene was so cool, enough to go to two more German parties later in the year. I don’t know. This article got way too fucking long lmao. I really should copy all of these comments over to Pouet.

Since I went to revision, I’ve been doing shader/TIC80 jams nearly every week at FieldFX, and next year I am absolutely planning to get up on stage for the shader showdown. I’ll have to write about that in another article. Evoke and Deadline were also fantastic this year, but there is no way I will be able to write an article like this for every party! But, you know, a girl only gets to go to her first Revision once.

OK, I’ve held onto you for long enough. canmom out!

Comments

Add a comment
[?]