Coding Mavericks of old and new
Increase of computing speed, memory and storage has made code worse. No one worries to much about optimization anymore
When speaking of computer culture one of the most important subcultures are hackers, phreakers, and crackers. We all know hackers, the good white hat and the malware virus deploying black hat wearing bad guys. The term cracker today is more associated with a malicious breach of computer security in line with a black hat but the original use was for people that crack software locks, and break copy protections for programs and games enabling use without pay. For anyone that wants to learn more about early computer history, there is an excellent book written by Paul Mungo, Approaching Zero: The Extraordinary Underworld of Hackers, Phreakers, Virus Writers, and Keyboard Criminals.
Crackers are less famous but are the biggest thorn in the industry as they are tightly linked to pirate culture. Nevertheless, their influence can not be understated as they were the pioneers of computer art and developed a lot of techniques that the game industry uses.
In the early age of the personal computer, computers like Commodore 64, and Amiga 500 made it possible for curious minds to occupy themselves and test the limits of the available computing power. To promote themselves cracking groups create Intros that showcase their skill in coding. Small visual presentations that would run before the game starts or during installation, sometimes nothing more than colored text with simple animations. Today this practice still exists but is relegated more to the audio side of the installation process.
And it snowballed from there, some of the Intros become works of art themselves, better than the games they were Intros for. Like the music industry has demo tapes so does computer art.
In 2020 and 2021, Finland and Germany added their demoscene to their national UNESCO list of intangible cultural heritage.
The best description of the Demo subculture is summarized in a short story by Grant Smith in 1993. It become a kind of manifesto of the culture just like “The Hacker Manifesto” became a de facto manifest of the Hacking community.
Now class, today we will talk about what you want to be when you grow up. Isn't that fun?" The teacher looks around and spots the child, silent, apart from the others and deep in thought. "Jonny, why don't you start?" she encourages him. Jonny looks around, confused, his train of thought disrupted. He collects himself, and stares at the teacher with a steady eye. "I want to code demos," he says, his words becoming stronger and more confidant as he speaks. "I want to write something that will change peoples perception of reality. I want them to walk away from the computer dazed, unsure of their footing and eyesight. I want to write something that will reach out of the screen and grab them, making heartbeats and breathing slow to almost a halt. I want to write something that, when it is finished, they are reluctant to leave, knowing that nothing they experience that day will be quite as real, as insightful, as good. I want to write demos." Silence. The class and the teacher stare at Jonny, stunned. It is the teachers turn to be confused. Jonny blushes, feeling that something more is required. "Either that or I want to be a fireman.
- Grant Smith 14:32 21/11/93
Reading this still gives me the chills like the first time I read it in one or another hacking ezine I used to read as a kid.
Soon parties and competitions became commonplace within the community with the largest still existing. Demo competitions/parties like Assembly, Revision, Evoke, and Bünzli is just some that are still pushing the bounds of what’s possible.
So, what’s so impressive about this sub sub hacking group? To understand this first understand the computer hardware that the Demos/Intros were made to run on. For example, the C64 main processor runs at 0.985 MHz compared to today’s over 3Ghz. The C64 has as its name implies 64kb of memory, but not all of it can be accessed freely, compared to 8 to 16Gb of RAM memory in today’s machines. Video resolution of 160x200 pixels and 16 colors, compared to today’s 2560x1440 pixels and 16,7 million colors.
That’s not just orders of magnitude more, it’s like comparing a humble bumble bee to a Jumbo jet. The amount of forethought, optimization, and coding tricks used to make impressive Demos is mindboggling.
For little nostalgia visit wab.com. They collect old demos and can be viewed in the browser as most of them are remakes of old demos/intros but now they work in plain vanilla JavaScript.
If a little more power was given like Amiga 500 with 7Mhz CPU, and some 256kb, that’s kilobytes not mega or Giga byte, of memory we get demos like
If that is not impressive then stop and move on to other more interesting things in your life because for me the next thing is even more jaw-dropping.
When x86 architecture become more dominant and PC as we today know became omnipresent the demo scene moved on. Old C64 and Amiga were kept as categories in competitions which are still well represented.
PC offered more space to create code, it had more power, more memory, and graphic subsystems had more color and larger resolutions so in keeping with the culture of pushing the boundaries of what is possible the Demoscene placed limits on the size of the executables. So the categories are freestyle or no limit, 64kb, 4kb, 1kb, and 256 bytes. Yes, that’s 256 bytes, you could write the entire code in ones and zeros on a page and retype them in without issue. Open any document or program today, save an empty file and it will be 100 if not 1000 times bigger than programs in this Demo category.
More computing power enabled coders to create impressive works of computer art by creating objects using math, templates, compression algorithms, and a plethora of tricks that became available with the increase in computing power. It is not uncommon that a 64kb Demo would take some time to start while it would unpack and generate everything it needed to memory. Sometimes such demos would generate impressive amounts of data, from 64kb executable to several gigabytes in the computer memory when unpacked. For more info about 64kb demos, there is an excellent writeup on How a 64k intro is made by Pekka Väänänen.
Some of the works are recognized as works of art like the famous Chaos Theory or Fermi Paradox.
Originally created for Assembly 2006, Chaos Theory is a so called 64 Kilobyte intro, a traditional category of demoscene competitions. The demoscene creates computer programs which, when run, generate intriguing visual effects on a computer. These visuals are calculated at the same moment they appear on the screen, and most of the time are accompanied by fitting music - much like a video clip. In the case of a 64 kilobyte intro, all this has to fit into a single 65536 byte executable - the size of a 4 second mp3 song.
A gallery of all demos can be found on Pouet. You can download the executable files and run them on your machine.
A big step forward came when dedicated graphic processors and shader pipelines became available. With modern hardware came advances that will without doubt be included in future demos. Technologies like real-time raytracing and DLSS will be a big boost to the quality and performance of future demos.
Inigo Quilez has an excellent video of how he created a 3D model of a girl using only math. He models entire human beings with just math, no 3D models, no textures, all done with math. This is the essence of demo coding, a challenge of how to cram as much information in as little as possible and for it to still make it into a cohesive visual and audio presentation.
The code for this can be viewed live on shadertoy. Shadertoy is a WebGL editor that allows code to be run on a graphic card through a web browser and is used by coders to quickly test out their code.
Here are some impressive Demos that will run in your browser, note that you will need a good graphic card to run some of them with a decent frame rate:
This little-known but highly influential subculture needs more love and attention as today most programmers are far removed from the hardware they are actually using. Which is not inherently bad, each problem has its own tool. A graphic designer that works on pictures doesn’t need to know how computer work but only that it does what the artist wants them to do.
But poor understanding or will to optimize software can result in so much bloat that it’s almost unusable. One example that comes to mind is in 3D graphic software where we have eg. Autodesk 3D studio that once installed can take almost 10Gb while, in my opinion even better software, Blender takes about 600Mb of disk space. And that’s because Blender is maintained by an open-source community that checks each other work and optimizes when possible. Another is CorelDraw vs Xsara where a core component of Xsara tools was just 129kb. Sadly Xsara has never entered the mainstream as Corel did and it kind of vanished.
The computing power we use on a daily basis is simply mind-blowing to such an extent that it’s easier not to think about it. I know it is for me but sometimes I find myself asking what would pioneers of the space race do with even one modern smartphone.