Fugio Friday: Ars Electronica

Happy Fugio Friday!

It’s great to be back in Linz for Ars Electronica 2017.  Have already caught up with many friends from around the world and seen some lovely works, though the event is so huge that there is still so much to be seen.

In preparation for the Mini Maker Faire in POSTCITY on Sunday I have got Fugio badges and stickers ready to give away, so if you’re at Ars Electronica, do stop by and see Fugio in action.

My laptop is now 500% better with a shiny new Fugio sticker on it…

Will post up pictures from the event next week.

Have a great weekend!

Fugio Friday: August 2017 WIP

Happy Fugio Friday!

For the past couple of weeks I’ve been working on refactoring the whole OpenGL plugin to better support Raspberry Pi.

The new release of the Raspberry Pi operating system called Raspbian Stretch has Qt 5.7 built in and comes with FFMPEG instead of libav.  This is great news for Fugio as it’s much more in line with the libraries we’ve been using.

I’m busy building Fugio on my Raspberry Pi 3 (not cross compiling) as I type, although I wouldn’t recommend trying this yourself just yet as it needs some work to get it compiling.

With this latest update, I should be able to create a binary repository for installing Fugio onto Pi’s without compiling.

As ever, this is loads of work that will be available to everyone for free, so if you can, please consider supporting the project by donating just $1 a month via Patreon.

Also, check out the first look at my new projector blending tool that Fugio will support for multi-screen projections.

Have a great weekend!

Fugio Friday: ISF Render To Texture

Happy Fugio Friday!

This week we have a new release: v2.13.0

It was noted in the Fugio Users Group that there was no (easy) way to render an Interactive Shader Node (ISF) to a texture, which would be very handy for passing to Syphon and Spout.

This release has a new Render To Texture node and several fixes in the OpenGL and ISF plugins that make this possible.

There has also been a lot of work done on the new time synchronisation system but that’s not quite ready for release yet (the code is on GitHub if you want to check it out early).

As there is a new binary release, I’m pushing the launch of The Fugio Zone to next Friday, but if you want to get early access, you can get the login details right now by becoming a Fugio sponsor on Patreon!  Just a little donation helps with all the costs of running an open source project, such as hosting, domain names, etc.

Download Fugio v2.13.0 for Windows and macOS (source code)

Have a great weekend!

PS: Near Derby?  Go see my robot artworks in the Our Friends Electric exhibition!

NEW

  • New Examples:
    • ISF/Render To Texture
  • New Nodes:
    • OpenGL/Render To Texture
    • Time/Universe Receive
    • Time/Universe Send
  • Time synchronisation is working and almost ready for release

UPDATED

  • ISF and Texture Monitor use the correct texture coords

FIXED

  • ISF wasn’t restoring the current framebuffer
  • Saving broke some file paths
  • Cleaned up some incorrect OpenGL calls
  • Image format could get confused in OpenCV/Flip

Fugio Friday: v2.12.0

Happy Fugio Friday!

This week we have a new release, the twelfth this year: v2.12.0

This release features several new nodes, and some needed bug fixes to the media playback plugin, and many more updates and features.

One key feature is the ability to save a JPG or PNG screenshot of your patches, which you can then upload to the new website I’ve been building called The Fugio Zone that allows users of Fugio to share and discuss the patches they make.

If you want early access to the site, you can get the login details by becoming a Fugio sponsor on Patreon!  Just a little donation helps with all the costs of running an open source project, such as hosting, domain names, etc.

Download Fugio v2.12.0 for Windows and macOS (source code)

Have a great weekend!

NEW

  • Added ability to save an image of the currently open patch from the file menu
  • New Nodes:
    • Core/BitsToBool
    • Core/BoolToBits
    • Math/Modulus
    • Network/PacketDecoder
    • Network/PacketEncoder
    • Serial/SerialDecode
    • Serial/SerialEncode
    • Text/TextEditorRemote
    • Time/UniverseTime
  • New Pins
    • Core/BitArray
    • Text/SyntaxError
  • Added Bias pin to SignalNumber
  • Saving patches creates (backwards compatible) human readable header
  • Started adding the concept of a Universal Time between Fugio instances running over a network (not quite ready for use yet!)

UPDATED

  • Compiled with Qt 5.9
  • Fugio now processes patches on a separate thread (currently locked to 100fps)
  • Updated SyntaxHighlighter system
  • Updated Lua Matrix4x4 and Vector3d classes
  • FugioLib is now compiled and linked as a static library
  • OutputRange accepts index
  • Lua now has a trigger pin
  • Adjusted latency handling in DevicePortAudio
  • Added performance counter in SpoutReceiver
  • Rewrote OpenGL/Context to use QOffscreenSurface (a good thing!)

