lucas roguski

projects repository

September 27th, 2011

This project focuses on simulating simple cellular automata on GPU using OpenCL interface.

Basically, a cellular automaton is a discrete model, consisting of regular grid of cells, where each can be in one of finite number of states. The new state (next generation) of analyzed cell is determined by designed logical rules, which usually use current cell state and state of cell’s neighborhood to generate next state value.

Sample cellular automata simulation

Project was written in C#, where OpenCL bindings were provided by Cloo framework. OpenGL was used for rendering, which bindings were provided in Tao.Framework. In this project a 3d mesh was implemented, with configurable grid size. State generation rules are implemented directly in OpenCL kernel file — OpenCL provides kernel JIT compilation, so that evolution rules can be easily modified.

Simulator window with kernel source editor

Application executable can be downloaded >here< and source code >here<.

Comments are closed.