We Need To Talk About Operating Systems Or Kevin Or Something…

  • tomsmith 

Or rather we need to talk about “the way we operate”. So much more interesting.

In the 80s, Apple, who nicked a load of ideas from Xerox, and managed to take Xerox’s concepts and develop a product that people would, and could actually buy. They created The Macintosh and they changed the world.

Since then the world has changed, beyond recognition, and if we’re honest, operating systems haven’t kept up.

In a way, web sites took over the role of “the way we do things” — they filled in new gaps in new ways — and because web sites/apps are easier to make than “real” applications, we got an explosion of new possibilities, new tools, new ways of doing things. Amazon/Ebay/Uber etc.

These new ways weren’t merely interface improvements, like, if I drag this with the option key down, but instead, these new ways included entirely new arenas like, I can book myself into someone’s spare bedroom in a city I’ve never been to. This is/was such a monumental shift in the “way we do things” that developers haven’t kept up with it.

The thing is, even though people have frankly, cobbled together fantastic apps and services, sitting there, working away, almost unseen are a collection of fundamental components on which this all sits. An analogy might be that we have discoved pictures, but only know about primary colors.

The Basic Components

What we work in, day in day out, are certain components of a user interface, that we almost don’t see any more.

Things like the cursor, or “a text area” or “a button” or a “scroll bar”. These are all items invented in the 1960s by Doug Englebart et all at Xerox.

There you were thinking your app was “the latest thing”. If you watch the video, and for me it was a mystical experience, like meeting God, you will see, that not only were these basic components described in ancient history, back then, they were better. For example, when have you ever shared a screen with someone and you both have a cursor?

This video presentation inspires and fascinates me because they imagined a new world into existence. You are living in, and working with, the playing out of their imaginations.

But here’s the thing. The basic components that you see in the video have developed in fifty years, but in the main, they are the same.

But Here’s The Thing…

One of the problems with “basic components” or “the way that you do things” is that as soon as people learn how to do things, they don’t want to be hassled with another way to do things, even if the new way is demonstrably better. They would rather plough on, knowing deep in their hearts that they should evolve, but because of the need to “get stuff done” are nervous to risk a new approach.

And one of the problems with the tools is, that, when all you have is WordPress, a godawful tool, then you end up with lots of WordPress-ish content. I “wrote” this article in a fit of pique in Left, but needed to pubish it, and ended up here, in the land of “the way you do things. Dullsville.


Perl is a computing language that, if you were to make tea from steeped text files, and then drink it, what you threw up would be valid Perl code. TIMTOWTDI stands for “There is more than one way to do it”, an philosophical way of life.

Despite my Perl bashing, the Perl community has a point. There IS/ARE more than one way to do everything, and that includes different and vastly superior approaches on “the way we do anything”. As I said, the internet is proof of that. The internet is not MacOs/Windows/Linux. It is better, in parts.

Over the years, I have been exposed to various “new ways” and have run with them. Hypercard revealled a world of “Programming for the rest of us” and also how empowering coding could be. Prograph CPX, a visual programming tool, showed me what beautiful code should be, and to this day, I make errors that I couldn’t have in Prograph.

90% of making software is bugs.

There Are Other Ways

Over the years, seeing the failure of operating systems to evolve beyond their initial promise, all we ever really got was “more of the same”, and now web sites and services fail to deliver what we want and need in ways we can’t articulate because we are locked into what I’ve termed, “the basic components”.

When you have a limited palette, there are only certain images you can create. In computer terms, we are there. We are living, from a technology perspective, in a screen print world, rather than an oil painting or a photograph. Technology is a 10 colour world defined in the late 60s by a bunch of techno hippies.

I feel a duty to pass the projects that buck this conformist trend. They are shooting star projects for me, in that they shone brightly but faded away. I still not only remember them, but live by their light.

These projects, of course, don’t hold ALL the answers, but because they were novel, well thought out, and revealled in their brilliance what we are lacking right now.