FIXED

  • Fixed a whole heap of issues in FFMPEG media playback
  • Magnitude wasn’t using sample count
  • Caught invalid input to ScaleImage

Fugio Friday: Text Syntax Update

Happy Fugio Friday!

This week work has continued on doing fun things with Raspberry Pi’s!

One key thing I need to be able to do is control patches remotely.  While there are already plenty of options for sending and receiving pin data (see the updated Network plugin documentation), there is no possibility for using a text editor remotely while retaining syntax highlighting and error reporting, which are both very helpful when hacking shaders and scripts.

The dream being that I can have an editor on a laptop and remotely live code a shader on a Raspberry Pi.

So I’ve refactored the syntax highlighting and syntax error reporting system to facilitate sharing this information remotely.  Next up is writing a couple of nodes for sending and receiving this information over a network.

This should even work over the internet, which opens up some interesting remote collaborative options!

You’ll also notice in the image at the top, I’ve updated the Text Editor to show errors by highlighting the line numbers in red, which is a lot clearer.

I also enabled sending keyboard events from one Fugio to another, which should also prove useful in the future.

All the code changes are available in the GitHub repository.

I’ve cleaned up and organised the Core plugin documentation.  Still much to do, though I’m slowly working my way through it.

Finally, I wanted to highlight this new patch by Winfred Nak that he posted up in the Fugio Users Group on Facebook.  It’s a rather cool game show buzzer where the first button pressed will trigger off the music for that team.  It’s a good application of logic nodes, which are really useful!

Gameshow Buzzer by Winfred Nak

If one was so inclined, one could add a Firmata node and use an Arduino and real physical buttons as inputs…

Next week I’ll be setting up our robots as part of a new exhibition called Our Friends Electric at QUAD Derby.  The launch event is on Friday and I’ll be speaking at an event there on Saturday.  Come along and say hello!

Have a great weekend…

Fugio Friday: Raspberry Pi updates

Happy Fugio Friday!

I’ve been getting the Raspberry Pi support in Fugio up to speed.  The wiki build instructions have been updated to support Qt 5.9, which is the latest version.

The main work is on getting the OpenGL support working, which is going quite well but there is some refactoring to do to support OpenGL ES.

There’s also been some work on synchronising Fugio running on multiple computers across a local network.  This is in early stages but is looking very interesting.

In a couple of weeks I’m aiming to have the first Fugio RPi image ready for download so you don’t need to go through the long process of compiling it yourself.

If you’re enjoying the ongoing Fugio developments, it would be great to have your support:

Have a great weekend!

Fugio Friday: CMake build progress

Happy Fugio Friday!

This week I’ve been focussing on creating a fully working CMake build system in place for Fugio.

As Fugio currently builds using Qt’s qmake, why do we need an alternative?

  • In a recent Qt blog post it was made clear that qmake is going to be deprecated in Qt6 in favour of a new tool called Qbs (pronounced cubes).
  • As CMake can be used to build all sorts of projects, and not just Qt ones, it enjoys a much larger user base.
  • The CMake file for a Fugio plugin seems to be a lot simpler than for the equivalent qmake file, especially when specifying cross platform options.
  • It seems easier to setup clean, automated builds that I seem to be needing more to simplify and make more reliable the process of Fugio binary releases, specifically for Raspberry Pi builds, too.
  • If someone wants to work on the Fugio code base, CMake allows the user to use their IDE of choice and be less tied to Qt Creator.

[amazon_link asins=’1930934319′ template=’ProductAd’ store=’bigfug-21′ marketplace=’UK’ link_id=’6f007693-4d16-11e7-8b09-37d691c606a3′]

So I’ve been struggling through creating the first set of CMake files, getting my head around how best to bring in all the required libraries.

I’ve invested in this book (associate link) so I can get my CMake skills up to scratch.

You can follow my progress on this GitHub branch and I hope to have a release ready for next week.

Until then, have a good weekend!

Fugio Friday: One (and a bit) Years Old

Happy Fugio Friday!

So I really had it in mind that I released the first version of Fugio in May, and I was planning on doing this birthday round up of the previous years activity.  Only getting around to checking the actual release date today, I found it was April 8th, so I missed it.  Not to be disheartened, I plan to push ahead anyway with my excellent post idea, and will get the date right next year!

