I built my own business card raytracer in Rust, because why not

· Reading time: 16 mins

As you may know, and if you're reading this chances are you do, there's this post that's been roaming around for 7 years and periodically resurfaces. It refers to a code golfing challenge dating back in 1984, a few years before I was born. Its rules asked to build a raytracer in C with certain features and functions and shading models. Among those, Andrew Kensler's version, checking in at 1337 bytes, stood out and became world-wide renowned (for good reasons, if you ask me). This was its output.

Sekiro practice tool: the architecture

· Reading time: 11 mins

I have recently (well, since forever) been working on a number of practice tools for speedruns. I must have rewritten the Dark Souls III practice tool from scratch no less than three or four times, and not a single time have I been completely satisfied with the results, in terms of features, user experience and reliability. Though, as I've also been working on practice tools for Sekiro, I believe I have finally found a satisfying setup after much experimentation.

Pokémon Go Feature detection with OpenCV2

· Reading time: 6 mins

This is my first post in ages. What can I say! I've been too busy studying finance and working to devote much time to writing code for fun. I've found some form of balance as of late, though, and a new drive to discover things, and I've gotten back to the grind.

Shape grammars and the Sierpinski triangle

· Reading time: 4 mins

In the last few weeks I've been working on my thesis on procedural content generation and came across the concept of shape grammars in the context of urban and architectural modeling.

FEZ: engine algorithms and ideas

· Reading time: 4 mins

Yesterday I played for the first time Polytron's FEZ. Graphics and design are amazing, but what truly struck me was the way the game switched between the 2D and 3D "looks". It was truly inspiring, so I decided to spend a little time understanding and recreating the world rotation engine.

Thema Regium, math rock and procedurally generated sound

· Reading time: 4 mins

No big secret, I'm a huge fan of procedural content generation. I'm also a big fan of Johann Sebastian Bach and his Musikalisches Opfer, whose fascinating story I came to know thanks to D.R. Hofstader's "Gödel, Escher, Bach: an Eternal Golden Braid".

Learning Haskell with Venu: Cellular automata

· Reading time: 4 mins

Lately I've been experimenting a lot with a number of CG and procedural content generation algorithms, and began feeling the need for mathematical rigour over the practical, "real life situation" style I've been used to by writing Javascript day in, day out. I got to a point where simple simulations required way more boilerplate code than I was willing to write, and the usage of native numeric constructs began getting in the way of performance.

Implementing Skeletal Animation

· Reading time: 11 mins

Skeletal animation is a technique that allows for fast, efficient animation of 3D models. In this post I'm going to explain the concepts and my implementation for the GPU matrix palette skinning algorithm in WebGL. Skeletal animation is quite complex and I struggled to find a guide that explained clearly what was going on, or that didn't waste too much time around language-specifics or code engineering making it quite hard to connect the dots in a simple way, so I hope I can manage to keep it simple enough.

Implementing Keyframe Animation

· Reading time: 20 mins

In this post I will show you the way I implemented a keyframe-based 3D real time animation using WebGL. Familiarity with the WebGL / OpenGL rendering pipeline, and with linear algebra is necessary. There don't seem to be many well-made explainations online about real time 3D animation with WebGL which aren't involving Three.js and COLLADA so I hope that this will be useful for those who wish to program their own animations.

A little fun with LeapMotion

· Reading time: 3 mins

I recently bought a LeapMotion. It's a great little tool, although interacting with it has somewhat of a learning curve. The API on the other hand has quite a beautiful design, is very well documented and a couple of minutes of reading are enough to get started.

JS1k 2014: Post-mortem

· Reading time: 9 mins

This year I discovered the JS1k code competition just in time for me to submit an entry. I'm not really new at doing ugly things with source code, but this time it was quite different. Perl is one of the quirkiest things I've ever put my hands on, and back in the day when I was scripting day in and day out with it I was happy like a child (well, I was practically a child after all); my Javascript coding skills came through a much more professional context though, so I'm better at being a nice guy and writing clean code than anything else.

Hello, world!

· Reading time: 3 mins

I started this blog because I recently stumbled across the beautiful world of graphics programming, and thought that maybe for once sharing my learning process could be useful to somebody, somewhere in the world.