Al Green
Al Green's Brother
Home -- News -- Archive -- Source Code -- Videos -- LinkedIn -- About

Nils Liaaen Corneliusen

Author, Artist & Programmer

Latest News

25 November 2022: Images from our guest lecture at the University of Oslo
21 November 2022:
15 November 2022: Guest lecture announcement

Latest Publications

The Xmas Demo 2021 (23 Dec 2021, updated 7 March 2022)

The Xmas Demo 2021 for the NVidia Jetson AGX Xavier. Full source code available. It demonstrates Sjur's new 3D engine called V73D and has animated objects using inverse kinematics. And a bunch of recycled and optimized shaders and stuff, and some music too.

Real Programming (English version, 5 Apr 2021)

Ekte Programmering (Norwegian version, 9 Feb 2021)

A book about programming, programmers, programs, and pop culture. Co-authored with Sjur Julin. Tired of crap books promising to teach you the latest programming fad in 21 days? This one is the polar opposite! It contains a lot of real code written in real programming languages like C and assembler. A recurring theme is criticism of modern development methods, software management, languages, and compilers.

The Xmas Demo 2020 (23 Dec 2020, updated 3 March 2021)

The Xmas Demo 2020 is an updated version of the one from 2017. The source code from 2017 was revised to run on any graphics card and CPU. It still runs on the target NVidia Tegra X2 in 60 fps. Full source code available. Music and graphics by Sjur.

Dreamscape and Eclipse: The Final Cut (29 July 2019, updated 4 Jan 2020)

A 2019 remastering of the Triumph Amiga demos Dreamscape and Eclipse, released at The Gathering 1996 and 1997. We recovered the original video and music files from my Amiga, including some unused hi-res images. The music was remixed, the font was replaced, the video files were resampled, scaled to 1080p and denoised and retimed to the new music. It's low res, it's gritty, it's 1996 all over again, with a 2019 flair.

A Different Method for Image Transformations (9 March 2018, updated 26 July 2019)

Image transformations using separable filters can be implemented as a vertical pass followed by a horizontal pass. They usually differ in their implementation, and the horizontal one is slower. A new method is presented where the passes are almost similar by ordering and transposing data in a specific manner. This may be faster on architectures where the L1 cache is large enough to hold a temporary dataset of 8 lines. SSE2 and ARM NEON implementations are provided.

The Archive contains a complete list of publications.

Popular Publications

Integer Raytracing on Tilera TILE-Gx (5 June 2017)

A second attempt at raytracing on the Tilera TILE-Gx. The TILE-Gx has very limited floating-point support in hardware, so let's try using fixed point math instead. Unfortunately, calculating square roots is very time consuming. An alternative approach is explored where custom conversion routines and integer math does this quickly enough to render 40 spheres in 1080p60. Videos and source code included.

SRTP AES Optimization Revisited (27 July 2016)

In a 2010 article titled "SRTP AES Optimization" I presented a method to make SRTP AES run significantly quicker. Unfortunately, there were some caveats: Packet length had to be 4096 bytes or less and a multiple of 16, and the target CPU was expected to be big endian. Let's try to address these issues in a new and improved version that will run on any 32-bit CPU.

OpenSSL aes_core.c Replacement for Tilera TILE-Gx (24 Sep 2015)

Drop-in replacement for aes_core.c that's significantly faster. Includes a second look at how to do the last round in less than half the instructions.

MultiDoom - Doom for TILE-Gx CPUs (30 Dec 2009, updated 7 May 2014)

Port of Doom for the TILE-Gx mega-multicore CPU. Number of Dooms possible to run in parallel is only limited by your screen size. Custom TILE-Gx specific scalers, including 2x and 3x EPX.

Not Quite Publications

Ignorantus the Conqueror

Amiga-bladet Digital: Alle utgaver i PDF-format (1989-1992)

Leif "Internett en flopp" Osvolds samlede verker (1996-2005)

Triumph Amiga Demos and Source Code (1997)

Source Code and Schematics for PCTVNet HomePilot Set Top Box (1999)

TANDBERG Secrets (2010)

Ekte Programmering Norwegian flag
American flag Real Programming
Ignorantus AS