Close up of an Armed Mine in Doom 3

Armed Mine is a creature I created for Doom 3 that uses procedural animation to drive motor-controlled physics joints. Animation-driven physics gives a lot of flexibility, but can be difficult to get right. Especially when the engine doesn't support this out of the box. Read how the Doom 3 physics engine was extended and the Armed Mine was implemented.

Horse tail prototype screenshot 1

Find out how the horse's tail physics simulation for W!Games' game 'My Horse & Me' was developed from prototype to final product, going from a many-strand technique to a more optimized skin-and-bone skeletal animation system.

Figure 2: Q-values for Gn-Q1

Although the repeated games used in the field of game theory are relatively trivial, they do allow for strategy analysis, comparison and optimization within a well-defined framework. This article reviews existing learning strategies like Q-learning and leader strategies like Godfather and Bully, extends the latter to improve on their weaknessess, and presents detailed tournament results.


To be able to see SIRDS images of moveable 3D objects (like those from the Magic Eye books), I developed an interactive and customizable SIRDS viewer, capable of generating rotatable SIRDS of 3D models at high frame rates. If you're interested in how they work, how the viewer was implemented, or just want to try it out, read on!

CamBall screenshot 1

CamBall is a virtual ball simulation that uses a cheap webcam, simple 2D physics, the OpenCV library and some creativity to augment a webcam's images with a virtual ball you can grab and throw around in real-time. Read about the used computer vision and physics techniques, see the video, or simply try it out yourself!

Boids screenshot 2

Large flocks of birds are mesmerizing to look at. With this project, I tried to capture these collective patterns using large numbers of individual virtual birds, called boids, that think independently but act like one. Based on Craig Reynolds work, I implemented and extended his model to generate flocks of 1000+ boids in real-time. Learn how.

QuadSim: front side

One way to simulate physics constraints and collisions is to use springs. It might not be the most stable solution for all applications, but it can be stable and fast enough for a lot of them. Like my (abstract looking) quad vehicle, for example, of which its traction and skidding behaviour are implicit consequences of the simulated springs in the soft-body tires.

Figure 1. Combined simulation weights for three-way interpolated Dead Reckoning

Creating mobile real-time multiplayer racing games for GPRS/UMTS networks can be extremely difficult due to the network's large latencies. Read the CGAMES 2005 paper "Behavioral Assumption-Based Prediction for High-Latency Hiding in Mobile Games" by me and R. Bidarra, and learn how position predictions and corrections can be used to cope with this problem.

FPMath icon

Mobile devices don't always come with native support for fractional or real numbers and matching math functions. During the development of Razor, I found myself in need of a small, fast and reliable math library and created FPMath, a 16.16 fixed point math library for the J2ME (Java) platform. This library has now been released and can be downloaded freely.

Razor main menu

During my internship at Ex Machina in 2005, I developed a multiplayer racing game prototype called Razor for UMTS/GPRS capable (Java) J2ME MIDP2.0 mobile phones using the Deus+ platform, together with two other people from the University of Delft.