#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.06, 0.07, 0.10> } // --- Sky (sky_sphere supports pigment/normal/finish; not a texture{} wrapper) --- sky_sphere { pigment { gradient y color_map { [0.00 color rgb <0.04, 0.05, 0.08>] [0.35 color rgb <0.07, 0.08, 0.12>] [0.70 color rgb <0.15, 0.11, 0.16>] [1.00 color rgb <0.35, 0.20, 0.22>] } scale 1 } finish { emission 0 diffuse 0 } } camera { location <0.0, 1.55, -5.6> look_at <0.0, 0.65, 0.0> angle 42 } light_source { <4.5, 6.5, -6.0> color rgb <1.00, 0.92, 0.85>*1.10 area_light <0.85,0,0>, <0,0.85,0>, 5, 5 adaptive 1 jitter } light_source { <-6.0, 3.0, -2.0> color rgb <0.55, 0.70, 1.00>*0.35 } fog { fog_type 2 distance 26 color rgb <0.12, 0.12, 0.16> fog_alt 0.9 turbulence 0.08 } #declare GroundTex = texture { pigment { bozo color_map { [0.00 color rgb <0.09, 0.10, 0.12>] [0.55 color rgb <0.06, 0.07, 0.09>] [1.00 color rgb <0.03, 0.04, 0.05>] } scale 0.8 } normal { bumps 0.35 scale 0.15 } finish { diffuse 0.85 specular 0.10 roughness 0.06 } } plane { y, 0 texture { GroundTex } } #declare HillSil = difference { sphere { <0,0.0,0>, 1.0 scale <12,2.4,6> translate <0,0.8,10> } plane { y, 0.0 translate <0,0.95,0> } texture { pigment { color rgb <0.05, 0.06, 0.09> } finish { diffuse 0.4 specular 0 } } } object { HillSil } #declare MoodBall = sphere { <0, 0.75, 0>, 0.75 texture { pigment { color rgb <0.18, 0.20, 0.26> } normal { wrinkles 0.10 scale 0.25 } finish { diffuse 0.15 specular 0.85 roughness 0.02 reflection 0.22 conserve_energy } } } object { MoodBall } #declare BeamMedia = media { scattering { 1, rgb <0.22, 0.23, 0.28>*0.25 } absorption rgb <0.05, 0.05, 0.06> density { cylindrical color_map { [0.00 rgb 0.0] [0.30 rgb 0.0] [0.55 rgb 0.7] [1.00 rgb 0.0] } scale <1.0, 1.0, 1.0> } } cylinder { <4.5, 6.5, -6.0>, <0.2, 0.6, 0.4>, 1.05 open hollow texture { pigment { color rgbt 1 } } interior { media { BeamMedia } } no_shadow } #declare SmallPebbleTex = texture { pigment { color rgb <0.06, 0.065, 0.075> } finish { diffuse 0.75 specular 0.06 roughness 0.08 } } #declare S1 = seed(1234); #declare S2 = seed(5678); #declare S3 = seed(91011); #declare i = 0; #while (i < 18) #declare px = (rand(S1)*2 - 1)*2.8; #declare pz = (rand(S2)*2 - 1)*2.0 + 0.7; #declare pr = 0.05 + rand(S3)*0.08; sphere { , pr texture { SmallPebbleTex } } #declare i = i + 1; #end // Soft contact shadow / darkening under the ball disc { <0,0.001,0>, y, 1.35, 0 texture { pigment { radial color_map { [0.00 color rgbt <0.00,0.00,0.00, 0.55>] [0.35 color rgbt <0.00,0.00,0.00, 0.78>] [1.00 color rgbt <0.00,0.00,0.00, 1.00>] } scale 1.35 } finish { diffuse 0 specular 0 } } no_shadow } // A ring of subtle “thought sparks” orbiting the mood ball #declare SparkTex = texture { pigment { color rgb <0.75, 0.82, 1.00> } finish { emission 0.75 diffuse 0 } } #declare S4 = seed(2026); #declare j = 0; #while (j < 22) #declare a = 2*pi*rand(S4); #declare h = (rand(S4)*2 - 1)*0.22; #declare rr = 1.05 + rand(S4)*0.18; #declare sx = cos(a)*rr; #declare sz = sin(a)*rr; #declare sr = 0.018 + rand(S4)*0.020; sphere { , sr texture { SparkTex } no_shadow } #declare j = j + 1; #end // Distant glow to deepen the imagined mood sphere { <0.0, 2.1, 12.5>, 2.2 texture { pigment { color rgbt <0.85, 0.55, 0.60, 0.92> } finish { emission 0.55 diffuse 0 } } no_shadow }