In the following months we are going to invite inspiring artists to talk about their amazing work and the role that Ubuntu and free software cover, or could cover, in their creative lives.

Today I invited a special Ubuntu friend to talk about his journey in creative coding.
He is well known in the web community and he is recently blowing it away with cutting edge online real-time music videos using open web technologies.
The Canonical Design blog is happy to welcome Ricardo Cabello, aka Mr.doob.

Hi Ricardo, thanks for accepting our invitation. Is there anything you want to add to my brief introduction?

Hello hello! Nope, I think that defines well what I try to do :)

It’s a pleasure to have you here, let’s crack on with the interview. How did you start out with computers?

Back in the early 90s when I was 10 or 11 my brother needed a computer for school and, eventually, managed to persuade my father to buy one — it was a 486 (or 386, I’m not sure). I remember being mesmerised in the shop watching Prince of Persia running on a computer. When I realised our computer came with Army Moves instead I got pretty disappointed though :P Specially because I was really bad at it…

It was my brother that started to learn how to create things with it, he started learning programming and I spent long hours sitting on his side trying to learn something myself.

And as an artist?

Eventually I got my own computer — most likely I got delegated the old one :P — and, as I didn’t seem to understand programming, I opted for graphics instead (Animator Pro, 3D Studio R3, Deluxe Paint, …) My brother also got involved in a underground movement called demoscene where people competed with each other to see who was able to make the computer do the most impressive things. For that they needed graphics, so eventually I got involved myself too. By doing these things I ended up learning a lot about computer graphics. First the authoring side, and eventually the programming side too.

Also, I know many people that don’t put their skills into practice because they don’t have projects to work on, and they are unable to coming up with their own. That’s something I got from the demoscene, you had to come up with stuff in order to compete.

How do you get artistically inspired?

Since I dived into programming I let the code inspire me. I experiment with things and APIs and in the process I come up with ideas. I also follow a bunch of random blogs about arts, illustration, installations, … that from time to time challenge me to see if I can do some of the things in realtime. And once again, more ideas spur on in the process.

How do you keep yourself informed?

Mainly twitter nowadays. It takes some time to find the right people to follow. Usually people tweet about personal things, but some share findings, culture, news and their own works.

Is there any project of yours you are particularly proud of? Tell us more about it, Inspire us!

I will say Not only is the project I’ve been able to apply most of my acquired talents but we managed to build it using mostly open source software.

That’s not entirely true though, there was a lot of proprietary software on the process… designers are still tied to Adobe products and 3d modellers/animators to Autodesk products, but we — the developers — were able to use whichever tools we wanted. I personally used gedit for all the programming. We also had some python scripts for converting data to our formats and we setup a pipeline that used Blender for composing the 3d scenes.

Best of all, we released the code of the whole project too! screenshot

Since your work stands between Art and Code, what do you think their relationship should be?

Code is just another tool for the artist. A very powerful one.

How important is programming for visual artists? Do you foresee a future where programming will cover a bigger role in the creative industry?

Programming is becoming more and more accessible (even without losing much efficiency). For example, take a look at the GLSL Sandbox, the code is right there, editable and it goes right to the graphics card. I can see more tools like these being developed and designers hacking some stuff themselves to find new styles.

Do you believe in open source? If so why?

Totally. Specially because I’ve spent many years already dealing with proprietary models.

You see, whenever you work on something, you’re creating value. That value always gets split into different parts, starting with yourself, the skills you’re acquiring, and following by the chain of clients, being the final one the one that benefits the most. After a while you start to care about who benefits from your work and I find it very rewarding sharing the code so anyone on the internets can benefit from the energies spent.

Of course, there is always the risk of getting “Angry Birded” — where someone uses your code to retire early without giving anything back to the project — but that’s ok, I want to think that these people give back to society in other ways. Eventually we will be able to bring an idea into life by combining open source projects and call it a day. That would be a pretty efficient way of using human brains.

For some, the concept of giving away your work for free may sound silly, but there are many good side effects when doing that. It speeds up development and steps up global knowledge. The public gets your thing for free and can learn from the code, anyone is free to contribute — if someone needs a feature they can step in an implement it themselves. If there is a bug somewhere they can also fix it themselves. Also, because anyone can read the code, more skilled people can have a quick read and suggest better approaches and even patches. In exchange you learn a lot of tricks from these contributions.

Do you share your code? And if so, why and how?

Of course! All my code is on github — I know, I know… proprietary platform… :P

How is three.js going? I’ve seen there is a healthy amount of contributors.

I think it’s evolving nicely. The API seems to be finally getting a bit stable now and we’re starting to consider documentation strategies. People is building tools on top of it and seems like there is a new demo or project going out every week that uses it. The community is also mostly respectful and helpful with each other.

To what extent do you use open-source technologies?

I try to use as many as possible. In the past I used to depend on Adobe products that locked myself to Windows and/or MacOS. Now that I got used to Gimp, Inkscape and Blender it doesn’t matter which OS I’m on. Neither I live under the fear that the company behind the application I depend on may decide to stop development because they don’t get enough revenue from it..

Do you use any proprietary software?

Yes. Chrome and Dropbox. Sometimes I have to use Sublime Text 2 because gedit seems to be unable to handle files with long lines. It’s a known bug that has been reported for ages…

What is your favourite software and why?

Uhm, I would go with Chrome. I live on the web and Chrome seems to be improving it considerably. Or at least, allows people like me to help improve it.

Can you tell us about one of your projects where open source was very beneficial, if not crucial?

Well, Google Gravity wouldn’t exist if it wasn’t because Box2DJS. And Box2DJS wouldn’t exist if it wasn’t because Box2D itself. Three.js wouldn’t be half of what it is if it was closed source either.

Google Gravity screenshot

What changes in Ubuntu would make your creative life better?

This may be controversial, but I prefer the experience Gnome Shell offers better than Unity — aesthetics wise and usability wise.
My dream Linux OS would be having Ubuntu’s hardware support, Fedora’s system code (systemd, etc), Gnome Shell desktop experience and Elementary aesthetics. Yum!

Can you tell us what kind of creative or technical challenge you are going to face with your next project?

There are a bunch of projects in the pipeline. But the main challenge for most of them seem to be dealing with (almost) exponential content growth… always a scary, but nice to have, problem :)

What do you think about the evolution of web standards?

It used to be a really slow process which will always be miles away from what proprietary platforms were offering. However, I think WebGL shown that this has changed and the standards can be defined and implemented at a very nice pace.

More and more “native” applications use open web technologies, especially for their UI. Is this gonna have an impact on HTML rendering engines different from WebKit?

The more contents and usage the better the engines will get. When developing for a platform the developers find cases where performance is lacking or implementation isn’t as nice as it could be. So the platform will need to improve. Otherwise other platforms will step in and developers will switch. You gotta love healthy competition :)

How do you see the future of WebGL? Do you foresee any problems Microsoft or Apple could create for its adoption?

I think the future is bright for WebGL. The real issue the technology has is bad drivers. But nothing that content can’t fix. Again, the more content that uses WebGL the more pressure graphic card vendors will get. Eventually you’ll make sure that your next computer or device supports WebGL and that’s something ATI, Nvidia and friends want to be part of. I think Microsoft are shooting themselves in the foot. Being opposed to a open standard while not even have an alternative doesn’t sound like a clever move to me. On the meantime Internet Explorer is losing market share.

Thanks a lot Ricardo for giving us some of your time and sharing your thoughts, keep up with the great work!

No problem! Sorry it took me a while to complete this. I guess I’ve been busy O:) Looking forward to reading more interview like these in the Canonical Design blog!