Meet Arnold:

An Articulated Robot Figure


[Description]   [Instructions]   [Java Source]   [Dave's Home Page]   [Next Demo]


You are using a browser that is not enabled to view Java applets. In order to see Arnold in action, you need a Java-enabled browser, such as Netscape 2.0 for Windows 95/NT/UNIX, or Netscape 3.0 for the Macintosh. Just so you don't feel too left out, however, here's a snapshot of Arnold for you to look at while the developers of your browser scramble to keep up with the times. Handsome devil, isn't he?



Description

I first learned Java for a graduate course in graphics programming at NYU. At the time, the language was still in alpha, although during the course of that semester, the beta version came out. This applet was the final project for that course. It's not the best Java code on the planet, and not at all optimized for performance, but it works.

Arnold is a three-dimensional, articulated robot figure, drawn in wireframe, who can be positioned interactively by the user. The user can also use the keyboard to interactively reposition the camera to look at Arnold from any angle. Be patient; he draws himself very slowly!


[Top]   [Description]   [Instructions]   [Java Source]   [Dave's Home Page]   [Next Demo]


Instructions

  1. Select a body part from the menu. Use the scrollbars to set its rotation around the three axes. Note that most of the body parts can only rotate around one axis. As they say, this is not a "bug," but a "feature." I wanted to design the robot to look realistic, and it wouldn't have looked realistic if the body parts intersected in space.
  2. The scrollbar at the bottom rotates the body part around the y axis of its attachment point, relative to its default position. The scrollbars at the left and the right have a similar effect, but around the z and x axes, respectively.
  3. Note that the Pelvis is the root of the figure, and so rotating the pelvis rotates the entire figure in space.
  4. The Camera can be moved around as follows:

    Modifier Key Effect
    none up arrow move camera forward
    down arrow move camera backward
    left arrow turn camera left
    right arrow turn camera right
    shift up arrow tilt camera upwards
    down arrow tilt camera downwards
    left arrow slide camera left
    right arrow slide camera right
    shift-ctrl up arrow slide camera upwards
    down arrow slide camera downwards
    left arrow roll camera left
    right arrow roll camera right


[Top]   [Description]   [Instructions]   [Java Source]   [Dave's Home Page]   [Next Demo]


Java Source Files

default package;

RobotApplet.java

package myGraphics.VectorGrafix;

Matrix.java
Matrix2d.java
Matrix3d.java
Transformation2d.java
Transformation3d.java
Vector.java
Vector2d.java
Vector3d.java

package myGraphics.Shape3d;

Path.java
PathTableEntry.java
Shape.java

package myGraphics.Perspective;

Camera.java
Viewport.java

package myGraphics.Kinematics;

Figure.java
Model.java
StackMachine.java


[Top]   [Description]   [Instructions]   [Java Source]   [Dave's Home Page]   [Next Demo]