POV-Ray : Newsgroups : povray.text.scene-files : Amiga Juggler : Re: Amiga Juggler Server Time
15 May 2024 19:09:25 EDT (-0400)
  Re: Amiga Juggler  
From: Bob Hughes
Date: 13 Mar 2008 06:23:44
Message: <47d90ec0@news.povray.org>
"zman" <zma### [at] thezbuffercom> wrote in message 
news:web.47d816c5df0163a4f66930fa0@news.povray.org...
>
> http://home.comcast.net/~erniew/juggler.html
>
> figured someone would have reproduced such a classic given how many POV 
> ray
> files have been created over the years.


http://0mniverse.com/anims/amiga-like_juggler.gif

This isn't exactly a replica, just put it together after reading this in the 
early morning hours here.

That was an interesting story about this juggler, I hadn't seen it before... 
or don't remember it from so many years ago. I used to stare at the stuff on 
the Amiga displays in store windows, too.  ;^)

Here's the rather simplistic (yet long) SDL you can try to work with if you 
want. Also uses the oscillating clock from clockmod.inc by Chris Colefax, 
done so I could move the arms. No doubt this could be improved upon so I 
leave that up to you! (Wow! it's a longer file than I thought! sorry). 
Especially badly done, perhaps, is the ultra simple (and separate) splines 
for ball motions. First thing that came to mind I tried.

/* not exactly the Amiga Juggler */

camera {
 location -9.33*z
 look_at <0.33,-0.67,-0.33>
 angle 58
 rotate <22.5,-45,0>
}

light_source {
 -99*z,
 1
 area_light <5,0,0>,<0,5,0>,9,9 jitter adaptive 1
 rotate <45,-45,0>
}

sky_sphere {
 pigment {
  function {abs(y)}
  color_map {
   [0 rgb <0.4,0.6,0.9>]
   [0.15 rgb <0.2,0.5,1>]
   [1 rgb <0.1,0.3,0.8>]
  }
 }
}

// floor
box {
 <-10,0,-10>,<10,-1,10>
 texture {
  pigment {
   checker color rgb <1,1,0> color rgb <0,1,0>
  }
  finish {
   ambient 0.05
   diffuse 0.75
  }
 }
 translate -5.9*y
}


// ball texture
#declare Mirrored=
material {
 texture {
  pigment {
   color rgb 0.1
  }
  normal {
   wrinkles 0
  }
  finish {
   ambient 0
   diffuse 0.1
   specular 0.9 roughness 0.002
   reflection {
    0.9,0.999
   }
  }
 }
}


// arm motion clocks

#declare clock_type="O";
#declare clock_start=0.25;
#declare clock_finish=0.75;
#include "clockmod.inc"
#declare OcR=-mclock;

#declare clock_type="O";
#declare clock_start=0;
#declare clock_finish=0.5;
#include "clockmod.inc"
#declare OcL=mclock;

#declare JugglePath1=
spline {
 natural_spline
 0, <-1,0,0>
 0.5, <0,0.1,0>
 1, <1,0,0>
}

sphere {
 JugglePath1(clock),0.5
 material {
  Mirrored
 }
}

#declare JugglePath2=
spline {
 natural_spline
 0, <1,0,0>
 0.33, <0.75,1,0>
 0.67, <0.4,1.7,0>
 1, <0,2,0>
}

sphere {
 JugglePath2(clock),0.5
 material {
  Mirrored
 }
}

#declare JugglePath3=
spline {
 natural_spline
 0, <0,2,0>
 0.33, <-0.5,1.8,0>
 0.67, <-0.75,1,0>
 1, <-1,0,0>
}

sphere {
 JugglePath3(clock),0.5
 material {
  Mirrored
 }
}

// JUGGLER
union {
union { // eyes
 sphere {
  <-0.25,0.4,-0.6>,0.2
 }
 sphere {
  <0.25,0.4,-0.6>,0.2
 }
 pigment {
  rgb <0.1,0.1,0.9>
 }
}
union { // hair
 sphere {
  <-0.05,0.5,0>,0.67
 }
 sphere {
  <0,0.5,0.1>,0.67
 }
 sphere {
  <0.125,0.4,0.05>,0.67
 }
 pigment {
  rgb <0.3,0.1,0.1>
 }
}
union { // head
 sphere {
  <0,0.33,0>,0.75
 }
 cylinder {
  <0,-0.25,0.1>,<0,-0.75,0.1>,0.4
 }
 pigment {
  rgb <1,0.7,0.3>
 }
}
union { // upper body
 sphere {
  0,1.8
  scale <1,0.5,0.5>
  translate <0,-1.25,0>
 }
 sphere {
  0,1.7
  scale <1,0.5,0.5>
  translate <0,-1.75,0>
 }
 sphere {
  0,1.6
  scale <1,0.5,0.5>
  translate <0,-2.25,0>
 }
 sphere {
  0,1.5
  scale <1,0.5,0.5>
  translate <0,-2.75,0>
 }
 sphere {
  0,1.4
  scale <1,0.5,0.5>
  translate <0,-3.25,0>
 }
 sphere {
  0,1.3
  scale <1,0.5,0.5>
  translate <0,-3.75,0>
 }
 // upper left arm
 sphere {
  0,0.5
  translate <1.5,-1.5,0>
 }
 sphere {
  0,0.475
  translate <1.55,-2,-0.25>
 }
 sphere {
  0,0.45
  translate <1.6,-2.5,-0.5>
 }
union {
 // lower left arm
 sphere {
  0,0.4
  translate <1.65,-3,-1>
 }
 sphere {
  0,0.375
  translate <1.7,-2.875,-1.5>
 }
 sphere {
  0,0.35
  translate <1.65,-2.75,-1.75>
 }
 sphere {
  0,0.325
  translate <1.6,-2.625,-2>
 }
 sphere {
  0,0.3
  translate <1.55,-2.5,-2.25>
 }
 sphere { // left hand
  0,0.35
  scale <1,0.5,1.25>
  translate <1.5,-2.375,-2.75>
 }
 pigment {
  rgb <1,0.7,0.3>
 }
 translate <-1.65,3,1>
 rotate <10,-5,0>*OcL
 translate <1.65,-3,-1>
}
 // upper right arm
 sphere {
  0,0.5
  translate <-1.5,-1.5,0>
 }
 sphere {
  0,0.475
  translate <-1.55,-2,-0.25>
 }
 sphere {
  0,0.45
  translate <-1.6,-2.5,-0.5>
 }
union {
 // lower right arm
 sphere {
  0,0.4
  translate <-1.65,-3,-1>
 }
 sphere {
  0,0.375
  translate <-1.7,-2.875,-1.5>
 }
 sphere {
  0,0.35
  translate <-1.65,-2.75,-1.75>
 }
 sphere {
  0,0.325
  translate <-1.6,-2.625,-2>
 }
 sphere {
  0,0.3
  translate <-1.55,-2.5,-2.25>
 }
 sphere { // right hand
  0,0.35
  scale <1,0.5,1.25>
  translate <-1.5,-2.375,-2.75>
 }
 pigment {
  rgb <1,0.7,0.3>
 }
 translate <1.65,3,1>
 rotate <-5,10,0>*OcR
 translate <-1.65,-3,-1>
}
 pigment {
  rgb <1,0,0>
 }
}
union {
 sphere {
  0,1.4
  scale <1,0.5,0.5>
  translate <0,-4.25,0>
 }
 sphere {
  0,1.5
  scale <1,0.5,0.6>
  translate <0,-4.75,0>
 }
 // right leg
 sphere {
  0,0.7
  translate <-0.75,-5.5,0>
 }
 sphere {
  0,0.65
  translate <-0.85,-6.5,0>
 }
 sphere {
  0,0.6
  translate <-0.95,-7.5,0>
 }
 sphere {
  0,0.55
  translate <-1.05,-8.5,0>
 }
 sphere {
  0,0.5
  translate <-1.15,-9.5,0>
 }
 sphere { // right foot
  0,0.5
  scale <1,0.5,1.75>
  rotate 15*y
  translate <-1.33,-10,-0.5>
  pigment {
   rgb 0.01
  }
 }
 // left leg
 sphere {
  0,0.7
  translate <0.75,-5.5,0>
 }
 sphere {
  0,0.65
  translate <0.85,-6.5,0>
 }
 sphere {
  0,0.6
  translate <0.95,-7.5,0>
 }
 sphere {
  0,0.55
  translate <1.05,-8.5,0>
 }
 sphere {
  0,0.5
  translate <1.15,-9.5,0>
 }
 sphere { // left foot
  0,0.5
  scale <1,0.5,1.75>
  rotate -15*y
  translate <1.33,-10,-0.5>
  pigment {
   rgb 0.01
  }
 }
 pigment {
  rgb <0,0,1>
 }
}

 scale 0.67
 translate <0,1,2>
}

/* END */


/*bob hughes*/


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.