PROGRAM:RAY
:ClrDraw
:For(I,164,0,-1)
:For(J,0,264,1)
:0→A
:0→B
:1→C
:0→H
:(J–132.01)/82→X
:(82.01–I)/82→Y
:√(X²+Y²+1)→Z
:X/Z→X
:Y/Z→Y
:-1/Z→Z
:If Z²>.75
:Then
:-Z–√(Z²–.75)→D
:XD→A
:YD→B
:1+ZD→C
:8(XA+YB+ZC)→D
:X–AD→X
:Y–BD→Y
:Z–CD→Z
:1/√((A–1)²+(B–1)²+(C–1)²)→D
:D(A–1)→M
:D(B–1)→N
:D(C–1)→O
:8(AM+BN+CO)→D
:M–AD→M
:N–BD→N
:O–CD→O
:1/√(A²+B²+(C–1)²)→D
:.5+max(0,(D(O–OC–MA–NB))^5)→H
:End
:-(1+B)/Y→D
:If D≥0
:Then
:A+XD→A
:-1→B
:C+ZD→C
:.2+((fPart(1000+A)<.5)≠(fPart(1000+C)<.5))→G
:1/√((A–1)²+(B–1)²+(C–1)²)→D
:D(1–A)→X
:D(1–B)→Y
:D(1–C)→Z
:H+.5Gmax(Y,0)→H
:If (AX+BY+CZ)²+.25>A²+B²+C²
:0→H
:End
:fPart(3H)→G
:int(3H)→H
:.25+fPart(.75remainder(I,2)+.5remainder(J,2))→F
:If F≤G
:H+1→H
:If H=0
:Pxl–On(I,J,BLACK)
:If H=1
:Pxl–On(I,J,DARKGRAY)
:If H=2
:Pxl–On(I,J,GRAY)
:If H=3
:Pxl–On(I,J,MEDGRAY)
:If H=4
:Pxl–On(I,J,LTGRAY)
:If H=5
:Pxl–On(I,J,WHITE)
:End
:End