All Projects

Below is a list of several projects I have made public over the years.

I do not write posts for every project I work on. Often there's not much to say about them. Some are 'work-in-progress'. It's also not a complete list of everything I've done. It's just the stuff that I think is good enough to share. 😄

Art

Digital Kaleidoscopes

Printing Martin Behaim's Globe

A close up of a globe made of paper.

Kayak Trails

Plotter art of GPS trails.

A close-up view of a pen drawing white ink on black paper.

Reverse Engineering the LEGO World Map

A mosaic made of LEGO 1-by-1 tiles, representing a map of Denmark.

'The Good Place' Map

A close-up view of an illustrated map.

Geometri

Daily exercise in creating abstract art between 2008 and 2009.

A collage of several square art-pieces.

Games

𝐒𝐄𝐓𝐙𝐄𝐍

A multiplayer collaborative canvas – Projected on a globe!

An abstract illustration of triangles forming a random but colourful mosaic.

Minecraft Map Generator

Project from 2011 to convert real elevation/terrain data into Minecraft maps.

Mapping Software

proj-vis

Web-app to quickly visualize map projections.

An abstract illustration showing a world map that is warped.

Photogrammetry on Commercial Flights

An abstract illustration showing a plane flying over a landmark.

Regex-Coordinates

Web-app to parse coordinate data using regular-expressions.

The logo for Regex-Coordinates.

CSV-Reproject

A command line tool to reproject a CSV from one CRS to another.

Map-Engraver

Tool for creating vector maps in the style of engraved maps.

A close-up view of a map showing several buildings and roads.

Graphics & Typography Software

Docker-Autotrace

Run 'Autotrace', the bitmap-to-vector-graphics converter, in Docker.

SVG-Attributes-to-Style

An SVGO plugin that converts presentation attributes to style properties.

Creating fonts from SVGs – with automation! 🤖

SVG-Stroke-to-Path

Shell script to convert strokes in an SVG to paths using Inkscape's CLI.

An abstract illustration of a looped line, with another line inside of it.

Pangocffi & Pangocairocffi

Python libraries for using Pango and Cairo with CFFI bindings.

Useful for rendering internationalised text in the Cairo rendering engine.

An abstract illustration with three words; Python, Παν語, القاهرة. The glyphs of each letter are outlined.

Software Development Tools

Count-Todo

Shell script to count the number of TODO, FIXME, and BUG comments in a git repository.

JUnit4-Parameterized-Tests-Generator

Script to generate parameterized JUnit4 tests for Test Runners that do not support parameterized tests.

History & Stories

The Cyclorama: Virtual Reality in the 1800s

Mapping the Scottish Colony 'New Caledonia'

Edinburgh's Unbuilt Canals

How China distorts their maps

The Royal Trees in The Meadows

NCN Millennium Mileposts

Other

i18n Thoughts

Collection of notes and thoughts on internationalisation (i18n) and localisation (l10n).

Wikimedia-File-History

Shell script that creates an animated GIF of a file's revisions hosted by Wikimedia Commons.

Spoiler

Web-app to encode and decode spoilers in chat threads.

An illustration of a 'warning' symbol on top of a speech bubble.

Image-Compare

Web-app for easily comparing two or more images.

Advent of Code

My solutions for Advent­Of­Code.com throughout the years.

Map-Tile-Compare

Web-app for comparing a tile layer with a background satellite layer.

NCN Milepost Openstreetmap Checker

A website to check National Cycle Network mileposts with OpenStreetMap data.

Allegro

An electron app that submits worklogs to Tempo.io in batches.

A screenshot of the Allegro application.

Node-Tempo-Client

A Node.js wrapper for the Tempo.io REST API.