This is a project I started in August 2022 in order to visualise millions of digits of Pi.
Users can choose a visualiser and choose their own settings using the settings GUI:
I found that python's inbuilt Turtle was slow and didn't offer the level of control/customisation I needed, so I built a faster version called the Hare. The Hare allows for more granularity over skipping frames, drawing speeds, and is much faster than the Turtle.
The orbital visualiser is a rough emulation of two bodies orbiting a central star. Lines are drawn between the two orbiting bodies at a given interval (in this case 314 - the first 3 digits of Pi). Orbits are determined by a distance to the sun (radius) and a speed which are plugged into basic sin/cos equations to produce circular motion. The pixel visualiser produces an outward-moving square spiral. The colour, size and distance offset of each 'pixel' can be linked to each successive digit of Pi. This was the first visualiser I created. The sandpile visualiser is a self-organising criticality simulator based upon the Abelian sandpile model. In this version, 31415 'grains' of sand are placed in the central cell. You can learn more about Abelian Sandpiles here: https://www.youtube.com/watch?v=1MtEUErz7Gg The spiral visualiser works in a similar way to the Pixel visualiser except for the fact that it uses a perfect spiral to create visualisations. Often visualisations look like galaxies or sunflowers (especially when the angular offset is close to the golden ratio of 1: 1.1168). The turtle visualiser uses a 'turtle' object which creates lines based upon the path it takes. The angle at which it turns is based upon the digit of Pi given to it. This means that Pi can be 'mapped out'. The waveform visualiser prints each digit of Pi line by line. Each digit is represented by a coloured square whose position, colour, and size can depend on the corresponding digit of Pi. The web visualiser maps the path of Pi and the prevelence of connections between digits. The visualiser features the digits 0-9 in a circle. For each sequence of digits, a line is drawn from the first digit to the next. This creates 'web' patterns.