If you don’t know Hypercard, it was given away free with all Macintoshes. It was a tool with which you could make software. And people did, they made tools, and lessons and information “stacks”. Hypercard was the world wide web but on CD-Rom/bulletin board.

You can browse a small sample of the plethora of Hypercard stacks, educational, games, tools that were made here

If you give people a space to CREATE, they do. Hypercard was beloved by artists and educators because they could, in my words, redefine what was possible, and make new works, interactions, and experiences.

It was killed by Steve Jobs when he returned to Apple because lots of Hypercard apps weren’t well designed, they didn’t meet the brand. But, THAT WAS THE POINT! If you can easily create an app that does what you want, then THAT is “a thing”. That is the goal.

So much of today’s work is about struggling to use systems, and approaches that are badly designed. A “good computer” is one where you make it work they way you want. A “good computer” is one where you say, I have this data, and these events, and I would like this to happen.

Currently, that landscape, of being in control of everything, is in the hands of programmers. You pay them to make a world that matches your expectations, or buy a product that gets close enough.

Hypercard was marketed as “Programming for the rest of us”, as the Mac was “The computer for the rest of us”. It got killed, but that goal is something still worth persuing, that the computer will actually deliver what you want, and not just give you something close enough that you eventually fudge into being what you originally wanter.


I don’t know where to start with this one. David Gelernter, who incidentally has his hand blown off, and blinded in one eye by the Unabomber, seems to me to be a very deep thinker, and the world simply didn’t get it. I know the feeling, but I lurk in shallower waters.

Gelernter devised the “idea” for an operating system that wasn’t based on files and folders, but instead is based on a time-based stream of what you are working on. So, stuff you have worked on, or accessed recently is handy, and other stuff is less so. I always thought of it as a left to right thing. I may be wrong, but instead of folders, and sub-folders all you have is left-to-right.

Attempts to make LifeStreams into a reality were made, and in many ways, it sounds a bit like the Slack were all used to (albeit vertically) or Twitter. But, part of the problem with LifeStreams, as a concept is that, to simply imagine it, to make a prototype, you have to work against our current paradigm (i,e folders and files). As a “concept”, it was hamstrung by the very “that’s not how it works”. In order to create Lifestreams, under the hood you would probably need to create lots of files and folder to store your data.

The paradigm shapes everything you attempt. A simple text field, needn’t be so. In a notebook I can write a word and then annotate it with a doodle.


One of the insanely gifted designers at Apple in the early day was Jef Raskin.

Jef looked at text editing, or rather, the text editing of the 80s on an Apple Mac (the very height of innovation) which as it happens, is almost exactly what we have today, as I said, things haven’t moved on, and he came up with an alternative way of doing things that was realised in a product called the Canon Cat.

In short, my simplistic take on his ideas were:
• A text document can be quickly navigated (LEAPING), interface is everything.
• There are no documents, there are just lumps to LEAP between
•  Documents can have data evaluated live, something similar to small bits of code, or spreadhseet formulas or calculations.

I may have misunderstood it, but how many times have you been writing and you want to “leap” to another doc to check something then type “profit this month()”, knowing that data will be live, or somesuch?


All of this leads me here to Left a minimalist text editor by the gods at @hundredrabbits. They make a generative music app called Orca that is trancendential meditation crossed with a spreadsheet.

The Left app doesn’t have LEAP features, doesn’t do “Lifestreams” but it is “just” a Javscript app.

Left interesting to me because :
  a. it is simple and nice
  b. the source code is editable

