Game of Life
John Conway's "Game of Life" is a cellular automaton. It shows how complex patterns and shapes can be created from a simulation with just a few rules.
In today's fast-paced and technology-driven world, programming has become an essential skill. While the primary purpose of programming is often associated with developing software applications, there is another side to this discipline that goes beyond traditional coding practices. Enter recreational programming—an enchanting realm where creativity, problem-solving, and sheer enjoyment come together in the world of code.
Home computers were a class of microcomputers that emerged in the 1970's. They were relatively inexpensive and therefore became popular in the 1980's. The computers of the early days were usually 8 bit machines (i.e. Amstrad CPC, Commodore C64, ZX Spectrum, Atari XT, Apple II). In some cases they were later superseded by 16 bit models (i.e. Commodore Amiga or the Atari ST) but the golden days of home computing were the days of the 8 bit machines. Those were the times when you manually typed in the source code found in Magazines and marvelled at a few colored (or green) pixels on your computer screen. It was common to develop a good set of programming skills just by playing with the machine. You learned the basics of programming.
Even if you could buy programs on diskette or cassette for your home computer, the process of loading and executing those programs was not as straightforward as clicking an icon or tapping a screen. It required a basic understanding of the computer's operating system and the specific commands needed to transfer the program from the storage medium to the computer's memory.
Home computers were practically standardized, all models in a series had the same graphics, the same speed and had the same operating system. If you wanted an operating system update, you had to replace a chip on the board. This standardization had an advantage as it was easy to write programs that ran on all computers of a manufacturer or at least a certain series. The programming hurdle was much lower than today. Graphics could be drawn on the screen with just a few lines of source code. Many programmers learned with these devices. What many modern programming languages sometimes lack is this simplicity. The goal of this site is to recreate the joy of programming on a home computer, harking back to a time when simplicity and creativity were intertwined.
Python is a programming language developed by Guido van Rossum in 1991. With Python, you can quickly write computer programs and run them on a variety of different platforms. It is now one of the best known and most popular programming languages and it is easy to learn. The reason why Python was chosen as the programming language here is that it comes very close to the experience of home computer programming.
John Conway's "Game of Life" is a cellular automaton. It shows how complex patterns and shapes can be created from a simulation with just a few rules.
The chaos game is a simple algorithm for generating fractals. It was invented by Michael Barnsley. The version implemented here creates a multitude of different patterns with an iterative random algorithm.
One way to create fractals is to use recursive functions. The algorithm presented here constructs the Sierpinski triangle and other interesting fractals.
Simulation of water waves by numerically solving the two-dimensional wave equation using the finite difference method.
Simulation of wave propagation in a three dimensional space by means of solving the wave equation using the finite difference method.