// Pentatope of 70 spheres POV-Ray source by Blotwell
// Uploaded to Wikimedia Commons
// and released under GPL
//
// Render frames 0 through 43 (43 is blank)
#max_trace_level 15
#declare sq = 1/sqrt(2);
#declare T = ((clock-5)/4)*sq;
#declare vx = <2,0,0>;
#declare vy = <1,0,1>;
#declare vw = <1,0,-1>;
#declare vz = <1,sqrt(5/2),0>;
#declare my_sphere_1 =
sphere { <0,0,0>,1 pigment { color rgbf <.9,1,.9,.9> }
finish { refraction 1 ior 1.2 } };
#declare my_sphere_2 =
sphere { <0,0,0>,1 pigment { color rgbf <.9,.9,1,.9> }
finish { refraction 1 ior 1.2 } };
#declare my_sphere_3 =
sphere { <0,0,0>,1 pigment { color rgbf <1,1,.8,.9> }
finish { refraction 1 ior 1.2 } };
#declare my_sphere_4 =
sphere { <0,0,0>,1 pigment { color rgbf <1,.9,.9,.9> }
finish { refraction 1 ior 1.2 } };
#declare my_sphere_5 =
sphere { <0,0,0>,1 pigment { color rgbf <.9,.9,.9,.9> }
finish { refraction 1 ior 1.2 } };
camera {
location <-8,15,-12>-4*vz
right <2/3,0,0>
up <0,1/2,0>
look_at 4*vz-<0,3,0>
}
light_source {vx*10+<0,10,0> color rgb <1,1,1>}
light_source {vy*10+<0,10,0> color rgb <1,1,1>}
plane { <0,1,0>, 0
finish {ambient 0.2}
pigment { marble turbulence 1
color_map { [0.0 rgb 1] [0.9 rgb 0.9] [1.0 rgb <0.6,0.5,0.5>] }
scale 6 } }
plane { <0,-1,0>, -12
finish {ambient 1}
pigment { color rgb <.6,.6,.8> } }
union {
#declare www=0; #while (www<5)
#declare exe=0; #while (exe<5-www)
#declare wye=0; #while (wye<5-www-exe)
#declare tee=(www+wye)*sq*2; #if (tee-1<T) #if (tee+1>T)
object {my_sphere_1 scale sqrt(1-(T-tee)*(T-tee)) translate y+www*vw+exe*vx+wye*vy}
#end #end
#declare wye=wye+1; #end #declare exe=exe+1; #end #declare www=www+1; #end
#declare www=0; #while (www<4)
#declare exe=0; #while (exe<4-www)
#declare wye=0; #while (wye<4-www-exe)
#declare tee=(www+wye)*sq*2+sq; #if (tee-1<T) #if (tee+1>T)
object {my_sphere_2 scale sqrt(1-(T-tee)*(T-tee)) translate y+vz+www*vw+exe*vx+wye*vy}
#end #end
#declare wye=wye+1; #end #declare exe=exe+1; #end #declare www=www+1; #end
#declare www=0; #while (www<3)
#declare exe=0; #while (exe<3-www)
#declare wye=0; #while (wye<3-www-exe)
#declare tee=(www+wye)*sq*2+2*sq; #if (tee-1<T) #if (tee+1>T)
object {my_sphere_3 scale sqrt(1-(T-tee)*(T-tee)) translate y+2*vz+www*vw+exe*vx+wye*vy}
#end #end
#declare wye=wye+1; #end #declare exe=exe+1; #end #declare www=www+1; #end
#declare www=0; #while (www<2)
#declare exe=0; #while (exe<2-www)
#declare wye=0; #while (wye<2-www-exe)
#declare tee=(www+wye)*sq*2+3*sq; #if (tee-1<T) #if (tee+1>T)
object {my_sphere_4 scale sqrt(1-(T-tee)*(T-tee)) translate y+3*vz+www*vw+exe*vx+wye*vy}
#end #end
#declare wye=wye+1; #end #declare exe=exe+1; #end #declare www=www+1; #end
#declare www=0; #while (www<1)
#declare exe=0; #while (exe<1-www)
#declare wye=0; #while (wye<1-www-exe)
#declare tee=(www+wye)*sq*2+4*sq; #if (tee-1<T) #if (tee+1>T)
object {my_sphere_5 scale sqrt(1-(T-tee)*(T-tee)) translate y+4*vz+www*vw+exe*vx+wye*vy}
#end #end
#declare wye=wye+1; #end #declare exe=exe+1; #end #declare www=www+1; #end
}