Painting With Light 1.7.0

Painting With Light 1.7.0 version released.

It’s been a while but I’ve updated my video mapping software Painting With Light to 1.7.0. It’s mainly a bug fix release that generally improves the usability of the software – trying to address all those little annoying bugs that popped up during workshops!

The biggest change is that the Windows version is now 64-bit (for the first time) and the macOS version now requires 10.13+ (High Sierra).

Work has been progressing towards a 2.0 release that involves a rewrite of the rendering system. I’m not currently working on video mapping projects (although I have plans) so it’s a bit slow going. If you have any particular features you’d like to see included then feel free to add a comment below.

Version 1.7.0 of Painting With Light Demo for Windows (Windows 10)
Released: 20-Oct-2019

Version 1.7.0 of Painting With Light Demo for macOS (10.13+)
Released: 20-Oct-2019

Happy New Year 2019

It is with grave embarrassment that I start the new year with a blogging cliche: sorry I haven’t posted in a while but I’ve been rather busy.

Not that this isn’t true, of course. The latter half of 2018 was a whirlwind of projects that started in July with the delivery of Flow State, a major commission for the Francis Crick Institute in London that has 28 video monitors playing synchronised video art using Raspberry Pi’s and Fugio’s network time engine.

Flow State at The Francis Crick Institute by Alex May
Photo by Fiona Hanson

Flow State took 18 months to make. After the launch in July, I had one day off and then things got really busy. I spent August doing a EMAP residency at LABoral in Spain with Anna Dumitriu creating an underwater robot called ArchaeaBot. It contains a Raspberry Pi Zero and a PiBorg motor shield, and has an evolving machine learning system running on it to control the motors.

As soon as we had a working prototype, we took it to Linz in Austria to be part of the main exhibition at Ars Electonica, the biggest media arts festival in the world that was celebrating it’s 40th anniversary.

ArchaeaBot at Ars Electronica 2018
Photo by Vanessa Graf

A week later we were back in Spain, exhibiting it at LABoral.

Trips to Hull, Athens, Philadelphia, and Amsterdam followed, then driving to Bourges in France to exhibit at Bandits-Marge, then driving up to Utrecht in The Netherlands to exhibit at IMPAKT in their “A World Without Us” exhibition, which is on until 3rd February.

Finally, just to top the year off, I went to Guangzhou in China for a week just before Christmas.

This has all been a rather excellent opportunity to work on my Algorithmic Photography project that uses Fugio to process 5 minute videos into stunning digital timelapses. You can find the latest images on my Instagram, and buy prints at

Murmaration of Starlings over Brighton Marina – Algorithmic Photograph by Alex May

But this isn’t to say that there hasn’t been software developments going on in between.

Fugio has received some periodic updates including a new Italian translation by MassiminoilTrace, which are available in the weekly builds on the download page.

It’s been useful to take a step back and look at how it has evolved. There are areas where it’s very strong – it’s great at quickly piecing together new ideas, and other areas where some work needs to be done. It’s tempting to create nodes for everything, but some areas of programming are far better suited to being scripted, which has led to an unsteady balance of functionality between nodes and Lua scripting support. For instance, if you wanted to draw a range of different dynamic items that are changing over time, scripting is going to be far more suitable than the more rigid structure of nodes. Where nodes come into their own is for rapidly putting structure into place and enforcing separation of components, which is generally a good thing for reuse and understanding. With this in mind, I’ll be shifting things around, retiring some nodes and adding more Lua libraries.

I’m also in the process of adding some new features that should make editing, sharing, and organising patches a lot faster and easier. I also want to bring back the timeline feature that disappeared a while back as I wasn’t happy enough with the interface.

Painting With Light is getting an upgrade to v2.0 with a rewritten rendering engine and support for Linux – even Raspberry Pi.

Freeframe support is currently on hold as there are changes coming that will be incompatible with the existing standard. Please note that if you choose to purchase the 64-bit FFGL plugins, they won’t work with future Resolume 6 updates.

And that’s about it for this catch-up. I’m off to Utrecht this month and Tashkent in Uzbekistan in February, and will endeavour to keep the updates rolling,

Fugio Friday: 8th June 2018

