Here are some programs I wrote (GPL license). They were all tested under GNU/Linux. If you make any enhancements, please let me know so I can upload them here.

Driven-Cavity Flow

This program solves the lid-driven-cavity flow problem in 2 dimensions using the stream-vorticity method. SOR (Successive Over-Relaxation) method is used in each time step to solve the discrete problem (finite differences are used). Crank-Nicolson discretization is applied to get a second-order approximation with respect to time.
You will need the SDL library for the graphics to work.

Here's a screenshot of the program in action:

To download the source tarball, click here.


This small program shows how caustics develop (if you don't know what caustics are, go here and here). As for now, the program can only show caustics formed by a semicircle and a parabola, but adding more curves shouldn't be a problem.

Here are the screenshots:

To download the source tarball click here.


This was my first program that used SDL. It paints the Mandelbrot set and lets you explore it (i.e. zoom in at any point you want). It can also paint the Julia set corresponding to a given point.

Here's the screenshot:

Click here to download the source tarball.

Wave equation

A small and simple Python program which solves the wave equation. Results are animated with the aid of the PyQT4 library.

The screenshot:

You can download it here.

There is also a Java version available.


This is a Python module that does some simple combinatorics with a given list. For example the perm function returns permutations of the list (implemented using iterators). No screenshot here! :)

Click here to get the tarball.

Finite Element Method for 2D equations

This set of Python modules solves the Poisson and Heat equations using Finite Elements. Also a solver for the system of 2D linear elasticity is included. This package has a simple mesh refinement procedure and a basic mesh visualization procedure. The solver requires SciPy and NumPy installed on the system. See the included README file for more details.

In the following screenshot a solution to the is presented. The colors represent the absolute value of the stress field, while the wired grid shows how the material deforms under the given load. This image was created using Paraview:

It can be downloaded here.

FParser 0.1

An adesklet plugin (Python code) that displays RSS feeds on your desktop. For now this is a very unstable version, so don't expect much! (tested with Slashdot and XKCD)

The screenshot:

Here is the source code.

This page is best viewed with Mozilla Firefox.