agI ye

Lua scripting support added to Fugio

Lua scripting inside Fugio

I’ve long been a fan of the Lua scripting language due its incredible speed and relative ease that it can be interfaced with a host application. In this screenshot we can see the new LuaNode that is reading a random number from an input pin, modifying that value and setting an output pin.

While this is a relatively pointless example considering the amazing range of things that could be achieved, it works very well and very quickly!

Scripting is an important feature of Fugio as not all stages of code translates well into nodes. For instance, performing simple maths on one or more values would result in having to use lots of nodes, to store values and apply each operation. With scripting we can pass values in, concisely manipulate these values, and output the values, all in one node.

I’ve implemented a basic but extensible way to pass other types of information to and from Lua, such as colours, vec3’s, etc, so there will be no need to split/join these datatypes into their basic components before passing them into/from the LuaNode.

2015

2016 will shortly start rolling around the globe, so I wanted to quickly get in a last minute summation of what’s happened in 2015 and an update on what’s to look forward to on this site in the new year.

Firstly, I want to thank all of you for reading and subscribing to this site, and for using and buying my software over the years.  I very much appreciate the support and feedback, which encourages me to find new ways to create useful tools and features that open up new creative possibilities.

Painting With Light has had quite a few new features added to it over the year, including audio playback support, a built-in video sequencer, new layer blending modes, more advanced mapping controls, and layer masking.

Over the year, I used Painting With Light to create art installations, including a live video mapping performance at the inauguration of Serre Numérique in Valenciennes, France, and running workshops.

Fugio was announced, which is a project I’ve been working on for a couple of years that provides a high-level visual programming interface to low-level coding, including Oculus Rift support, DMX, OSC, and a powerful timeline system.

I’ve been using Fugio to create art installations, including a permanent interactive artwork at Eden Project in Cornwall, and a Virtual Reality experience at the Victoria and Albert Museum in London,

I initiated a Fugio beta testing program to get some feedback on the software before I attempt a public release.

What’s next?

Early 2016 is already shaping up to be rather busy, including workshops and talks on the west and east coasts of America, as well as many UK activities being finalised.

I’ve recently added (but not yet released) HAP video support to both Painting With Light and Fugio, allowing for playback of more HD video streams simultaneously, with synchronised audio.

There is also native support for high DPI screens in both applications, such as Retina displays on OS X.

There are also plans for a new mesh tool in Painting With Light to address situations that aren’t currently addressed with the existing tools.

I’ve got Fugio compiled and running on Raspberry Pi (although the OpenGL rendering is still giving me a few headaches), with the aim to be able to create live digital artworks that can be physically installed without leaving valuable computers around.

So, with so much talk about Fugio, the question that is most asked is regarding when it will be released.  To answer this clearly, we need a bit of context.

Hard Fail

I started Fugio as a timeline project to control PWL, and synchronise lighting and audio for a theatre performance back in 2014.  As the project developed I started to see great new creative opportunities with being able to finely control the timing of media playback coupled with live interaction.

Close to its initial release, I tore the whole thing apart and rebuilt it as a node based visual programming system so that I could reconfigure the components as needed.  This system now forms the core of my art projects.

Once I had amassed a certain level of functionality, I decided it was time to get some more eyes on the project and ran an open call for beta testers.  The feedback came in slowly and was pretty crushing.  As well as the expected level of early bugs, no one could see how to use it, it wasn’t clear to anyone what it was for, or what everything did.

In hindsight this was all very valuable, though I’ll admit after working on the project for over a year at that point, I felt like I’d just ploughed a lot of time and effort into a stupid failure.

It’s taken me a few months to recover and regroup from that experience.  I had a good amount of travelling to do in that time, and fortunately had the opportunity to sit on the hot sands of Laguna beach in California, stare out to the Pacific, and do some soul searching.

Guru Meditation

Where I got to, and the reason I can relate all this publicly, is that my priority and passion is making art.  Sometimes, when I get all caught up in the excitement of coding, I seem to forget this and seemingly form aspirations of running a company selling software.

As I mentioned earlier, I’m very thankful for the money that comes in via sales of Painting With Light and my plugins.  It really helps justify spending more time adding features and fixing bugs.  But turning it into a larger commercial organisation just isn’t where my heart lies.

With this new found clarity, I began to re-evaluate my original aims for Fugio and what I want from it.