People have got so used to some very toxic ideas such as”
  a. The way things are is unchangable
  b. They can’t change the way things are
 When coding, I use Visual Studio, and I have lots of gripes about it, but for me the killer feature is that people write niche functionality, and I can install that and use it. It is one huge application, but I can add the things I need easily, such that I “feel” like I’m editing the app.
 I’m not of course, and to be honest, the Left code is readable, well written and lovely, but it’s not exactly where I would want to be. Not everyone has my ability to make a mess of some perfectly reasonable Javascript.
 In the 70s/80s, an environment called SmallTalk would run up, and you would not only create your own work, you would edit the environment itself. They were the same thing. As a concept it’s hard to get over. We have got used to a world in which there are “applications” written by corporations and very clever people, and there is “content”, or what we put into the applications we are given.
 It neededn’t be like this, or rather, it shouldn’t be like this. “Our content” is in part, an application. “Content” isn’t just what you can plop in a text box, even though that’s what they might limit you to, what it is is, this medium… digital whatever… it doesn’t have to fit in boxes, be a document, renain the same over time or be black text on white.
 I sometimes get the feeling that the world feels like it has solved “digital design” and we are now in a phase of “just getting it done”. But the truth is, the primitive tools we’ve been handed, the text box, and cursor and button aren’t up to the job.
Deep down you know this. You think, there has to be a better way. And the truth is, there is. It’s lurking in fringe tools and history. People twenty, thirty years ago had ideas just as good as yours, but didn’t have the frameworks, community and support to realise them that we have now.
The thing major missing in the next big digital revolution, which is “the way we do things” is you. Unless you are engaging with technology in a way that assumes you are in contol, can make your imaginings real, you are part of the problem.

The answer needs developers to create more expressive tools, rather than fixed products. We all need tools that adapt to us, not the the other way round.

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.

My Problem With Teaching To Code

  • tomsmith 

I often come across people who at some point, got the bug for coding (sorry) and signed up to LEARN HOW TO CODE, and then spent weeks learning Python. And all of them expressed a disappointment that it had been really difficult and at the end of the day it hadn’t been worth it.

The thing is, I kind of think it’s Python’s fault. Whilst I’m a massive fan of Python, and spent rougly 14 years where it was a primary tool, and the story went, back in the day that “Google was written in Python, you know”, it’s not a fun tool, it’s an astonishingly capable programming language.

Python is not the tool to teach coding

I have had lots of ridiculously positive feedback from teaching tools with which you can do fun things fast. I tried to write a game in PyGame once. That was a hard year.

For example, with (Livecode Community Edition) you can quickly create a multimedia adventure game and compile it to an .apk file for Android. Amazing!

With Thunkable, which uses Scratch code blocks, we create an app that immediately runs on the students’ phone that speaks whatever you type. Great fun!

With p5js within the hour we create ridiculously fun animations and visualisations, whilst student stealth-learn Javascript.

These are sorts of tools people should be learning when “learning to code”.

With each of them you learn the fundamentals of coding, variable, control structures, repeat loops, lists etc… BUT the results are completely immediate and fun!

There’s an interesting discussion about the whole area of “teaching to code” vs. “teaching to Adobe” which for me boils down to helping students to see the possibilities rather than only the outcomes and deliverables, or end product.

More later…

My Problem With Interactive Fiction

  • tomsmith 

I’m planning to teach a session on Twine soon. Draft here.

Don’t get me wrong, I’m a huge fan of hypertext, but when it comes into Interactive Fiction, I both love it (conceptually darling) but also, have these issues.

Presentation. The fonts, font size and screen layout are awful. They need to be Kindlized. Often just hard to read. Reading. I link to the Temple of NO because it was a breath of fresh air in this regard. It felt both subversive (of the genre) and stylish at the same time.

There is always the nagging feeling of “have you read it all?” or “How far through this am I?” because it breaks the physical contact of a book. I don’t like the loss of control of time but love the loss of control in narrative. It could end at any point

And whilst the uneccesary diversion is a fantastic thing in itself, a weird island of experience, for some reason, I feel like I’m not getting anywhere. Maybe that’s just something I need to get over?

Temple of No Spoiler alert… “Er, yeah…. psshh, pff, pff!”

