3 wheeled unicycle animation video

I’m building a 3 wheeled uni and made this animation to check the
dimensions. If you are interested in looking at it it’s at
http://mgrant.unicyclist.com/3_wheel_uni.avi

I used PovRay (www.povray.org) to make it.

It’s sorta big (almost 6Mb). You need DivX codecs which are available from
www.divx.com.

If you look close you’ll notice that there are no hub flanges. The spokes
just hang in space where there should be a flange. Since I’m not making the
wheels that was unimportant to me and wasn’t visually distracting enough for
me to spend the time making hub flanges.

If anyone is interested in the povray source here it is:

//Begin Povray Source
global_settings { assumed_gamma 2.2 }

#include “colors.inc”
#include “textures.inc”
#declare clock1=clock;

camera {
location <50, 100, -50>
right <4/3, 0, 0>
up <0, 1, 0>
sky <0, 1, 0>
direction <0, 0, 1.8>
look_at <0, 40, 0>

}

light_source { <50, 200, -100> colour Gray70 }
light_source { <-20, 40, -20> colour Gray70 }
light_source { <100, 80, -200> colour Gray70 }

background { color White }

plane { y, 0
pigment { White }
}

//Top Wheel Axle
cylinder
{
-3.6z, 3.6z, 5/8
translate<0,50,0>
texture{Chrome_Metal}
// open
}

//Crank Arm (L)
union{

box
{
<-0, -.5, -.5> // one corner position <X1 Y1 Z1>
< 5.5, .5, .5> // other corner position <X2 Y2 Z2>
}
cylinder
{
.5z, -.5z, .8
}
rotate 360zclock1
translate<0,50,-3>
pigment {color red 1}
}

//Crank Arm ®
union{

box
{
<-5.5, -.5, -.5> // one corner position <X1 Y1 Z1>
< 0, .5, .5> // other corner position <X2 Y2 Z2>
}
cylinder
{
.5z, -.5z, .8
}
rotate 360zclock1
translate<0,50,3>
pigment {color red 1}
}

box
{
<-1.5, -.5, -2> // one corner position <X1 Y1 Z1>
< 1.5, .5, 2> // other corner position <X2 Y2 Z2>
rotate zclock1-360
translate <5,0,-5.75>
rotate zclock1360
translate y50
pigment { color green 1 }
}
box
{
<-1.5, -.5, -2> // one corner position <X1 Y1 Z1>
< 1.5, .5, 2> // other corner position <X2 Y2 Z2>
rotate z
clock1*-360
translate <-5,0,5.75>
rotate zclock1360
translate y*50
pigment { color green 1 }
}

//Rims bottom first
torus
{
9.3,.9
rotate <90,0,0>
translate<0,10,0>
texture{Chrome_Metal}
}
torus
{
9.3,.9
rotate <90,0,0>
translate<0,30,0>
texture{Chrome_Metal}
}
torus
{
9.3,.9
rotate <90,0,0>
translate<0,50,0>
texture{Chrome_Metal}
}

//Tires bottom first
torus
{
9.5,
1
rotate <90, 0, 0> // <dX dY dZ> (in degrees)
translate <0,10,0>
}
torus
{
9.5,
1
rotate <90, 0, 0> // <dX dY dZ> (in degrees)
translate <0,30,0>
}
torus
{
9.5,
1
rotate <90, 0, 0> // <dX dY dZ> (in degrees)
translate <0,50,0>
}

//Left fork blade
union {
box
{
<-25, -1, -1/8> // one corner position <X1 Y1 Z1>
< 26, 1, 1/8> // other corner position <X2 Y2 Z2>
// texture { Copper_Metal }
rotate<0,0,90>
translate<0,34,-2>
}

box
{
<-1, 0,-1/8>
< 1, 2, 1/8>
rotate x*45
translate <0,59.9,-2.05>
// pigment { Green }
}

box
{
<-1, 0,-1/8>
< 1, 6, 1/8>
translate <0,61.25,-.66>
// pigment { Yellow }
}
texture { Copper_Metal }
}

//Right fork blade
union{
box
{
<-25, -1, -1/8> // one corner position <X1 Y1 Z1>
< 26, 1, 1/8> // other corner position <X2 Y2 Z2>
// texture { Copper_Metal }
rotate<0,0,90>
translate<0,34,2>
}
box
{
<-1, 0,-1/8>
< 1, 2, 1/8>
rotate x*-45
translate <0,59.9,2.05>
// pigment { Green }
}

box
{
<-1, 0,-1/8>
< 1, 6, 1/8>
translate <0,61.25,.66>
// pigment { Yellow }
}
texture { Copper_Metal }
}

//Spokes

//Top
#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
7
translate x*-9.5
rotate zCount
rotate z
360clock1
translate y
50
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
-7
translate x*-9.5
rotate zCount
rotate z
18
rotate z360clock1
translate y*50
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z7
translate x
-9.5
rotate zCount
rotate z
9
rotate z360clock1
translate y*50
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z*-7
translate x*-9.5
rotate zCount
rotate z
-9
rotate z360clock1
translate y*50
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

