Friday, December 19, 2008

Start

Hello everyone,
I've started this blog to show the process of creating my 3D project.
I was asked to choose 1 image from a list of 8, which I had to create using Povray.
Here's an image that I was mostly interested in.


Step 1

Lets start creating this space ship!
Before you even open Povray, I'd recommend you to do sketches of an image. It might take more time, than you thought it would (if you want to be very accurate), because image isn't very sharp and darker is some places, but it has an obvious advantage - sketch is a good reference if you want to "move" objects later in the stage.

Here are the sketches that I made:
Note: top-view sketch is "missing" bottom right leg because I ran out of space.

Step 2

After doing sketches, we can start creating our image in Povray.
It would be better to devide it into different parts, so you can
create them separately and then merge them together for the final image.
Also I recommend not to use any heavy textures and avoid special effect on
till you are ready to put everything for the final image.
To make different objects stand out more, just use regular colours, like I'm going to do.

Here are 2 views of the image:


Front view 1















Front view 2

Step 3

Now we can add more to the large metal construction.


Front view
















Top view

Step 4

After we created the bottom part, we can start adding containers.

Front view
















Top view

Step 5

Now add more containers.
Tip: instead of recreating new objects, just scale down containers that you made before and use the required amount of them. After that add extra objects that are located on the second level of this space ship.

Front view
















Top view












Step 6

All containers, bottom level of the metal construction are done.
Now we need to do the second level, ladders and legs.
Once again, it is too early to add any heavy textures and special effects.

Front view

















Top view



Step 7

All objects have been created!
Now we can put them all together by combining metal construction with containers.
Note: some dimensions were slightly changed for the final image and new objects were
added (for example, legs and construction that connects first and second levels).

Front view (the original image view)
















Top view
















Other views





























Monday, December 15, 2008

Source code 1

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------

//front view
camera {
location <0,>

look_at <0,>
}



light_source { <0,> White }


plane {
<0,>,
-1.0



texture {
pigment {White}
}


}

sphere {
<0,80,200>,200
texture {
pigment { color red 2 green 2 blue 2}

}
}


//METAL STEM

cylinder {
<0,>,
<0,>, 2.5

}

//METAL RING


#declare ring = torus {
15,
0.5

texture {
pigment {Red}
}

}

//METAL PARTS CONNECTING

#declare metal_part = cylinder {
<1,>,
<15,>, .5

}

object {metal_part}
object {metal_part rotate y*90}
object {metal_part rotate y*-90}
object {metal_part rotate y*180}


#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}


#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}
object {ring}
object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

Friday, December 12, 2008

Source code 6

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#include "metals.inc"
#include "glass.inc"
#include "stars.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------

//picture view (side view)

camera {
location <-85, 30, -120>

look_at <0,>
}

/*
//view from the bottom up
camera {
location <0,>

look_at <0,>
}
*/


/*
//top down view
camera {
location <0,>

look_at <0,>
}
*/

/*
//closer
camera {
location <0,>

look_at <0,>
}

*/

/*
//back view
//back view
camera {
location <-85, 160, 110>

look_at <0,>
}

light_source { <200,> White }

*/


light_source { <200,> White }






/*

//DAY TIME LOOK

sky_sphere {
pigment {
gradient y
color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }
}
}

sphere { <350,>, 50
texture { T_Yellow_Glass
pigment{Col_Glass_Clear}

}
}


//EVENING TIME LOOK
sky_sphere {
pigment {
gradient y
color_map {
[ 0.5 color SemiSweetChoc ]
[ 1.0 color NewMidnightBlue ]
}
scale 2
translate -1
}
}
*/


//NIGHT TIME LOOK

/*
box {
<-250, 30, -250>
<>

texture {Starfield1}
}

*/


//Following is the moon texture.
//Result isn't as was wanted, so I commented it out.
/*
#declare moonimage=pigment {
image_map {
gif "moon.gif"

}

}

plane {
<0,>,
-1.0
texture {White_Marble }
pigment {moonimage}
scale 10
}

*/


plane {
<0,>,
-1.0
texture {White_Marble }

scale 300
}


////////// TOP PART

#declare myimage=pigment {
image_map {
gif "povmap.gif"
//once
}
}