There is a fear of losing one’s place or stare, and that feeling that you haven’t won somehow and the idiocy of “getting a different outcome” and therefore wanting or needing to play the game again to get a different outcome, or a better outcome. What’s that all about?

But then. I have a problem with fiction. It’s all made up you know.

When I watched Bandersnatch, to be honest I wasn’t in the mood. I didn’t like having to click all the time, when sometimes I want something to just wash over me. I stopped half way through, although where half way is moot, and watched that Ennio Morricone/Tarrantino film.

Then, all interactive narrative has to deal with the distractions of the internet. See Netflix. I wonder what Twine on a Kindle is like?

What I Like About Interactive Narrative

In the case of Temple of NO, it was the playing with form and the humour.

Authors make people DO things. The inverse of the clicking thing. I actually sang along with a song. I clapped. I’m not sure how much sentience and agency the media I am interacting with has. Can it hear me? Can it see me? Can it rifle through my internet history and send for help? I don’t want to give away any spoilers but this is an idea I want to play with myself.

With I really enjoyed what the author did. Go try it. I’ve always wanted to time travel and this must be what it is like.

I have always been a fan of dada and the disclocatative. I love Tristram Shandy, Monty Python, Q8, Vic Reeves Big Night Out. Personally, I am naturally distracted, distractable and passionate. I get lost in thought rabbit-worm-holes every second. Maybe this tendency makes interactive narrative games a challenge, not that they’re too weird, but they’re too close to home.

Despite being hyper since Ted Nelson’s Intertwingularity, the rise of indie games and interactive narrative is all new to me, and it’s clear I have a lot to learn.

So here goes.

Creativity is like Marmite

  • tomsmith 

Can You Teach Creativity? Of course you can’t, but let’s do it anyway.

The thing is, creativity is like Marmite, but not in the “you either love it or hate it way“. No, creativity is exactly like Marmite because it a byproduct of some other completely unrelated thing. In Marmite’s case, that thing is “beer” or the brewing industry. Marmite is like PostIt notes, which were the product of researchers at 3M trying to develop the world’s strongest glue and accidentally developed the weakest.

When it comes to creativity, it is a byproduct of doing and being.

By that I mean, if you be, then you are in a context. And if you do, something will come out.

Do-be-do-be-do… lalalala… do-be-do-be-do…. etc

Now, like the Marmite factory, they don’t just randomly select sludge and waste from the brewing industry, although to be fair, it might be said that that was how Marmite was invented, or is it discovered? And so it is with creativity. It helps if the raw material you feed into this over-reaching metaphor has a quality that will result in something worth spreading on toast, or indeed engaging with in any sense.

The being part, I feel, is important. And by this I mean that creativity, unlike Marmite, is really easy. You can start being creative and not stop quite easily, but I don’t recommend this as an approach, although it is fun. What being brings to the table is a context in which to do.

At this point I get nervous, because that sounds like I’m advocating an almost design ethic to creativity, in which the context provide the problem that you then solve with creativity. This isn’t what I mean at all, but there are elements of it in there. Having suffered, and although I say, suffer, I mean, enjoyed, lengthy periods of mania in which every stroke of an ultraviolet pen was “genius at work”, I don’t advocate this as a way of working, because whilst it might be true, it doesn’t sit well with that most evil of beasts “the real world”.

The real world couldn’t give a fuck, and probably rightly so, and so, a better way of fostering creativity, in my opinion is to give yourself over to certain ways of being, totally. Imagine being Kate Bush singing Wuthering Heights in a Marmite factory, but simultaneously foster an inner critic who has an eye on your rent and the fact that you’ve had a verbal warning about not wearing a hair net.

Here we are with a paradox about what creativity even is, because creativity is only creative after the fact, after something has been created that was “any good”. If something is valued, then the creative process is worth it, but, the cliché of the starving artist isn’t a cliché for nothing.

