The original Xmas Demo 2017 was released 18 December 2017. Unfortunately, not all the effects would run in 60 fps. Presenting The Xmas Demo 2017 Remastered. It's running in 60 fps all the way on the NVidia Jetson TX2 Developer Kit. It's based on the same shader files that were released 8 January 2018. Should probably have made it in January, but I guess I'm lazy.
Most of the effects are based on shaders from ShaderToy. They are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Different licenses are noted where applicable:
I'm guessing the ShaderToy shaders were supposed to run on bigger GPUs than the TX2, and only optimized until their speed targets were met. But is it possible to squeeze out every last cycle, cut corners and do all kinds of radical changes to get them to run in 60 fps on the TX2? And glue it all together so it resembles a semi-useful demo? This is an attempt at doing just that.
Shader changes are documented in chapter 17 of the book Real Programming.
Music playback has been removed due to assorted issues. Still some files missing, like the font. Need to regenerate it. The code in stuff.c/stuff.h has been copied from various places on the internet. It's pretty standard stuff: OpenGL initialization code, shader loading, reading/writing jpg/bmp files.
Archive: xmasdemo_2017.zip (browse)
Music 1: Galactic Damages by Jingle Punks.
License: YouTube Audio Library says "You're free to use this song in any of your videos."
Website: I'm unable to link to the Audio Library or that specific song. Thanks, YouTube!
Music 2: Cephalopod by Kevin MacLeod.
License: CC BY 4.0
The secret message was not revealed in the book, but it was revealed later on the book details page. The text "SrDt 3454" appears in Torus Thingy. It's a reference to "The Great Ventilation and Telephone Riots of SRDT 3454" described in the awesomely awesome book "trilogy" The Hitchhiker's Guide to the Galaxy [wikipedia.org].
The loader part had to be removed due to glaring copyright issues. However, one frame of it got stuck in the video. Nobody knows why. It's displayed below.
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.