#declare top1 = cylinder {
<0,>,
<0,>, 15
open

//the image of a flag doesn't work and makes top1 part dissapear when used once.
// It only works when multiplied, but it's not the required result, so I commented it out.

//pigment {myimage}
}

#declare top2 = torus {
15.5,
1

}

#declare curve = difference{

object {top1 }
object {top2 translate y*61.2}

}

#declare top4 = merge{
cone {
62*y, 14.5,
85*y, 2

}

sphere { <0,>, 2.1

}
}



#declare door_box = box {
<-3, 64.5, -12>
<3,>
}

#declare door = difference{

object {top4 pigment {White}}
object{door_box rotate y*45 pigment {White}}

}






//satellite dish

#declare dish_p1 = cylinder {
<0,>,
<0,>, 0.2
texture {
pigment {White}

}
}



#declare dish_p2 = difference{

sphere {
<0,>
6
texture {
pigment {Coral}
}
}

sphere {
<0,>
6.6
texture {
pigment {Coral}
}
}
}


#declare dish_p4 = cone {
<0.5,>, 0
<0.5,>, 0.15

texture {
pigment {White}
}


}

#declare sattelite_dish = union{
object{dish_p1}
object{dish_p2 rotate <30,> translate <1,>}

object{dish_p4 rotate <30,> translate <1,>}

}



//LAMPS
#declare lamp = difference{

sphere {
<-10, 49.9, -1>
3.2
texture {
pigment {Grey}


}

}

sphere {
<-10, 49, -1>
3.6
texture {
pigment {Yellow}
}

}
}




////////////////////LARGE METAL CONSTRUCTION
//stem

#declare stem = cylinder {
<0,>,
<0,>, 2.6

texture {T_Silver_3E}


}

//ring


#declare ring = torus {
15,
0.5

texture {
pigment {Yellow}
}

}

//CONNECTING PARTS
//metal part that connect the stem to the ring


#declare metal_p = cylinder {
<1,>,
<15,>, .5

}

//metal part that connect the ring with other metal part

#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}


//metal part2 that connect the ring with other metal part

#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}

//metal part3 that connect the ring with other metal part

#declare metal_p3 = cylinder {
<22,>,
<34,>, .5
}


//metal part4 that connect the ring with other metal part

#declare metal_p4 = cylinder {
<22,>,
<12,>, .5
}

//metal part5 that connect the ring with other metal part

#declare metal_p5 = cylinder {
<0,>,
<34,>, .5
}


//metal part6 that connect the ring with other metal part

#declare metal_p6 = cylinder {
<34,>,
<34,>, .5
}

//metal part7 that connect the ring with other metal part

#declare metal_p7 = cylinder {
<12,>,
<34,>, .5
}


#declare metal_large = union{

object {metal_p3}
object {metal_p3 translate <-22, 0, -22>}
object {metal_p4}
object {metal_p5}
object {metal_p6}
object {metal_p7}

}

//SECOND LEVEL SUPPORT GROUP OF OBEJECTS

#declare stem_small = cylinder {
<0,>,
<0,>, .2
texture {
pigment {White}
}

}

#declare stem_small_group = union{
object {stem_small}
object {stem_small rotate y*90}
object {stem_small rotate y*180}
object {stem_small rotate y*-90}

object {stem_small rotate y*45 translate <-1.5, 0, -1.5>}
object {stem_small rotate y*135 translate <-1.5, 0, 1.5>}
object {stem_small rotate y*-225 translate <1.5,>}
object {stem_small rotate y*-45 translate <1.5,>}
}




#declare small_top = cylinder {
<-9, 25.5, -22>,
<9,>, .2
texture {
pigment {White}
}

}

//thin supporting metal parts that connect the ground and second level
#declare small_top_group = union{
object {small_top}
object {small_top rotate y*90}
object {small_top rotate y*180}
object {small_top rotate y*-90}

object {small_top rotate y*45}
object {small_top rotate y*135}
object {small_top rotate y*-135}
object {small_top rotate y*-45}
}


#declare path = box {
<-4, 25.5, -20>
<4,>

texture {
pigment {White}
}

}

