#declare chrome = texture { pigment { color rgbf < 0.5 0.5 0.5 0>} finish { diffuse 0.1 specular 0.5 reflection 0.7 roughness 0.005 metallic } }

#declare tp_holder=
union {
  cylinder { <0,0,0> <0,0,0.2> 1.3 }
  torus { 1.3 0.1 rotate 90*x translate 0.1*z }
  cylinder { <0,0,0> <0,0,0.3> 1.15 }
  torus { 1.15 0.1 rotate 90*x translate 0.2*z }
  cylinder { <0,0,0> <0,0,0.4> 1.0 }
  torus { 1.0 0.1 rotate 90*x translate 0.3*z }

  sphere_sweep {
    b_spline
    8 <0,0,0> 0.4 <0,0,0.10> 0.5 <0,0,0.4> 0.3 <0,0,0.7> 0.3 <0,0,1.0> 0.5
    <0,0,1.5> 0.20 <0,0,2> 0.4 <0,0.0,2.36> 0.4
  }

  sphere { <0,0,2.0> 0.41 }

  union {
    sphere_sweep {
      b_spline
      13 <-1,0,0> 0.2 <0,0,0> 0.2 <0.5,0,0> 0.2 <1.8,0,0> 0.2 <2.7,-1.1,> 0.2
      <2.7,-2.4,0> 0.2
      <2.7,-3.1,0> 0.2 <2.0,-3.1,0> 0.2 <0,-3.1,0> 0.2 <-2.0,-3.1,0> 0.2
      <-2.7,-3.1,0> 0.2 <-2.7,-2.4,0> 0.2 <-2.7,-2,0> 0.2
    }
    sphere { <-2.7,-2.3,0> 0.3 }
    //rotate -15*x
    translate 2*z
  }
  //the roll of toilet paper
//  union {
//    difference {
//      cylinder { <-2,0,0> <2,0,0> 2.0 texture { whitepaper } }
//      cylinder { <-3,0,0> <3,0,0> 0.6 texture { whitepaper } }
//    }
//    difference {
//      cylinder { <-2,0,0> <2,0,0> 0.6 texture { brownpaper } }
//      cylinder { <-3,0,0> <3,0,0> 0.58 texture { brownpaper } }
//    }
//    box { <-2,0,1.99> <2,-3,2.0> texture { whitepaper } }
//    translate <0,-3.35,2.9>
//  }

  texture { chrome }
}