sky_sphere {
   pigment {
      color rgb <0.054902, 0.054902, 0.0627451>
   }
}

global_settings {
   adc_bailout 0.0039216
   assumed_gamma 1.5
   noise_generator 1
}

fog {
   fog_type 2
   distance 40
    rgb <0.294118, 0.180392, 0.145098> 
   turbulence <1, 1, 1>
   lambda 0
   fog_offset 2.5
   fog_alt 3
   up <0, 1, 0>
   rotate <0, 0, 0>
   translate <0, 0, 0>
}

fog {
   fog_type 2
   distance 80
    rgb <0.32549, 0.231373, 0.203922> 
   turbulence <1, 1, 1>
   lambda 0
   fog_offset 3
   fog_alt 2
   up <0, 1, 0>
   rotate <0, 0, 0>
   translate <0, 0, 0>
}

light_source {
   <-0.0029667, 16.0258, 18.7132>, rgb <1, 0.92157, 0.67>
   fade_distance 5
   fade_power 1
}

camera {
   perspective
   location <4.46041, 4.9962, -11.6264>
   sky <0, 1, 0>
   direction <0, 0, 1>
   right <1.33333, 0, 0>
   up <0, 1, 0>
   look_at <-0.0537001, -0.207973, 0.21494>
}

#declare Marble1 = texture {
   normal {
      dents
      0.5
      bump_size 0.5
   }
   
   finish {
      ambient rgb <0.419608, 0.419608, 0.419608>
      diffuse 0.8
      brilliance 3
      specular 0.25
      roughness 0.001
      
      reflection {
         rgb <0, 0, 0>, rgb <0.568627, 0.568627, 0.568627>
         exponent 5
      }
   }
   
   pigment {
      marble
      turbulence <1, 1, 1>
      octaves 7
      omega 0.55
      
      color_map {
         [ 0 color rgb <0, 0.0352941, 0.188235>
         ]
         [ 0.2 color rgb <0.0823529, 0.270588, 0.788235>
         ]
         [ 0.4 color rgb <0, 0.0392157, 0.207843>
         ]
         [ 0.8 color rgb <0.0666667, 0.196078, 0.556863>
         ]
         [ 0.9 color rgb <0.286275, 0.588235, 0.956863>
         ]
         [ 1 color rgb <0, 0.13, 0.71>
         ]
      }
   }
   scale 0.1
}

#declare Marble2 = texture {
   finish {
      ambient rgb <1, 1, 1>
      diffuse 0.8
      brilliance 3
      specular 0.25
      roughness 0.001
      
      reflection {
         rgb <0, 0, 0>, rgb <0.490196, 0.490196, 0.490196>
         exponent 2
      }
   }
   
   pigment {
      color rgb <0.294118, 0.603922, 0.760784>
   }
   scale 0.1
}

#declare table_base = merge {
   torus {
      2.5, 0.1
      sturm
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   cylinder {
      <0, 0.1, 0>, <0, -0.1, 0>, 2.5
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
}

#declare inlay_center = sphere_sweep {
   cubic_spline,
   11,
   <-2, -0.03, -0.22>,0
   <-3, -3.7632e-16, 2>,0
   <-1.6, -0.06, 3>,0.19
   <-0.35, -0.05, 2.4>,0.3
   <0, 0, 1>,0.31
   <0, 0, 0>,0.3
   <0, 0, -1>,0.31
   <0.35, -0.05, -2.41>,0.29
   <1.6, 0.06, -3.05>,0.2
   <3, 0.03, -2>,0
   <2, -0.08, 0.22792>,0
}

#declare inlay_peri = prism {
   cubic_spline
   linear_sweep
   -0.15, 0.15,
   11,
   <-1.9604, 1.1037>, <-1.4638, 0.62585>, <-0.83848, 0.82496>, <-0.42908, 0.53262>, <-0.82496, 0.70885>, <-1.2074, 0.52691>, <-1.5069, 0.51955>, <-1.6916, 0.6462>, <-1.5776, 1.1469>, <-1.4638, 0.62585>, <-0.090655, 1.22>
   sturm
   translate <-0.283554, 0, 0.103286>
   scale 2
   rotate y*4.9
}

#declare inlay_pattern = merge {
   torus {
      5.5, 0.3
      sturm
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      //*PMName center
      inlay_center
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      //*PMName center
      inlay_center
      scale 1
      rotate y*120
      translate <0, 0, 0>
   }
   
   object {
      //*PMName center
      inlay_center
      scale 1
      rotate y*240
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate y*60
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate y*120
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate y*180
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate y*240
      translate <0, 0, 0>
   }
   
   object {
      //*PMName peri
      inlay_peri
      scale 1
      rotate y*300
      translate <0, 0, 0>
   }
   scale 0.4
   translate y*0.1
}