//group all objects together
#declare second_level_support_group = union{

object {stem_small_group}
object {path rotate y*45 translate <-5, 0, -5>}
object {small_top_group}

}






//GROUP ALL METAL PARTS WITH THE RING

#declare metal_large_group = union{

object {ring}

object {metal_p}
object {metal_p rotate y*90}
object {metal_p rotate y*-90}
object {metal_p rotate y*180}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}

object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

object {metal_large }
object {metal_large rotate y*90}
object {metal_large rotate y*-90}
object {metal_large rotate y*180}



}





////////BOTTOM LADDER AND LEGS

#declare ladder_p1 = merge{
cylinder {
<-25, -15, -25>,
<-25, 26, -25>, 0.5
}

cone {
<-25, -17, -25> , 0.1,
<-25, -15, -25> , 0.5
// open


}


cone {
<-25, -4, -25> , 0.3,
<-25, -1, -25> , 1
// open
texture {
pigment {White}
}

}


cylinder {
<-25, -1, -25>,
<-25, 2, -25>, 1
texture {
pigment {White}
}

}


cone {
<-25, 2, -25> , 1,
<-25, 5, -25> , 0.3
// open
texture {
pigment {White}
}

}

cone {
<-25, 6, -25> , 0.3,
<-25, 9, -25> , 1
// open
texture {
pigment {White}
}

}


cylinder {
<-25, 9, -25>,
<-25, 12, -25>, 1

texture {
pigment {White}
}
}

cone {
<-25, 12, -25> , 1,
<-25, 15, -25> , 0.3
// open

texture {
pigment {White}
}

}
cone {
<-25, 15, -25> , 0.3,
<-25, 18, -25> , 1
// open

texture {
pigment {White}
}

}

cylinder {
<-25, 18, -25>,
<-25, 21, -25>, 1
texture {
pigment {White}
}

}


cone {
<-25, 21, -25> , 1,
<-25, 26, -25> , 0.3
// open

texture {
pigment {White}
}

}

}


#declare ladder_p2 = cylinder {
<-22, -12.1, -26>,
<-22, 25.8, -26>, 0.2
}


#declare ladder_step = cylinder {
<-22, 24, -26>,
<-28, 24, -26>, 0.2
}

#declare ladder_bottom = cylinder {
<-40, -10, -40>,
<-40, -11, -40>, 4
}


#declare ladder_steps_group = union{
object {ladder_step}
object {ladder_step translate y*-2}
object {ladder_step translate y*-4}
object {ladder_step translate y*-6}
object {ladder_step translate y*-8}
object {ladder_step translate y*-10}
object {ladder_step translate y*-12}
object {ladder_step translate y*-14}
object {ladder_step translate y*-16}
object {ladder_step translate y*-18}
object {ladder_step translate y*-20}
object {ladder_step translate y*-22}
object {ladder_step translate y*-24}
object {ladder_step translate y*-26}
object {ladder_step translate y*-28}
object {ladder_step translate y*-30}
object {ladder_step translate y*-32}
object {ladder_step translate y*-34}
object {ladder_step translate y*-36}
object {ladder_step translate y*2}
}


//bottom ladder
#declare ladder_group = union{

object {ladder_p1}
object {ladder_p2}
object {ladder_p2 translate x*-6}
object {ladder_steps_group}
translate <2.5,>
}


//bottom legs

#declare legs_group = union{

object {ladder_p1}
//object {ladder_bottom}
translate <2.5,>
}


//LADDER 2


#declare ladder2_p2 = cylinder {
<-22, -12.1, -26>,
<-22, 25.8, -26>, 0.2
}



#declare ladder2_step = cylinder {
<-22, 24, -26>,
<-28, 24, -26>, 0.2
}


#declare ladder2_steps_group = union{
object {ladder2_step}
object {ladder2_step translate y*-2}
object {ladder2_step translate y*-4}
object {ladder2_step translate y*-6}
object {ladder2_step translate y*-8}
object {ladder2_step translate y*-10}
object {ladder2_step translate y*-12}
object {ladder2_step translate y*-14}
object {ladder2_step translate y*-16}
object {ladder2_step translate y*-18}
object {ladder2_step translate y*-20}
object {ladder2_step translate y*-22}
object {ladder2_step translate y*-24}
object {ladder2_step translate y*-26}
object {ladder2_step translate y*-28}
object {ladder2_step translate y*-30}
object {ladder2_step translate y*-32}
object {ladder2_step translate y*-34}
object {ladder2_step translate y*-36}
object {ladder2_step translate y*2}



}

