Metro info
useful toolsA page to show the next train times for the Tyne and Wear Metro. I made this because the official app is rubbish.
Christian Lawson-Perfect's homepage
A page to show the next train times for the Tyne and Wear Metro. I made this because the official app is rubbish.
A Mandelbrot fractal visualiser written using WebGL.
A template for drawing a fullscreen WebGL shader.
A clock which shows the unix epoch - the number of seconds since new year, 1970. There is a hand for each power of 10 seconds.
A clock with a hand for each power of two seconds.
Made to accompany a video about an integer sequence I came up with.
A tool I made to help think about how to make a customisable, accessible colour palette.
A tool which plots a list of colours on polar coordinates, to help spot similar colours.
An animation of text diffusing.
Another iteration in my ongoing exploration of the Unicode character set.
A tool to plot the votes for each Big Internet Math-Off match, over time
I'm working on writing display code for Numbas in Elm. This page shows a demo exam.
A simple spinner using the SVG animate tag
Shows how to add a TeX comand to MathJax 3, which parses its (non-TeX) input and returns TeX code to go be substituted for the macro.
I worked out how to put arbitrary HTML inside an Elm app, using a custom element
You'll be shown five numbers, between 100 and 999. Try to guess what order the numbers will go in, from smallest to biggest.
An editor for Eukleides diagrams.
I wanted to make a game where you have to think a bit, but not too much.
Shows how to embed a Numbas question in a page using an iframe tag
A calculator that uses JME expressions.
A button that takes a number and makes it more complicated by expanding it to a mathematical operation.
A puzzle invented by Alexandre Muñiz where you have to reverse a list of integers with a constrained set of moves.
Inspired by work of Elliot Vez on nudging a point along an implicitly-defined curve.
Letters are positioned on a binary tree. How quickly can you visit every letter?
A server for my code experiments, like glitch.com but under my own control.
An implementation of Quanta Magazine's Hyperjumps game. There was some discussion on the Talking Maths in Public group about how difficult to understand Quanta's presentation is.
I'd like to colour the days of the year by changing the hue parameter of an oklch colour with the day of the year. How do I have to shift the number so that summer is reddish and winter is blueish?
A JavaScript port of the Tiny Elvis application, created in 1994 for Windows 3.1 by Matthew T. Smith
A tool to help me, with limited colour vision, make accessible colour palettes.
Experimenting with how the curves joining points in a permutation chart are chosen.
A puzzle where you have to reverse the order of two lines of numbered baubles. Invented by Ed Kirkby.
A tool to make art consisting of text drawn over an image, avoiding a mask drawn by hand. Heavily inspired by Litographs, made for Christmas cards in 2023.
The beginnings of an idea about quickly cutting out sprites from a drawing. I used a photo of myself as a toddler as the test image.
A web component to embed a GeoGebra applet
A really simple tool which generates a QR code containing the given text.
For my toddler to bang away at the keyboard
Data for normalizing mathematical expressions written in Unicode
Smith, Myers, Kaplan and Goodman-Strauss's aperiodic monotile, in a variety of formats
A Django project for serving ActivityPub actors, designed for bot accounts
An extension for Numbas providing editable table or spreadsheet widgets
A Python script to convert the Twitter archive to something that can be published
An interactive page to make a magic square for your birthday. Made on request for James Grime
My talk at Big MathsJam 2022: five talks about trains
Generates a random tree by joining up points arranged around a circle
A tool to work out which browsers support a combination of features
Plays an OEIS sequence as a tune
A version of the Numbas lockdown app made for iOS
A Numbas extension providing a function to write out a number in words
A tool which runs make when a file in the current directory is changed.
A multiplayer mathematical Guess Who? game. Made for the 24 hour maths game show.
A locked-down browser for running Numbas exams in a controlled environment
A talk about Hamiltonian graphs, leading to the Herschel graph.
A binary clock entirely made in CSS
The game board for Maths Blockbuster, part of the 24 Hour Maths Game Show
A template to quickly whip up a page to calculate a formula
An animation of the shunting yard algorithm, with a little train
A generator for memes, based on the Graduate Texts in Mathematics series
A happy image occurred to me of the Befunge instruction pointer as a tractor, driving around a field.
Reduce a book to log(2) of its original length by alternately adding and removing 1/N of the words.
A WordPress plugin which provides a block to embed an interactive element. I made this to make it easier to include interactive thingies in posts on The Aperiodical.
Constructive real numbers, in JavaScript. Based on Hans-J. Boehm's Java implementation
Rectangle pals are randomly added or taken away, but after each step, all the rectangles have the same area.
An extension for Numbas which provides a code editor and the ability to evaluate code written in Python and R.
Find all the Draculas in a castle.
A command-line tool to synchronise a local folder with one in a Canvas LMS course
A game about dividing up an island
An experiment in making a calculator out of pieces that float around.
I've made another baby, so it's time for another talk about baby maths. Each Peach Pear Plum is a classic picture book for babies, with a beautifully simple rhyming scheme. But I've always wished it was more complete. Join me for an Eulerian tour through fantasy land!
An extension for Numbas which adds tools for generating and drawing random graphs.
Point your camera at something, nad this tells you what colour it is.
A thing for writing out line-by-line mathematical derivations more conveniently than just TeX allows
A collection of articles about the motivation and research behind the design of the Numbas system
A tool to convert a bank of QTI items to Numbas
My son was born last September. While he doesn’t hate sleep as much as his sister did, he still needs a bit of help to drop off. I’m not at all musically inclined, and I seem unable to …
A collaborative site collecting ambiguities, inconsistencies and other unpleasantness in the conventions of mathematical notation.
A game where you're shown a Unicode character and have to work out its name
A wordsearch generator, written in Elm
A starter Glitch.com project for things written in Elm.
Can you make a rule for laying out a pentagonal spiral, so it goes on forever?
A Jupyter notebook to accompany a post on The Aperiodical by Connor Krill. It shows that computers can find Mersenne primes much faster than Édouard Lucas (Connor got the wrong mathematician originally).
For my birthday I got an EleksDraw pen plotter. It’s a cheap and cheerful example of the form: a pair of orthogonal metal rods with a pen on the end, attached to electric motors. The idea is …
A web page to create a postcard, for my pen plotter to draw. The text can include mathematical notation, rendered using MathJax.
A tool to make 'Which One Doesn't Belong?' grids - a 2×2 square of images.
A page made to show how to embed a Numbas exam and extract the attempt data from it.
This is a web-based controller for my pen plotter, an EleksDraw.
Some bits to help record talks delivered in gather.town.
This Numbas extension adds functions to create links for students to download randomly-generated files.
Inspired by a question on math-fun.
I had a thought about using Blockly to construct proofs, which would be translated to Lean code for evaluation.
A bookmarklet to replace all the maths rendered as images on wordpress.com blogs with a better rendering using MathJax.
Earlier this year, when getting the train to work was still a thing for me, I noticed this statistic: 95% of the time escalators were working in the last four weeks.
A clock which shows a different permutation of a deck of cards each second, for the next 10^60 years
A different permutation of the cards every second.
A tool to create a page showing a video next to its transcript
A talk given at EAMS 2020. Presented both as a video and a series of slides with accompanying transcript.
A memory game that is bigger than you'll ever be able to deal with
A wobbly clock
This Moodle plugin provides a special report for Moodle's SCORM player, for use with Numbas exams.
If you wanted to give the same amount to everyone in a place, how much would each person get?
Some looping animations that I made.
A tool to play around with the order of operations
Last year I wrote about a 3D-printed puzzle I’d designed, called Seven Triples. At work we want to use this puzzle during an A-Level enrichment day, which means we need about twenty copies of…
A nice looping animation showing a triangular lattice morphing to a square grid
A nice looping animation showing a triangular lattice morphing to a square grid
Game/puzzle to do with shuffling boxes
Draws the Conant gasket, a fractal which ought to be better known.
I was trying to make something to visualise the flow of parts in a Numbas explore mode question.
Jim Fowler's TikZJax is incredible, but it needed an easy way of trying it out. So I made one.
Uses some word lists to come up with random fake place names and show them in street signs. Prompted by the thought that glitch's automatic project URLs would be cuter if they were place names.
At work we’ve got a 3D printer. In this series of posts I’ll share some of the designs I’ve made. There are seven kinds of shape. There are three copies of each shape. The pieces …
You can impose on Sudoku puzzles a physical system which works surprisingly well. It has phase transitions, and when you reduce the heat it settles into a solved state!
An arty thing inspired by the Herschel enneahedron.
Lots and lots and lots of overlapping rings
A puzzle from the maths-fun mailing list.
All the numbers have come to a party in fancy dress.
This is known in some places as the chaos game: if you repeatedly move halfway towards a randomly chosen vertex of an equilateral triangle, the positions you can end up together make the Sierpiński triangle. In this one, press the keys 1, 2 and 3 to move to each vertex.
About the Big Internet Math-Off, a competition I ran on The Aperiodical. Given at Talking Maths in Public.
Inspired by the 'paralellepiped incident' joke that some friends make. You reocrd an incident, and when you come back later it tells you how long since the last incident.
An RPN calculator with some nice features
An extension for Numbas which provides the Eukleides geometrical drawing language.
I've made a few mathsy t-shirt designs.
A Numbas extension providing a wrapper around the jStat library
This extension for Numbas adds the ability to generate diagrams using JSXGraph.
Following the paper "the paramagnetic and glass transitions in sudoku"
My 5-minute talk at the big MathsJam conference this weekend was about some stacking cups that my daughter is too young to appreciate. Here’s the really quick version, in just over a minute: …
A five-minute timer for MathsJam Gathering talks.
Calculates the straight-line distances from a source postcode to a list of other postcodes. Made in response to someone at a university asking how many of their students they could expect to travel in for a day event.
MathsJam Retweeter bot code
Each tile is a regular polygon with an even number of sides. The vertices are painted in alternating colours. The tiles are lined up so that the colours on every edge match.
An attempt to simulate people spontaneously forming a Venn diagram
A tool I made to help quickly categorise all the things in my Interesting Esoterica collection.
If you see me doing a maths thing, I’m probably wearing one of my maths t-shirts. I’ve got quite a few, but the one that reliably produces the much-sought-after look of total indifferen…
Every rational number can be written as the sum of unit fractions
A never-ending list of reciprocals
A never-ending list of factorisations of the natural numbers.
Shows a big timer counting down from 10 minutes.
A page showing a big HH:MM:SS time display and nothing else
Data and functions to help with calculations in chemistry
A tool to decide who goes first: everyone loads this on their phone, and presses the screen at the same time. The phones will all ping at different times. A knock-off of an app I saw someone use. Contains a QR code so everyone else can load it easily.
A Numbas extension providing functions to handle amounts with units
Randomly generate the names of statistically plausible people
Show a diagram to compute divisibility by any number
A competition to find The World's Most Interesting Mathematician. It's really a way of tricking people into telling me fun maths.
I think the gist of the game would be that in each round, everyone guesses a number, and at the end the closest guess to the average of everyone's guesses wins. It didn't really work.
Spinny squares
I can name your polynomial
Show every fraction in the range [0,1] on a polar plot, using the Calkin-Wilf sequence
Demonstrating the incredible fact that every integer can be written as the sum of 3 palindromes.
A thing to help Katie Steckles decode the secret message in her birthday card.
A never ending series of sums, where the answer from the last question is part of the next question.
I had an idea about a way of modelling intervals of time and doing arithmetic with them, prompted by the question of what 'one month from now' means. It didn't really work.
An interactive version of Puzzle 403 from Henry Ernest Dudeney's Amusements in Mathematics.
JavaScript library to convert AsciiMath to TeX
A circular version of the Lights Out puzzle. The aim of the game is to turn all of the lights off. When there is an evenly-spaced sequence of bulbs all turned off or all turned on, you may switch them all on or off by clicking two consecutive lights in the sequence.
A move in the classic Lights Out puzzle could be viewed as addition mod 2. This lets you set up a version of the puzzle where it's addition modulo something else.
An animated counter showing the Exploding Dots 1 → 10 machine.
A Numbas extension providing a collection of functions to generate random people, for use in word problems.
Way back at the end of last year I put out a call to mathematicians I know: hop on Skype and chat to me for a while about the work you’re doing at the moment. The first person to answer was D…
A collection of maths jokes and explanations of why they're funny.
A Numbas extension providing functions to work with linear algebra
Makes a printable template for a hexaflexagon containing a picture from your camera, or any image you upload. Made for outreach purposes at work.
The homepage for MathsJam. As of 2017, it's my design.
A thing to tot up everyone's ratings while watching Eurovision.
A tool to toot a description of an entry from a bibtex file
From the time when I needed it lots, and the main MathJax site didn't make it easy to find, I made this page with just the URL to load MathJax.
My wife’s school recently sent round a form with questions about “a day in the life” of people working in STEM careers, to show to their year 6 children. My job involves the M in …
A repository I used to develop the marking algorithms feature in Numbas.
A site to show off interactions in Jupyter notebooks, which were new at the time.
Alas, this doesn't work any more!
I tried out making a static blog very slightly before they were cool.
A spress site to create a static version of checkmyworking.com
A tool to convert a WordPress blog to a static site with Spress. Used on checkmyworking.com
Clever Hans was a famous horse who could answer maths questions. I made my own.
An attempt to produce grammars to describe informal mathematician, which is often ambiguous and inconsistent.
Format numbers and currency amounts with numbro.js
Interactive versions of the early Puzzlebomb puzzle sheets. Made in Elm.
An extension for Numbas which integrates GeoGebra materials
A thing to play the Chaos game on a triangle, making the Sierpiński triangle.
Because What3Words is stupid, I made this thing to convert lat/long coordinates into a sequence of four emoji.
I wondered how much work it would be to write a quiz system like Numbas, in Elm. The hardest part was thinking about randomising, because I didn't have a good understanding of how Elm's randomisation works.
A game based on Katie Steckles's binary nail-painting puzzle.
An interface to browse and edit a .bib file
This site hosts my list of interesting and unusual papers that I have collected over the years. Many of the references are kept here so I can easily find them again when I want to tell someone about the really interesting idea they contain; others are here only because they caught my eye when I first came across them.
An LTI tool provider to run Numbas exams
Warning: you could make a very strong argument I’ve thought far too much about something inconsequential. If that makes your stomach turn, look away now. This morning in the shower, I had an …
Inspired by Barry Dalgarno (ignore the nonsense)
A site for me to collect recipes I like. I tried doing something clever with natural language processing to highlight the measurements in the ingredients, but it doesn't work very well.
A talk about calculating π, given at Durham University for π day 2016. Contains lots of animations.
It's just a website that does one thing: tells you if a number is prime or not. It's been useful surprisingly often!
All you have to do is say whether each number is prime.
A clicker game where each click runs a program you've written. You get points for completing challenges, but each operation in your program costs points. It works OK, but I didn't have the motivation to finish it.
A series of videos about mathematical objects.
An interactive toy for the pancake-flipping problem, to go with a post by Katie Steckles on The Aperiodical. By repeatedly flipping the top part of a stack of pancakes, can you sort them by size?
Generates nice designs made of subdivided circle quadrants.
Because Blackboard's built-in SCORM player is so rubbish, I made this tool to give a better presentation of data from Numbas SCORM packages.
I found a load of corpuses of words. I made this to show the words that are in the intersections of several corpuses.
I never used real computer punchcards, so this is a simulation of how I think they worked. Click bits to turn them on or off, or in Lovelace mode you can't unpunch a hole! Shows the ASCII decoding of the card on the top.
A thing to do a coordinate transformation on an image. The example it loads with transforms from polar to cartesian coordinates.
Before I made the physical Clever Hans, I made this page which uses speech recognition and a formal grammar to answer arithmetic questions. Featuring the pixelated horse from my horsey game.
A little tool to help Cushing try out the birthday problem with cars - how many cars should you expect to drive past before having a 50% chance of seeing the same string of final 3 letters twice?
Exploiting a fact about projective planes
An extension for Numbas providing functions to help with optimisation problems
A state diagram of a complete tennis match
Inspired by the newspaper puzzle my wife's grandma tests me with each time I visit.
Write maths, see maths applied to JME expressions from Numbas.
A page that scrolls the digits of π endlessly, using Gosper's spigot algorithm.
Christian Perfect has turned into a one-man plug for the holes in Wolfram|Alpha.
An extension for Numbas which provides a "polynomial" data type and associated operations
Given a list of words, generates a wordsearch.
Christian investigates the possibility of a moving whale being able to warn you it’s coming.
Christian investigates the mystery of Hermes’ maximum parcel dimensions.
This Numbas extension adds stuff to work with linear codes.
This report provides buttons to download a spreadsheet of scores for a SCORM package. It differs from the basic report by giving the total score in raw marks and percentage, as well as scores for each SCORM objective (called "question").
Moodle availability condition plugin. Allows you to restrict access to course sections or activities by username.
Permutation groups extension for Numbas
Looks like some wiggly worms swirling round a vector field. Made with p5.js.
A JavaScript implementation of David Carlisle's tool to convert Content MathML to Presentation MathML. I made this as contract work for MathJax.
Alas, this doesn't work any more!
A couple of macros which let you use MathJax to render LaTeX in Twine stories
Draw fractals by writing a regular expression which matches parts of a subdivided square.
This morning Katie and I had a little discussion about house style on The Aperiodical. Mathematican Paul Taylor was listed as “Mathematician Paul Taylor” in the blurb for his featured p…
A game about putting flags in a field, made for James Grime
An alternative frontend for the Online Encyclopedia of Integer Sequences.
An implementation of the programming language I can't name
Alas, this doesn't work any more!
A little tool to visualise solutions to first order ODEs
A page to try out different MathJax configurations.
Alas, this doesn't work any more!
Binding handlers for knockout.js which typeset all LaTeX inside an element containing HTML, or just typeset some LaTeX on its own.
The Herschel graph has some pretty cool properties. Christian Perfect constructed the associated polyhedron, and it too has some cool properties!
Alas, this doesn't work any more!
Read out an integer sequence, like the Little Professor calculator used to read out sums.
My friend David Cushing and I used to review integer sequences for fun.
Christian was asked to find some art to decorate the walls of the university maths department he works in. Here’s what he found.
The little bits of code I write to explore ideas.
A template to create slides with deck.js, MathJax, and the unicode Computer Modern fonts
A talk about the stuff I was looking at in my aborted PhD.
Alas, this doesn't work any more!
A bookmarklet to render LaTeX by adding MathJax to pages that don't have it.
Conway's Game of Life, but it doesn't all happen at once
A talk about zero-knowledge protocols, given at Newcastle's postgraduate forum.
I compiled the Computer Modern fonts into a format that can be used on the web.
Alas, this doesn't work any more!
Which countries are just failing to win the most? Shows a table of all countries who have won at least one gold (to exclude the milquetoast nations for whom second place is an achievement), sorted by the proportion of their medals which are not gold.
A simple page for rendering LaTeX at any size, using MathJax.
Alas, this doesn't work any more!
A WordPress plugin to add the Write maths, see maths thing to the editor. Doesn't work with the block editor.
A javascript server log analyser
The blog I run with Peter Rowlett and Katie Steckles.
A talk about how to use MathJax, from when it was new.
About the 'Princess in a castle' puzzle.
An interactive version of the Princess in a Castle puzzle
An investigation of what happens if you make the Sieve of Eratosthenes randomly.
This is a sporadic series of posts where I collect links to interesting or unusual maths things.
A talk about some physical mathematical objects, given at Newcastle's postgraduate forum.
A cross between tic-tac-toe and Reversi, apparently.
Asteroids, played on the projective plane or the Klein bottle.
I wanted to make interactive demonstrations of some codes and ciphers. I only got as far as doing the Caesar Cipher.
Tells you when you are next a prime number of days old.
A Textile convertor in Javascript, because no good one already existed.
Code written in the Monkey language.
Alas, this doesn't work any more!
A jQuery plugin to give an instant preview of LaTeX in editing areas.
Stuff produced during the PhD I gave up on. I was supposed to be looking at computability of products of groups.
A talk about Turing completeness, given at Newcastle's postgraduate forum.
checkmyworking.com began as place to put notes about my PhD work, before I abandoned it. I also used to post about maths things, before I started The Aperiodical. Now (in 2022), my plan is to use this site to post bits and bobs about the techy things I'm doing, for the sake of anyone else who might encounter the same problems I do.
I'd just read Candide, I was full of big ideas, I thought I'd make a game about all of that. I didn't get far.
A nonsense story
Some rubbish about exams?
A series of cartoons