Web Apps

Many of my research projects have involved the development of a web application, either as part of a final deliverable or as a prototype for demonstrating the effectiveness of the technique to paper reviewers, conference delegates and the visualisation community as a whole.

Colourmap Hospital

Colourmap Hospital - a tool for perceptually optimising categorical colourmaps.
Colourmap Hospital – a tool for perceptually optimising categorical colourmaps.

Colourmap Hospital is free web-based tool for perceptually optimising categorical colourmaps. Categorical colourmaps are ubiquitous in visualisation applications, and their careful design is very important to enable a visualisation to faithfully represent data and for users to be able to easily distinguish between each pair of colours.

Colourmap Hospital allows for a colourmap to be optimised such that the perceptual distances pairs are increased, whilst still allowing for certain constraints to be placed such as maintaining particular hues for metaphoric mappings.

It was developed using D3.js, React, and the backend optimisation server was developed using Tornado and scipy.


SpermZoo: a playground for a very very unique multivariate glyph encoding.

This web application was developed to demonstrate the multivariate glyph introduced in our paper Glyph-Based Video Visualization for Semen Analysis (PDF). Developed in ClojureScript, it allows the user to modify the many parameters of the sperm cell to understand their encodings within the glyph, and additionally perform a comparison of the properties of sperm cells from different species.

The code is available on Github.


15cV: The 15cBOOKTRADE Visualisation Suite.

The 15cV visualisation tool was developed as part of the 15cBOOKTRADE project with Modern Languages at Oxford. The tool assists scholars in tracing the distribution and usage of incunabula (books printed in the 15th century) throughout Europe and beyond. It was developed using D3.js, React, and a Python-based backend utilising Tornado.

Complexity Plots

Complexity Plots
Complexity Plots: for Visualising Algorithmic Complexity.

An app designed to demonstrate our Complexity Plots method, presented at Eurovis 2013 to accompany our paper Complexity Plots. A Complexity Plot allows the user to observe the complexity of an algorithm through its various input sizes without resorting to the traditional means of plotting runtime verses input size and adjusting the y-axis to linear, logarithmic, and so on.

The application was written using Django for the back end, and was my first experience in writing a D3 application.