In the first year of Fugio

  • First release on April 8th 2016
  • 32 binary releases in 2016 for Windows and Mac
  • 35 plugins released
  • 242 nodes
  • GitHub repository:
    • I did 719 commits, adding 256,162 lines of code, and deleting 30,424
    • BigHoss added 2,011 lines, which were for the German translation

  • Facebook page has 569 likes
  • Facebook Users Group has 169 members
  • Fugio’s web page had 7,725 page views,
  • I ran the first Fugio workshop in Brighton
  • I made 9 tutorial videos
  • I wrote 44 Fugio Friday or otherwise Fugio related posts
  • I exhibited Fugio based artworks at the V&A and Imperial College in London, and in Birmingham, Bournemouth, Oxford, Brussels, and Irvine California

Looking back

Looking back over the year, I’d say it’s been an enjoyable project to undertake.  There has been a really positive response from many people, and it’s been exciting to see how other people are using the software for their own projects.

For my work, it has completely fulfilled it’s purpose, enabling me to quickly develop new artworks, and keep existing works up and running in a state ready for exhibition.  I find I’m able to try out ideas faster because there are now a good range of nodes that replace the need to write code.

In regards to running an open source and public project, I’ve found it often it takes up more of my time than it probably should as I get stuck into some tasty new idea or feature, or track down bugs reported by users.

It’s also not easy to justify spending time on a project that doesn’t make me any money directly, and sometimes I find myself thinking that I should implement a feature because it might be popular with users, even if it’s not of any use to myself.

Overall, it has developed into exactly what I hoped it would be: the start of a fascinating and challenging voyage, with new people, new ideas, and new opportunities.

Looking forward

Looking forward I have a long list of improvements and features to add, and I will work through them as and when I can.

One of the main features of this coming year will be the announcement of a major new Fugio installation that I’ll be spending much of my time working on, which is using many Raspberry Pi computers that play video and provide interactivity.  While Fugio already runs on the Pi, there is going to be much more native support for it soon.

Outside of the code, I hope that the Fugio community continues to grow and people share more examples and experiments and ideas with each other.  I will continue to try to provide support and tools to facilitate this happening where I can.

I would like to get a lot more feedback from users about the software and how it could be improved.  I’d like to give more talks, and perhaps speak at some conferences, which I’ve always found an excellent way to connect with people.

Personally I’d like to see Fugio helping people realise their creative ideas, while learning as they go.

However, this project isn’t just about what I want: what would you like to see happen with Fugio over the next year?

Fugio Friday: MIDI Timeline

Happy Fugio Friday!

This week we have a new binary release (2.10.0) that features a new work in progress node called MIDI Timeline.

You can now import .mid files straight into Fugio (via the File Menu) and it will create nodes for each track.  Feed these to a MIDI output and you can start playing about with it.

There’s currently no editing facility, and it can’t record, but it’s a step in the right direction.

Check out the ‘Magical Midi’ example, which comes from one of my favourite arcade games.

Other than that, I’ve tested compiling Fugio on Debian Linux 8 and got it working, and there’s a bunch of fixes of improvements that you can read about in the list below.

I’m now supported both the GUI installer and Homebrew/Cask installers on macOS/OS X so here’s the installer links:

Download Fugio 2.10.0 for Windows (7, 8, 8.1, 10)

Download Fugio 2.10.0 for macOS/OS X (Mavericks 10.9+)

Have a good weekend and see you next week!

NEW

  • Tested compilation on Debian 8
  • Group position and zoom is now saved (also between editing sessions)
  • Added “Import…” entry to file menu
  • MidiTimelineNode supports loading .mid files (via Import) into the editor (no editing yet!)
  • Added Timeline includes

UPDATED

  • More error reporting in FFMPEG
  • Added reset pin to BackgroundSubtractionNode
  • Spanish translation updated
  • GL_PRIMITIVE_RESTART_FIXED_INDEX flag added to OpenGL state
  • Oculus Rift won’t cause the API to open the desktop app until the node is added

FIXED

  • Wasn’t seperating audio and video frames in MediaSegment
  • TextureToImageNode wasn’t using the right image format
  • LuaImage wasn’t using the right image format either
  • Crash during group delete
  • Group breadcrumb trail fixed when deleting groups
  • Adding pins to groups wasn’t immediately shown in editor
  • VST3Node can now handle creating any number of pins
  • Timeline editing fixes

Fugio Friday: Snippets and Groups Video Tutorial

Happy Fugio Friday!

This week we have a new video tutorial that introduces the use of Snippets to store and reuse sets of nodes to build your ideas quickly, and Groups to layout your patches in a more ordered and understandable way.

Enjoy, and have a good weekend!