Projects In Progress

  • tomsmith 

This is a collection of the bits I’m currently working on. They are a mix of tools, Cows, Optical Illusions with text, Camera works, and audio experiements. With most of them source code is easily available. Other half-finished related projects are also available at and of course on my Instagram page.



Mondrian Fragments – or Watmap.js, getting the average colour and brightness of chopped up pieces of an image. I already have code that “makes things out of other things”. Here is a former UK MP made from pigs’ ears, but the process is slow and I want to make this so that it does it on-the-fly, perhaps from scraped newspaper images.

Blackout Poetry Generator

The Helpful Text Editor

Throws suggestions at you whilst you type. Not sure if these are suggestions or distractions but I like the effect. Try typing with it. This sort of tool makes you realise the endless possibilities that present themselves as soon as you start writing anything. Even a shopping list.

The Blackout Poem Maker

This takes some text and turns them into pseudo-physical objects with the Matter.js library. Although not working at the moment. I want to create a text editor that puts words, like blocks on screen based on text input. Then clicking any of the words will make them disappear, creating a reductive means of creating your own poem from someone else’s text.

Zine Machine

This is tool for someone to draw some simple doodles, that organised and rotated so that it can be printed off on an A4 sheet, and carefully folded to create a simple zine.

This is working towards a vaguely activist approach, creating cool zines that can be dropped into public places.

Markov and Illusion Texts

I’m attempting to make text that “won’t sit still” similar to Akiyoshi Kitaoka’s work here based on recent experiences. I haven’t quite got it working yet, but when it works, the text really slides around. I am having to create code that “lays out text” in quite a sophisticated way, so that I can know whether a word will fit into an upcoming space, and if not, then move down onto the next line. Having wanted since forever to complete a line of Kruger knock-offs, I really want to get this working and see where it leads.

I want this to be good enough that I can focus on what the text says, and then have a bespoke rendering engine to make them for me.

Finally got the optical illusion to wobble, well, for me anyway…

Kruger-esque Text works – Just sized text

Audio Soundscapes

Music Of The Trees (Latest)

This is going to be a mobile app soundscape that alters as you walk around the University of York campus as the trees species you are closest to changes.

Mars (The God Of War) Keyboard

Display and play sections of an audio file. I am aiming to take random audio data, such as Boris waffling on, and turn it into “a beat” or a drum track, or morse, or another form of encoding data. Something, still recognisable is presented as something else, vaguely recognisable.

And the BoJo keyboard:

Sentence to beat/visualisation

Audio TSNE

Onsets, or similar sounds, found and clustered by similarity. These audio fragments are created with audioTSNE python files. Using AI of sorts to maybe make the instruments for a soundFont. So far I haven’t managed to get this so that the samples are long enough… and “play” like a bizarre piano.


The Stupid Cursor

A huge cursor and a small screen. This is based on one of the students’ work on the Anti-Rom project which to this day still haunts me as a minimalist masterpiece. An honour to work with them an Andy C.

Dying Cursor

Frogger Goes To Tiannamen

The Road Home

Adding depth maps to photographs to animate them. This is related to the optical illusions above. I made a series of visceral images from a video I made from an ambulance window (of trees, not guts and stuff) and want to be able to make them subtly breathe. This is a start.

Painting Apps

Bacterial Drawings

I love the idea of creating something that is both a drawing, and recognisable as such, but that it has a “life of its own” and goes on to develop, or degrade, or grow in ways you couldn’t have achieved with draughtsmanship.

Simple Drawing Apps

Ink painter

And also an Almost Sparkler shader-based drawing app.

Simple Red Blue Painting (with Firebase)


With creepy bugs – again a painting that “comes to life”.


Just painting in my particular red and blue.

Rotating Canvas Painting app

A creative coding trope, of “drawing with text” and concrete poetry yet still worth exploring. Here I’ve drawn Baloo with the lyrics of King of the Swingers, and created a simple interface so you can add your own choice. The point being that once you have the trope and ability to do this sort of thing, what will you draw? What text will you use as your pigment? That for me is where the real fun is.

Random Stuff

Screen Capture Node project – As with most Node projects they aren’t running but are just here to remind me that I’ve figured this stuff out and could use these abilities as and when I need to, and to remind myself that I either need to learn how to use the Glitch or Heroku hosting services.

Video Effects – Serious.js is a powerful collection of GLSL-based video effects that I may be able to integrate into a project for added budget va-va-voom!

Shark – Get Mirror’s Images and Mask Node project – This project grabs newspaper images and automatically processes them.


Tree Shapes – roses (above) – simply playing with textual analysis to generate shapes – using random data and masks to create images Circle packing.


Betula Anaglyph


Dot Dash Morse

Wish Star

Forgive Them Morse



– animation on top of a YouTube video

Boris Says…

The Boris is is an example of fitting text to a box size like this … which is my attempt to auto-Krugerize text. Oh and it highlights just some of the dangerous bile this idiot spouts.


Simple Waves WebGL Waves

Pavement Wave – video masking example

Cows and Sheep

Horizontal Glitching Cow

Really Glitching Cow


Swirly Cows

Concentric Cow

Slitscan Sheep

Sheep Slitscan SRl2S_2To Vertical and Horizontal slitscan.

Slitscan Sheep Carpet Sheep slit-scan to carpet. and another

Webcam: Displacement Cows – Beasts of the Fields

Circular Masks

and cows

Negative Elephants Negative elephants slow fade example. Or here and


-simple fading image example and text. I made the images using RunwayML tool. And the same with the ChimpElephants

The Golden Section


Medusa’s Selfie and Spark Shader Example

A simple example of integrating a GLSL shader.


Here is DANGER! with added wobble

Face Lightning

Angry Mob(s)

Image used as a texture in a 3D world.

3D Angry Plane Mob: and distribution (needs work)

To Do: Webcam Live NEWS

This Machine Makes Fascists

An example of finding a pixel colour and sprouting a tree on it, radially, which ends looking very viceral. Wobbly blob.