place devoted to the imagination. There are various types of imaginaria, centers largely devoted to stimulating and cultivating the imagination, towards scientific, artistic, commercial, recreational, or spiritual ends.

Ongoing projects

a perfect day for banana hacking

Get root on Nokia 8110 4G and free it with GerdaOS


Part 1: Emergent art

Synch.Live is an art experience designed to mobilize our hard-wired human instinct to cooperate


Part 2: First prototype

Building an LED headset with WS2801 and Raspberry Pi


Part 3: Real-Time Clock

We add a real time clock module to the headset prototype, and implement precisely timed blinking behaviour on two headsets


Part 4: Deploying the Flock

we build 10 LED headsets for and use Ansible to configure the hardware, install the necessary software, and run tests


Part 5: In Search of Lost Time

We use Network Time Protocol and chronyd to synchronise our 10 Raspberry Pi Zero W wearables to blink in sync


Part 6: Filming and tracking

We set up a Raspberry Pi 4 with a Raspberry Pi High Quality camera to film the Synch.Live players and track their motion with OpenCV.


Drive a timelapse with a Raspberry Pi and gphoto2

I ran a 7-day timelapse, every five minutes, to capture the growth of a new leaf of my Monstera plant, using a Raspberry Pi 3 and the gphoto2 library to drive my Sony A7S, darktable to export them, and ffmpeg to animate them.

Is Google down?

When all your eggs are in the Google basket

Thank Google it's not friday

Hascell: Cellular automata in Haskell

Part 1: Wolfram's Wonderful World

I wrote a beautiful but naive Haskell implementation of Wolfram's elementary cellular automata (ECA) in 30 lines. It can generate the evolution of all 256 rules from a default starting configuration and (slowly) save them to PNG images.

Hascell: Cellular automata in Haskell

Part 2: Conway's Comonadic Conundrum

I wrote a more efficient Haskell implementation of Wolfram's elementary cellular automata using Comonadic Arrays. I also extended it to 2D worlds and played with Conway's game of life.


An open-source digital picture frame

We used an old screen and a Raspberry Pi to make an open-source digital picture frame that loops through awesome scenes in movies.


Is facebook really down?

We interrupt this programme to bring you... the collapse of society as we know it


privacy-oriented visual network monitoring

Motivated by privacy concerns and the lack of research on privacy on the Windows operating system, SnowWall is a networking tool designed to provide insights and control into the networking activity on a Windows-based system. SnowWall interacts with the operating system, intercepts every inbound and outbound connection, provides information on the connection’s state, lifetime, owning process, and most importantly, remote end point, such as geolocation and ownership information. SnowWall is a powerful tool designed to be user-friendly, which allows anyone to block unwanted connections with high-level firewall rules, such as blocking by country or by owning organization name.

SnowWall is built on top of the Windows Firewall, using low-level networking APIs to gather the required information and interacting with the firewall to block unwanted outbound connections. If you care about privacy, the layers of the internet, geolocation of internet hosts by IP or the internet topology, have a look at my thesis.

Currently SnowWall is aiming to become a distributed geolocation network which will be able to use the latest research in IP Geolocation and privacy preserving machine learning to provide the necessary information for implementing geographical security policies while anonymising private users.


information extraction

Built in a group project, it’s an information retrieval tool capable of analysis with statistical natural language processing techniques on large corpora. It uses latent semantic indexing, similar to many search engines, as well as latent Dirichlet allocation to extract topics from text. The tool is also able to extract relational information from text based on Noam Chomsky’s work on transformational grammars.

The tool has been trained on multiple corpora provided by the Stanford NLP team, the whole of English Wikipedia as well as the published papers repository of Imperial College. Furthermore, it supports information acquisition from multiple sources, including a general-purpose scraper written in Ruby, and a set of Python libraries that extract text from various formats such as .doc or .pdf.

Check it out on github.

Web & Design projects


During my employment with Netcraft, aside from the cyber-security work, I had the great opportunity to act as the graphics and web designer for the iconic rainbow brand.

Cinematographer portfolio

An uber-clean minimal Jekyll site to display cinematography work, be it stills, videos or show reels.

Rat's Tales

Did you know you’re never more than 10ft away from a rat, but more than 100ft away from a book? We want to rectify this by sellotaping books to rats.


A a group of artists and media professionals banded together to tell the most compelling stories.


The King’s Clinical Trials Unit (KCTU) offers a range of services to support researchers conducting non-commercial trials


An e-boutique dedicated to the empowering of women and the expression of their sexuality.