#declare glass = material {
   interior {
      ior 1.3
   }
   
   texture {
      finish {
         ambient rgb <0.141176, 0.141176, 0.141176>
         brilliance 1
         specular 0.2
         
         reflection {
            rgb <0.537255, 0.537255, 0.537255>
         }
      }
      
      pigment {
         color rgb <0.537255, 0.807843, 0.345098>
      }
   }
}

#declare glass2 = material {
   texture {
      //*PMRawBegin
      normal { bumps 0.2 scale 0.1 }
      //*PMRawEnd
      
      finish {
         diffuse 0.1
         brilliance 0.5
         phong 1
         phong_size 200
         specular 0.6
         roughness 0.05
         
         reflection {
            rgb <0.0313725, 0.294118, 0.388235>
         }
      }
      
      pigment {
         color rgbt <0.729412, 0.784314, 0.929412, 0.9>
      }
   }
   
   interior {
      media {
         intervals 1
         samples 1,5
         emission rgb <0.870588, 0.45098, 0.513725>
      }
      ior 1.2
      caustics 1
   }
}

#declare haze1 = material {
   texture {
      pigment {
         agate
         agate_turb 0.9
         scale 0.5
         
         pigment_map {
            [ 0 color rgbft <0.25098, 0.82745, 0.81961, 0.2, 0.8>
            ]
            [ 0.33 color rgbt <0, 0.91765, 0, 1>
            ]
            [ 0.75 color rgbft <0.78824, 1, 0.39216, 0.2, 0.8>
            ]
         }
      }
   }
   
   interior {
      media {
         density {
            bozo
            scale 0.5
            
            color_map {
               [ 0 color rgbt <0, 0, 0, 1>
               ]
               [ 0.3 color rgbt <0, 0, 0, 1>
               ]
               [ 0.4 color rgbft <0.2902, 0.71373, 0.68627, 0.6, 0.1>
               ]
               [ 0.5 color rgbt <1, 1, 1, 0.2>
               ]
               [ 0.6 color rgbft <0.2902, 0.71373, 0.68627, 0.6, 0.1>
               ]
               [ 0.7 color rgbt <0, 0, 0, 1>
               ]
               [ 1 color rgbt <0, 0, 0, 1>
               ]
            }
         }
         absorption rgb <1, 1, 1>
         emission rgb <1, 1, 1>
      }
   }
}

#declare haze2_dense = material {
   texture {
      crackle
      
      texture_map {
         [ 0 pigment {
            color rgbft <0, 0, 0, 1, 1>
         }
         ]
         [ 0.1 finish {
            ambient rgb <0, 0.596078, 0.584314>
         }
         
         pigment {
            color rgbf <0, 1, 0.93333, 0.5>
         }
         ]
         [ 0.2 pigment {
            color rgbft <0, 0, 0, 1, 1>
         }
         ]
      }
   }
   
   interior {
      media {
         density {
            bozo
            scale 0.5
            
            color_map {
               [ 0 color rgb <1, 1, 1>
               ]
               [ 0.2 color rgbft <0.407843, 1, 0.960784, 0.6, 0.1>
               ]
               [ 0.5 color rgb <1, 1, 1>
               ]
               [ 0.8 color rgbft <0.407843, 1, 0.960784, 0.6, 0.1>
               ]
               [ 1 color rgb <1, 1, 1>
               ]
            }
         }
         emission rgb <1.5, 2, 2>
      }
   }
}

difference {
   //*PMName table
   
   object {
      table_base
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      inlay_pattern
   }
   
   texture {
      Marble1
      rotate <90, 90, 0>
      translate <-0.5, 0, 0.5>
      scale 5
   }
   scale 1.5
   translate y*(-1)
   rotate y*30
}

intersection {
   //*PMName inlay
   
   object {
      table_base
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      inlay_pattern
   }
   
   material {
      haze2_dense
   }
   scale 1.5
   translate y*(-1)
   rotate y*30
   hollow
}

torus {
   2.9829, 0.33291
   sturm
   
   material {
      haze1
   }
   scale 1.5
   rotate <0, 0, 0>
   translate y*(-0.9)
   no_shadow
   hollow
}

