Inverse Kinematics for Robotic Arms

After a long journey about the Mathematics of Forward Kinematics and the geometrical details of gradient descent, we are ready to finally show a working implementation for the problem of inverse kinematics. This tutorial will show how it can be applied to a robotic arm, like the one in the image below.

The other post in this series can be found here:

At the end of this post you can find a link to download all the assets and scenes necessary to replicate this tutorial. Continue reading

How to Use Shaders for Simulations

This series of tutorials will teach you how use shaders for simulations; in particular how to use them to simulate fluids. This first post will focus on how to continuously process a texture using a shader. This technique is at the heart of most simulations and will be used in this series to implement shaders that simulate smoke and liquids.


Continue reading

How to Write Native Plugins for Unity

Unity has the ability to import pieces of code written (and compiled) in other languages; they are called Native Plugins, and this tutorial will teach you how to build them.

Source codes:

Continue reading

How to generate Gaussian distributed numbers

In a¬†previous post I’ve introduced the Gaussian distribution and how it¬†is commonly found in the vast majority of natural phenomenon. It¬†can be used to dramatically improve some aspect of your game, such as procedural terrain generation, enemy health¬†and attack power, etc.¬†Despite being so ubiquitous, very few gaming frameworks offer functions to generate numbers which follow such distribution. Unity developers, for instance, heavily rely on Random.Range¬†which generates uniformly distributed numbers (in blue).¬†This post will¬†show how to generate Gaussian distributed numbers (in red)¬†in C#.


I’ll be explaining the Maths behind it, but there is no need to understand it to use the function correctly. You can download the RandomGaussian¬†Unity script here.

Continue reading

Console debugging in Unity made easy

One of the most¬†interesting feature of Unity is the ability to extend its editor and standard components. This has allowed developers all around the world to create amazing extensions which¬†dramatically improve Unity’s¬†usability. And, in some cases, compensate for its shortages. A very intriguing feature which is not-so-well known is the ability to customise the¬†messages in the debug console.¬†Rather than give you a self proclaimed ultimate solution to console debugging, this post will cover¬†different topics to help you creating¬†your own.

Continue reading

Extension methods in C#

Following the heritage of C++, C# comes with¬†a number of¬†powerful features which can¬†either be used to massively improve your code …or to make¬†it completely unreadable.¬†In this post we’ll discuss¬†a technique to¬†add new methods to already existing classes. Yes, even classes you don’t have access to such as Vector3,¬†Rigidbody¬†and even string. Let’s introduce extension methods with a practical example.

Continue reading