markhillman.info

Programmer / Developer — projects, experiments and write-ups from the last decade.

projects

Food Tracker

30/09/2026[01]

Food Tracker is a fully local Android food diary. It records what I ate at breakfast, lunch, dinner and as snacks, plus exercise, weight and BMI, and…

Home-built CNC Machine

11/09/2026[02]

A desktop CNC machine designed from scratch in FreeCAD and built from 2020 aluminium extrusion, MGN12H linear rails and lead screws, driven by GRBL…

Home Lab

11/04/2026[03]

A self-hosted platform on a handful of Raspberry Pis that gives me secure remote access to everything at home, browser-based desktops, a single login…

tiledle.com

14/06/2025[04]

tiledle.com is a Wordle-style word game that doesn't stick to five letters: each puzzle is a 4 to 8 letter word, with more attempts for longer words…

Blind Connect 4

15/10/2023[05]

A webcam points at a physical Connect 4 board and the program works out the state of the game: where every disc is, which colour it is, and whether…

Document to TTS

06/04/2023[06]

Turns a document into a set of spoken audio files, one per sentence, and gives you a small web console to upload documents and listen to the result…

Ennoea Architecture Viewer

13/03/2023[07]

Ennoea is a web tool for viewing application and infrastructure architectures in a 3D space. Applications are boxes, groups are translucent bounding…

The Mind for Tabletop Simulator

08/11/2020[08]

A Steam Workshop mod that scripts The Mind (Wolfgang Warsch, 2018 Spiel des Jahres nominee) in Tabletop Simulator. Players work as a team to play…

Animalchemists for Tabletop Simulator

09/05/2020[09]

Tabletop Simulator scripting for the card game Animalchemists, built on artemisww's original table upload. Players craft spells from ingredient…

Termpet

19/04/2020[10]

Termpet is a Tamagotchi for the terminal, written in ANSI C with ncurses. You hatch a pet from a form, its hunger, happiness and health tick away in…

2afraid2ask

27/11/2016[11]

2afraid2ask is a basic polling website which was made during the HackNotts Hackathon. The purpose of the site is to create small stupid questions…

Julia Set

01/08/2016[12]

This challenge was picked from the r/dailyprogrammer subreddit. The challenge is to generate Julia set fractals from the complex number plane and…

Password Creator

17/07/2016[13]

This is a basic password generator built using javaFX. The passwords are created using the character list specified in the TextArea, with a length…

JavaFX Custom Decoration

16/07/2016[14]

This project is a simple way of creating custom window decorations in JavaFX. The premise is that a BorderPane becomes the root node in an…

Excel University Marks Spreadsheet

16/06/2016[15]

This is a Microsoft Excel spreadsheet which I made in order to track my progress at university. So far, the spreadsheet can show you what you could…

Regex Highlighter/Syntax Highlighter

05/06/2016[16]

A javascript tool to highlight regex pattern matches using HTML and CSS. Whilst this tool is primarily aimed at programming languages syntax…

Notes App

13/05/2016[17]

A simple note taking app using googles material design philosophy. The premise for creating this app was to simply make a new note managing app which…

Blender Tree Generator

05/05/2016[18]

This project was created as part of a piece of coursework for a Virtual Worlds module. In this module we had to create a 3d scene using blender in…

SOM Color Sorter

19/03/2016[19]

The SOM Color Sorter is an example of Kohohen's Self-Organising Map. The SOM will alter its weights in order to group together similar inputs. Once…

Mastermind

12/02/2016[20]

The idea behind this small challenge was to create a mastermind game for a user to play. The original concept was to allow for just textual inputs,…

Evolutionary Algorithm

01/02/2016[21]

This Evolutionary Algorithm is a very simple one in which a string of characters will eventually be evolved towards, starting from a random string of…

Linked List

25/01/2016[22]

This was a challenge that I posed to myself after learning all about Linked Lists and how they might be implemented. The challenge was to create a…

Fallout Hacker Challenge

24/01/2016[23]

This challenge was picked from the r/dailyprogrammer subreddit. The challenge posed was to make a copy of the fallout hacking mini-game by pulling…

Website Designs

16/12/2015[24]

This project is a congregation of some of the designs and animations I was playing with when creating my Web Technologies coursework. The first one I…

LWJGL 3D Engine

12/12/2015[25]

LWJGL is an openGL variant for Java programming, this engine is designed to use LWJGL in order to open and display 3D models as well as other various…

C++ openGL Engine

04/10/2015[26]

A basic 3D engine to render a model into an openGL context. This engine is capable of reading both OBJ files as well as plain MODEL files (which only…

Japanese Dictionary Android App

19/07/2015[27]

This android app was made as a follow up from the Japanese Dictionary website. It was made so that I can access the Japanese site from anywhere and…

Japanese Dictionary

21/05/2015[28]

The Japanese dictionary was created so that I could track what words I had currently learnt when I was studying Japanese. It also turned out to be a…

Difficult Dungeons - Processing Game

07/05/2015[29]

Difficult Dungeons is a small yet difficult platformer game made in the Processing language. The aim of Difficult Dungeons is to just simply get to…

Tab Manager - Google Chrome Extension

04/05/2015[30]

Tab manager is an extension for the Google chrome browser, where a user can view all of the currently open tabs in a vertical list instead of a…

Encryption tools

14/03/2015[31]

This basic encryption package was made as a challenge to myself in the first year of studying at Keele University. At the time I was undertaking a…

MWindow Java Swing Skin

01/03/2015[32]

MWindow was a quick project that I started in the first semester of University. It was a way of getting reacquainted with Java and learning about the…

Costa Copta

04/05/2014[33]

Costa Copta is a small flappy bird clone game which was made for a friend as a gag gift. The premise of the game is to get as far as you can, by…

blogs

Making PCBs at Home

03/08/2026[01]

I have been making my own single-sided PCBs at home with dry film photoresist, a UV nail lamp and ferric chloride, and finishing them with immersion…

Monty Carlo Pi Approximation

03/06/2017[02]

To put it simply, PI is the ratio of a circles circumference to its diameter. We can find the irrational constant with the following calculation.…

Docker Introduction

26/03/2017[03]

Docker is a CI/CD tool that utilises containers for code deployment. Docker containers are instantiated from a composition of many docker images.…

Erlang vs Go: Ring Messages

31/10/2016[04]

This post is about exercise 3 in chapter 12 of the Programming Erlang - Software for a Concurrent World book. The premise of the exercise is to…

Concrete Mathematics: Chapter 2: Part 3

07/10/2016[05]

As the book covers the distributive and associative laws very well, this section will only focus on the commutative law. The book states that the sum…

Concrete Mathematics: Chapter 2: Part 2

29/09/2016[06]

As mentioned in the previous blog, I need to go over a few things that were mentioned but never explained. The first is the summation factor. This is…

Concrete Mathematics: Chapter 2: Part 1

07/09/2016[07]

Chapter 2 is about understanding the sigma notation for sums. The general delimited form looks as follows: $$\sum\limits_{k=1}^n{a_k}$$ However, the…

Concrete Mathematics: Chapter 1

04/09/2016[08]

This series of blog posts is dedicated to the Concrete Mathematics book by Graham, Knuth and Patashnik. I should note that I'm a beginner when it…