#declare ladder2_handles = cylinder {
<-1, 66, -6>,
<-8.5, 66, -13>, 0.3
}


#declare ladder2_group = union{


object {ladder2_p2}
object {ladder2_p2 translate x*-6}
object {ladder2_steps_group}
translate <2.5,>
}

#declare ladder_handles = cylinder {
<-1, 66, -6>,
<-8.5, 66, -13>, 0.3
}


///////////////BARRIER

#declare barrier1 = cylinder {
<-16.75, 25.5, -22>,
<-16.75, 31.1, -22>, 0.3
}

#declare barrier2 = cylinder {
<-17, 31, -22>,
<7,>, 0.3
}


#declare barrier = union{

object {barrier1 }
object {barrier1 translate x*23.5 }
object {barrier2 }
}
#declare barrier_group = union{
object {barrier}
object {barrier rotate y*90 }
object {barrier rotate y*180 }
object {barrier rotate y*-90 }
object {barrier rotate y*90 translate <28.7,> }

}


/////////////CONTAINERS

#declare container_cylinder = cylinder{

<8,>,
<8,>, 7.5


}


#declare container_sphere = sphere {
<8,>
7.5

}


#declare container_ring = torus {
7,
0.6
texture {T_Gold_1A
pigment {P_Brass1}
}

}



#declare container_object = merge{


object {container_cylinder}
object {container_sphere}
object {container_sphere translate y*12}
object {container_ring translate <8,> }
object {container_ring translate <8,>}

}



#declare object1 = sphere {
<16,>
6

}

#declare object2 = cylinder{

<11,>,
<11,>, 3.5
}

#declare object3 = cylinder{

<-19, 26, 15>,
<-19, 30, 15>, 2.5
}

#declare object4 = sphere {
<-19, 30, 15>
2.5

}

#declare object5 = cylinder{

<-15, 26, 18>,
<-15, 30, 18>, 3.5
}


#declare container_group = union{

//////////////bottom level

object {container_object texture {T_Silver_5A pigment {P_Chrome5}}translate y*1}

object {container_object translate x*-16 translate y*1}
object {container_object translate <-16, 0, 42> translate y*1}
object {container_object translate z*42 translate y*1}


object {container_object translate <13,> translate y*1}
object {container_object translate <13,> translate y*1}
object {container_object translate <-29, 0, 13> translate y*1}
object {container_object translate <-29, 0, 29> translate y*1}

/////////////////top level

object {container_object translate < -8, 31, 35> scale 0.8 translate y*3}
object {container_object translate <-22, 31, 20> scale 0.8 translate y*3}
object {container_object translate <-8, 31, 8> scale 0.8 translate y*3}

object {object1}
object {object2 texture {T_Silver_5A pigment {P_Chrome5}} scale 0.9 translate <-1, 3, 0>}
object {object3 texture {T_Silver_5A pigment {P_Chrome5}} translate <1,>}
object {object4 texture {T_Silver_5A pigment {P_Chrome5}} }
object {object5 texture {T_Silver_5A pigment {Yellow}translate <3,>} }

texture {T_Gold_1A

pigment {White_Wood }

finish{F_MetalA}
}


finish {
phong 1
phong_size 60
}

}




#declare spaceship = union{
object {curve pigment {White}}
object {door pigment {White}}
object {metal_large_group pigment {Yellow} finish{F_MetalD}}
object {metal_large_group translate y*39 scale 0.65 pigment {Yellow} finish{F_MetalD}}


object {sattelite_dish rotate y*105}
object {lamp}
object {lamp translate <12,>}



object {ladder_handles pigment {White} finish{F_MetalD}}
object {ladder_handles translate <-4.2, 0, 4.2> pigment {White} finish{F_MetalD}}

