// CELLULAR AUTOMATON 2 / Golden Horizon '08.06 // by Tsutomu HIGO URL>>> http://www.asahi-net.or.jp/~nj2t-hg/ #version 3.6; global_settings { assumed_gamma 2.2 max_trace_level 5 } light_source {<-20, 10, 0> color <1, 1, 1>} #declare R1 = seed(8); #declare Nmax = 30; //90 #declare Cp = array[2*Nmax][2][int(Nmax/5)]; #declare Nx = 0; #while ( Nx < 2*Nmax ) #declare Nz = 0; #while ( Nz < int(Nmax/5) ) #declare Cp[Nx][0][Nz] = int(5.9999999*rand(R1)); #switch (Cp[Nx][0][Nz]) #case (0) #declare Cp[Nx][0][Nz] = 3; #break #case (1) #declare Cp[Nx][0][Nz] = 0; #break #case (2) #declare Cp[Nx][0][Nz] = 2; #break #case (3) #declare Cp[Nx][0][Nz] = 0; #break #case (4) #declare Cp[Nx][0][Nz] = 1; #break #case (5) #declare Cp[Nx][0][Nz] = 0; #break #end #declare Nz = Nz+1; #end #declare Nx = Nx+1; #end blob { threshold 0.3 #declare Ny = 1; #while ( Ny < 2*Nmax ) #declare Nx = 0; #while ( Nx < 2*Nmax ) #declare Nz = 0; #while (Nz < 2) #declare Cp[Nx][1][Nz] = mod(Cp[mod(Nx-1+2*Nmax, 2*Nmax)][0][Nz] +Cp[mod(Nx+1, 2*Nmax)][0][Nz] +Cp[Nx][0][mod(Nz-1+int(Nmax/5), int(Nmax/5))] +Cp[Nx][0][mod(Nz+1, int(Nmax/5))], 6); #switch (Cp[Nx][1][Nz]) #case (0) #declare Cp[Nx][1][Nz] = 3; #break #case (1) #declare Cp[Nx][1][Nz] = 0; #break #case (2) #declare Cp[Nx][1][Nz] = 2; #break #case (3) #declare Cp[Nx][1][Nz] = 0; #break #case (4) #declare Cp[Nx][1][Nz] = 1; #break #case (5) #declare Cp[Nx][1][Nz] = 0; #break #end #if( Cp[Nx][1][Nz] >0 ) sphere {, 1.5, 0.3} #end #declare Nz = Nz+1; #end #declare Nx = Nx+1; #end #declare Nx = 0; #while ( Nx < 2*Nmax ) #declare Nz = 0; #while (Nz < 2) #declare Cp[Nx][0][Nz] = Cp[Nx][1][Nz]; #declare Nz = Nz+1; #end #declare Nx = Nx+1; #end #declare Ny = Ny+1; #end pigment {color rgb <1, 0.2+0.2*Nz, 0>} finish { reflection 0.6 phong 1 brilliance 1 ambient 0.4 } no_shadow rotate x*-90 rotate y*45 } background {color rgb <0, 0, 0.2>} camera { location <0, 5, -80> angle 100 look_at <0, -20, 0> }