Installation Instructions

Almost all of the art I produce is available under a free software or free culture license. For the avoidance of doubt, I believe that these licenses grant you sufficient rights to publicly display the work in a gallery, conference or other private or public setting.

This page contains guidance for installing various artworks. Given the rapid rate of technological change in the twenty-first century is provided without a guarantee that it will be accurate, useful or applicable when you read it.

Versions of works for display online can be found at . I cannot guarantee the availability of this site or the versions of the work on it.

Versions of works for downloading to cache locally can be found in Git repositories at . Note that many of these will still require network connections. Downloading them and running them from the filesystem or a local web server removes my website’s availability as a variable though.

Raspberry Pi Configuration

A Raspberry Pi 3B or later running Raspbian GNU/Linux is a good option for exhibiting web and web3-based work.

Here are some important configuration instructions to make sure everything looks good on-screen.

Disable Screensaver and Screen Blanking

Raspbian blacks out the screen after a few minutes without user input. This means that if there is an animation running on the screen but no-one is moving the mouse or pressing keys on the keyboard then the animation will disappear as Raspbian blanks the screen.

To avoid this, rather counter-intuitively, we must install the screensaver system only to disable it.

In a terminal window, type the following and input your password if requested:

sudo apt-get install xscreensaver

Once the command finishes, open the screensaver preferences. This is available via the menu at the top left of the desktop, or by typing the following in the terminal (untested):


Within the screensaver preferences, select Disable Screen Sleep . Then make sure the screensaver itself is also not enabled (it shouldn’t be in a new installation of Raspbian, but it’s good to double-check).

Test this setup by leaving the Raspberry Pi’s mouse and keyboard untouched for ten minutes. If the display does not blank during that time, it has worked.

Install Emoji and Symbol Fonts

Raspbian does not have the emojis or some symbols installed by default. To install it open a terminal window and type the following:

sudo apt-get install fonts-ancient-scripts fonts-symbola ttf-unifon

If you are running Raspbian Etch (10) or later, you can easily install full colour emoji with this command:

sudo apt-get install fonts-noto-color-emoji

Create an Autorun Script

This section assumes that we are using chromium:

sudo apt-get install chromium

Using the text editor, create a file named “” in the Desktop folder /home/pi/Desktop with the following content:

chromium --incognito --start-fullscreen FILEPATH

Where FILEPATH is the path to the file to display. If it is local this will be something like:


If it is being accessed over the network it will be something like (all on one line):

Make the script executable by typing this command in a terminal window:

chmod +x /home/pi/Desktop/

Check that the script works as expected by double clicking its icon on the Desktop. If it does, exit it by pressing Control-Q.

Then set it to run automatically at startup. Edit the LXDE window manager’s autostart file as root:

sudo nano /etc/xdg/lxsession/LXDE/autostart 

Add the following to the end of the file, then save the file:

@/bin/bash /home/pi/Desktop/

Restart the Raspberry Pi to check that this works.

Non-Raspberry Pi Notes

These notes are for if you are not using the Raspberry Pi-based setup described above.

Use a modern cross-platform web browser such as Chromium/Chrome or Firefox.The web browser must have JavaScript enabled.

Install as few plugins in the web browser as possible to avoid compatibility problems.

Set the work to be displayed as the default home page for the browser.

Set the browser to launch in full screen mode by default (see here for details – or search for “full screen browser” or “kiosk mode” for your chosen browser.).

Set the web browser to run automatically when the user logs in.

Set the user whose account the version of the web browser configured to display the work is under to log in automatically.

Make sure that the operating system is set not to sleep or lock the screen after a period of inactivity.

General Web Browser Notes

Take a local copy of the work and display that in the browser rather than using the version on my site. This will insure against network problems. You can fetch the work by pulling the Git repository containing the work. Note that some works will still require to be served via a local web server due to the browser’s security policy- this is easy enough to do on modern operating systems.

General Ethereum Work Notes

Follow the general notes on web browser works.

Works that use Ethereum must be displayed either in a browser using the “Metamask” plugin, in the “Mist” Ethereum browser, or in a web browser that can access an Ethereum node on port 8545 on the machine that the browser is running on.

Of these options using Metamask is by far the easiest.

Given the need to access the Ethereum network, all Ethereum works require an Internet connection to work.

Displaying Ethereum Works Using Metamask

See here for Metamask – .

Displaying Ethereum Work

To simply display the work, without allowing user to change the work’s blockchain state, just install Metamask.

To display the work and allow the user to change the work’s blockchain state, install Metamask and carefully record the twelve word seed and password for the account.

You will not need to tell anyone these details publicly even if they claim otherwise.

Make sure that Metamask is unlocked each day. You will need the password for the Metamask account for this, but you will not need to reveal it to anyone else (if they ask, do not tell them – they don’t need to know your credit card PIN either).

Displaying Ethereum Work For User Interaction

Fund the account with a small amount of Ether (five dollars at a time is more than enough) so that the work can pay to change its state.

Check the amount of Ether in the account each day and top it up if needed.

It is important to lock down the browser in “kiosk mode” to prevent users from loading pages over the network that will allow them to send all the Ether elsewhere.

Artworld Ethereum

See the general Ethereum work notes above.

Artworld Ethereum works displayed non-interactively look good on a large tablet or on a wall-mounted screen.

Artworld Ethereum works displayed for viewers/users to modify the blockchain state work well on desktop computers. Make sure you lock the computer down so that users cannot leave the work, see the general Ethereum work notes above for some guidance on this.

Blockchain Aesthetics

See the general web browser work notes above.

Blockchain Aesthetics does require an Internet connection but it does not require any special plug-ins.

It requires access to the API. If the API is down, or if it is changed in ways that the code cannot handle, the code will not work. You can test the API by following the instructions for testing Websocket connections here – . If the API is changed I may not be able to update the code to handle this within a given timeframe.

The code will fit itself to the size of the browser window it is being displayed in.

Blockchain Aesthetics works look good on large tablets or on large wall-mounted screens.


See the general web browser work notes above.

Facecoin does not require an Internet connection or any special plug-ins.

The code will fit itself to the size of the browser window it is being displayed in.

Facecoin looks good on a large tablet or on a large wall-mounted screen.