object {ladder_group rotate <35,> translate <-4, -9, -35> pigment{White} finish{F_MetalD}}
object {ladder2_group rotate <0,> translate <22,> pigment{White} finish{F_MetalD}}

object {legs_group rotate <35,> translate <4,> pigment{Yellow} finish{F_MetalD}}
object {legs_group rotate <35,> translate <36,> pigment{Yellow} finish{F_MetalD}}
object {legs_group rotate <35,> translate <-36, -9, 4> pigment{Yellow} finish{F_MetalD}}


object {container_group scale 0.95}

object {barrier_group pigment {Yellow} finish{F_MetalD}}
object {ladder_bottom pigment {Yellow} finish{F_MetalD}}
object {ladder_bottom rotate <0,> pigment {Yellow} finish{F_MetalD}}
object {ladder_bottom rotate <0,> pigment {Yellow} finish{F_MetalD}}
object {ladder_bottom rotate <0,> pigment {Yellow} finish{F_MetalD}}

object {second_level_support_group}

object {stem pigment {White}finish{F_MetalD}}

finish {
phong 1
phong_size 60
}

}

object {spaceship translate y*50}

Source code 5

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#include "metals.inc"
#include "glass.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------


/*
//front view
camera {
location <0,>

look_at <-0, 25, -0>
}



light_source { <0,> White }
*/


camera {
location <0,>

look_at <0,>
}



light_source { <0,> White }

plane {
<0,>,
-1.0



texture {
pigment {White}
}


}


// TOP PART

#declare top1 = cylinder {
<0,>,
<0,>, 13.5

}



#declare top2 = torus {
14,
1

texture {
pigment {Red}
}

}




#declare curve = difference{

object{top1}
object {top2 translate y*61.2}

}

object {curve}

#declare top4 = merge{
cone {
62*y, 13,
78*y, 2

}

sphere { <0,>, 2.1

}
}



#declare door_box = box {
<-3, 66.5, -10>
<3,>
}

#declare door = difference{

object {top4 pigment {Red}}
object{door_box rotate y*45 pigment {White}}

}

object{door}



//LARGE METAL CONSTRUCTION
//METAL STEM

cylinder {
<0,>,
<0,>, 2.5

}


#declare ring = torus {
15,
0.5

texture {
pigment {Red}
}

}





//METAL CONNECTING PARTS

//metal part that connect the step to the ring


#declare metal_part = cylinder {
<1,>,
<15,>, .5

}

//metal part that connect the ring with other metal part

#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}


//metal part2 that connect the ring with other metal part

#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}

//metal part3 that connect the ring with other metal part

#declare metal_p3 = cylinder {
<22,>,
<34,>, .5
}


//metal part4 that connect the ring with other metal part

#declare metal_p4 = cylinder {
<22,>,
<12,>, .5
}

//metal part5 that connect the ring with other metal part

#declare metal_p5 = cylinder {
<0,>,
<34,>, .5
}


//metal part6 that connect the ring with other metal part

#declare metal_p6 = cylinder {
<34,>,
<34,>, .5
}

//metal part7 that connect the ring with other metal part

#declare metal_p7 = cylinder {
<12,>,
<34,>, .5
}


#declare metal_large = union{

object {metal_p3}
object {metal_p3 translate <-22, 0, -22>}
object {metal_p4}
object {metal_p5}
object {metal_p6}
object {metal_p7}

}
#declare stem_small = cylinder {
<0,>,
<0,>, .2
texture {
pigment {Red}
}

}

#declare stem_small_group = union{
object {stem_small}
object {stem_small rotate y*90}
object {stem_small rotate y*180}
object {stem_small rotate y*-90}

object {stem_small rotate y*45 translate <-1.5, 0, -1.5>}
object {stem_small rotate y*135 translate <-1.5, 0, 1.5>}
object {stem_small rotate y*-225 translate <1.5,>}
object {stem_small rotate y*-45 translate <1.5,>}
}

object {stem_small_group}


#declare small_top = cylinder {
<-9, 25.5, -22>,
<9,>, .2
texture {
pigment {Red}
}

}

//thin supporting metal parts that connect the ground and second level
#declare small_top_group = union{
object {small_top}
object {small_top rotate y*90}
object {small_top rotate y*180}
object {small_top rotate y*-90}