Happy Fugio Friday!

In the last couple of weeks I was at the Eden Project in Cornwall for the opening of their new Invisible Worlds exhibition, where I have a Fugio based interactive installation that’s been running happily for three years now. I gave a talk about my art practice and Fugio, and took this algorithmic photography of the Infinity Blue installation.

Additionally, I’ve been mainly working on finishing off my new art installation for the Francis Crick Institute in London, but I managed to work on a couple of notable fixes for our Early Adopters.

Continue reading “Fugio Friday: 8th June 2018”

Fugio Friday: v3.0.0

Happy Fugio Friday!

Finally, after months of work we have reached a new release: v3.0.0

Download Fugio 3.0.0

If you’ve been following the development builds over the first few months of this year, you’ll know there’s been a lot of changes going on, which are all rounded up in this release.

The most recent changes over the couple of weeks:


  • Added a functional WebSocketServer for connecting Fugio with external services – more on this to come soon…
  • Added Core/Decimate
  • Added Math/BitsToInts
  • First full snapcraft release


  • All math logic nodes now take arrays of booleans (instead of bitarray)
  • Compiles with FFMPEG 4.0
  • macOS build now use Qt 5.10.1


  • There was a new crash caused when linking pasted nodes

Have a good weekend!

Fugio Friday: 13th April 2018

Happy Fugio Friday!

This week I’ve been catching up with some issues reported by our ever diligent users!

  • NEW: Drag new nodes onto existing links to insert them
  • UPDATED: toString() for Vector3 and Integer
  • UPDATED: Added some missing dependencies for Linux
  • FIXED: dlib/FaceFeatures
  • FIXED: Firmata now saves and restores pin types
  • FIXED: Crash in Firmata
  • FIXED: Pasting nodes in group resets the view to the root node
  • FIXED: FFMPEG/ImageConvert wasn’t resizing properly
  • FIXED: OpenGL/ArrayToIndex
  • FIXED: ARToolKit examples

Download the updated binaries here.

Have a good weekend!

Fugio Friday: 6th April 2018

Happy Fugio Friday!

This week we have a new node for capturing raw audio data (currently mono only) and making it available as an array, which can then be used by many other nodes include Lua scripting (as we can see in this new example) or OpenGL shaders.

  • NEW: Audio To Array node
  • UPDATE: Added array support to Easy Shader 2D

Available for download now.

Have a good weekend!

Fugio Friday: 30th March 2018

Another small development update this week…

  • UPDATE: ImageLoader converts indexed images to RGBA
  • UPDATE: Lua Json parsing can get objects too
  • FIXED: Rewind in Media Processor

Am currently shifting the macOS compiling to a new dedicated computer which will increase the requirements for the macOS build to require El Capitan (10.11).

Keeping backwards compatibility in macOS is a complex task.  While Apple’s official stance is that later versions of the OS should be able to compile apps that work on earlier versions, the reality is that it is all too easy to slip up and compile binaries that aren’t compatible at all but there are no errors or warnings.

To preserve what little sanity I have left, I’m installing a Mac Mini with El Capitan and adding it to my build farm.  This should generate solid compatible binaries for at least another year.

While I’ve worked hard to support 10.9 and 10.10 over the years, it takes progressively more work so I have to draw the line somewhere so I can focus on features rather than the builds.

The code should remain backwards compatible, so if you need a 10.9 or 10.10 build, you will be able to compile it yourself.

Have a good (Easter) weekend…

Fugio Friday: 23rd March 2018

Happy Fugio Friday!

Just a small development update this week as I’m currently in Helsinki for the kick off meeting for the EMARE residency I’ll be doing at Laboral in Spain later this year.

  • NEW: Image Split – splits a multi-buffer image (such as YUV) into its individual buffers
  • NEW: Added Lua/Always Random example
  • UPDATED: OpenGL Buffer pin shows more info
  • FIXED: Oculus Rift OpenGL issue
  • FIXED: Video Capture camera selection
  • FIXED: ARToolKit Tracker and ParamLoad issues (thanks Michele)
  • FIXED: UTF-8 string handling in Lua and GUI/String (thanks b4zz4)

Have a good weekend!