#declare rock = texture {
   finish {
      ambient rgb <0.4, 0.419608, 0.164706>
      diffuse 0.6
      specular 0.1
      roughness 0.05
      
      reflection {
         rgb <0.32549, 0.32549, 0.32549>
      }
   }
   //*PMRawBegin
   # normal { bumps 1.0 scale 0.07 }
   //*PMRawEnd
   scale 2
   
   pigment {
      granite
      
      color_map {
         [ 0 color rgb <0.470588, 0.454902, 0.423529>
         ]
         [ 0.1 color rgb <0.584314, 0.576471, 0.564706>
         ]
         [ 0.2 color rgb <0.619608, 0.568627, 0.501961>
         ]
         [ 0.35 color rgb <0.490196, 0.490196, 0.470588>
         ]
         [ 0.7 color rgb <0.509804, 0.509804, 0.419608>
         ]
         [ 1 color rgb <0.47, 0.45, 0.42>
         ]
      }
   }
}

#declare rock2 = texture {
   finish {
      ambient rgb <0.19, 0.19, 0.19>
      diffuse 0.8
   }
   //*PMRawBegin
   /*  normal { bumps 1.0 scale 0.07 }  */
   //*PMRawEnd
   scale 0.25
   
   pigment {
      granite
      turbulence <0.5, 0.5, 0.5>
      
      color_map {
         [ 0 color rgb <0.654902, 0.619608, 0.447059>
         ]
         [ 0.1 color rgb <0.247059, 0.247059, 0.247059>
         ]
         [ 0.2 color rgb <0.619608, 0.568627, 0.501961>
         ]
         [ 0.35 color rgb <1, 0.827451, 0.639216>
         ]
         [ 0.7 color rgb <0.509804, 0.509804, 0.419608>
         ]
         [ 1 color rgb <0.47, 0.45, 0.42>
         ]
      }
   }
}

#declare rock2l = texture {
   finish {
      ambient rgb <0.19, 0.19, 0.19>
      diffuse 0.8
   }
   //*PMRawBegin
   /*  normal { bumps 1.0 scale 0.07 }  */
   //*PMRawEnd
   scale 2
   
   pigment {
      granite
      turbulence <0.5, 0.5, 0.5>
      
      color_map {
         [ 0 color rgb <0.654902, 0.619608, 0.447059>
         ]
         [ 0.1 color rgb <0.247059, 0.247059, 0.247059>
         ]
         [ 0.2 color rgb <0.619608, 0.568627, 0.501961>
         ]
         [ 0.35 color rgb <1, 0.827451, 0.639216>
         ]
         [ 0.7 color rgb <0.509804, 0.509804, 0.419608>
         ]
         [ 1 color rgb <0.47, 0.45, 0.42>
         ]
      }
   }
}

#declare rock3 = texture {
   finish {
      ambient rgb <0.19, 0.19, 0.19>
      diffuse 0.8
   }
   //*PMRawBegin
   /*  normal { bumps 1.0 scale 0.07 }  */
   //*PMRawEnd
   scale 3
   
   pigment {
      granite
      turbulence <0.5, 0.5, 0.5>
      
      color_map {
         [ 0 color rgb <0.701961, 0.282353, 0.282353>
         ]
         [ 0.1 color rgb <0.247059, 0.231373, 0.211765>
         ]
         [ 0.2 color rgb <0.847059, 0.556863, 0.25098>
         ]
         [ 0.35 color rgb <0.588235, 0.494118, 0.494118>
         ]
         [ 0.7 color rgb <0.701961, 0.619608, 0.568627>
         ]
         [ 1 color rgb <0.7, 0.48, 0.46>
         ]
      }
   }
}

prism {
   linear_spline
   linear_sweep
   -4, -1.75,
   7,
   <1, 1.732>, <-1, 1.732>, <-2, 0>, <-1, -1.732>, <1, -1.732>, <2, 0>, <1, 1.732>
   sturm
   scale <4, 1, 4>
   
   texture {
      rock
   }
   rotate y*40
   translate <0, 0, 0>
}