//Middle
#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
7
translate x*-9.5
rotate zCount
rotate z
-360clock1
translate y
30
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
-7
translate x*-9.5
rotate zCount
rotate z
18
rotate z*-360clock1
translate y
30
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z7
translate x
-9.5
rotate zCount
rotate z
9
rotate z*-360clock1
translate y
30
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z*-7
translate x*-9.5
rotate zCount
rotate z
-9
rotate z*-360clock1
translate y
30
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

//Bottom
#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
7
translate x*-9.5
rotate zCount
rotate z
360clock1
translate y
10
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y10
rotate z
-7
translate x*-9.5
rotate zCount
rotate z
18
rotate z360clock1
translate y*10
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z7
translate x
-9.5
rotate zCount
rotate z
9
rotate z360clock1
translate y*10
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

#declare Count=0;
#while (Count < 360)

cylinder
{
0x, 9.5x, .075
rotate y*-10
rotate z*-7
translate x*-9.5
rotate zCount
rotate z
-9
rotate z360clock1
translate y*10
texture { Chrome_Metal }
// open
#declare Count=Count+(360/9);
}
#end

cylinder
{
-2.2z, 2.2z, 1/4
translate y10
texture { Chrome_Metal }
}
cylinder
{
-2.2
z, 2.2z, 1/4
translate y
30
texture { Chrome_Metal }
}
//End Povray source

Re: 3 wheeled unicycle animation video

For anyone wanting a smaller version (320x240 1494Kb) I’ve put one at:
http://mgrant.unicyclist.com/3_wheel_320x240.avi

-mg

