Every Frame a Painting

The filmmaker Tony Zhou is the author of an ongoing series of fascinating essays on analyzing film form: Every Frame a Painting. Covered in 5 to 10mn with a critical and passionate eye, his topics vary between directors, actors or single film scenes.

Every single one of them is worth watching, but my personal favorites are the study of the scene when Clarice Starling and Hannibal Lecter meet for the first time in The Silence of the Lambs, the analysis of Mickael Bay’s intense visual style, and the presentation (and praise) of Edgar Wright’s use of visuals to support comedy.

Those essays can be found on Youtube or Vimeo, with additional comments on tumblr and Facebook. Interestingly, they can also be supported (as in, financially) on Patreon.

Issues when rendering cones on a GPU

Eric Haines reminds in a blog article the problems that arise when rendering a cone, which are surprisingly tricky for such a seemingly simple task. A discussion on the topic also spawned on Twitter.

Illustration of texture mapping issues.

IOCCC2012: ASCII fluid dynamics

This IOCCC entry by Yusuke Endo is an ASCII fluid simulator using smoothed-particle hydrodynamics. Once compiled, the program takes an ASCII art on standard input, and shows the animated simulation on a 80×25 terminal.

Here is a demonstration of the program:

More schlieren photography

I previously mentioned a video showing how schlieren photography could be used to film the propagation of sound.

This video by the Harvard Natural Science Lecture Demonstrations, presents different experiments with schlieren photography. The complete description of the setup used, as well as the explanation of the effect, is also available on the associated web page.

Relativistic and non euclidean space rendering

The Portal series built a full game concept out of non euclidean spaces. Besides being great games, I think it is fascinating how true the tagline “Now you’re thinking with portals” is.

Here are two interesting experiments putting the person in different spaces than we are used to due to real world conditions. This video by Varun Ramesh demonstrates a non-euclidean ray tracer:

This other video by the MIT Game Lab demonstrates OpenRelativity, a Unity toolkit allowing simulation of navigation at relativistic speeds, used for the prototype game A Slower Speed of Light:

Update: Sylvain mentioned in comments that Carl Sagan explains those effects in the following video:

Statistics of the gaming hardware and software

If you need figures or maybe just an idea of what hardware and software the gaming public is using, it’s all out there, gathered and published by the big boys:

Quick change list overview script

A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It’s not a full blown code review, I only rapidly look at the most important parts of the code base, but I make a point of doing it every day. It allows me to stay informed and notice if something is wildly going in the wrong direction.

This is something I do every day, so it has to be quick and simple. I don’t want to have to open three windows, ctrl-select and right click all over the place. Especially since, like I said, it’s the morning, meaning my neurons are still not talking to each other much yet. I need something dead simple.

Here is a short command line shell script I wrote for doing just that: show me the changes since the previous working day. It uses date with some fancy options to figure weekdays, as well as colordiff and less for comfortable reading. Just launch it from the terminal, and there you have all the changes ready to be scrolled. Feel free to use it if you find it useful.

#!/bin/sh

argn=$#
if [ $argn -lt 1 ]
then
    echo "Usage: $0 <paths>"
    exit 1
fi

(
dateRequest="yesterday"
startDate=`date --date="$dateRequest" +"%F"`
startDay=`date --date="$dateRequest" +"%u"`

if [ $startDay -gt 5 ]
then
    dateRequest="last Friday"
    startDate=`date --date="$dateRequest" +"%F"`
    startDay=`date --date="$dateRequest" +"%u"`
fi

echo "Changes since $startDate:";echo;echo

for d in $@
do
    echo "$d"
    svn log -r{"$startDate"}:HEAD "$d"
    svn diff -r{"$startDate"}:HEAD "$d" -x --ignore-space-change | colordiff
done
) | less -R