merge {
   //*PMName floor2
   
   merge {
      //*PMName floor1
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*1
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*2
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*3
      }
   }
   
   merge {
      //*PMName floor1
      
      height_field {
         png "/home/hodapp/geomorph/chris4.png"
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*1
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*2
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*3
      }
      translate z*1
   }
   
   merge {
      //*PMName floor1
      
      height_field {
         png "/home/hodapp/geomorph/chris4.png"
         scale <2, 0.8, 2>
         translate x*(-1)
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*1
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*2
      }
      
      height_field {
         png "/home/hodapp/geomorph/floor1.png"
         translate x*3
      }
      translate z*2
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      scale <2, 1, 2>
      translate <1, 0, 3>
      
      texture {
         rock2l
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      scale <2, 1, 2>
      translate <3, 0, 3>
      
      texture {
         rock
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      
      texture {
         rock3
      }
      scale 2
      translate <-1, -0.5, 4>
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5d.png"
      scale <2, 1.7, 2>
      translate <-3, -0.373213, 3.36416>
      
      texture {
         rock
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      rotate y*(-90)
      scale <2, 3.5, 2>
      translate <-1, -1.5, 2>
      
      texture {
         rock2l
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      scale <2, 1.6, 2>
      translate <1, -0.2, 5>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      smooth
      scale <2, 2.5, 2>
      translate <3, -0.5, 5>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5d.png"
      smooth
      scale <2, 3.6, 2>
      translate <-1, -1.2, 6>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      smooth
      scale <2, 2.5, 2>
      translate <-3, -0.5, 6>
      
      texture {
         rock2l
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris4.png"
      smooth
      scale <2, 3, 2>
      translate <-3.28581, -0.5, 8.42871>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      smooth
      scale <2, 3, 2>
      translate <-5.00065, 0.189219, 9.19416>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris4.png"
      smooth
      scale <2, 3, 2>
      translate <-1.07145, -0.5, 9.28613>
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      smooth
      
      texture {
         rock3
      }
      rotate y*90
      scale <2, 3, 2>
      translate <-0.214031, 0.214516, 12.9302>
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      smooth
      
      texture {
         rock3
      }
      rotate y*90
      scale <2, 3, 2>
      translate <2.50113, 0.214516, 12.9302>
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      smooth
      
      texture {
         rock3
      }
      scale <2, 3, 2>
      translate <-3.14355, 0.495539, 10.4218>
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris4.png"
      smooth
      scale <2, 3.5, 2>
      translate <-8.35822, -0.240521, 7.64371>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5.png"
      smooth
      scale <2, 3.5, 2>
      translate <-5.57161, -0.271291, 4.71484>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      smooth
      scale <2, 3.5, 2>
      translate <-8.07242, -0.271291, 5.07209>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5c.png"
      smooth
      rotate <-180, 89, -180>
      scale 5
      translate <-2.85646, -0.985807, 18.8622>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5d.png"
      smooth
      scale <4, 3.5, 4>
      translate <-5.28581, -0.271291, 4.07177>
      rotate y*(-23.3)
      translate <-0.714516, 1.00032, 10.7177>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      smooth
      scale <2, 4, 2>
      translate <-5, -0.5, 7>
      
      texture {
         rock
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5b.png"
      smooth
      scale <2, 3.5, 2>
      translate <0.785645, -0.65, 8.85774>
      
      texture {
         rock2l
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris5d.png"
      smooth
      scale <2, 3.5, 2>
      translate <3, -0.57, 7>
      
      texture {
         rock3
      }
   }
   
   height_field {
      png "/home/hodapp/geomorph/chris4b.png"
      smooth
      scale <6, 1, 6>
      translate <-1, 0.1, 0>
   }
   scale <18, 8, 18>
   translate <-52.0814, -6.5, -10.9705>
   
   texture {
      rock2
   }
}

#declare haze2 = material {
   interior {
      media {
         density {
            spiral1 1
            
            color_map {
               [ 0 color rgbt <0, 0, 0, 1>
               ]
               [ 0.5 color rgbt <0, 0, 0, 1>
               ]
               [ 0.6875 color rgbft <0.023529, 1, 0.46275, 0.8, 0.2>
               ]
               [ 0.75 color rgbt <0, 0, 0, 1>
               ]
               [ 0.92 color rgbt <0, 0, 0, 1>
               ]
               [ 0.96 color rgbt <0.8, 0.8, 0.49412, 0.5>
               ]
               [ 1 color rgbt <0, 0, 0, 1>
               ]
            }
         }
         method 3
         absorption rgb <0.156863, 0.156863, 0.87451>
         emission rgb <0.458824, 1, 0.32549>
      }
   }
   
   texture {
      pigment {
         color rgbft <0, 0, 0, 1, 1>
      }
   }
}

#declare plume1 = merge {
   sphere {
      <0, 0, 0>, 1
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
}

merge {
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <-1.1597, 0, -7.0175>
   }
   
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <5.5333, 0, -4.8667>
   }
   
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <6.71514, 0, 2.47316>
   }
   
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <1.24685, 0, 6.81008>
   }
   
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <-5.34658, 0, 4.5086>
   }
   
   object {
      plume1
      scale 1
      rotate <0, 0, 0>
      translate <-6.64139, 0, -2.44721>
   }
   translate y*(-1.5)
   
   material {
      haze2
   }
   no_shadow
   hollow
}