// CELLULAR AUTOMATON 2 / Plane Pattern Red '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 4 } light_source {<0, 100, -80> color <1, 1, 1>} camera { location <-0.5, 47, -200> angle 36 look_at <-0.5, 47, 0> } #declare R1 = seed(3); #declare Nmay = 78; #declare Nmax = 62; #declare Cp = array[2*Nmax][2] #declare Nx = 0; #while ( Nx < 2*Nmax ) #declare Cp[Nx][0] = int(5.9999999*rand(R1)); #switch ( Cp[Nx][0] ) #case (0) #declare Cp[Nx][0] = 0; #break #case (1) #declare Cp[Nx][0] = 2; #break #case (2) #declare Cp[Nx][0] = 0; #break #case (3) #declare Cp[Nx][0] = 1; #break #case (4) #declare Cp[Nx][0] = 1; #break #case (5) #declare Cp[Nx][0] = 2; #break #end #declare Nx = Nx+1; #end blob { threshold 0.3 #declare Ny = 1; #while (Ny < Nmay) #declare Nx = 0; #while (Nx < 2*Nmax) #declare Cp[Nx][1] = mod(Cp[mod(Nx-1+2*Nmax, 2*Nmax)][0] +Cp[mod(Nx+1, 2*Nmax)][0]+Cp[Nx][0],6); #switch ( Cp[Nx][1] ) #case (0) #declare Cp[Nx][1] = 0; #break #case (1) #declare Cp[Nx][1] = 2; #break #case (2) #declare Cp[Nx][1] = 0; #break #case (3) #declare Cp[Nx][1] = 1; #break #case (4) #declare Cp[Nx][1] = 1; #break #case (5) #declare Cp[Nx][1] = 2; #break #end #if( Cp[Nx][1] = 1 ) sphere {, 1.5, 2} #end #if( Cp[Nx][1] = 2 ) sphere {, 0.7, 1} #end #declare Nx = Nx+1; #end #declare Nx = 0; #while ( Nx < 2*Nmax ) #declare Cp[Nx][0] = Cp[Nx][1]; #declare Nx = Nx+1; #end #declare Ny = Ny+1; #end pigment {color rgb <1, 0.2, 0>} finish { reflection 0.8 phong 1 brilliance 1 ambient 0.3 } no_shadow } background {color rgb <0, 0, 0.3>}