All the shader parts are running in 60 fps on an actual Nano now! I'm amazed at how incredibly pokey that GPU is. I said it had about a third of the computational power of a TX2, and I was right. I should start listening to myself. Damn. The music is still kinda rough and Sjur is working hard on the Swinetrek, but it's looking promising. Jinx!
Debug and early preview pictures. May or may not end up in the final video. Will it blend... err, float?
Opening picture: The upper left corner shows an apple. Ryuk eats apples. If you don't know who Ryuk is, it's the animated 3D character in the middle. He's known from the amazing 2006-2007 anime TV series Death Note. Some newer movies and series have been made, but they suck. Watch them at your peril. Upper right is a Nano. Lower Left is from the cover of Summer (P)Review EP by Fantastic Plastic Machine.
The high wheeler in the background is a reference to The Prisoner TV series. The end picture has a frame constructed from Speedball (1988 game) elements. The left part is from the new ultra crap Inspector Gadget series. I suffered through half an episode. Wasted time. The snake in the middle is Sjur's well-known reinterpretation of the Cobra Kai logo. Cobra C never dies!
The almost complete lack of text meant we had to hide a message in the cursor. (We could have added more text, obviously, but that would have missed the point completely.) Anyhoo, it's not hard to figure out. Step through the frames and the text KAR 120C should pop out. That's the number plate on McGoohan's awesome Lotus Seven Series II in The Prisoner.
As usual, some dork suggested that we use a Jetson Nano for this year's
Xmas Demo. A matchbox-sized Nano has 65% less GPU power than the
TX2 used in 2017 and 2020, so it's gonna be rough. We're going back to basics with old, classic
effects, utilizing open source crap new stuff invented here to pull it off. Read: Yeah,
we got something running. It's not particularly fast yet. At least we came up with a cool project
name. Watch Chappie again if you don't get it. We recommend top films like that for a reason.
ignorantus.com has been online for 15 years today! The oldest snapshot I could find was from 30 January 2011 [archive.org], showcasing early works like MultiDoom and the PCTVNet source code memorial.
During those 15 years I've published numerous edgy articles about high performance programming. The source code archive has grown to roughly 100000 lines. My code is terse and neatly formatted, so it's a lot. I started making videos in 2014; 33 of them are deemed watchable. The news section was introduced in 2016 for shorter works and interesting tidbits. The first Xmas Demo appeared in 2017, a seminal work in optimization. 2021 saw the release of Real Programming (with Sjur Julin), a completely different book about programming. As predicted there, the need for both fast and power efficient code is increasing. Good for me, bad for snake charmers.
What's next? As usual, I got some stuff in the pipe that should be finished soon. Jinx! Sjur and I
will probably create another Xmas Demo, since the
Summer Preview 2024 has had an astounding 53
thousand views so far! We're looking into using Vulcan. Could go either way. Are we ever
gonna get around to building a completely different tube amp or a completely different loudspeaker?
The magic 8-ball says: Reply hazy, try again. Stay tuned!
The picture on the right is of a PC I had back in 2009. Yep, the camera was pretty crap. Anyway, it had a 750W power supply, Intel i7-920 with stock cooler (replaced later), 3x2GB RAM, ATI 5970 graphics card. The ATI 5000 series was a revolution; the 5970 was crap. Programming dual underclocked GPUs wasn't as fun as it sounds.
El Reg has an interesting article about the failure of Agile. I told you so. Duh. If you don't know who MM is, go stand in the corner. Link: Software innovation just isn't what it used to be, and Moxie Marlinspike blames Agile [theregister.com]
We're not just building sandcastles in the silicon lab during summer! The summer preview of what might come in this year's Xmas Demo is ready. Almost a minute long, almost no text, almost nothing new, except that we figured out how to cross the streams and integrate 3D objects into shaders. Or was it the other way round? We also overdid the lighting by just adding more lights.
As usual, it's full of hidden messages and obscure pop culture references. Well, maybe not full of them. There are some. The video is only a coder's minute long. Figure them out yourself. It's summer: Building sandcastles is much more fun than doing this crap.
Sjur Julin reinterpreted the theme music from Inspector Gadget (1983-1985 TV series). He played his awesome Yamaha BX-1 to give it a unique sound.
One sample from "Bad Guy" by Billie Eilish. It's on the album "When We All Fall Asleep, Where Do We Go?" (2019). It's also featured in Brightburn (2019 film). It's great. The film, that is. Duh.
Ryuk model based on (fully rigged low poly) Blender model by syamharto, downloaded from Sketchfab [sketchfab.com]. License: CC BY 4.0.
Most of the other graphics items are from the original Inspector Gadget series. Some are not; can
you figure out which? One might not be obvious. A set of advanced crap scalers were used
to retain that 80s vibe.
Code by Sjur Julin and me. This is just a summer preview, so the code won't be released until the next Xmas Demo. Relax! Everything is written in C and GLSL as usual. There is nothing new under the sun.
Update: 3 October 2024: Summer Preview Secrets
Among other things. It's called "Jonathan Blow on Five 9's, Operating Systems and Software". Watch it, if you can get past the hurdles of Bitcoin peddlers and low prices on nose hair pliers. Nobody told me that YouTube went down the drain since Xmas. The natural order of things, I guess.
A matter that requires more attention. As shown 4 March 2024, the Norwegian computer-related news sites kode24.no and digi.no don't care about energy waste. They still don't care. Same results today. I'm not sure if that ostrich policy is gonna pay off. Anyway, Casey Muratori has a fun spin on the abomination sometimes referred to as Ruby: Ruby on Snails [x.com]
Use the heap of ARM cores to create depth maps of raymarcher-based shaders. Then we can add 3D objects that avoids shader-drawn things. Sort of like running the pipeline in reverse, but exploiting more facilities to avoid doing just that. Sounds like a good idea right now.
Real Programming chapter 11 discusses, among other things, a nifty way to calculate the average of an area of pixels using ARM Neon. While it does work, there is room for improvement: The mask setup is more complicated than necessary and it will overflow if you feed it a 1920x1080 picture with all pixels 0xff.
As before, the left and right sides are always evaluated outside the main inner loop. The mask calculation has been cleaned up and commented. 16 pixels will be shifted to the right block if possible, eliminating the inner loop if the area is small. The outer sums now handle 1920x1080 properly. Redo the inner sums yourself for larger images; it shouldn't be hard on ARMv8 with 32 Neon registers.
New version: average_neon_2024.c
Old version: average_neon_2014.c
As mentioned 30 August 2023, Sjur and I tinker with tube gear when we get a chance. The circuits are easy to understand and tubes usually sound great. This time, I managed to assemble a Elekit TU-H82 hybrid tube amp [tubedepot.com] all by myself. It wasn't that hard; no soldering required. Hooked it up to the Benchmark DAC with no issues. The tube is a spare Amperex Bugle Boy 12AU7 from the ever-growing pile of slightly used tubes. (And yeah, the wiring is more expensive than amp and tube combined. You use what you have.)
The loudest mouths have the loudest websites! As shown in this news entry, kode24.no and digi.no were quick to write off efficient programming. Turns out they practice what they preach: Waste copious amounts of energy. websitecarbon.com provided these intriguing results:
digi.no: Oh no! This web page achieves a carbon rating of F
kode24.no: Oh no! This web page achieves a carbon rating of F
ignorantus.com: Hurrah! This web page achieves a carbon rating of A+
I couldn't care less about carbon rating, but I do care about keeping energy waste to a minimum. Further down on the result pages, the actual energy usage numbers turn up. However, the results are based on 10000 visitors per month. Top notch websites have significantly more. For websites like kode24.no and digi.no, on the other hand, all bets are off. My crystal ball tells me that digi.no has about 60000 and kode24.no maybe 25000 visitors per month:
digi.no: 2367 kWh. That’s enough electricity to drive an electric car 15151 km.
kode24.no: 607 kWh. That’s enough electricity to drive an electric car 3887 km.
ignorantus.com: 0 kWh. That’s enough electricity to drive an electric car 0 km.
This begs the question: How trustworthy are palantirs? I'll ask it. Oh, wait... Anyway, the editors of those sites can send me their visitor numbers if they want the results to be more embarrassingly correct. Don't forget that the circumference of the Earth is 40075 km.
What's the conclusion? I guess publishing pays off really well, like banking (and probably idioting). The rapidly increasing energy bills should pose no problem for them, either. Let me know if the situation changes. Meanwhile, my investments in coal power plants are paying off.
The cat's out of the bag! After a long wait, we finally reached the (constantly revised) viewer goal for our latest demo. As promised, here's a writeup about The Xmas Demo 2023 Secrets.
The
Norwegian version of Real Programming was
released 3 years ago today. Last year we published a
10 page summary that
triggered a series of completely hilarious articles in the Norwegian digital press. While we pat
ourselves on the back and drink expensive champagne cheap wine, we virtually hand out
virtual awards to the two best ones:
Article: Håper du har plass [digi.no] - Click here for English translation
In our opinion, Torgeir Waterhouse and his posse are good at reading only headlines and nothing more. As far as we can tell, their article is a confusing mess about something. It doesn't seem to be about the book at all. In spite of that, we do enjoy the made-up quotes that don't have any connection to anything we have written. A message to the herd of authors: Let us know if you ever read the book, not just the headlines! We have prepared a couple of control questions. Anyway, we congratulate the Waterhouse crew on winning the "Dig Your Own Hole" award!
(It should be noted that Mr Waterhouse is sometimes referred to as a "technology expert" in the press, though we're not sure why.)
Article: De prater som det var en livsstil eller religion [kode24.no] - Click here for English translation
We think that director of technology Nikolai Rygh in Norway's largest bank, DnB, presents a disturbing lack of understanding about how open-source licensing works. Among other things. We tried to figure out how he managed to include a paragraph about punch cards into the heap of words... and failed. There is one thing that is blatantly obvious to us: He is a staunch supporter of energy waste through inefficient programming. According to the financial press, DnB had record profits in 2023. That's good news: The rapidly increasing energy bills should pose no problem. Let us know if the situation changes. We congratulate Mr Rygh on winning the "Diesel Power" award!
My first computer was a Sinclair ZX81. Turns out Rupert Goodwins over at El Reg was one of the pioneers behind the ZX Spectrum 128 and has written an article about it: The New ROM Antics - building the ZX Spectrum 128 [theregister.com]
The footnote is spot on. All the cool kids know this:
I also learned that writing system software for a paged memory map and no MMU is as much fun as root canal work via nostril. Don't ask.
Added a Secrets section to the Xmas Demos that have them. Questions were asked about the 2020 version. They're now answered.
Re-encoded the Edgehog video on YouTube in true 60 fps. Dunno what happened to it. Probably an issue with the reasonably priced USB video recorder. Might look into it, in case more live recordings are needed.
Update: The USB recorder dumps a raw H.264 stream, as expected. The software used to record and generate the original video is total crapola. Replacing the software asap. Might be snakes involved.
Happy new year! It's been a fun 2023 that ended with the launch of the Xmas Demo 2023. Slightly more polished than usual, and with source code that should compile on multiple platforms again. We're pretty happy with it.
We released a
10 page summary
of our wildly popular book in February. This led to some press
coverage in Norway. It was hilarious then; it's hilarious now. Google-translated versions of some of
the articles are available on the page for your amusement.
I finally got around to tying up some loose ends from the book with the articles A Fast Image Scaler for ARM Neon in May and Edgehog in June. Is it fast? Yes. Is it readable? Yes. Is it C and intrinsics? Duh.
Stay tuned for more awesomely great stuff in 2024! (May be considered regular stuff in some regions)
This article is published under the following license: Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
Short summary:
You may copy and redistribute the material in any medium or format for any purpose, even commercially.
You must give appropriate credit, provide a link to the license, and indicate if changes were made.
If you remix, transform, or build upon the material, you may not distribute the modified material.
Item: DUH. Artist: Secretlondon. License: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Item: NVidia Jetson Nano. Artist: Sparkfun Electronics. License: Attribution 2.0 Generic (CC BY 2.0)
Item: MasterSeka v1.71. Artist: Unknown. License: Unknown
Item: Ostrich. Artist: Suffrage Atelier. License: Attribution 3.0 Unported (CC BY 3.0)
Item: Poorly made parodies of the kode24.no and digi.no logos. "Artist": Me.
Item: Coal Power Plant. Artist: Adrem68. License: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Item: ZX Spectrum 128. Artist: Bill Bertram. License: Attribution-Share Alike 2.5 Generic (CC BY-SA 2.5)
Item: Newspaper from Paperboy (1986 C64 game). License: Screenshot via MobyGames