is the website of Martin O'Leary

(I also have a Twitter account, a GitHub account and a Patreon)

You can buy some of my physical work (drawings, prints) from my shop

Here are some things I have done:

Daily Sketches

Generated images, 2017-2019

Since 2017 I've been doing daily "sketches" - small pieces of code which generate a single image, usually pretty abstract. I'm collecting them on a dedicated Twitter account.

I wrote up some notes on the first thirty sketches, and I wrote a short piece about doing daily sketches for the SEEDS zine.


Ink on paper, cyanotype prints, 2018-2019

Based on the framework of my brutal.exe bot, I produced a series of plotter drawings and cyanotype prints.

Some of these pictures are for sale in my shop.

Domain Name Pricing Game

Web-based game, 2019

Based on a tweet by Holly Gramazio, I made a silly game about guessing the value of domain names which are being squatted.

The game was weirdly popular and was covered by Rock Paper Shotgun and PC Gamer, among others.

New Minstrelsy of the Scottish Border

Generated text, 2018

A procedural reconstitution of Sir Walter Scott's Minstrelsy of the Scottish Border.

Using a variety of techniques, including recurrent neural networks, expansion grammars using Tracery, backtracking constraint-satisfaction algorithms, and a US Navy research project into the pronunciation of English, we made some new slightly bawdy Scots folk songs. These are being published by The Common Guild and Book Works as part of the Dialecty series, edited by Maria Fusco.

Chapbooks are available to buy direct from the publisher.

This work was a collaboration with Harry Josephine Giles.

Here And Now

Installation, 2018

I helped Dan Hett and Simon Bowen with this piece, a digital projection installation which combined 3D scans of museum objects with data and narratives about environmental change. The piece was exhibited at the Great North Museum: Hancock as part of the Great Exhibition of the North.

There is also an online version of the piece.


Installation, 2018

A data-driven augmented reality fortune-telling experience, centered around bees.

This work was created during the N18 artist development programme, as part of the Great Exhibition of the North.

Mythic Maps

Twitter bot, 2017

For research, I gathered a collection of about eight hundred maps from fantasy novels (and a few science fiction). Rather than let them languish, I made a Twitter bot which posts them once an hour.


Twitter bot, 2016-2017

A companion piece, of sorts, to Uncharted Atlas. Here, I'm generating city maps, using a variation on the algorithms in this paper by Chen et al.

I started this project in March 2016, shortly after releasing Uncharted Atlas. I was never very happy with it, so it languished unreleased for a long time. Looking back now, I can't really see what I thought was wrong with it. The code is absolutely horrendous though.

There are pen and ink drawings generated based on this project for sale in my shop.


Twitter bot, 2016-2017

I played around with moody renderings of fractal architectural forms, using a CPU-based path tracer that I wrote in Julia. The Monte Carlo sampling used by the path tracer produces a grainy texture, reminiscent of black and white photography. It's rare to find something in computer graphics where the inherent artifacts of the medium have such a natural feel.

This was largely based on the writings of Íñigo Quílez.


Programming language, 2016

An implementation of the Logo programming language, based around spherical geometry. Logo is traditionally used with a turtle, which lives on a Euclidean plane. I decided to play around with a different kind of geometry. This was heavily inspired by reading Seymour Papert's Mindstorms and Glen van Brummelen's Heavenly Mathematics in short succession.

Uncharted Atlas

Twitter bot, 2016

An adaptation of my 2015 NaNoGenMo entry The Deserts of the West as a Twitter bot.

This is probably a purer version of the concept; the NaNoGenMo version is a long text with these maps embedded. Here, the maps can be primary, which much better reflects the amount of work involved.

I wrote up some interactive notes on how the language creation and map generation work in this bot. These were quite popular, and got coverage in National Geographic and Wired, among others.

There are some extremely large prints of these maps available in my shop.


Twitter bot, 2015-2016

You know when you get a song stuck in your head? In June 2015 I had the Gaston song from Disney's Beauty and the Beast stuck in my head for about a week. To exorcise it, I made this bot, which generates random versions of the chorus.

I revisited this project, and it now produces sung video clips, using Festival's singing mode. This is one of my most popular bots.


Twitter bot, 2016

I tried glitching up some flags, by running a Markov Chain-like algorithm over SVG versions of national flags, as taken from Wikipedia. It turns out that the SVG files on Wikipedia are actually at very different scales, so this ended up a little weird.


Twitter/Tumblr bot, 2016

Animated GIFs in-"spired" by Spirograph. Hypnotic and soothing. Made to destress over a long weekend.

Also posts to a Tumblr blog.

The New Space Opera

Twitter bot, 2016

Plotlines from SF novels in the Iain M Banks/Alistair Reynolds mould.

Emoji Atlas

Twitter bot, 2016

An experiment with the codebase behind @unchartedatlas and The Deserts of the West. Uses the same terrain generation algorithms, but filters them through the lens of emoji.

It turns out that there are some features which have a lot of emoji choices (trees, fish, buildings) and some which are a bit lacking (sand, rocks, rivers).


Twitter bot, 2016

