// --- this is a pov-ray file by ted@magicdog.com // --- please let me know if you use it for anything // --- this file builds a cute little toy robot // --- see http://www.magicdog.com/grafx/robots/toybot.html // --- you may have to rename the file to toyrobot.pov // --- i've rendered this file with POV-Ray 3.1 on Win98 & Mac OS 8.6 // // ==== Standard POV-Ray Includes ==== #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions #include "metals.inc" light_source { <0,20,-60> color rgb 1.0 area_light <8, 0, 0> <0, 0, 8> 4, 4 adaptive 0 jitter } camera { location <0.0 , 20.0 ,-60.0> look_at <0.0 , 0 , 0.0> } background {color White} // declare special textures #declare t1 = texture {pigment {color Black} finish {ambient 0.5}} #declare t2 = texture {pigment {color White} finish {ambient 0.5}} #declare t1s = texture {pigment {color Black} finish {ambient 0.5 phong 1}} #declare t2s = texture {pigment {color White} finish {ambient 0.75 phong 1}} #declare t3 = texture {pigment {color Red} finish {ambient 0.25 phong 0.75}} #declare t4 = texture {pigment {color Green} finish {ambient 0.5}} #declare t5 = texture {pigment {color Blue} finish {ambient 0.5}} #declare t6 = texture {pigment {color Yellow} finish {ambient 0.5}} #declare t7 = texture {pigment {color Orange} finish {ambient 0.5}} #declare t8 = texture {T_Chrome_3A normal {bumps 0.5 scale 0.8}} #declare t9 = texture {T_Chrome_5B normal {bumps 0.4 scale 0.7}} #declare t10 = Yellow_Glass //sphere {<0,0,0>,6 texture {t8}} #declare head= union { #declare ribbing= union { sphere {<-5.5,2,-2.5>,0.5} sphere {<-5.5,2,2.5>,0.5} sphere {<5.5,2,-2.5>,0.5} sphere {<5.5,2,2.5>,0.5} sphere {<-1.5,2,-4.5>,0.5} sphere {<-1.5,2,4.5>,0.5} sphere {<1.5,2,-4.5>,0.5} sphere {<1.5,2,4.5>,0.5} cylinder {<-5.5,2,-2.5>,<-5.5,2,2.5>,0.5} // horizontals cylinder {<5.5,2,-2.5>,<5.5,2,2.5>,0.5} cylinder {<-5.5,2,-2.5>,<-1.5,2,-4.5>,0.5} cylinder {<-5.5,2,2.5>,<-1.5,2,4.5>,0.5} cylinder {<-1.5,2,-4.5>,<1.5,2,-4.5>,0.5} cylinder {<-1.5,2,4.5>,<1.5,2,4.5>,0.5} cylinder {<5.5,2,-2.5>,<1.5,2,-4.5>,0.5} cylinder {<5.5,2,2.5>,<1.5,2,4.5>,0.5} } object {ribbing scale <0.95,0.9,0.95> translate <0,16.2,0>} difference { object {ribbing translate <0,-2,0> scale <0.9,3,0.9>} plane {y,0} translate <0,18,0> } difference { prism {linear_spline 8.5,18.5,9, <-5.5,-2.5>, <-5.5,2.5>, <-1.5,4.5>, <1.5,4.5>, <5.5,2.5>, <5.5,-2.5>, <1.5,-4.5>, <-1.5,-4.5>, <-5.5,-2.5> } superellipsoid {<0.2,0.2> scale <2.5,1,2> translate <0,10.5,-4> texture {t1}} } prism {linear_spline 8.5,19.5,9, <-5.5,-2.5>, <-5.5,2.5>, <-1.5,4.5>, <1.5,4.5>, <5.5,2.5>, <5.5,-2.5>, <1.5,-4.5>, <-1.5,-4.5>, <-5.5,-2.5> scale <0.9,1,0.9> } difference { // mouth superellipsoid {<0.2,0.2> scale <2.7,1.2,2.2> translate <0,10.5,-4> texture {t9}} superellipsoid {<0.2,0.2> scale <2.3,0.8,1.8> translate <0,10.5,-4> texture {t9}} prism {linear_spline 8.5,18.5,7, <5.5,-2.5>, <1.5,-4.5>, <-1.5,-4.5>, <-5.5,-2.5>, <-5.5,-15>, <5.5,-15>, <5.5,-2.5> texture {t9} } } difference { // headband superellipsoid {<0.2,0.2> scale <4.5,0.75,2> translate <0,16.75,-4> texture {t9}} prism {linear_spline 8.5,18.5,7, <5.5,-2.5>, <1.5,-4.5>, <-1.5,-4.5>, <-5.5,-2.5>, <-5.5,-15>, <5.5,-15>, <5.5,-2.5> texture {t9} translate <0,0,-0.1> } } // rivets sphere {<0,0,0>,0.5 translate <-4,19.5,-2>} sphere {<0,0,0>,0.5 translate <-4,19.5,0>} sphere {<0,0,0>,0.5 translate <-4,19.5,2>} sphere {<0,0,0>,0.5 translate <4,19.5,-2>} sphere {<0,0,0>,0.5 translate <4,19.5,0>} sphere {<0,0,0>,0.5 translate <4,19.5,2>} // eyes, ears, hat, etc sphere {<0,0,0>,2.5 scale <1,0.75,1> translate <0,19.5,0> texture {t3}} // hat torus {2.5,0.2 translate <0,19.5,0> texture {t3}} sphere {<0,0,0>,1 scale <1,1,0.5> translate <0,13.5,-4.5> texture {t3}} // nose union { // eye sphere {<0,0,0>,1.5 scale <1,1,0.5> texture {t10}} sphere {<0,0,0>,0.75 scale <1,1,0.5> texture {t1}} cylinder {<0,0,0>,<0,0,0.1>,1.5 texture {t2s}} torus {1.5,0.2 rotate <90,0,0> texture {t9}} rotate <0,26.5,0> translate <-3.5,14,-3.5> } union { // eye sphere {<0,0,0>,1.5 scale <1,1,0.5> texture {t10}} sphere {<0,0,0>,0.75 scale <1,1,0.5> texture {t1}} cylinder {<0,0,0>,<0,0,0.1>,1.5 texture {t2s}} torus {1.5,0.2 rotate <90,0,0> texture {t9}} rotate <0,-26.5,0> translate <3.5,14,-3.5> } // ear union { torus {2,0.5 rotate <0,0,90> scale <1.5,1,1>} cylinder {<0,0,0>,<0.5,0,0>,2} cone {<0,0,0>,2,<4,0,0>,0.5 scale <1,0.3,1>} cone {<0,0,0>,2,<4,0,0>,0.5 scale <1,1,0.3>} translate <5.5,14,0> texture {t3} } union { torus {2,0.5 rotate <0,0,90> scale <1.5,1,1>} cylinder {<0,0,0>,<0.5,0,0>,2} cone {<0,0,0>,2,<4,0,0>,0.5 scale <1,0.3,1>} cone {<0,0,0>,2,<4,0,0>,0.5 scale <1,1,0.3>} rotate <0,180,0> translate <-5.5,14,0> texture {t3} } } // close head #declare torso = union { difference { superellipsoid {<0.1,0.1> scale <17/2,17/2,11/2>} difference { // cavity for meter cylinder {<0,0,0>,<0,0,-20>,7} plane {y,-1} plane {x,0 rotate <0,0,35> translate <-2.5,0,0>} plane {-x,0 rotate <0,0,-35> translate <2.5,0,0>} } } superellipsoid {<0.1,0.1> scale <17.5/2,17.5/2,0.5/2>} // rivets sphere {<0,0,0>,0.5 translate <-7,7,-11/2>} //top sphere {<0,0,0>,0.5 translate <-5,7,-11/2>} sphere {<0,0,0>,0.5 translate <-3,7,-11/2>} sphere {<0,0,0>,0.5 translate <3,7,-11/2>} sphere {<0,0,0>,0.5 translate <5,7,-11/2>} sphere {<0,0,0>,0.5 translate <7,7,-11/2>} sphere {<0,0,0>,0.5 translate <-7,-7,-11/2>} //bottom sphere {<0,0,0>,0.5 translate <-5,-7,-11/2>} sphere {<0,0,0>,0.5 translate <-3,-7,-11/2>} sphere {<0,0,0>,0.5 translate <-1,-7,-11/2>} sphere {<0,0,0>,0.5 translate <1,-7,-11/2>} sphere {<0,0,0>,0.5 translate <3,-7,-11/2>} sphere {<0,0,0>,0.5 translate <5,-7,-11/2>} sphere {<0,0,0>,0.5 translate <7,-7,-11/2>} sphere {<0,0,0>,0.5 translate <-7,5,-11/2>} //sides sphere {<0,0,0>,0.5 translate <-7,3,-11/2>} sphere {<0,0,0>,0.5 translate <-7,1,-11/2>} sphere {<0,0,0>,0.5 translate <-7,-1,-11/2>} sphere {<0,0,0>,0.5 translate <7,5,-11/2>} sphere {<0,0,0>,0.5 translate <7,3,-11/2>} sphere {<0,0,0>,0.5 translate <7,1,-11/2>} sphere {<0,0,0>,0.5 translate <7,-1,-11/2>} // grill #declare grill= union { box {<-6.25,0,0>,<6.25,3,-0.125>} cylinder {<-6.5,0.5,0>,<-6.5,2.5,0>,0.25} cylinder {<-6,0,0>,<6,0,0>,0.25} cylinder {<6.5,0.5,0>,<6.5,2.5,0>,0.25} cylinder {<6,3,0>,<-6,3,0>,0.25} difference {torus {0.5,0.25 rotate <90,0,0>} plane {y,0} plane {-x,0} translate <-6,2.5,0>} difference {torus {0.5,0.25 rotate <90,0,0>} plane {y,0} plane {x,0} translate <6,2.5,0>} difference {torus {0.5,0.25 rotate <90,0,0>} plane {-y,0} plane {-x,0} translate <-6,0.5,0>} difference {torus {0.5,0.25 rotate <90,0,0>} plane {-y,0} plane {x,0} translate <6,0.5,0>} sphere {<-5,1.5,0>,1 scale <1,1,0.4>} // headlights sphere {<5,1.5,0>,1 scale <1,1,0.4>} torus {0.9,0.2 rotate <90,0,0> translate <-5,1.5,-0.15>} torus {0.9,0.2 rotate <90,0,0> translate <5,1.5,-0.15>} // vertical bars union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <0*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <1*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <2*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <3*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <-1*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <-2*1,0,0>} union {cylinder {<0,3,0>,<0,0.5,0>,0.25} sphere {<0,0.5,0>,0.25} scale <2,1,1> translate <-3*1,0,0>} } object {grill scale <1,1,1.2> texture {t9} translate <0,-5.5,-11/2>} #declare meter = union { difference { difference { cylinder {<0,0,0>,<0,0,1>,7} plane {y,-1} plane {x,0 rotate <0,0,35> translate <-2.5,0,0>} plane {-x,0 rotate <0,0,-35> translate <2.5,0,0>} } difference { cylinder {<0,0,-0.5>,<0,0,1.5>,6.5} cylinder {<0,-5,-0.5>,<0,-5,1.5>,6.5} plane {x,0 rotate <0,0,35> translate <-2,0,0>} plane {-x,0 rotate <0,0,-35> translate <2,0,0>} } } difference { difference { cylinder {<0,0,1>,<0,0,2>,7} plane {y,-1} plane {x,0 rotate <0,0,35> translate <-2.5,0,0>} plane {-x,0 rotate <0,0,-35> translate <2.5,0,0>} } difference { cylinder {<0,0,0>,<0,0,2.5>,6.5} plane {y,0} plane {x,0 rotate <0,0,35> translate <-2,0,0>} plane {-x,0 rotate <0,0,-35> translate <2,0,0>} } } sphere {<0,0,0>,0.25} // needle pivot union { // needle cylinder {<0,0,0>,<0,5,0>,0.25} sphere {<0,5,0>,0.25} scale <1.5,1,0.25> rotate <0,0,25> translate <0,0,1.5> texture {t3} } difference { // back of meter union { cylinder {<0,0,1.95>,<0,0,2.5>,6.9} difference { torus {7,0.05 rotate <90,0,0> translate <0,-3,1.95> texture {t1}} plane {x,0 rotate <0,0,35> translate <-1.25,0,0>} plane {-x,0 rotate <0,0,-35> translate <1.25,0,0>} } } plane {y,-0.9} plane {x,0 rotate <0,0,35> translate <-2.4,0,0>} plane {-x,0 rotate <0,0,-35> translate <2.4,0,0>} texture {t2s} } difference { // glass cylinder {<0,0,0.5>,<0,0,0.75>,6.5} cylinder {<0,-5,-0.5>,<0,-5,1.5>,6.5} plane {x,0 rotate <0,0,35> translate <-2,0,0>} plane {-x,0 rotate <0,0,-35> translate <2,0,0>} texture {Glass} } texture {t9} } object {meter translate <0,0,-11/2-0.5>} //legs #declare leg= difference { union { superellipsoid {<0.2,0.2> scale <5/2,11,7/2> translate <0,-10,0>} cylinder {<-2.5,2,0>,<-2.5,-20,0>,0.25} cylinder {<2.5,2,0>,<2.5,-20,0>,0.25} } cylinder {<-3,-2.5,-3.5>,<3,-2.5,-3.5>,0.5} cylinder {<-3,-14.5,-3.5>,<3,-14.5,-3.5>,0.5} cylinder {<-3,-2.5,3.5>,<3,-2.5,3.5>,0.5} cylinder {<-3,-14.5,3.5>,<3,-14.5,3.5>,0.5} } object {leg translate <5,-8,0> texture {t8}} object {leg translate <-5,-8,0> texture {t8}} #declare foot= difference { union { cylinder {<0,0,-3.5>,<0,4.6,-3.5>,3.5} cylinder {<0,0,-3.5>,<0,5,-3.5>,3.1} torus {3.5,0.4 translate <0,0,-3.5>} torus {3.1,0.4 translate <0,4.6,-3.5>} cylinder {<0,0,3.5>,<0,4.6,3.5>,3.5} cylinder {<0,0,3.5>,<0,5,3.5>,3.1} torus {3.5,0.4 translate <0,0,3.5>} torus {3.1,0.4 translate <0,4.6,3.5>} cylinder {<-3.1,4.6,-3.5>,<-3.1,4.6,3.5>,0.4} cylinder {<3.1,4.6,-3.5>,<3.1,4.6,3.5>,0.4} cylinder {<-3.5,0,-3.5>,<-3.5,0,3.5>,0.4} cylinder {<3.5,0,-3.5>,<3.5,0,3.5>,0.4} box {<-3.5,0,-3.5>,<3.5,4.6,3.5>} box {<-3.1,0,-3.5>,<3.1,5,3.5>} } union { cylinder {<0,0,-3.5>,<0,4.6,-3.5>,3.5} cylinder {<0,0,-3.5>,<0,5,-3.5>,3.1} torus {3.5,0.4 translate <0,0,-3.5>} torus {3.1,0.4 translate <0,4.6,-3.5>} cylinder {<0,0,3.5>,<0,4.6,3.5>,3.5} cylinder {<0,0,3.5>,<0,5,3.5>,3.1} torus {3.5,0.4 translate <0,0,3.5>} torus {3.1,0.4 translate <0,4.6,3.5>} cylinder {<-3.1,4.6,-3.5>,<-3.1,4.6,3.5>,0.4} cylinder {<3.1,4.6,-3.5>,<3.1,4.6,3.5>,0.4} cylinder {<-3.5,0,-3.5>,<-3.5,0,3.5>,0.4} cylinder {<3.5,0,-3.5>,<3.5,0,3.5>,0.4} box {<-3.5,0,-3.5>,<3.5,4.6,3.5>} box {<-3.1,0,-3.5>,<3.1,5,3.5>} scale <0.9,1,0.9> translate <0,-0.2,0> } superellipsoid {<0.2,0.2> scale <5.1/2,11,7.1/2> translate <0,0,0>} } object {foot texture {t3} translate <-5,-30,0>} object {foot texture {t3} translate <5,-30,0>} #declare rarm= union { union { torus {3.5,0.4 rotate <0,0,90>} cylinder {<-0.4,0,0>,<2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <2.6,0,0>} cylinder {<0,0,0>,<3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <3,0,0>} } union { superellipsoid {<0.2,0.2> scale <3/2,9/2,5/2> translate <3/2,-9/2,0>} cylinder {<0,0,-5/2>,<0,-9,-5/2>,0.4} cylinder {<0,0,5/2>,<0,-9,5/2>,0.4} cylinder {<3,0,0>,<3,-9,0>,0.4} } union { torus {3.5,0.4 rotate <0,0,90>} cylinder {<-0.4,0,0>,<2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <2.6,0,0>} cylinder {<0,0,0>,<3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <3,0,0>} translate <0,-9,0> } union { superellipsoid {<0.2,0.2> scale <3/2,9/2,5/2> translate <3/2,-9/2,0>} cylinder {<0,0,-5/2>,<0,-9,-5/2>,0.4} cylinder {<0,0,5/2>,<0,-9,5/2>,0.4} cylinder {<3,0,0>,<3,-9,0>,0.4} torus {3.5,0.4 rotate <0,0,90>} cylinder {<-0.4,0,0>,<2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <2.6,0,0>} cylinder {<0,0,0>,<3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <3,0,0>} translate <0,9,0> rotate <-130,0,0> translate <0,-9,0> } } #declare larm= union { union { torus {3.5,0.4 rotate <0,0,90>} cylinder {<0.4,0,0>,<-2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <-2.6,0,0>} cylinder {<0,0,0>,<-3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <-3,0,0>} } union { superellipsoid {<0.2,0.2> scale <3/2,9/2,5/2> translate <-3/2,-9/2,0>} cylinder {<0,0,-5/2>,<0,-9,-5/2>,0.4} cylinder {<0,0,5/2>,<0,-9,5/2>,0.4} cylinder {<-3,0,0>,<-3,-9,0>,0.4} } union { torus {3.5,0.4 rotate <0,0,90>} cylinder {<0.4,0,0>,<-2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <-2.6,0,0>} cylinder {<0,0,0>,<-3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <-3,0,0>} translate <0,-9,0> } union { superellipsoid {<0.2,0.2> scale <3/2,9/2,5/2> translate <-3/2,-9/2,0>} cylinder {<0,0,-5/2>,<0,-9,-5/2>,0.4} cylinder {<0,0,5/2>,<0,-9,5/2>,0.4} cylinder {<-3,0,0>,<-3,-9,0>,0.4} torus {3.5,0.4 rotate <0,0,90>} cylinder {<0.4,0,0>,<-2.6,0,0>,3.5} torus {3.1,0.4 rotate <0,0,90> translate <-2.6,0,0>} cylinder {<0,0,0>,<-3,0,0>,3.1} sphere {<0,0,0>,2.5 scale <0.3,1,1> translate <-3,0,0>} translate <0,9,0> rotate <-130,0,0> translate <0,-9,0> } } object {rarm scale <0.8,0.8,0.8> rotate <-20,0,0> translate <9.2,4,0>} object {larm scale <0.8,0.8,0.8> rotate <-20,0,0> translate <-9.2,4,0>} cylinder {<10,4,0>,<-10,4,0>,0.4 texture {t1}} } // close torso #declare robot= union { object {head} object {torso} } object {robot texture {t8} rotate <0,0,0> rotate <0,0,0> scale <1,1,1> translate <0,0,5> }