#version 3.7; global_settings { assumed_gamma 1.3 max_trace_level 16 radiosity { pretrace_start 0.08 pretrace_end 0.01 count 200 nearest_count 10 error_bound 0.5 recursion_limit 2 low_error_factor 0.5 gray_threshold 0.0 } } background { color rgb <0.06, 0.06, 0.08> } camera { location <8.5, 6.2, -12.0> look_at <0.0, 2.0, 0.0> angle 40 up <0,9,0> right <16,0,0> // right,up -> 16:9 } light_source { <10, 12, -12> color rgb <1.00, 0.82, 0.65>*1.15 area_light <3,0,0>, <0,0,3>, 5, 5 adaptive 1 jitter } light_source { <-8, 7, -6> color rgb <1.00, 0.78, 0.62>*0.55 area_light <2,0,0>, <0,0,2>, 4, 4 adaptive 1 jitter } #declare Fin_Matte = finish { diffuse 0.85 ambient 0.0 specular 0.10 roughness 0.08 }; #declare Fin_Soft = finish { diffuse 0.90 ambient 0.0 specular 0.05 roughness 0.12 }; #declare Col_Wood = pigment { color rgb <0.72, 0.56, 0.38> }; #declare Col_Fabric = pigment { color rgb <0.35, 0.34, 0.42> }; #declare Col_Sheet = pigment { color rgb <0.76, 0.74, 0.80> }; #declare Col_Pillow = pigment { color rgb <0.82, 0.80, 0.86> }; #declare Col_Floor = pigment { color rgb <0.18, 0.16, 0.15> }; #declare Col_Skin = pigment { color rgb <0.86, 0.74, 0.60> }; #declare Col_String = pigment { color rgb <0.92, 0.92, 0.92> }; plane { y, 0 pigment { Col_Floor } finish { Fin_Soft } } #declare Bed = union { // base frame box { <-3.6, 0.35, -2.2>, < 3.6, 0.70, 2.2> pigment { Col_Wood } finish { Fin_Matte } } // legs cylinder { <-3.3, 0.0, -1.9>, <-3.3, 0.35, -1.9>, 0.12 pigment{Col_Wood} finish{Fin_Matte} } cylinder { < 3.3, 0.0, -1.9>, < 3.3, 0.35, -1.9>, 0.12 pigment{Col_Wood} finish{Fin_Matte} } cylinder { <-3.3, 0.0, 1.9>, <-3.3, 0.35, 1.9>, 0.12 pigment{Col_Wood} finish{Fin_Matte} } cylinder { < 3.3, 0.0, 1.9>, < 3.3, 0.35, 1.9>, 0.12 pigment{Col_Wood} finish{Fin_Matte} } // mattress box { <-3.4, 0.70, -2.0>, < 3.4, 1.20, 2.0> pigment { Col_Fabric } finish { Fin_Soft } } // sheet (thin layer) box { <-3.35, 1.20, -1.95>, < 3.35, 1.26, 1.95> pigment { Col_Sheet } finish { Fin_Soft } } }; object { Bed } #declare Pillow = difference { sphere { <-2.2, 1.42, -0.9>, 0.85 } sphere { <-2.65, 1.70, -1.25>, 0.75 } pigment { Col_Pillow } finish { Fin_Soft } }; object { Pillow } #declare Blanket = union { // main blanket slab over torso/legs box { <-1.2, 1.28, -0.70>, <2.6, 1.38, 1.35> pigment { Col_Sheet } finish { Fin_Soft } } // gentle folded rise near knees cylinder { <1.25, 1.28, 0.70>, <1.25, 1.38, 0.70>, 0.75 pigment { Col_Sheet } finish { Fin_Soft } scale <1.0, 1.0, 0.75> } }; object { Blanket } #declare Marionette_Rest = union { // Body centerline along +z, lying on back slightly sunk into mattress // Torso cylinder { <0.0, 1.34, -0.40>, <0.0, 1.34, 0.65>, 0.28 pigment { Col_Skin } finish { Fin_Matte } } // Head sphere { <-1.35, 1.45, -0.95>, 0.33 pigment { Col_Skin } finish { Fin_Matte } } // Neck cylinder { <-1.05, 1.40, -0.85>, <-0.75, 1.36, -0.65>, 0.10 pigment { Col_Skin } finish { Fin_Matte } } // Hips sphere { <0.05, 1.34, 0.80>, 0.30 pigment { Col_Skin } finish { Fin_Matte } } // Legs (tucked under blanket, just feet visible) cylinder { <0.10, 1.31, 0.95>, <0.10, 1.31, 1.55>, 0.12 pigment { Col_Skin } finish { Fin_Matte } } cylinder { <0.35, 1.31, 0.95>, <0.35, 1.31, 1.55>, 0.12 pigment { Col_Skin } finish { Fin_Matte } } sphere { <0.10, 1.31, 1.62>, 0.14 pigment { Col_Skin } finish { Fin_Matte } } sphere { <0.35, 1.31, 1.62>, 0.14 pigment { Col_Skin } finish { Fin_Matte } } // Arms resting at sides (partially under blanket) cylinder { <-0.10, 1.34, -0.10>, <-0.55, 1.30, 0.20>, 0.10 pigment { Col_Skin } finish { Fin_Matte } } cylinder { <-0.55, 1.30, 0.20>, <-0.85, 1.28, 0.55>, 0.09 pigment { Col_Skin } finish { Fin_Matte } } sphere { <-0.90, 1.27, 0.60>, 0.10 pigment { Col_Skin } finish { Fin_Matte } } cylinder { <0.10, 1.34, -0.10>, <0.55, 1.30, 0.20>, 0.10 pigment { Col_Skin } finish { Fin_Matte } } cylinder { <0.55, 1.30, 0.20>, <0.85, 1.28, 0.55>, 0.09 pigment { Col_Skin } finish { Fin_Matte } } sphere { <0.90, 1.27, 0.60>, 0.10 pigment { Col_Skin } finish { Fin_Matte } } // Simple marionette joints (small wooden knobs) sphere { <0.0, 1.34, -0.40>, 0.09 pigment { Col_Wood } finish { Fin_Matte } } sphere { <0.0, 1.34, 0.65>, 0.09 pigment { Col_Wood } finish { Fin_Matte } } sphere { <-0.55,1.30, 0.20>, 0.06 pigment { Col_Wood } finish { Fin_Matte } } sphere { < 0.55,1.30, 0.20>, 0.06 pigment { Col_Wood } finish { Fin_Matte } } // Strings slack (just hints) cylinder { <-1.35, 1.78, -0.95>, <-1.35, 2.25, -0.95>, 0.01 pigment { Col_String } finish { Fin_Soft } } cylinder { < 0.00, 1.65, 0.10>, < 0.00, 2.25, 0.10>, 0.01 pigment { Col_String } finish { Fin_Soft } } }; object { Marionette_Rest } #declare DreamBubble = sphere { <0,0,0>, 1 pigment { color rgbt <0.75, 0.85, 1.00, 0.70> } finish { diffuse 0.15 specular 0.35 roughness 0.03 } }; union { object { DreamBubble scale 0.45 translate <-2.2, 2.55, -1.10> } object { DreamBubble scale 0.25 translate <-1.75, 2.35, -0.85> } object { DreamBubble scale 0.18 translate <-1.45, 2.15, -0.70> } object { DreamBubble scale 0.55 translate <-1.1, 3.05, -0.65> } object { DreamBubble scale 0.35 translate <-0.5, 3.35, -0.20> } object { DreamBubble scale 0.28 translate < 0.2, 3.10, 0.20> } // A simple "dream symbol" inside a bubble (moon-like) difference { sphere { <-1.1, 3.05, -0.65>, 0.20 } sphere { <-1.0, 3.08, -0.60>, 0.18 } pigment { color rgbt <1.00, 0.95, 0.75, 0.35> } finish { diffuse 0.25 specular 0.25 roughness 0.05 } } }