If your creations aren’t valued, welcome to club. It doesn’t mean they aren’t creative, it’s just being “ahead of your time”, or born without the right connections isn’t a career because, like medieval times, the “winners” are the ones that write the history, or have it written about them. If I had a pound for every thrid rate artist who found a gallery, and a market for their work, I’d be a millionairre. Assuming “art” is the creativity game, which it really, really, isn’t, it does seem that creativity is, as well a being hard to define, is definitely scewed, not just in the art world towards almost random accolades for very average work.

Or do I need to get over myself?

So rather than fretting about what creativity is, or how you foster it, you simply have to do. And by do, I mean you don’t do creativity, that is a nonsense. You simply engage with something as you. And it really doesn’t matter what that is, and it will probably be more successful if you find something that really resonates with you as person, and if the thing you are doing also has that tingle about it.

It will also help if you engage with lots of things, with lots of people. An openness is essential, and whilst you can’t do everything (take a moment to accept that), you will benefit if you are open. Being open often involves feeling out of your depth and a whole heap of “Why the fuck am I doing this?”. Trust me, it will be time well spent.

I still haven’t got to the good bit. The DO part.

That is easy in many ways. You may have lots of avenues you want to walk down, but over the centuries many creatives have outlined both reasons for an means to develop creativity, and the results I’m afraid are GUARANTEED.

The only part of selling the notion that “creativity is easy” that I feel uncomfortable about is that it analygous to a gym membership, which is guaranteed to make you buffer, but you’ve got to turn up and put the work in. And by putting the work in I might mean, taking things out.

“Putting the work in” in creative terms is easy to qualitify:

  • You are interested
  • You make stuff
  • You are curious
  • You collect stuff
  • You prune your collection
  • You reflect on all of this

And there are shed loads of beautiful creativity methodologies, including:

  • Automatic Writing
  • Blackout Poetry
  • Montaging
  • The Cut-up Method
  • Introducing Randomness – like Eno’s Oblique Strategies
  • Creative Prompts

All of the above are great fun, look ’em up and give them a whirl. Even better, why not try them and add your own twist.

I love using both physical real world creativity techniques. Why not get a pack of Story Cubes and write something?

… but I also like to use digital tools to get things started, adding a “bit of random” like…

Generate N Words: 

Generate Three Nouns:

William S. Burroughs and David Bowie are both famed for using the Cut-Up method to help bring ideas to life.

Get a notepad, or a magazine and a pair of scissors, or again, use digital equivalents such as…

The Cut-up Machine

The N+7 Machine progressively mushes your text. Or maybe a text you’ve found.

Text Mixing Desk

Not that I fully understand them, but Markov Chains are an oft used programming algorithm to generate text from a body, or corpus of text.

Whether you understand them or not, there are some interesting tools that may help get started writing such as…

Poetry Generators

Automatically generated lyrics based on a database of all lyrics

Character Generators

You can even use Artificial Intelligence to help you with your writing. Using the tool below, you start writing and AI finishes your sentence or paragraph. Can you adapt to what it creates?

Write With AI Transformer

I used Transformer to start writing, and although quirky it did help me send this story about a snowflake in directions I wouldn’t have considered.

Once upon a time there was a tree in a forest who felt all alone.

Or did he? He wasn't sure what he felt. 
It was either that h
e was there, and he didn't know it,  or he wasn't and didn't care about it. He couldn't make up his mind. partly because he didn't know if it was his to make up, or not.

Whilst he was busy pondering these questions a passing snowflake landed on one of his branches.

"Hey get out of the way, I'm try to fall over here!" shouted the little snowflake.

"What?" said the tree, not sure of where the sound had come from.

"I'm trying to get down to the snow down there" said the snowflake, pointing towards the fresh snowfall below.

