Githubing all day long

Lately I’ve been cleaning up some old projects that had lot of potential but I never had time to share appropiately to the community.

The first one is called Rendeer.js, it is my own 3D graphics engine for the web. It uses WebGL through my own low-level library litegl.js and it is meant to be easy to use and very dynamic. Right now I’ve been using it for the 3D game of the Barcelona World Race and I’m very happy with the results. Here is one screenshot:

Barcelona World Race 2015

Another interesting project I uploaded was Collada.js, a Collada format parser that can work inside a webworker. It can extract meshes, skinning, animation and scene info.

I also have been improving a lot my old libraries like litegl.js (my low-level wrapper of WebGL which makes working with WebGL very easy), litescene.js (my not so easy 3D Graphics engine meant to be used with my own editor) and litegraph.js (my visual programming system), all of them are becoming very mature and ready for production. And I want to finish documenting litegui.js

Canvas2DtoWebGL

Sometimes working with WebGL I miss having the freedom to use regular Canvas2D calls, the only solution in most cases is to create a secondary Canvas and upload it to the GPU in every frame, something that could be costly when the viewport is very big. For those situations I have created a library that adds most of the Canvas2D functions to a WebGL context, even some that where a little bit tricky to emulate (lineWidth…).

The performance is more or less the same as using the regular Canvas, the quality though is a little bit worse, but it opens the door to combine some of my existing libraries with WebGL capabilities.

Check it out in github

Web experiment: Drone physics

For a long time I wanted to try some 3D physics on the web. For that purpose there are two libraries around, Cannon.js which is written in JS from scratch, and Ammo.js which is a port of Bullet made using emscripten. I’ve been playing around with both of them, the performance of cannon could be improved (too much garbage generated in memory) and the interface of ammo is horrible (as all emscripten ports).

Drone

Play around with this demo, the controls are very hard and it is easy to start spinning uncontrollably, but Im pleased with the movement.

#MHD2014

This year for the Music Hack Day I wanted to do some visualization using WebGL. Some of my friends were doing a hack using a Maschine from Native Instruments so I decided to get the Midi messages (using the Web MIDI API) and visualize them somehow. This is the video of the presentation.

You can try the visualization here but without a MIDI keyboard sending events is quite boring.

Conway Stamps Collection

The other day I wanted to clean a little bit the code of my Conway Game of Life GPU web app, and meanwhile add some features. While searching for better demo patterns I discovered this great collection with all the known oscillators and their period, it is made by Dean Hickerson. It is cool that changing the number of steps you can verify that the period is right. Some patterns are very interesting, others are just combinations of other patterns.

conway

 

Things I hate about WebGL

Inspired by this post from Rich Geldreich, and after coding in WebGL for more than two years, I want to make a list of all the things I hate about WebGL graphics programming. Which doesnt mean I dont like WebGL, just that there are many fields to improve that should be addressed.

Continue reading »

Coding C++ from the browser

Today I wanted to try a very basic web experiment that I had in mind for some time.
The idea was to code in C++ inside the browser and see the output right there.

compiler

Click the image to try it

If you want to know how it is done read the full entry.
Continue reading »

My first 3D animated short

Sometimes when I get tired of coding I like to change hats and do something more artistically.

Last christmas I was approached by Anna Duriez from welovestudio.com to help her to do a video for the town of Saint Malo to greet the new year.

The idea was to do a short animated video that shows a little bit the key elements of the city in a ‘christmasy’ background, but we couldnt use snow or other cliche components because Saint Malo is a coast city, so we decided to play with other elements.

Saint Malo 2014 from Javi Tamat on Vimeo.

If you want to know more about the creative process keep reading.

Continue reading »

Pleasure.js, a fork from one of my apps!

Some years ago I coded an interesting web hack for the Music Hack Day 2011, a Freesound database explorer with visual feedback. For me it was just an excuse to explore more about the Canvas element in HTML5 so after the hack I didnt continue it, although some people told me it had lots of potential.

Today I discovered that somebody took the idea and polished and now it is in github. Check it out, the result is a very clear interface. I’m glad to see that one of my ideas went beyond me.

pleasurejs

Pleasure.js by five23

My LD27 entry won the second position in Graphics!

I was surprised but my A DEUS minigame made in 48 hours won the second position (from 1400 entries) in the graphics category thanks to the public votations.

Obviously I didnt ranked so well in the rest of the categories but that encouraged me to work harder next time and achieve a better position in other categories as well.