While a full discussion of this subject would at least double the size of this already weighty post, the core decision came down to one of ‘when’, not ‘if’ to open source the project.

Open Source

I talked to a whole bunch of people about this including a kindly Mitch Altman who talked with me about it and ended with saying “go for it”.

I feel a heady mix of fear and excitement at the prospect of being on show that much, of releasing almost two years work into the public realm, of giving up the money I might have made by selling it, of no-one caring, of no-one understanding…

I choose to do this because I want to make the best art that I can make – the software is, and will always be, secondary to that.

So, this is how I greet 2016: with blood pumping from adrenaline, riding fast into the night with the headlights only illuminating the road a short way in front of me.

When, then?

I have one main feature to add, which is the ability to group nodes into components that will make organising, reusing, and handling large patches infinitely better, I’m aiming for a February/March release on GitHub.

I wish you all a very happy new year!

Painting With Light 1.5.1160 BETA

Painting-With-Light-1.5.1160

Following feedback from the Toy Hack Digital Metropolis workshop over the weekend, I’ve addressed a few requests and bugs:

  • NEW: Supports animated GIF’s!
  • FIX: Fixed video output bugs
  • FIX: Line Width wasn’t being enabled correctly
  • FIX: Issues where shape handles were difficult to grab have been fixed
  • FIX: Sometimes textures would appear in 3×3 mapping

Download Painting With Light 1.5.1160 for Windows

Download Painting With Light 1.5.1160 for OSX

If you have any suggestions, comments, or bug reports, either send them directly to me via the Contact Page or post them on the Facebook Page.

Painting With Light 1.5.1145 BETA

PaintingWithLight.2015-09-16.10-27-41

What’s new in this version:

  • NEW: border_red.mp4 loop!
  • CHANGE: Sequencer always jumps to another clip on random (never loops)
  • CHANGE: Layer blending only occurs when there is some data in the new layer
  • CHANGE: New Image asks for confirmation if changes not saved
  • FIX: Slow video playback when using more than four textures
  • FIX: New Picture/Load wasn’t properly clearing Sequencer textures
  • FIX: Various minor Sequencer fixes

Download Painting With Light 1.5.1145 for Windows

Download Painting With Light 1.5.1145 for OSX

If you have any suggestions, comments, or bug reports, either send them directly to me via the Contact Page or post them on the Facebook Page.

Painting With Light 1.5.1128 BETA

Painting-With-Light-1.5.1128-OSX

What’s new in this version:

  • NEW: OSX version now up to date with all 1.5 beta changes
  • CHANGE: Layer blending is now compatible with OpenGL 2.1 (was 3.0 in 1.5.1110)
  • FIX: Textures don’t show fringing at edges now
  • FIX: Fixed recent mapping issues on all line tools
  • FIX: Fixed a crash in 1.5 when some videos looped
  • FIX: Fixed a crash on exit

Download Painting With Light 1.5.1128 for Windows

Download Painting With Light 1.5.1128 for OSX

If you have any suggestions, comments, or bug reports, either send them directly to me via the Contact Page or post them on the Facebook Page.

Painting With Light 1.5.1110 BETA – AUDIO!!!

Painting-With-Light-Audio-Plugin

The second 1.5 beta is now available for testing.  Only for Windows at the moment as I’ve just moved house and I forgot where I put the power lead for the Mac monitor…

This update features some very exciting new features and improvements to the editing environment:

  • NEW: Audio playback!
  • NEW: Layer mask editor!
  • NEW: Reworked layer blending with 24 new modes!
  • NEW: Drag textures and brushes onto shapes in the work area
  • NEW: Duplicate selected shape by pressing Ctrl+D
  • NEW: Delete selected shape by pressing Delete
  • NEW: Switch to and from edit mode by pressing Space
  • CHANGE: Spout 2.004
  • FIX: Fixed several media loading bugs

Download Painting With Light 1.5.1110 for Windows

If you have any suggestions, comments, or bug reports, either send them directly to me via the Contact Page or post them on the Facebook Page.

Painting With Light 1.5 BETA

PaintingWithLight-1.5

A new beta version is available for testing that features the following major changes:

  • A brand new plugin that does texture sequencing
  • Compiled under, and tested with Windows 10

Download

Painting With Light 1.5.1000 BETA for Windows

Painting With Light 1.5.1000 BETA for OSX

As this is a beta, I haven’t written up the Sequencer plugin just yet, but here’s some basic instructions.