object {small_top rotate y*45}
object {small_top rotate y*135}
object {small_top rotate y*-135}
object {small_top rotate y*-45}
}

object {small_top_group}

#declare path = box {
<-4, 25.5, -20>
<4,>

texture {
pigment {Yellow}
}

}


object {path rotate y*45 translate <-5, 0, -5>}

//GROUP ALL METAL PARTS AND RING TOGETHER

#declare metal_large_group = union{

object {ring}

object {metal_part}
object {metal_part rotate y*90}
object {metal_part rotate y*-90}
object {metal_part rotate y*180}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}

object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

object {metal_large }
object {metal_large rotate y*90}
object {metal_large rotate y*-90}
object {metal_large rotate y*180}

}

object{metal_large_group}
object{metal_large_group translate y*39 scale 0.65 pigment {White}}



#declare ladder_p1 = cylinder {
<-25, -15, -25>,
<-25, 26, -25>, 0.8
}



#declare ladder_p2 = cylinder {
<-22, -15, -26>,
<-22, 25.8, -26>, 0.3
}



#declare ladder_step = cylinder {
<-22, 24, -26>,
<-28, 24, -26>, 0.3
}

#declare ladder_steps_group = union{
object {ladder_step}
object {ladder_step translate y*-2}
object {ladder_step translate y*-4}
object {ladder_step translate y*-6}
object {ladder_step translate y*-8}
object {ladder_step translate y*-10}
object {ladder_step translate y*-12}
object {ladder_step translate y*-14}
object {ladder_step translate y*-16}
object {ladder_step translate y*-18}
object {ladder_step translate y*-20}
object {ladder_step translate y*-22}
object {ladder_step translate y*-24}
object {ladder_step translate y*-26}
object {ladder_step translate y*-28}
object {ladder_step translate y*-30}
object {ladder_step translate y*-32}
object {ladder_step translate y*-34}
object {ladder_step translate y*-36}
object {ladder_step translate y*2}



}

#declare ladder_handles = cylinder {
<-1, 66, -6>,
<-8.5, 66, -13>, 0.3
}

object {ladder_handles pigment {Blue}}
object {ladder_handles translate <-4.2, 0, 4.2> pigment {Blue}}

#declare ladder_group = union{

object {ladder_p1}
object {ladder_p2}
object {ladder_p2 translate x*-6}
object {ladder_steps_group}
translate <2.5,>
}

object{ladder_group rotate <45,> translate <-8, -9, -40> pigment{Green}}
object{ladder_group rotate <0,> translate <22,> pigment{Green}}

object{ladder_p1 rotate <45,> translate <40.5,> pigment{Green}}
object{ladder_p1 rotate <45,> translate <-40.5, -11, 5.5> pigment{Green}}
object{ladder_p1 rotate <45,> translate <5.5,> pigment{Green}}


//LADDER 2




///////////////BARRIER

#declare barrier1 = cylinder {
<-16.75, 25.5, -22>,
<-16.75, 31.1, -22>, 0.3
}

#declare barrier2 = cylinder {
<-17, 31, -22>,
<17,>, 0.3
}


#declare barrier = union{

object {barrier1 }
object {barrier1 translate x*33.5 }
object {barrier2 }
}
#declare barrier_group = union{
object {barrier}
object {barrier rotate y*90 }
object {barrier rotate y*180 }
object {barrier rotate y*-90 }

}

object{barrier_group pigment{Blue}}

Source code 4

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------

/*
//top view
camera {
location <0,>

look_at <0,>
}

*/

//front view
camera {
location <0,>

look_at <0,>
}



light_source { <0,> White }


plane {
<0,>,
-1.0



texture {
pigment {White}
}


}






//METAL STEM

cylinder {
<0,>,
<0,>, 2.5

}

//METAL RING


#declare ring = torus {
15,
0.5

texture {
pigment {Red}
}

}

//METAL PARTS CONNECTING
//METAL PART 1

#declare metal_part = cylinder {
<1,>,
<15,>, .5

}


#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}


//METAL PART 2

#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}

//METAL PARTS
//METAL PART 3

