A data visualisation for the UK government's Verify project, allowing exploration of Verify's demographic coverage using a dataset provided by the Office of National Statistics. There's a write up of the work on Verify's blog

A talk I gave at PyData-London 2015, demonstrating the data-viz toolchain outlined in my book and hopefully showing how easy it is these days to combine Python and Javascript for a full web data-viz stack.

Announcing my upcoming book for O'Reilly press. It will show how to craft a data-visualisation tool-chain using Python and Javascript. Python is fast becoming the go-to data-processing language and Javascript is now and for the foreseeable future the only first-class web-language, with huge libraries like D3 allowing you to leverage its increasing power.

A recent client wanted a way to filter a large dataset of objects while seeing any changes immediately reflected by data-selective charts. Using Angular directives for two-way data-binding and Bootstrap for placement and dimensions, a few lines of XHTML is all it takes to build a console.

Sometimes it's good to imagine something a little exotic and then try and realize it using the tools to hand. So here we have a simultaneous chess tournament featuring 54 random games from the great Kasparov vs Karpov series of the 80s and 90s. Using D3, THREE.js, CSS3D and a few helpers they are superimposed on a giant rotating cube because, why not?

Using the Kasparov-Karpov data-set, this visualisation shows relative occupation times for each square. The occupation times can be filtered by type of piece (knight, bishop etc.). Comparing games with Kasparov playing white with those of Karpov shows a clear difference, reflecting the different playing styles and strategies of the two.

This chart shows the findings of a recent commision into equality in Britain. It found that a small, self-perpetuating elite, attendees of the 'right' schools and universities (Eton, Oxbridge etc.) has disproportionate influence on Britain's levers of power. From senior judges to the editors of national newspapers, this group dictates our national discourse and locks out those not born to privilege.

Some thoughts on best-practice for building a D3-plugin, using a colorbar example. The aim is to limit boilerplate code, increasing resusability and a general ease-of-use. Very much a work-in-progress.

A rainy bank-holiday Monday was a good excuse to try and indulge my aesthetic whims. Something to overload the frontal cortex with colors and symmetries, something a little like a Gothic Rose Window in fact. Once one begins to get D3, rolling this kind of stuff together gets a lot easier and faster. I liked the effect so much I added the ability to change number of segments and number of triangular elements in each.

I needed a chess-viewer for a larger data-viz project I'm working on and D3 seemed like the perfect tool for the job. The viewer takes lists of moves (SAN format) and creates an animated play. It could be a nice base for something more full-featured. Once again I was impressed by how easy D3 makes this kind of project.

A D3 maps visualization of the change in the ratio of English house-prices to household incomes over the period 1997-2012. By warping the map of England to reflect the increase in this ratio and reciprocal decrease in households' house-buying power, we see the dramatic economic disempowerment of current and future English generations.

The estimable Paul Hayes and myself raced against the clock to provide a glossy new take on the art of glowstick voting. Using a decent webcam, Python's computer vision fu (SimpleCV channeling OpenCV), the wonders of web-socketry, courtesy of Flask and SocketIO, and some rather gorgeous Javascripted GPU-shader wizardy we were able to turn a bunch of vertical glowsticks into a vote (Huzzah!).

The phone in your pocket isn't just recording your position by satellite and wifi signal (and sending it on to who knows where?), it also has little accelerometers which monitor the way the phone moves. This visualization takes data from an academic study, showing that phone users can be distinguished by their unique walking 'signature'.

A recent job required a menu that lets one progressively filter a packet of row-column data, drilling down to items of interest. It was refreshing to use D3 outside of charting and it dealt with the necessary DOM manipulations with ease.

I used Python and D3, the Javascript visualization behemoth, to transform some old pages of row-columnar data provided by the UK Meteorological into an animated coloured map, showing hours of monthly sunshine, millimetres of rain and maximum temperature.

One of the very few great books to come out of Cybernetics, Cognitive Behavioural Studies, Neuroethology etc., is Valentino Braitenberg's Vehicles. Probably the best known vehicle is the light-loving photovore and the demo shown scratches a personal itch - what happens when a group of photovores, each carrying a light source, are let loose. Play around with the parameters on the left to alter the characteristics of the ensuing mayhem.

Craig Reynold's original Boids demonstrated how natural looking animal flocking and swarming could be produced by applying very simple rules to each 'animat', governing things like distance to neighbours, centre of mass of neighbouring animats, avoidence and convergence tendencies. This demo lets you play with the parameters while the boids fly around - changing the quality of the swarming.

At a recent hackathon I used my 3D force-directed-graph to try and understand the way in which Wikipedia has presented the 2007 Financial Crash, starting with the crash page and examining the network formed by outlinks

At a recent Brighton Digital Hackathon the topic was the Financial Crash 2007. I produced this animated D3 chart to show the extent to which LIBOR, the inter-bank lending rate, was manipulated by bankers, a multi-billion dollar fraud.

I built a little programmatic fireworks display for a talk I gave on THREE.js, my favourite WebGL Javascript library. Such mini-projects are a great way to pick up skills - getting the THREE.js skymap down proved a little tricky (hint: you need two cameras).