I started this site in October 2004 with the intention of making it a resource for people who want to better understand the physical world by simulating it on a computer.

For each aspect of the physical world covered, the site is divided into two sections. One section details the components of the physical world and how they are simulated. The second, details the framework required to build and control a simulation of the world.

In most fields of computer simulation there are commercial software packages that enable the user to create increasingly more accurate computer models of the field, so what's the purpose of this site then? Well, my intention is that this site will be helpful to those who want to know how simulators work; to those interested in the simulation fields covered, (as a Chinese proverb says "Tell me, I'll forget. Show me, I'll remember. Involve me, I'll understand", so developing a simulator, even if it's not perfect and then experimenting with it, is a great way to turn textbook theory into knowledge); or those who need to do some "rough calculations" and can't justify the cost of using a commercial package.

Currently this site is run by one person, and it's not my full time job, and so the development of this site will unfortunately be rather slow. If you have developed a web site or know of one that provides information that's missing from this site, or you can suggest improvements, please e-mail me and let me know about it, (however please note the licensing terms).

This site includes details on the numerical methods and the software implementation of them, that are required to develop the simulation systems. These are presented in their own section, as often they are required in more than one simulation field.

I've also put up a section on C++ "pointers" for C++ techniques I had difficulty getting information on.

The site includes a list and reviews of books that have been helpful, or not, in the development of this site.

In keeping with the DIY and engineering basis to this site, the programs are developed using GNU C++ on Linux. Don't worry if you don't have access to a Linux box, the CYGWIN project supports an excellent Linux emulator, including GNU compiler, for Windows. Some JAVA and QT programming is used for developing user interfaces. Where appropriate, Calc will be used for algorithm prototyping.

Important Notice
While every effort is made to ensure the accuracy of the information on this site, the authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information therein.

The software provided on this site is distributed under the GNU General Public Licence, (GPL). You should review the GNU GPL to know your rights regarding the modification, copying and distribution of the software and to be informed that under the GPL the software is distributed with NO WARRANTY.

Last modified 17 Oct 09