#declare metal_p3 = cylinder {
<22,>,
<34,>, .5
}



#declare metal_p4 = cylinder {
<22,>,
<12,>, .5
}


#declare metal_p5 = cylinder {
<0,>,
<34,>, .5
}


#declare metal_p6 = cylinder {
<34,>,
<34,>, .5
}


#declare metal_p7 = cylinder {
<12,>,
<34,>, .5
}


#declare metal_large = union{



object {metal_p3}
object {metal_p3 translate <-22, 0, -22>}
object {metal_p4}
object {metal_p5}
object {metal_p6}
object {metal_p7}

}


#declare metal_large_group = union{

object {ring}

object {metal_part}
object {metal_part rotate y*90}
object {metal_part rotate y*-90}
object {metal_part rotate y*180}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}

object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

object {metal_large }
object {metal_large rotate y*90}
object {metal_large rotate y*-90}
object {metal_large rotate y*180}



}

object{metal_large_group}





#declare bottom_cylinder = cylinder{

<8,>,
<8,>, 7
}


#declare bottom_sphere = sphere {
<8,>
7

}


#declare bottom_ring = torus {
6.6,
0.5

}



#declare bottom_object = merge{


object {bottom_cylinder}
object {bottom_sphere}
object {bottom_sphere translate y*14}
object {bottom_ring translate <8,>}


texture {
pigment {Red}
}


}

#declare bottom_group = union{

object {bottom_object}
object {bottom_object translate x*-16}
object {bottom_object translate <-16, 0, 42>}
object {bottom_object translate z*42}


object {bottom_object translate <13,>}
object {bottom_object translate <13,>}
object {bottom_object translate <-29, 0, 13>}
object {bottom_object translate <-29, 0, 29>}



}

object {bottom_group}

#declare bottom_cylinder = cylinder{

<8,>,
<8,>, 7
}




#declare bottom_sphere = sphere {
<8,>
7

}


#declare bottom_ring = torus {
6.6,
0.5

}



#declare bottom_object = merge{


object {bottom_cylinder}
object {bottom_sphere}
object {bottom_sphere translate y*12}
object {bottom_ring translate <8,>}
object {bottom_ring translate <8,>}

texture {
pigment {Red}
}


}

#declare bottom_group = union{

object {bottom_object}
object {bottom_object translate x*-16}
object {bottom_object translate <-16, 0, 42>}
object {bottom_object translate z*42}


object {bottom_object translate <13,>}
object {bottom_object translate <13,>}
object {bottom_object translate <-29, 0, 13>}
object {bottom_object translate <-29, 0, 29>}


object {bottom_object translate <0,> scale 0.8 pigment {White}}
object {bottom_object translate <-16, 25, 29> scale 0.8 pigment {White}}
object {bottom_object translate <-16, 25, 13> scale 0.8 pigment {White}}

}

object {bottom_group}


#declare object1 = sphere {
<12,>
6

}

object {object1}

#declare object2 = cylinder{

<3,>,
<3,>, 3
}

object {object2 pigment {White}}

Source code 3

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------

//front view
camera {
location <0,>

look_at <0,>
}



light_source { <0,> White }


plane {
<0,>,
-1.0



texture {
pigment {White}
}


}






//METAL STEM

cylinder {
<0,>,
<0,>, 2.5

}

//METAL RING


#declare ring = torus {
15,
0.5

texture {
pigment {Red}
}

}

//METAL PARTS CONNECTING
//METAL PART 1

#declare metal_part = cylinder {
<1,>,
<15,>, .5

}


#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}


//METAL PART 2

#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}

//METAL PARTS
//METAL PART 3

#declare metal_p3 = cylinder {
<22,>,
<34,>, .5
}



#declare metal_p4 = cylinder {
<22,>,
<12,>, .5
}


#declare metal_p5 = cylinder {
<0,>,
<34,>, .5
}


#declare metal_p6 = cylinder {
<34,>,
<34,>, .5
}


#declare metal_p7 = cylinder {
<12,>,
<34,>, .5
}


#declare metal_large = union{



object {metal_p3}
object {metal_p3 translate <-22, 0, -22>}
object {metal_p4}
object {metal_p5}
object {metal_p6}
object {metal_p7}

}


