High-speed 3-D animation for IBM PC/XT/AT/PS-2 computers Jack M. Loomis and David W. Eby Department of Psychology University of California, Santa Barbara CA 93106 Hardware requirements: MS-DOS or PC-DOS IBM type-computer with 640K of RAM, CGA-capability (e.g., CGA, EGA, or VGA). RGB monitor highly recommended. Start-up requirement: No ram-resident utility (ramdisk or program) should be installed when running this software, for memory interference will result. The two programs OBJECT and AUTOMOVE allow one to create and move 3-D objects about within 3-D space. The objects (e.g., torus, cylinder, helix, cube, ellipsoid) are defined by points positioned randomly on their surfaces. The motion editor (AUTOMOVE) permits one to move up to 4 objects about in space; the motion can be any combination of linear translation and rotation (about an arbitrary fixed axis). Each frame of an animation sequence consists of a perspective projection of the moving object. For those with color monitors, objects can be projected in any of 3 colors using the 320x200 CGA graphics mode. On 8 MHz 80286 machines, animation of frames consisting of up to 600 points each is possible at rates of up to 60 frames/sec. To achieve this speed, the frames of the animation sequence are first computed and stored in RAM and then played back from RAM. These programs were developed to permit study of the visual perception of 3-D shape from motion, but they may be useful to anyone interested in doing high-speed 3-D animation. They are surprisingly effective displays. The two programs provided here are the object editor, OBJECT.EXE, and the motion editor, AUTOMOVE.EXE. You can use the object editor to create your own objects (we suggest objects with 256 points) or you can use three pre-made objects (with .OBT extension) as inputs to AUTOMOVE. When you execute AUTOMOVE, you will see that there are two modes of operation: automatic and manual. In the automatic mode, you select one of three objects and one of two motions and an animation sequence is automatically created and displayed. In the manual mode, you can input any object you might have created using OBJECT.EXE and then select parameters for moving it about in space. To give you an idea of how to use the motion editor manually, we will take you through creation of an animation sequence using the object DOGMOT.OBT as an input (DOGMOT is a difference-of-gaussians). When you execute AUTOMOVE, select option 1 (load objects), enter 1 (# of objects), type in DOGMOT (without extension) as the name of the object, and enter 256 for the number of points. When the program returns to the main menu, you may select options 2 or 3 to review or change the default parameters. Option 2 sets the projection plane distance and position of the image on the screen. Option 3 sets the image scale factors for your particular video display. For now, we recommend that you do not alter the default values. Instead, select Option 4. Clear 2 segments of memory (of 64K each) beginning at segment 4. Then select 170 frames. Choose your object to be whatever color you wish (use 3 if you have a monochrome monitor). Then choose the starting and ending coordinates both to be 0,0,400 (there will be no translation of the object). If you wish, you can alter the starting orientation of the object, but for now we suggest that you specify no change. Finally, specify a rotation that is about an axis with X, Y, and Z axis components. We suggest proportions of .4, .4 and .2 (the last is computed for you since the three proportions add up to 1). Finally, select 360 for a full rotation. If you have entered all values correctly, respond to the final prompt with "y". After all 170 frames have been created (and stored in memory), the program returns to the main menu. Select Option 6 to display the sequence. Specify a starting segment of 4, 256 points, 170 frames, 1 raster scan per frame, and 10 times through the sequence. If you like what you saw, you can save the animation sequence using Option 5. The animation routines were developed in assembly language and are callable from BASIC or Turbo Pascal. The 3-D object and motion programs were created in BASIC. Besides the compiled versions provided here, we have versions that run under the interpreter (BASIC or GWBASIC) as well. All assembler and BASIC source code and executable programs (on a 360K disk), a 1.2M disk of animation demonstrations (for faster machines with RGB displays), a published article and 16 page manual are available by sending a $6 check (made out to the Regents of the University of California) to the first author (Loomis) at the above address. The $6 charge is for the cost of disks, duplication, and postage. Allow up to 2 weeks for us to respond. Reference: Loomis, J.M. & Eby, D.W. High-speed animation on the IBM PC/XT/AT. Behavior Research Methods, Instruments, and Computers, 1987, 19, 10-18.