This week I’ve been hanging around the Wellcome Genome Campus near Cambridge, where my partner Anna has been doing a week residency with the scientists here. I’ve been exploring the nearby nature reserve, watching the squirrels and geese, and catching up with emails and threads of projects.
I’ve been looking at the way that Fugio is installed on OS X (now macOS), and I’m not entirely satisfied with the process that one has to go through, especially for the initial installation. I’m experimenting with Homebrew casks, that facilitate installing applications such as Fugio through the same simple command line interface that Homebrew uses to install the libraries that we already use.
Packaging Fugio as a cask would mean installation would comprise of installing Homebrew, then typing “brew cask install fugio” into a Terminal to install the application and all its dependencies. Much cleaner! What do you think?
If I do go down this route, it will make releasing some new plugins somewhat easier…
On November 15th I’ll be giving a LASER talk (Leonardo Art Science Evening Rendevous) at Westminster University in Harrow about my art practice and Fugio. There’s no link for it yet but I’ll post it up when there is, if you fancy coming along and saying hello!
Have a good week, and as ever, let me know any questions and suggestions you may have.
This last week I went down to Cornwall for a meeting at Eden Project that I am one of several artists and many scientists who are were called on for some advice for a large project they’re working on.
It was also a great opportunity to check on the status of the interactive Fugio powered installation “The Human Super Organism” that I installed as part of their Invisible You permanent exhibition.
Eden Project gets around one million visitors a year, so it’s an amazing opportunity to see how Fugio copes with that level of activity. I’m happy to report, other than someone managing to steal the Leap Motion sensor (we’ve locked it down now!), the installation has run perfectly since it was installed, so I’m chuffed about that!
As well as giving a talk about my art practise and Fugio as part of Lewes Light last week, it’s been a busy week with no time for programming, so no Fugio updates this week. I’m off to Cambridge next week and should have some time for something new…
The Leap Motion controller picks up the positions of your hands in space. It’s supported on Windows and macOS. I used it for this Theremin inspired synthesizer patch:
The Leap Motion plugin doesn’t support finger positions yet – this will be added in a later update.
The XInput plugin brings the Microsoft XBox controller into Fugio (on Windows). It supports four devices simultaneously.
Along with the compiled Kinect plugin from last week (again, Windows only) we have a new range of exciting input devices to play around with.
Obviously two of these plugins are Windows only, which is due to the fact that the hardware is built by Microsoft, but I have Kinect support for macOS coming too via OpenNI.
I’ll be speaking (in part) about Fugio at the Lewes Light festival conference today.
Next week I’m off to Cornwall for a couple of days as I’m on an advisory panel for something exciting at the amazing Eden Project.
NEW
Leap Motion plugin
XInput plugin
MatrixInverse and MatrixOrthographic nodes
UPDATED
New options in serial port configuration
FIXED
GL_INT_SAMPLER_2D had disappeared from ShaderCompiler
Rendering to depth textures
OpenGL command line option to open windows full screen
This week I’ve been in Los Angeles and Irvine. The opening of the Embodied Encounters exhibition went really well, with Shadows of Light (my interactive, Fugio based installation) having lots of attention.
I gave a talk about Fugio and my art practise to students at USC Cinematic Arts:
And another talk to students at UCLA:
I’m back in England next week, teaching my new Digital Media Arts MA students at the University of Brighton, and giving another talk at the Lewes Light conference.
There is an opening reception on Saturday, October 1st, 2-5pm – I’ll be there!
As I’ve been busy doing that, and the V&A show last weekend, there is no binary release this week, but there are some goodies to be had in the source code, if you’re compiling along at home:
NEW Kinect plugin (Kinect version 1 for Microsoft Windows only)
NEW MatrixInverse and MatrixOrthographic nodes
UPDATED Serial Port device configuration with many more options
FIXED rendering to OpenGL depth buffers
FIXED missing GL_INT_SAMPLER_2D support from ShaderCompiler
FIXED OpenGL command line option to make windows full screen
I’m not expecting to do a Fugio Friday next week as I’m taking a sort of holiday after the show opens, but I’ll be around to answer questions and such.
Today we have two new plugins that enable Fugio to talk to hardware that uses a serial port interface, which includes the Arduino range of open source hardware (like the Arduino Uno above), which means that we can control LED lights, motors, servos, and use sensors for touch, magnetism, temperature, and many more!
The serial plugin handles the raw data communication between the Arduino and Fugio, and can be used to implement any kind of custom protocol between the two, but we can go one further and use the rather nice Firmata plugin to talk directly to the Arduino pins without writing any Arduino code at all.
I haven’t had time to do a tutorial video (yet), but here’s some pointers to get you started:
Setting up a Serial Port
In the new Devices menu, choose Serial Ports
Add an entry for your Arduino. Make sure you choose the right port, and set the baud rate (the speed the serial port will work at) to 57600 (bits per second)
Remember to press the Enable button for the entry you’ve just added
Reading from the Arduino (without Firmata)
Upload the following code to your Arduino:
void setup()
{
Serial.begin( 57600 );
while( !Serial )
{
// wait for serial port to connect.
}
}
void loop()
{
Serial.println( "Hello, World!" );
delay(1000); // wait for a second
}
Create the following:
And use the following Lua program:
fugio = require "fugio"
PinInputStrings = fugio.input( "Strings" )
function main()
local Strings = PinInputStrings:get()
for i = 1,#Strings do
fugio.log( i .. ": " .. Strings[ i ] )
end
end
Add a Serial Input node, a Firmata node, and a Serial Output node
Connect the Serial input and Serial output to the Firmata node
Connect a button to the Reset pin
If everything is connected and configured properly, you should see the pins appearing on the Firmata node. Check the logger window for additional messages.
If this doesn’t happen first time, you may need to close the patch and reload it.
At this point you should be able to read and write to the Arduino pins!
Click the Edit Pins button to configure pins for inputs (digital INPUT (true/false) and ANALOG input (0-1023)), and outputs (digital OUTPUT (true/false), and PWM mode is supported):
This guide covers installing a virtual Linux machine (if you need one), compiling Qt 5.7 with accelerated OpenGL support, and building Fugio with all the currently supported libraries.
New Fugio video tutorial covering OpenGL shader live coding, sharing OpenGL textures between many applications in real time using Spout (Windows) and Syphon (OS X), and rendering to texture for complex, multi-stage shader processing. Not expecting to get too much coding done this week as I’m off to Ars Electronica this week in Linz, Austria this week. Have fun with the update!
This is the most significant release for Fugio since its initial launch. Finally, after more than a year, I can share the OpenGL plugin, which brings the raw power of the graphics card to Fugio for high resolution, real-time graphics.
I’ve also recorded an hour long video tutorial that will get you started working with OpenGL shaders.
This has been a massive amount of work. Please share the word, and if you’re feeling very generous, you can always make a donation towards the project here.
NEW
OpenGL plugin – 24 new nodes with several shader examples
Mouse node and input events support for windows
Mouse Painter example
Nodes: Time, Date, JoinVector4Node, SplitVector4Node
UPDATED
LuaPainter::drawLine can take two points
Added $ORIGIN to path on Linux to fix launching (reported by Luca)
It’s been a long term goal for me to get Fugio running on Raspberry Pi.
If you’ve not come across them before, they are cheap, credit-card size computers than can run a full desktop experience with mouse and keyboard support, networking, HD video playback, and even a GPU for 3D graphics.
I use them a lot for installations where I need seamlessly looping video playback, but I really want to develop artworks on them, so I can use them instead of leaving bulky and expensive computers in a gallery for months.
So, this week I’ve updated the source code to allow it to compile and run on a Raspberry Pi 2 (and 3). Everything works apart from PortAudio, which I’ll get to in due course.