#declare metal_large_group = union{

object {ring}

object {metal_part}
object {metal_part rotate y*90}
object {metal_part rotate y*-90}
object {metal_part rotate y*180}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}

object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

object {metal_large }
object {metal_large rotate y*90}
object {metal_large rotate y*-90}
object {metal_large rotate y*180}



}

object{metal_large_group}





#declare bottom_cylinder = cylinder{

<8,>,
<8,>, 7
}


#declare bottom_sphere = sphere {
<8,>
7

}


#declare bottom_ring = torus {
6.6,
0.5

}



#declare bottom_object = merge{


object {bottom_cylinder}
object {bottom_sphere}
object {bottom_sphere translate y*14}
object {bottom_ring translate <8,>}
object {bottom_ring translate <8,>}

texture {
pigment {Red}
}


}

#declare bottom_group = union{

object {bottom_object}
object {bottom_object translate x*-16}
object {bottom_object translate <-16, 0, 42>}
object {bottom_object translate z*42}


object {bottom_object translate <13,>}
object {bottom_object translate <13,>}
object {bottom_object translate <-29, 0, 13>}
object {bottom_object translate <-29, 0, 29>}



}

object {bottom_group}

#declare bottom_cylinder = cylinder{

<8,>,
<8,>, 7
}




#declare bottom_sphere = sphere {
<8,>
7

}


#declare bottom_ring = torus {
6.6,
0.5

}



#declare bottom_object = merge{


object {bottom_cylinder}
object {bottom_sphere}
object {bottom_sphere translate y*12}
object {bottom_ring translate <8,>}

texture {
pigment {Red}
}


}

#declare bottom_group = union{

object {bottom_object}
object {bottom_object translate x*-16}
object {bottom_object translate <-16, 0, 42>}
object {bottom_object translate z*42}


object {bottom_object translate <13,>}
object {bottom_object translate <13,>}
object {bottom_object translate <-29, 0, 13>}
object {bottom_object translate <-29, 0, 29>}


}

object {bottom_group}

Source code 2

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#version 3.0
global_settings { assumed_gamma 2.2 }




//------CAMERA ANGLES INCLUDE FRONT VIEW, SIDE VIEW AND TOP VIEW------

//front view
camera {
location <0,>

look_at <0,>
}



light_source { <0,> White }


plane {
<0,>,
-1.0



texture {
pigment {White}
}


}




//METAL STEM

cylinder {
<0,>,
<0,>, 2.5

}

//METAL RING


#declare ring = torus {
15,
0.5

texture {
pigment {Red}
}

}

//METAL PARTS CONNECTING
//METAL PART 1

#declare metal_part = cylinder {
<1,>,
<15,>, .5

}


#declare metal_p1 = cylinder {
<15,>,
<22.25,>, .5

}


//METAL PART 2

#declare metal_p2 = cylinder {
<0,>,
<22,>, .5

}

//METAL PARTS
//METAL PART 3

#declare metal_p3 = cylinder {
<22,>,
<34,>, .5
}



#declare metal_p4 = cylinder {
<22,>,
<12,>, .5
}


#declare metal_p5 = cylinder {
<0,>,
<34,>, .5
}


#declare metal_p6 = cylinder {
<34,>,
<34,>, .5
}


#declare metal_p7 = cylinder {
<12,>,
<34,>, .5
}


#declare metal_large = union{



object {metal_p3}
object {metal_p3 translate <-22, 0, -22>}
object {metal_p4}
object {metal_p5}
object {metal_p6}
object {metal_p7}

}


#declare metal_large_group = union{

object {ring}

object {metal_part}
object {metal_part rotate y*90}
object {metal_part rotate y*-90}
object {metal_part rotate y*180}

object {metal_p1}
object {metal_p1 rotate y*90}
object {metal_p1 rotate y*-90}
object {metal_p1 rotate y*180}

object{metal_p2 }
object{metal_p2 rotate y*90}
object{metal_p2 rotate y*-90}
object{metal_p2 rotate y*180}

object {metal_large }
object {metal_large rotate y*90}
object {metal_large rotate y*-90}
object {metal_large rotate y*180}



}

object{metal_large_group}