i can't go to hell - i'm all out of vacation days. i watch space rocks and yell at computers for my day job. probably too old for any of this

 

i think i might be burned out on internet social. it's hard to keep doing it. it's hard to even maintain the amount of attention i'm already giving it

 

i am the cause of most of my own problems

 

furthermore, capitalism must be destroyed

 

birdsona: ?????

 

🌎 Ontario, Canada


webbed site
egrets.ca/

blackle
@blackle
Somehow, I haven't posted about demoscene on this website yet, so let's rectify that oversight. Demoscene is a computer arts movement that all about doing more with less. Making art at the edges of what is possible, fighting tooth and nail against constraints both natural and self-imposed. It's the art of making demos. A demo can be anything from porting a black and white music video to a computer from 1981, to fitting an original four minute short film into 64 kilobytes, to raytracing a real toilet with plywood and a laser, and much much more.

That middle one, the 64 kilobyte short film, is an example of sizecoding. In order to fit art inside such a small space, it is necessary to write your own software to do it. Everything in that short film is generated in real time procedurally, built up from nothing but code and math. The executable itself is compressed with specialty software made just for this purpose.

Sizecoding is especially interesting to me. 64k is less than a tenth of the data that google.com sends you when you load the page. When you watch the video on youtube at the highest quality, you receive almost 400 megabytes of data. It's simply incredible that you can cram so much into such a small space.

To put into perspective the minuscule size of these sizecoded demos, I've shared one of my own. The picture attached to this post is called "Enamel Pin." I made it for Solskogen 2020, a Norwegian "demoparty"—a demoscene event with many different competitions. It's based on an actual pin I own and keep on my bag. It's generated entirely by a linux executable that uses a shader to render the image on the GPU. You can actually run this shader in your browser over on shadertoy.

You may be wondering what that weird image on the right of the first paragraph is. Well, that's the true demo. The executable is only 3012 bytes, and I have packed those bytes into a 32x32 RGB image (with a little bit of padding on the end.) It's possible to download and extract it using imagemagick's stream tool:

stream enamel_pin.png - | head -c 3012 > enamel_pin
chmod +x enamel_pin
./enamel_pin

note: the last command runs the actual demo and will take a long time to run if you don't have a powerful GPU!

The competition category I entered this demo into is called 4k exegfx, short for "4 kilobyte executable graphics." The idea is you create a program that goes full screen and renders your picture, 1and that program has to be less than 4096 bytes. A friend of mine maintains a curated gallery of 4k exegfx entries if you want to check out some more. She also maintains a windows 4k exegfx framework if you want to create your own from a shader. If you're interested in doing this on linux, I open source all my demos over here.

Demoscene is a huge subculture and I've only scratched at a tiny facet of the surface. Like, I haven't even mentioned shader showdown. If you'd like to learn more, I think a good place to start is one of the Revision intro seminars. Maybe someday I'll see you or one of your demos at a demoparty :D

1 Fun fact: it is at this point that the body of this post exceeds 3012 bytes


You must log in to comment.

in reply to @blackle's post:

Your sizecode demo is really cool! I've been curious about the demoscene for a long while, but haven't dived in to explore it. I vibe with the concept so I'd like to give it a try sometime.

great read! you've shared some amazing and very creative demos. i really like the enamel pin demo that you made, and thanks for teaching me about imagemagick's stream utility! unfortunately i haven't managed to get the demo executable working it gives me a "symbol lookup error: ./enamel_pin: undefined symbol: _dl_sym" and file prints "ELF 32-bit LSB executable, Intel 80386,, too many section (60311)"

Up til now the only thing I knew about demoscene was the cool music and keygens, so it's really nice to see a more educational post from someone who participates directly. I've a soft spot for old technology and computer culture like Amiga stuff, but admittedly I'm not the best about doing research - tend to just enjoy things as they come to me, haha.

Pinned Tags