The sequencer automates switching between textures.  This can be done manually (by double-clicking on column headers and individual textures) or automated based on time duration or number of times the texture has been played.

  1. Open the plugin window via the Windows Menu -> Sequencer
  2. Click on Texture: Add to add a new texture
  3. Click on Column: Add to add a new column
  4. Drag textures from the Textures window to the rows and columns of the sequencer
  5. Select a sequencer texture by clicking on the header where it says ‘Tex 1’, ‘Tex 2’, etc…
  6. Draw with the normal drawing tools

Rewind Action

When a texture is activated, you can have it:

  • Just play normally, as though you’d selected it manually
  • Rewind to the beginning, if it isn’t currently being used on any other shape
  • Always rewind it

Exit Action

When a texture has finished playing (reaching either its set duration or play count) you can have it do the following actions:

  • Nothing
  • Clear – removes the current texture
  • Jump to next – advances the current texture to the next column (or wraps around to the first column)
  • Jump to previous – moves the current texture to the previous column (or wraps around to the last column)
  • Jump to random – jumps to a random column
  • Jump to column – jumps to a specific column (use the drop-down underneath the action to choose the column)

There are also options for controlling all the rows at the same time.  The ‘All to …’ actions do the same actions as above but for all textures.

Other Controls

  • Double-click on the column header to change all the textures to that column
  • Double-click on a texture to activate it
  • Select one or more cell with the mouse and change the duration and/or play count
  • If you set the duration to 4.5 (for instance) the selected textures will play for 4.5 seconds and then perform the action.
  • If you set the play count to 0 (zero) the texture will loop infinitely.  If you set it to 1 it will play once and then perform the action.
  • Select one or more cells and click on the Clear button to remove those textures

Painting With Light 1.4.970

PaintingWithLight.1.4.970

There was an unexpected change in the ecommerce software that Painting With Light uses to control its registration resulting in licences being made invalid.

  • NEW: Edit Tool that can move any shape (including Brush and Roller) and edit shapes by double clicking on them
  • NEW: Mesh subdivision supports linear and bezier interpolation
  • CHANGE: Vertex mapping is now supported on Bezier, Polygon, and all line tools
  • CHANGE: Using the mouse wheel, you can now zoom out even further
  • FIX: Cursor wasn’t always hidden when mouse left the window
  • FIX: The mapping window wasn’t handling output rotation properly
  • FIX: The registration system broke due to a change in the ecommerce software

Click here to download and read the full change log.

Painting With Light: Version 1.4.943

PaintingWithLight.1.4.943

Painting With Light 1.4.943 is now available for download for Windows and OSX.

The two big changes to this release are:

  1. The demo version will now load and save paintings
  2. The painting file format has changed

It will still be able to load your old paintings but it will only save in the new format.

Click here to download and read the full change log.

Painting With Light 1.4.898

PaintingWithLight.1.4.898

Painting With Light version 1.4.898 is now available for download.

This release fixes one critical bug, and includes some important work done on the core video loading and playback code, as well as a minor improvement to the finding of brushes and textures when loading a painting.

Critical Fix

Once of the previous releases re-enabled loading of pwl files by file association under Windows.  On some computers this resulted in a crash if the output window hadn’t actually opened yet.

Better Video Support

Many people use many different formats of video with Painting With Light depending on what operating system they have,  what kind of hardware and software they use, what kind of workflow they want.  Painting With Light aims to support as wide a range of video formats as possible to fit in with your existing processes but it has previously worked better with certain formats over others.

In this release lot of work has gone into retuning the video playback code with the aim of improving compatibility with a much wider range of video formats, and fixing issues when the videos loop back to the beginning.

New Asset Handling

When saving a painting as a PWL file, Painting With Light saves the full path to all of the brushes and textures that are used in the painting.  This is fine when you’re just working on a single computer, but if you want to copy the files to a different computer, or share them over Dropbox or such like, these full paths will probably become invalid for the receiving computer.

In this release Painting With Light will first look for the brushes and textures in their original location, then it will look for them in the brushes and textures windows, and finally (and this is the new bit) it will look for the files in the same directory as the PWL file.

So, to copy a PWL file, just include all the brushes and textures in the same directory, and Painting With Light should now find them without you having to do anything.

As ever, please let me know if you are experiencing (new or old) issues with this latest release.  Also, it would be nice to know if the new video playback code is working better for you all.