# You're reading: cp’s mathem-o-blog

### My robot draws TeX

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 that I can connect it to my computer and the computer can direct it to draw things. It arrived as a kit, so first of all I had to descend from the astral plane of pure thought and – shudder – screw the bits together.

The #plottertwitter hashtag is a constant source of inspiration, where people around the world share pictures of the amazing, beautiful things they’ve made their pen plotters draw, often with the AxiDraw plotter, which differs from mine in that nobody seems to have had to attach 200g of batteries as ballast to the pen holder to overcome friction on the knacky sliding rail.

The basic idea of a pen plotter is that the pen holder is free to move in the plane, constrained by the lengths of the two axes. If there’s a pen in the holder and paper underneath as it moves, then a drawing happens. The pen holder can move up and down, to lift the pen away from the paper so it can move without drawing.

The instructions you can give the plotter are quite straightforward: move in a straight line to these coordinates; move the pen up or down; move back to the ‘home’ position. It’s a lot like the turtle drawing robot I played with in primary school.

You can either directly write a list of instructions for the plotter, or write some code that takes a vector image and produces a corresponding set of instructions. SVG is a widely-used vector graphics format, so it’s a common choice of input for pen plotters.

So I was playing around with my pen plotter, getting it to draw space-filling curves and geometrical diagrams, when I decided that I should get it to draw text. It turns out that there are a few ready-made “fonts” for plotters that give paths to write letters with strokes instead of filling in shapes, so that was nice and easy.

But then I wanted to write mathematical notation, and I remembered: MathJax has an SVG output! It didn’t take long to write a bit of JavaScript that takes some maths written in LaTeX and gets MathJax to produce the corresponding SVG code and insert it into the picture, ready for my plotter to draw.

The remaining problem is that MathJax’s fonts produces shapes that should be filled in, which is easy on a computer screen, but the pen plotter just draws their outlines. That’s not much of a problem, though: I just had to trace over the symbols in Inkscape, and replace each instance of a MathJax symbol with my single-stroke traced version.

There are squillions of symbols in the TeX fonts, and I didn’t want to have to trace them all before I could draw anything, so I decided to do it bit-by-bit. I added a step to my MathJax → SVG tool to capture any symbols in the output that hadn’t been traced yet and produce an SVG file I could load into Inkscape. After tracing over those symbols, my code absorbed them into its library of replacements. I wasn’t too careful to be precise with my traced symbols – I wanted it to look as much like handwriting as I could manage.

The fantastic thing about MathJax is that it does a lot of work to match its output with the size of the surrounding plain text, so the results looked really good straight away.

I decided to draw some mathematical postcards to send to my maths pals. On one side I drew a picture, and on the other side I wrote a passage of text about it, often with plenty of mathematical notation.

I’m particularly pleased with this formula for the length of a toilet roll, drawn from the paper How long is my toilet roll? – a simple exercise in mathematical modelling by Peter R. Johnston:

I’ve put all of my plotter-related code online. If you just want to make your own postcard, here’s a tool you can use to write a postcard with mathematical TeX.

### Some different ways of multiplying numbers, vectors and matrices

Here’s a quick video I recorded at the end of my work day, inspired by this tweet.

### The enormous difficulty of telling the truth about escalators with statistics

Earlier this year, when getting the train to work was still a thing for me, I noticed this statistic:

### The permutation clock

I recently had an idea: map the Unix time (seconds since 1st January 1970) to shufflings of a deck of cards. Each second would correspond to a different ordering of the 52 cards.

I wanted to think about how mind-bogglingly huge $52!$ is: $52!$ seconds is more than $2 \times 10^{60}$ years. So even if you spent your entire life watching this thing, you’d leave this world having seen basically none of the possible permutations. Happily, Wikipedia reckons that the heat death of the universe will happen in about $10^{100}$ years, so there’s plenty of time for me to enact my plan.

### Where could you (or your rich pal) give everyone $1 million? Recently someone on Twitter, and then two people on US cable news, said that Michael Bloomberg could have used the \$500 million he spent on his presidential campaign to give everyone in the USA \$1 million. This caused quite a fuss. In short, someone divided 500 by 327, saw that the answer was bigger than 1 and the units were “millions”, and concluded that the money could instead have been distributed to give everyone \$1 million.

That’s an easy mistake to make for someone writing a tweet, but the kind of error that should have made someone think “does that make sense?” before planning a segment on TV news about it.

It’s raised a couple of interesting questions, though:

• If that money was shared between every American citizen, how much would each one get?
• If Michael Bloomberg wanted to give \$1 million to everyone in a smaller area, where could he choose? I realised that all the data I need is freely available on the internet, so I made a website to do the calculations for you: make-it-rain-bloomberg.glitch.me It asks you how much money you’ve got, then for every power of 10 dollars, it tells you where in the USA you could give every resident that much. To give you an idea of how far the net worths of people like Michael Bloomberg could go, it’s got a list of shortcuts for billionaires. Appropriately, I got that data from Bloomberg’s own website. Bloomberg himself was mysteriously missing from the list, so I got his net worth from Google and added it in myself. The most unexpected thing for me was seeing how much money these people would have left over after giving everyone in the USA \$100. They’d still be enormously, unimaginably rich!

I’ll describe a few of the fiddly details of the implementation now. At first the “how much money have you got?” input was a text field, but I realised it’d be much better to have a slider that you can swing from \$1 all the way up to \$1 trillion. It’s a logarithmic scale, so powers of 10 are equally spaced.

I got data on the populations of US cities and states from data.census.gov.

Working out which amounts and places to show you wasn’t completely straightforward. I thought it’d be easiest to fix the amounts given away to a power of 10 per person, and to find places where the population meant that the amount left over would be as small as possible. To do that, my code works through the list of places in ascending order of population, and stops at the last place whose population is big enough to give everyone at least the target amount.

I enjoyed making this tool, and I hope it helps somebody get a better feel for what these big numbers mean.

### SAMDOB – mess up the order of operations

While I’m on strike, I’m catching up on stuff I’ve made but never posted about here.

At the Talking Maths in Public conference last August, I was talking with Katie Steckles and Kevin Houston about the order of operations. I think that another one of those ambiguously-written sums had gone round Twitter again. I said it would be good to have a tool where you can write an expression, then change the order of operations and see what happens.

So, on the way home, I wrote one! I’ve called it SAMDOB, which is an anagram of BODMAS.

Please have a play with it. I can imagine that this could be useful to people teaching the order of operations in real life. Let me know if you have any suggestions for improvements.

### A paper version of the Seven Triples puzzle

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 it. I 3D-printed four copies over the course of a couple of weeks, in amongst other jobs, and I don’t have the patience to do any more. So, I’ve made a 2D version that we can print and cut out much more quickly.