“Michael Grant” <michael_j_grant@msn.com> wrote in message
news:#EN3zeP0BHA.1736@cpimsnntpa04…
> I’m building a 3 wheeled uni and made this animation to check the
> dimensions. If you are interested in looking at it it’s at
> http://mgrant.unicyclist.com/3_wheel_uni.avi
>
> I used PovRay (www.povray.org) to make it.
>
> It’s sorta big (almost 6Mb). You need DivX codecs which are available
from
> www.divx.com.
>
> If you look close you’ll notice that there are no hub flanges. The spokes
> just hang in space where there should be a flange. Since I’m not making
the
> wheels that was unimportant to me and wasn’t visually distracting enough
for
> me to spend the time making hub flanges.
>
> If anyone is interested in the povray source here it is:
>
> //Begin Povray Source
> global_settings { assumed_gamma 2.2 }
>
>
> #include “colors.inc”
> #include “textures.inc”
> #declare clock1=clock;
>
> camera {
> location <50, 100, -50>
> right <4/3, 0, 0>
> up <0, 1, 0>
> sky <0, 1, 0>
> direction <0, 0, 1.8>
> look_at <0, 40, 0>
>
> }
>
> light_source { <50, 200, -100> colour Gray70 }
> light_source { <-20, 40, -20> colour Gray70 }
> light_source { <100, 80, -200> colour Gray70 }
>
> background { color White }
>
> plane { y, 0
> pigment { White }
> }
>
>
> //Top Wheel Axle
> cylinder
> {
> -3.6z, 3.6z, 5/8
> translate<0,50,0>
> texture{Chrome_Metal}
> // open
> }
>
> //Crank Arm (L)
> union{
>
> box
> {
> <-0, -.5, -.5> // one corner position <X1 Y1 Z1>
> < 5.5, .5, .5> // other corner position <X2 Y2 Z2>
> }
> cylinder
> {
> .5z, -.5z, .8
> }
> rotate 360zclock1
> translate<0,50,-3>
> pigment {color red 1}
> }
>
>
> //Crank Arm ®
> union{
>
> box
> {
> <-5.5, -.5, -.5> // one corner position <X1 Y1 Z1>
> < 0, .5, .5> // other corner position <X2 Y2 Z2>
> }
> cylinder
> {
> .5z, -.5z, .8
> }
> rotate 360zclock1
> translate<0,50,3>
> pigment {color red 1}
> }
>
> box
> {
> <-1.5, -.5, -2> // one corner position <X1 Y1 Z1>
> < 1.5, .5, 2> // other corner position <X2 Y2 Z2>
> rotate zclock1-360
> translate <5,0,-5.75>
> rotate zclock1360
> translate y50
> pigment { color green 1 }
> }
> box
> {
> <-1.5, -.5, -2> // one corner position <X1 Y1 Z1>
> < 1.5, .5, 2> // other corner position <X2 Y2 Z2>
> rotate z
clock1*-360
> translate <-5,0,5.75>
> rotate zclock1360
> translate y50
> pigment { color green 1 }
> }
>
> //Rims bottom first
> torus
> {
> 9.3,.9
> rotate <90,0,0>
> translate<0,10,0>
> texture{Chrome_Metal}
> }
> torus
> {
> 9.3,.9
> rotate <90,0,0>
> translate<0,30,0>
> texture{Chrome_Metal}
> }
> torus
> {
> 9.3,.9
> rotate <90,0,0>
> translate<0,50,0>
> texture{Chrome_Metal}
> }
>
> //Tires bottom first
> torus
> {
> 9.5,
> 1
> rotate <90, 0, 0> // <dX dY dZ> (in degrees)
> translate <0,10,0>
> }
> torus
> {
> 9.5,
> 1
> rotate <90, 0, 0> // <dX dY dZ> (in degrees)
> translate <0,30,0>
> }
> torus
> {
> 9.5,
> 1
> rotate <90, 0, 0> // <dX dY dZ> (in degrees)
> translate <0,50,0>
> }
>
> //Left fork blade
> union {
> box
> {
> <-25, -1, -1/8> // one corner position <X1 Y1 Z1>
> < 26, 1, 1/8> // other corner position <X2 Y2 Z2>
> // texture { Copper_Metal }
> rotate<0,0,90>
> translate<0,34,-2>
> }
>
> box
> {
> <-1, 0,-1/8>
> < 1, 2, 1/8>
> rotate x
45
> translate <0,59.9,-2.05>
> // pigment { Green }
> }
>
> box
> {
> <-1, 0,-1/8>
> < 1, 6, 1/8>
> translate <0,61.25,-.66>
> // pigment { Yellow }
> }
> texture { Copper_Metal }
> }
>
> //Right fork blade
> union{
> box
> {
> <-25, -1, -1/8> // one corner position <X1 Y1 Z1>
> < 26, 1, 1/8> // other corner position <X2 Y2 Z2>
> // texture { Copper_Metal }
> rotate<0,0,90>
> translate<0,34,2>
> }
> box
> {
> <-1, 0,-1/8>
> < 1, 2, 1/8>
> rotate x*-45
> translate <0,59.9,2.05>
> // pigment { Green }
> }
>
> box
> {
> <-1, 0,-1/8>
> < 1, 6, 1/8>
> translate <0,61.25,.66>
> // pigment { Yellow }
> }
> texture { Copper_Metal }
> }
>
> //Spokes
>
> //Top
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y10
> rotate z
7
> translate x*-9.5
> rotate zCount
> rotate z
360clock1
> translate y
50
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y10
> rotate z
-7
> translate x*-9.5
> rotate zCount
> rotate z
18
> rotate z360clock1
> translate y50
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0
x, 9.5x, .075
> rotate y
-10
> rotate z7
> translate x
-9.5
> rotate zCount
> rotate z
9
> rotate z360clock1
> translate y50
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0
x, 9.5x, .075
> rotate y
-10
> rotate z*-7
> translate x*-9.5
> rotate zCount
> rotate z
-9
> rotate z360clock1
> translate y50
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> //Middle
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0
x, 9.5x, .075
> rotate y
10
> rotate z7
> translate x
-9.5
> rotate zCount
> rotate z
-360clock1
> translate y
30
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y10
> rotate z
-7
> translate x*-9.5
> rotate zCount
> rotate z
18
> rotate z*-360clock1
> translate y
30
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y*-10
> rotate z7
> translate x
-9.5
> rotate zCount
> rotate z
9
> rotate z*-360clock1
> translate y
30
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y*-10
> rotate z*-7
> translate x*-9.5
> rotate zCount
> rotate z
-9
> rotate z*-360clock1
> translate y
30
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> //Bottom
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y10
> rotate z
7
> translate x*-9.5
> rotate zCount
> rotate z
360clock1
> translate y
10
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0x, 9.5x, .075
> rotate y10
> rotate z
-7
> translate x*-9.5
> rotate zCount
> rotate z
18
> rotate z360clock1
> translate y10
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0
x, 9.5x, .075
> rotate y
-10
> rotate z7
> translate x
-9.5
> rotate zCount
> rotate z
9
> rotate z360clock1
> translate y10
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> #declare Count=0;
> #while (Count < 360)
>
> cylinder
> {
> 0
x, 9.5x, .075
> rotate y
-10
> rotate z*-7
> translate x*-9.5
> rotate zCount
> rotate z
-9
> rotate z360clock1
> translate y10
> texture { Chrome_Metal }
> // open
> #declare Count=Count+(360/9);
> }
> #end
>
> cylinder
> {
> -2.2
z, 2.2z, 1/4
> translate y
10
> texture { Chrome_Metal }
> }
> cylinder
> {
> -2.2z, 2.2z, 1/4
> translate y*30
> texture { Chrome_Metal }
> }
> //End Povray source
>
>

Cool cartoon, Michael. My vision must be failing me. I can’t tell that the hub flanges are missing. I like the effect of the lighting from two sides with double shadowing. The smaller version definitely ran faster and I saw no difference in the resolution. Both versions pretty much killed Netscape but it worked fine in IE with Windows Media.

Cool! I haven’t played with POV-Ray since about '94 or so. Back then I only had an AMD 386-40MHz. Scenes could take days or weeks to render. Now that I have a machine that could render those scenes in seconds I should try playing with POV-Ray again.

I always wanted to model a unicycle in POV but never had the time to do one correctly.