@JosephBburg It would be a challenge to do! I don’t have a printer for that though…

@Paponetman What ideas would you have?

@Nicholas_A The code is not written great… but yes, you can have it: The program should run in the IDLE, to get the obj file to import properly, you will need to check ‘Keep Vert Order’. Then You can convert it to a curve so you can have a solid shape.

```
from decimal import *
import math
import sys
import time
from functools import lru_cache as cache
cache(maxsize=None)
sys.setrecursionlimit(25000)
numberOfPi = int(input("Number of Pie "))
getcontext().prec = numberOfPi
def factorial(n):
if n<1:
return 1
else:
return n * factorial(n-1)
def chudnovskyBig(n): #http://en.wikipedia.org/wiki/Chudnovsky_algorithm http://blog.recursiveprocess.com/2013/03/14/calculate-pi-with-python/
pi = Decimal(0)
k = 0
while k < n:
pi += (Decimal(-1)**k)*(Decimal(factorial(6*k))/((factorial(k)**3)*(factorial(3*k)))* (13591409+545140134*k)/(640320**(3*k)))
k += 1
if(k == numberOfPi/2):
print("Half Done")
pi = pi * Decimal(10005).sqrt()/4270934400
pi = pi**(-1)
#print(pi)
ToOBJ(pi)
return pi
def ToOBJ (p):
text_file = open("PiSculpture.obj", "w")
OBJ =''
ArPi = (list(str(p)))
ArPi.remove('.');
PrevV = (0,0,0)
SaveObj= 0
LsOBJ = [0,0]
ler = 0
for index in range(0,len(ArPi)):
w = 10
h = 0.01
# x = Radius * cos( 360 - (last x) + 36* (Pi Decimal))
LsOBJ = [w*math.cos(math.radians(360-LsOBJ[0]+(36*int(ArPi[index])))),(w*math.sin(math.radians(360-LsOBJ[0]+(36*int(ArPi[index])))))]
OBJ = OBJ +'
v ' + str(LsOBJ[0]) + ' ' + str(index*h + (int(ArPi[index])/100)) +' ' + str(LsOBJ[1])
ls = ''
print('Half done .obj')
for ler in range(0,len(ArPi)):
ler +=1
ls = ls + ('
l ' + str(ler) +' ' + str(ler+1))
text_file.write('o Pi 3D Shape
' + str(OBJ) +str(ls))
print('Saved')
text_file.close()
start = time.clock()
chudnovskyBig(int(0.069793*numberOfPi+0.732175)+6)
print ("Time take to do everything is : " + str(time.clock() - start))
```