Graphics · Programming

OpenGL experiments

Recently I have been learning basic realtime 3D graphics using OpenGL ES 2.0GLSL and C++. This is my first time coding anything more serious in 3D and also OpenGL! In theory this could run on any platform that supports OpenGL ES 2.0; ranging from PCs to Smart Phones. All of the content was used purely for learning purposes.

Cross-Platform window management using PowerVR VRShell.
Initialization of projection and view matrices with the help of GLM (OpengGL Mathematics).
Rendering 3x colored cubes using a single Vertex Buffer Object. Simple interpolating-color fragment shader.

3x Textured CubeLoading of image data using FreeImage. Rendering of three rotating and textured cubes.

Used Libraries: OpenGL ES 2.0, GLM, FreeImage, OOIS, Boost

Fun Stuff · Graphics


Twivi is a simple visualization of the Twitter universe written
using HTML5 and Java Script! Feel free to take a look at the source code.

Twivi has been tested on Google Chrome and Mozilla Firefox 4.
It won’t work on Internet Explorer 8 or lower, sorry folks!

*Removed Link, won’t work with the new Twitter API*

Graphics · XNA Framework

Fract: Real-time Shader Viewer


Fract allows you to edit shader (.fx) files written using HLSL and
immediately see the changes within Fract. It is primarily meant to create and
explore Fractals. See the “Readme Please.txt” file for further information.

Fract requires, besides a min Shader Model 3.0 graphics card, the following to be installed:
Microsoft .NET 4.0 (
Microsoft XNA 4.0 ( or Microsoft XNA 3.0 (
Fun Stuff · Graphics · Silverlight

John Conway’s Game of Life

Pulsar in the Game of Life

The Game of Life in Silverlight 4




The Game of Life is another Cellular Automata. This automata consists of a two-dimensional grid of cells. By following simple rules interesting behaviour can emerge.

The default rules are as followed:

  1. Any live (black) cell with fewer than two live neighbours dies, as if by needs caused by underpopulation.
  2. Any live (black) cell with more than three live neighbours dies, as if by overcrowding.
  3. Any dead (white) cell with exactly three live neighbours becomes an live cell.

My implementation of Conway’s Game of Life allows you to add well known starting conditions which emerge into self-repeating (oscillating), chaotic and/or self-destructive patterns. You can also toggle the state of any cell by simply clicking it.

See also:
Source Code:

Fun Stuff · Graphics · Silverlight · Uncategorized

Cellular Automata

Cellular Automata

A cellular automata consists of a grid of cells, with each cell having a number of states. The cells of the simple automata, that I’ve implemented in Silverlight, can have one of two states: On (Black) or Off (White).

Each row in the grid represents one generation (in this automata).
The state of a row depends on the state of the previous row, and so on.

A simple rule is used to generate the state of each cell of a row:
For each entry in the row we take the (N – 1th, Nth, N + 1th) cell triple
in the previous row.

Now we take this triple and use a lookup table to get the state of the entry.
Here are the lookup tables for two of the most famous patterns:

Rule 30 cellular automaton lookup table:

current pattern 111 110 101 100 011 010 001 000
new state for center cell 0 0 0 1 1 1 1 0


Rule 110 cellular automaton lookup table:

current pattern 111 110 101 100 011 010 001 000
new state for center cell 0 1 1 0 1 1 1 0

See the Wikipedia entry for more information.

Fun Stuff · Graphics · XNA Framework

Fractals on the Gpu

I finally started the long journey to learn How-To-Program-My-Own-Graphics-Card.
My choice of language was C#. And as such I’ve decided to use XNA as the graphics API. And HLSL as my shader language.

I’ve always loved fractals. My dad used to draw them using Q-Basic on his old 33 MHZ computer. A simple black-and-white colored drawing of the Mandelbrot Set took 2 (TWO) hours to execute!

Today I’ve written a colored-version that runs in real time, without any lag.
Here’s the result: