camera { angle 30 location <10, 10, 11> look_at <0, 0, 1> } light_source { <0, 0, 10> <1.0, 1.0, 1.0> spotlight radius 10 falloff 15 point_at <0, 0, 1> } light_source { <10, 0, 1> <1.0, 1.0, 1.0> spotlight radius 10 falloff 15 point_at <0, 0, 1> } light_source { <0, 10, 1> <1.0, 1.0, 1.0> spotlight radius 10 falloff 15 point_at <0, 0, 1> } box { <-2, -2, -2> <100, 100, 100> hollow pigment { rgb <1.0, 1.0, 1.0> } } #declare init = union { prism { linear_spline linear_sweep -0.001 2.001 9 <0.000, 0.000>, <0.250, 0.000>, <0.375, 0.250>, <0.750, 0.250>, <0.750, 0.000>, <1.000, 0.000>, <1.000, 1.000>, <0.500, 1.000>, <0.000, 0.000> translate <-0.5, -1.0, -0.5> } prism { linear_spline linear_sweep -0.001 2.001 9 <0.000, 0.000>, <0.600, 0.000>, <1.000, 1.000>, <0.750, 1.000>, <0.450, 0.250>, <0.250, 0.250>, <0.250, 1.000>, <0.000, 1.000>, <0.000, 0.000> translate <-0.5, -1.0, -0.5> rotate <-90, 0, 180> } prism { linear_spline linear_sweep -0.001 2.001 12 <0.000, 0.000>, <0.250, 0.000>, <0.250, 0.333>, <0.667, 0.000>, <1.000, 0.000>, <0.375, 0.500>, <1.000, 1.000>, <0.667, 1.000>, <0.250, 0.667>, <0.250, 1.000>, <0.000, 1.000>, <0.000, 0.000> translate <-0.5, -1.0, -0.5> rotate <0, 0, -90> } rotate <-90, -90, 0> } #declare pegs = union { cylinder { <-0.75, -0.75, -0.5> <-0.75, -0.75, 0.5> 0.125 } cylinder { <-0.75, 0.75, -0.5> <-0.75, 0.75, 0.5> 0.125 } cylinder { <0.75, -0.75, -0.5> <0.75, -0.75, 0.5> 0.125 } cylinder { <0.75, 0.75, -0.5> <0.75, 0.75, 0.5> 0.125 } } merge { difference { box { <-1.0, -1.0, -1.0> <1.0, 1.0, 0.0> } object { init } } object { pegs } pigment { rgbf <1.0, 0.8, 0.6, 1.0> } finish { reflection 1.0 } } difference { difference { box { <-1.0, -1.0, 0.0> <1.0, 1.0, 1.0> } object { init } } object { pegs } translate <0.0, 0.0, 2.0> pigment { rgbf <1.0, 0.8, 0.6, 1.0> } finish { reflection 1.0 } }