# First 100,000 digits of pi and tau: Visual representation and code

There was an interesting post on Reddit for generating a visual representation of the first 100,000 digits of $$\pi$$. I modified the code slightly use Brilliant's color palette, and made a variation for producing $$\tau.$$ I ran this code on Ubuntu Linux, but it should work on any Unix-based platform (Linux, OS X, BSD, etc), though you will have to figure out how to install dependencies yourself.

This works by generating 100,000 digits, converting them to color pixels in a 2-step process, and then generating a final image. Here's the result:

100,000 digits of pi

If you'd like to do it yourself, you will need basic command-line tools available on Unix, as well as:

• the ImageMagick toolsuite for generating the final image
• the pi utility for generating $$\pi$$ quickly; you could use $$\text{arctan}(1)\times4$$ as the original code does, but it is so slow that it never finished running on my machine and I gave up after ~30 mins.

On Ubuntu, install dependencies like this:

 1 apt-get install imagemagick pi 

Here's the original code, modified to use Brilliant colors and for faster execution:

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pi 100000 | \ tr -cd '[[:digit:]]' | \ tr '[0-9]' '[A-J]' | \ sed -e 's/A/255 102 77 /g' \ -e 's/B/252 160 74 /g' \ -e 's/C/255 225 67 /g' \ -e 's/D/103 217 76 /g' \ -e 's/E/32 210 231 /g' \ -e 's/F/39 210 231 /g' \ -e 's/G/61 153 246 /g' \ -e 's/H/12 106 199 /g' \ -e 's/I/186 51 214 /g' \ -e 's/J/249 112 191 /g' | \ cat <(echo P3 400 250 255) - | \ convert ppm:- -filter box -resize 800% pi-100k.png 

### Details on how it works:

• Generate the digits of $$\pi$$ by using the pi utility
• Trim off everything other than digits from the output
• Convert the digits to letters
• Replace the letters with RGB color codes that match the Brilliant palette
• Add a header for the Netpbm graphics format that specifies the dimensions and color properties
• And finally use the ImageMagick convert utility to produce a PNG image pi-100k.png

To produce $$\tau$$, modify the code slightly to multiply $$\pi$$ by 2 using the unix utility bc:

 1 2 3 4 echo "scale=100000;\$(pi 100000)*2" | bc | \ ... ... convert ppm:- -filter box -resize 800% tau-100k.png 

100,000 digits of tau

Pretty big difference between the two, no? =P

Can you figure out how to generate 1,000,000 digits of $$\pi$$ or $$\tau$$ as a 1000x1000 pixel square image?

Note by Anton Kriksunov
1 year, 6 months ago

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold
- bulleted- list
• bulleted
• list
1. numbered2. list
1. numbered
2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in $$...$$ or $...$ to ensure proper formatting.
2 \times 3 $$2 \times 3$$
2^{34} $$2^{34}$$
a_{i-1} $$a_{i-1}$$
\frac{2}{3} $$\frac{2}{3}$$
\sqrt{2} $$\sqrt{2}$$
\sum_{i=1}^3 $$\sum_{i=1}^3$$
\sin \theta $$\sin \theta$$
\boxed{123} $$\boxed{123}$$

Sort by:

The 3rd digit of PI seems to be wrong in image. Could someone check?

- 1 year, 5 months ago

how can I get long digits of pi in matlab?

- 1 year, 5 months ago

Hi Anton,

I actually made a site a few months ago that builds the first 500,000 digits of pi pixel by pixel.

https://simpleti.me/pi.html

This picture might be based off of it.

- 1 year, 6 months ago

I just found a way to get the value of pi: https://brilliant.org/discussions/thread/i-found-the-value-for-pi-on-my-own

- 1 year, 6 months ago