A little confused the tree said "I don't want to be part of your conspiracy theory. What has any of this got to do with me?"  The tree had been watching too many YouTube videos for his own good, he thought. Or did he? He wasn't sure.

 "Yes I understand." the snowflake grumbled.... "I know you didn't mean it, but I'm stuck here and can you shake your branch a bit?"  The tree shook his head, then thinking better of it, shook his branches too, tutting under his breath.

 And the snowflake thought back to a dream , of him being a little water droplet and how at times all the other water droplets would become him and he'd become a bigger drip. They'd be him and he'd be them. Although thinking about it, some were probably girls. Why hadn't he realised this at the time he wondered.

"Thanks old fella" shouted the snowflake as he tumbled free, realising that probably wasn't the best term to have used in that situation. 

The tree huffed and dozens more snowflakes flurried out from his needles. 

When the snowflake landed,  he squished into all the other snowflakes and felt very uncomfortable. 
"Can you budge up a bit?" he asked the snowflake next to him.
"What? And risk damaging my crystalline uniqueness? Sod off!" 
And so, our snowflake, grunted and literally tried to "get with the drift" of things, as fellow flakes started landing on his head.

All around him all he could hear was "Ooof!" sounds, and snowflakes felt other snowflakes landing on them.

It all was a bit of let down and not what he'd expected. Not at all.   He'd probably have had a better staying up the cloud he thought, I mean, up there did used to long for the quiet life and get "cloud sick" but at least he had a bit of space to himself.

The snowflake found himself getting angrier and angrier about everything.

OK. It’s not great, but I only started writing anything so I could get a screenshot of something being written in the tool. I’m not a writer, as you can see, but the way it sort of cajoles in a rubbish way, really helps. The effect is hard to describe.

Educational p5js projects

  • tomsmith 

Just some bits and bobs that are useful for learning p5js, or bits that I might use later.

Image Classification and web cam. What is the web cam seeing?

Colour-tracking of video file.

Video pixel editing:

SLOGANS images generator

Text to Lightning

Markov Chat App:

Strobes Expanding squares. Contrasting colours.


Geo YouTube

An example of displaying YouTube videos, in the background, and fired off by the user’s location (mobile) – unfinished.

Drag-n-drop Image Example (that works) .

The p5js documented examples don’t work.


Example of zooming faded images.

Tory Leadership

This is an example of tinting and fading between images. It also shows how to load a .csv file and read its data/images.

Blending between images, loading CSV of image URLs.

Chicken Kaleidoscope

An example of “chopping shapes” from images and then rotating them. Video shape kaleidoscope.

And Devil Woman is an example of taking the web-cam and creating a cheesy Cliff Richard effect.

Eyes and Teeth Webcam

Using face recognition and a web camera.

Audio Experiments

Simple FFT Visualisation

Working with audio and audio visualisations

Working with audio synthesis.

Animated Gifs

This is just an example of how to use one. Using an Animated Gif in p5js requires using a library. See the index.html file to see how to add it. You can do it by creating a DOM image, but that’s another story… I need lots of these sorts of examples for when/if I work with kids. I have just discovered the p5.Play.js library that makes game creation and interaction ridiculously easy. I need to explore that more.


A very simple automatic synth sounds… Sounds like Eno. Part of the problem I have with audio synthesis, Tone.js and the like is that a lot of the time I don’t know how to make a “nice sound”. Why aren’t there tools that let me shape the sound, and then copy-and-paste the code.

Black and white cow shaped noise – slow but maybe useful to make Friesians or maps later.

Example Falling Boxes – not finished/started.

More Audio Experiments

Simple Tone.js experiment? Working? Nope

Simple Tone example – not there…

Very simple Tone.js another

Solfa Cipher
Turns text into mid, music and other things, configurable.

SOUNDFONTS Nice + standard p5js!

All Trees

Something -Basic Firebase projects

Text to speech – working?

Falling letter blocks

Slogans with Firebase – Markov experimentation taking commercial and poltical slogans scraped from Wikipedia and generating new ones.

Camera as dots How to draw a spiral.

Nexus UI



Simple Posenet Example

Text To Points

Disunion Jack