#version 3.7; global_settings { assumed_gamma 1.0 } background { color rgb <0.96, 0.97, 0.99> } // Camera camera { location <0, 2.2, -7.5> look_at <0, 1.3, 0> angle 35 } // Warm, soft lights light_source { <3, 6, -5> color rgb <1.00, 0.88, 0.75> area_light <1.2,0,0>, <0,0,1.2>, 5, 5 adaptive 1 jitter } light_source { <-4, 4.5, -3> color rgb <0.95, 0.82, 0.70>*0.55 area_light <1.0,0,0>, <0,0,1.0>, 4, 4 adaptive 1 jitter } // Stage floor plane { y, 0 pigment { color rgb <0.93, 0.92, 0.90> } finish { diffuse 0.85 specular 0.08 roughness 0.08 } } // Subtle back wall for depth plane { z, 2.2 pigment { color rgb <0.97, 0.96, 0.94> } finish { diffuse 0.9 specular 0.03 roughness 0.12 } } // -------------------------------------- // Calendar materials #declare Col_Frame = color rgb <0.22, 0.24, 0.28>; #declare Col_Paper = color rgb <0.99, 0.99, 0.98>; #declare Col_Red = color rgb <0.85, 0.20, 0.20>; #declare Col_Dark = color rgb <0.12, 0.12, 0.14>; #declare Col_Gold = color rgb <0.90, 0.75, 0.35>; #declare Col_Gift1 = color rgb <0.25, 0.55, 0.85>; #declare Col_Gift2 = color rgb <0.95, 0.95, 0.95>; // Calendar dimensions #declare Cal_W = 4.4; #declare Cal_H = 3.2; #declare Cal_T = 0.18; // Frame (a thin box behind paper) box { <-Cal_W/2, 0.25, -Cal_T/2>, pigment { Col_Frame } finish { diffuse 0.8 specular 0.15 roughness 0.05 } translate <0, 0.0, 0.6> } // Paper inset (fits precisely inside frame face) box { <-Cal_W/2+0.12, 0.25+0.12, -Cal_T/2+0.02>, < Cal_W/2-0.12, 0.25+Cal_H-0.12, -Cal_T/2+0.03> pigment { Col_Paper } finish { diffuse 0.9 specular 0.05 roughness 0.1 } translate <0, 0.0, 0.6> } // Top binding bar box { <-Cal_W/2, 0.25+Cal_H-0.38, -Cal_T/2-0.01>, pigment { color rgb <0.18, 0.18, 0.20> } finish { diffuse 0.75 specular 0.18 roughness 0.06 } translate <0, 0.0, 0.6> } // Two binder rings (simple torus), aligned on the bar #declare RingR = 0.12; #declare Ringr = 0.03; #declare RingY = 0.25+Cal_H-0.22; torus { RingR, Ringr rotate <90,0,0> translate <-1.2, RingY, 0.52> pigment { color rgb <0.85, 0.86, 0.88> } finish { diffuse 0.7 specular 0.35 roughness 0.03 } } torus { RingR, Ringr rotate <90,0,0> translate < 1.2, RingY, 0.52> pigment { color rgb <0.85, 0.86, 0.88> } finish { diffuse 0.7 specular 0.35 roughness 0.03 } } // -------------------------------------- // 3D "ON THIS DAY" title (block letters) #declare TitleText = text { ttf "timrom.ttf" "ON THIS DAY" 0.15, 0 pigment { Col_Dark } finish { diffuse 0.85 specular 0.12 roughness 0.06 } }; object { TitleText scale <0.45, 0.45, 0.45> translate <-1.75, 2.65, 0.44> } // -------------------------------------- // Big date badge (suggesting "special day because") #declare BadgeW = 2.3; #declare BadgeH = 1.4; #declare BadgeT = 0.12; box { <-BadgeW/2, 0, -BadgeT/2>, pigment { Col_Red } finish { diffuse 0.85 specular 0.12 roughness 0.06 } translate <0, 1.15, 0.49> } // Date number on badge #declare DateText = text { ttf "timrom.ttf" "14" 0.22, 0 pigment { color rgb <1,1,1> } finish { diffuse 0.9 specular 0.05 roughness 0.12 } }; object { DateText scale <0.9, 0.9, 0.6> translate <-0.55, 1.28, 0.44> } // Small subtitle on paper: "THIS IS SPECIAL" #declare SubText = text { ttf "timrom.ttf" "THIS IS SPECIAL" 0.12, 0 pigment { Col_Dark } finish { diffuse 0.85 specular 0.10 roughness 0.08 } }; object { SubText scale <0.35, 0.35, 0.35> translate <-1.55, 0.75, 0.44> } // -------------------------------------- // Gift box on the floor (special-day prop) #declare GiftSize = 0.9; union { // box base box { <-GiftSize/2, 0, -GiftSize/2>, pigment { Col_Gift1 } finish { diffuse 0.85 specular 0.12 roughness 0.06 } } // lid box { <-GiftSize/2*1.03, GiftSize*0.55, -GiftSize/2*1.03>, < GiftSize/2*1.03, GiftSize*0.70, GiftSize/2*1.03> pigment { color rgb <0.20, 0.48, 0.78> } finish { diffuse 0.85 specular 0.12 roughness 0.06 } } // ribbon vertical box { <-0.06, 0, -GiftSize/2*1.03>, <0.06, GiftSize*0.70, GiftSize/2*1.03> pigment { Col_Gift2 } finish { diffuse 0.85 specular 0.15 roughness 0.05 } } // ribbon horizontal box { <-GiftSize/2*1.03, GiftSize*0.30, -0.06>, pigment { Col_Gift2 } finish { diffuse 0.85 specular 0.15 roughness 0.05 } } // simple bow (two small tori) torus { 0.16, 0.04 rotate <90,0,0> translate <-0.12, GiftSize*0.72, 0> pigment { Col_Gift2 } finish { diffuse 0.85 specular 0.15 roughness 0.05 } } torus { 0.16, 0.04 rotate <90,0,0> translate < 0.12, GiftSize*0.72, 0> pigment { Col_Gift2 } finish { diffuse 0.85 specular 0.15 roughness 0.05 } } translate <2.0, 0.0, -0.2> } // A small gold star token near the gift sphere { <1.1, 0.12, -0.2>, 0.18 pigment { Col_Gold } finish { diffuse 0.75 specular 0.30 roughness 0.04 } }