Actually, maybe it is display which I would like to see more ruby like

display = Proc.new {
   GL.Clear(GL::COLOR_BUFFER_BIT);
   GL.PushMatrix();
   GL.Translate(-1.0, 0.0, 0.0);
   GL.Rotate($shoulder, 0.0, 0.0, 1.0);
   GL.Translate(1.0, 0.0, 0.0);
   GL.PushMatrix();
   GL.Scale(2.0, 0.4, 1.0);
   GLUT.WireCube (1.0);
   GL.PopMatrix();

   GL.Translate(1.0, 0.0, 0.0);
   GL.Rotate($elbow, 0.0, 0.0, 1.0);
   GL.Translate(1.0, 0.0, 0.0);
   GL.PushMatrix();
   GL.Scale(2.0, 0.4, 1.0);
   GLUT.WireCube(1.0);
   GL.PopMatrix();

   GL.PopMatrix();
   GLUT.SwapBuffers();
}
In this simple example, the arms are represented by a scaled cube.
so the basic drawing takes two lines
   GL.Scale(2.0, 0.4, 1.0);
   GLUT.WireCube(1.0);

But the figures I have seen on the internet have a long list of parts,
for ex
http://www.experts-exchange.com/Programming/Programming_Languages/C/Q_21391512.html

Typically, data like info in ruby would be stored in an object? So I
should create an object for each body part, with in this case a method
made of those two lines?

The other problem with this program is that it draws the upper arm, and
then draws the fore arm at the end of the upper arm. So whatever
rotation the arm went through the forearm will stay attached to the
arm. But with a whole body, this way of drawing does not generalise. It
seems to me that ruby's object oriented hierarchies would be perfect
for this.

So in the object Arm, I should create a forearmobject, and in
forearmobject, I should create a hand object. The method draw arm
object would draw the arm, and proceed to call the draw forearm method,
which would draw the forearm, and call the draw hand method.

This program seems to redraw the whole figure from scratch, even if
only the forearm was changed. I wonder if the computation could be
saved so only the part changed is redrawn, but it does not sound like
it, because push and pop suggests a giant laundry list which it would
not be easy to access in organised pieces.

If this is the case, I just need to figure out who is at the top of the
hierarchy, probably the hip, and build the thing.

are those thoughts on the right track for a ruby way version of
robot.rb?