camera {location <0, 0, -600> look_at <0, 0, 0>} light_source {<0, 0, -300> rgb 1} background {rgb 1} #include "spline.mcr" #include"textures.inc" // change this value to increase the z-offset at the crossings #declare oset=2.0; #declare component0 = create_spline ( array[49] { <-116.095,-91.5678, -10 *oset>, <-95.121,-146.397, -10 *oset>, <-53.2317,-194.324, -3.6098 *oset>, <3.6585,-193.982, 0 *oset>, <60.5855,-193.639, 3.61213 *oset>, <101.922,-145.156, 10 *oset>, <122.117,-89.9864, 10*oset>, <129.025,-71.1157, 10*oset>, <133.86,-51.5664, 3.66903 *oset>, <137.186,-31.7505, 0 *oset>, <140.004,-14.9629, -3.10831 *oset>, <141.686,2.39574, -10 *oset>, <136.086,18.4983, -10 *oset>, <130.091,35.735, -10 *oset>, <114.64,48.6324, -4.14033 *oset>, <98.7409,43.2392, 0 *oset>, <86.3841,39.0476, 3.21787 *oset>, <81.578,25.4444, 10 *oset>, <77.5567,12.8564, 10*oset>, <72.9984,-1.41294, 10*oset>, <65.0386,-15.914, 3.64069 *oset>, <51.0003,-15.3904, 0 *oset>, <37.1137,-14.8725, -3.60132 *oset>, <30.255,-0.0735514, -10 *oset>, <26.5329,14.2109, -10 *oset>, <22.7683,28.6583, -10 *oset>, <16.293,43.9398, -3.60619 *oset>, <2.35554,44.0895, 0 *oset>, <-11.7474,44.241, 3.649 *oset>, <-18.4935,28.8111, 10 *oset>, <-22.5124,14.2166, 10*oset>, <-26.3258,0.368577, 10*oset>, <-33.2378,-13.9074, 3.43668 *oset>, <-46.7697,-14.2803, 0 *oset>, <-61.8568,-14.6961, -3.83169 *oset>, <-69.0454,1.9151, -10 *oset>, <-73.592,17.4845, -10 *oset>, <-77.0128,29.1988, -10 *oset>, <-82.1372,41.3853, -3.11435 *oset>, <-93.5964,44.9631, 0 *oset>, <-109.432,49.9072, 4.30368 *oset>, <-124.027,36.2812, 10 *oset>, <-129.788,19.043, 10*oset>, <-135.453,2.08897, 10*oset>, <-134.291,-16.0892, 3.18201 *oset>, <-131.497,-33.7218, 0 *oset>, <-128.365,-53.4828, -3.56611 *oset>, <-123.244,-72.8803, -10 *oset>, <-116.095,-91.5678, -10.0001 *oset> }, create_bezier_spline) // change the value after spline_radius to change the radius of the tubes union { pipe_spline (component0, spline_radius (9) + spline_step_size(3)) // colour is specified by a triple of floating point values // for each of red, green and blue. Change these to alter the colour of this component pigment{Brown_Agate scale 10} finish{ambient .1 diffuse .9 phong .9} } #declare component1 = create_spline ( array[25] { <-116.095,-91.5678, 10*oset>, <-75.9189,-91.8734, 10*oset>, <-37.2819,-76.2386, 3.34636 *oset>, <2.88288,-75.9466, 0 *oset>, <43.0673,-75.6544, -3.34799 *oset>, <81.9302,-90.7391, -10 *oset>, <122.117,-89.9864, -10 *oset>, <188.629,-88.7406, -10 *oset>, <247.5,-43.368, -3.79423 *oset>, <247.208,19.9178, 0 *oset>, <246.915,83.4668, 3.81001 *oset>, <187.207,128.382, 10 *oset>, <120.365,128.669, 10*oset>, <80.4434,128.841, 10*oset>, <42.0495,113.41, 3.33643 *oset>, <2.13873,113.057, 0 *oset>, <-38.0248,112.703, -3.35756 *oset>, <-76.9182,127.642, -10 *oset>, <-117.083,126.712, -10 *oset>, <-183.774,125.168, -10 *oset>, <-242.5,79.2163, -3.82197 *oset>, <-241.634,15.7852, 0 *oset>, <-240.778,-46.942, 3.77956 *oset>, <-181.94,-91.067, 10 *oset>, <-116.095,-91.5678, 10.0001 *oset> }, create_bezier_spline) // change the value after spline_radius to change the radius of the tubes union { pipe_spline (component1, spline_radius (11) + spline_step_size(230)) // colour is specified by a triple of floating point values // for each of red, green and blue. Change these to alter the colour of this component pigment{Brown_Agate scale 20} finish{ambient .1 diffuse .9 phong .9} } #declare component2 = create_spline ( array[49] { <136.086,18.4983, 10*oset>, <131.684,-1.34732, 10*oset>, <117.185,-18.2394, 4.49394 *oset>, <99.5287,-13.8505, 0 *oset>, <87.6707,-10.903, -3.01813 *oset>, <81.6723,1.13263, -10 *oset>, <77.5567,12.8564, -10 *oset>, <72.4677,27.3535, -10 *oset>, <65.2853,42.9597, -3.74561 *oset>, <50.8082,42.6375, 0 *oset>, <37.28,42.3363, 3.50012 *oset>, <30.2814,28.0946, 10 *oset>, <26.5329,14.2109, 10*oset>, <22.536,-0.592346, 10*oset>, <15.8702,-16.3146, 3.65362 *oset>, <1.60322,-16.1773, 0 *oset>, <-12.483,-16.0418, -3.60735 *oset>, <-18.9739,-0.5186, -10 *oset>, <-22.5124,14.2166, -10 *oset>, <-26.0278,28.8554, -10 *oset>, <-32.6728,44.1218, -3.65782 *oset>, <-46.8046,44.8412, 0 *oset>, <-60.6642,45.5468, 3.58737 *oset>, <-68.9526,31.5233, 10 *oset>, <-73.592,17.4845, 10*oset>, <-77.6874,5.09197, 10*oset>, <-82.4648,-8.46741, 3.14459 *oset>, <-94.8325,-11.8804, 0 *oset>, <-111.649,-16.5209, -4.27565 *oset>, <-125.807,-0.260825, -10 *oset>, <-129.788,19.043, -10 *oset>, <-133.241,35.7888, -10 *oset>, <-131.286,52.9794, -3.14972 *oset>, <-128.881,69.8827, 0 *oset>, <-126.151,89.0661, 3.57458 *oset>, <-122.848,108.206, 10 *oset>, <-117.083,126.712, 10*oset>, <-99.4777,183.23, 10*oset>, <-56.7565,231.407, 3.63584 *oset>, <0.567861,231.424, 0 *oset>, <57.5892,231.441, -3.61662 *oset>, <99.7942,183.721, -10 *oset>, <120.365,128.669, -10 *oset>, <127.302,110.104, -10 *oset>, <132.125,90.8338, -3.54729 *oset>, <135.378,71.2862, 0 *oset>, <138.294,53.7705, 3.17856 *oset>, <139.935,35.8541, 10 *oset>, <136.086,18.4983, 10.0001 *oset> }, create_bezier_spline) // change the value after spline_radius to change the radius of the tubes union { pipe_spline (component2, spline_radius (9) + spline_step_size(3)) // colour is specified by a triple of floating point values // for each of red, green and blue. Change these to alter the colour of this component pigment{Brown_Agate scale 15} finish {ambient .1 diffuse .9 phong .9 phong_size 40} }