I trained a neural network (Andrej Karphathy's char-rnn) on the Oxford English Dictionary and asked it to hallucinate new definitions. I was mostly impressed that it managed to deduce the rules of English pronunciation.

Make USA Bot Again

Twitter bot, 2016

Generates lawn signs for fictional US presidential candidates. This was partly a response to the 2016 US presidential election (it was mostly made on the day of the Iowa Caucus) and partly an excuse to try out the SVG functionality in CheapBotsDoneQuick.

Feeling Old Bot

Twitter bot, 2016

Tells you when "significant" events are equidistant from the present. The bot is based on a hand-written list of (mostly pop-cultural) events. A low-volume, low-profile bot which occasionally throws out a gem.

Episode VIII

Twitter bot, 2016

Posts titles for imaginary Star Wars movies. A first experiment with Kate Compton's Tracery via CheapBotsDoneQuick.

A Twitmas Carol

Twitter bot, 2015

Inspired by @corcra's @CRASH__N__BURN, this bot tweeted out the text of Charles Dickens' A Christmas Carol over the month of December 2015. I'll probably run it again in future years.

Cassini Bot

Twitter bot, 2015

Images of Saturn and its moons, from the Cassini orbiter.

This forms a triad with Landsat Bot and HiRISE Bot, tweeting in unison every hour, showing views of three planetary systems.


Twitter bot, 2015

Taking the Landsat Bot concept to the next planet over.

The popular conception of Mars is of a uniform red desert. I wanted to challenge that a bit by showing the variety of landscapes on the planet, some with earthly analogues, and some without.

The Deserts of the West

Generated text/maps, 2015

An entry in NaNoGenMo 2015.

A traveller, passing into the vast metropolis of Munsontulso, may find hairy teptemekket, the national animal of Tutpotpulu. Somewhat closer to the centre of the city, a traveller will begin to hear the clanging of the bastion clock. Eventually the bouquet of kekutpomnupun bushes fills the wind, and one has undoubtedly arrived.

Mostly interesting for the map generation process, which was intended to produce the kind of maps found in generic fantasy novels.

Vocabulary Mashup

Generated text, 2015

A sort-of-entry in NaNoGenMo 2015.

First came ten horses carrying swords; these were all planted like the three angels, waxen and empty, with their hands and feet at the roots: next the ten prisoners; these were overlaid all over with pearls, and walked two and two, as the horses did. After these came the royal daughters; there were ten of them, and the little lords came walking merrily along head in head, in lovers: they were all overlaid with captains. Next came the strangers, mostly Nobles and Families, and among them God warned the Great Fire: it was offering in a drew weak kind, rising at everything that was said, and went by without taking her. Then led the Hezekiah of Captains, carrying the Son's honour on a fiery skirt thigh; and, last of all this pure abode, came THE SON AND KING OF CAPTAINS.

Takes two texts, and transplants the vocabulary from one to the other. For example, God's Thoughts In Nebuchadnezzar (Alice's Adventures In Wonderland/The King James Bible), and Blood and Cowardice (Pride and Prejudice/Treasure Island).

2 offbeat 2 tweet

Twitter bot, 2015

A simple joke bot, riffing off MC Hammer's 2 legit 2 quit.


Twitter bot, 2015

Dada limericks.


Chess engine, 2015

In the summer of 2015, I was seized with the desire to write a chess engine. The resulting program is good enough to beat me (which isn't hard), and outperforms some simple chess engines like TSCP and Sunfish. Unfortunately it's quite obvious from the code that I didn't know what I was doing when I started, and I abandoned the project rather than attempt the complete rewrite that was probably necessary.

That Show You Like

Twitter bot, 2015

A riff on the code behind The X-Friends. Combines synopses from a bunch of different TV shows. Not always very coherent.


Twitter bot, 2015

Applies sophisticated machine learning techniques to the problem of describing what happens on a comic book cover. Very bad at this task.

Unfortunately, the service I was using for image descriptions has gone offline, so this bot is not longer active. I may resurrect it at some point.

Landsat Bot

Twitter bot, 2015

Tweets images taken from NASA's Landsat 8 satellite, which images the Earth at roughly 30m resolution, on a 16-day repeat cycle. The images are chosen from those which contain land and have little or no cloud cover. Each tweet is annotated with the name of the place involved, taken from OpenStreetMap data. Sadly, because of some technical difficulties, the images are not true colour, but a false-colour composite. This is most obvious when looking at ice, which shows up as a vivid cyan.

I did a short interview with NASA about the bot.

This is one of my most popular bots.

The X-Friends

Twitter bot, 2015

My first Twitter bot! Inspired by Greg Borenstein's Uncanny X-Bot. It uses a Markov chain algorithm to generate episode summaries for a mashup of The X-Files and Friends, based on IMDB synopses.

Minecraft Antarctica

Minecraft map, 2015

Ever wanted to explore Antarctica from the comfort of your own computer? Ever felt that the real world is insufficiently cube-based? This is the answer.

This is a 1:1000 scale recreation of the entire Antarctic continent (and outlying islands) in Minecraft, based on the data from the Bedmap-2 project. The vertical scale has been exaggerated by a factor of 10.

The project got some nice press, including this piece in Wired UK.


Programming language, 2014

An interpreter for a roughly Scheme-like programming language.

Eurovision Forecasting

Mathematical model/website, 2012

Since 2012, I have been forecasting the Eurovision Song Contest using a Bayesian statistical model. This is an ongoing project.