Interactive SVG diagram

I developed the interactive version of the CIPD Profession Map. Under the hood, it’s an SVG file with embedded bitmap graphics and JavaScript logic, and it’s animated, easy to update, and accessible by screen readers. For full responsiveness it can adapt to three different layouts.

You can read more about the related illustrations here.

UX, UI, Interaction Design

Procedural Circular Animations

I always found generative art mesmerizing, so I experimented with a few JavaScript rendering libraries to create something of my own.

Click on the images to launch the real-time animations

The first one is created with the impressive rendering library PIXI.js. The other three are drawn with Two.js, which defaults to a SVG output.

Etna – amsynth skin

Etna is a GUI skin I designed for amsynth, or Analog Modelling Synthesizer, a virtual instrument by Nick Dowell for Linux and MacOS.

Here’s a demo video of the two in action.

It was a fun project to work on. Its name and color palette are inspired by the ashes and lava of Mt. Etna, the biggest thing where I come from.

I wanted a flat design with no shadows or gradients, a minimal and bold color palette, and a simple geometric typeface that works well at a small resolution.

To sketch the wireframe I used Inkscape, which was also my tool of choice to create the background plate.

Layout grid
Some people play Tetris. Some people fit GUIs to grids.

Inkscape’s internal SVG to bitmap rendering functions are quite handy, but I suggest to use them only as long as your artwork doesn’t rely on pixel-perfect text. In this case, font rendering wasn’t as crisp as I knew it could be, so I had to try different workflows.
Here’s a comparison of the output of three different SVG renderers I used.

The first one is Inkscape’s internal renderer.
The second one is SVG text processed through Cairo API. Notice how a subtle font hinting produced a clearer text with less antialiasing.
The third frame is SVG rendered by Gecko (Firefox’s browser engine). That’s the result I found most satisfactory.
Actually, a fourth option was conceived, involving GIPM and its advanced control of subpixel hinting, but it would have required to re-create the text layout outside Inkscape. Since it was not going to be easy to maintain or to rescale the artwork to @2x or higher resolutions, I discarded this workflow.

I automated the drawing of the assets for the knobs and sliders thanks to a custom knob generator I wrote using Two.js and dat.gui.

Like the default interface of amsynth, the first version of Etna had only rotary knobs and no sliders, which were added since v1.1.0 for the two ADSR envelopes to allow a better visual shaping. If this were a physical interface I would have taken into consideration the increased precision of knobs versus an equally sized slider, but also how you can move a slider with one finger, while rotating a knob keeps your whole hand busy.

You can download Etna and read how to install it on

Earboard – Web App

Earboard is an ear trainer for musicians whose purpose is to generate note intervals to play along with. Its layout is modeled on the fretboards and standard tuning of stringed instruments like guitar and bass.

See it in action here: Earboard

It’s a responsive JavaScript web app. Source codeearboard

HTML5 interactive banners

I worked a few months for Tag Worldwide producing interactive and animated HTML5 banners for Nike, Sony, Jameson Irish Whiskey, HTC, Argos, Boots, Amazon.
Flash was cool, but the 2000s are over.



AXE/Lynx ads

I designed and animated a series of rich media creatives for AXE/Lynx, for digital agency AddictivePixel at BBH, London.


This archived content does not reflect my current skills

WoStation is an online game I coded long time ago with a friend, Andrea Aronica. It’s a suite of applications to play music, write or doodle.

Play WoStation