I remember seeing this (or something like it) around the time I embarked on my project. Unfortunately, I needed a JS solution.
Another that has be pointed out to me since talking more about my project is http://vis.cs.ucdavis.edu/~tanahashi/storylines/
It's written in Python and looks like it produces really nice output, but I haven't had time to look at it in detail yet.
I came across an open source (MIT licensed) project to draw these kind of charts a few years ago: https://github.com/bhagany/nchart
(The algorithms used by nchart and d3-layout-narrative are not the same)