Arm Hierarchy Example Code

(define (arm-base)
 (separator
  (scale (vec3 .75 .075 .75))
  (box)
  )
 )

(define (bottom-segment)
 (separator
  (scale (vec3 .1 1 .1))
  (rotate -90 (vec3 1 0 0))
  (cylinder)
  )
 )

(define (elbow)
 (separator
  (scale (vec3 .1 .1 .1))
  (sphere)
  ))

(define (upper-segment)
 (separator
  (scale (vec3 .075 1 .075))
  (rotate -90 (vec3 1 0 0))
  (cylinder)
  )
 )

(define (wrist)
 (separator
  (scale (vec3 .075 .075 .075))
  (sphere)
  ))

(define (hand)
 (separator
  (scale (vec3 .075 1 .075))
  (rotate -90 (vec3 1 0 0))
  (cone)
  )
 )

(define (robot-arm elbow-angle wrist-angle)
  (separator

    (surface "matte")
    (arm-base)
    (bottom-segment)

    ; bottom-segment-to-elbow-translation
    (translate (vec3 0 1 0))
    (rotate elbow-angle z-axis)
    (elbow)

    (upper-segment)

    ; upper-segment-to-wrist-translation
    (translate (vec3 0 1 0))
    (rotate wrist-angle z-axis)
    (wrist)

    (hand)
    )))


Return to joints
mrl