Geo (VideoScape Object Loader/Saver)

VideoScape manual cover

Current

Legacy (6.0 and later)

Legacy (4.0 to 5.6)

Geo loads and saves VideoScape ASCII .geo files in LightWave Modeler and loads them in Layout. Source code for the newer version is part of the plug-in SDK.

VideoScape was an early Amiga 3D animation program written by Allen Hastings, author of LightWave Layout. The .geo format is useful because it's extremely simple, making it possible to create and modify objects either by hand or by using programs that are relatively easy to write.

The files are ASCII text. Line 1 contains the identifier 3DG1. Line 2 is a count of the number of points in the object. The point list begins on line 3, with one point per line. The point list is followed by a polygon list, with one polygon per line. The last number in each polygon record is a color code.

Here's an example .geo file, a gray pyramid with four triangular sides and a square base.

   3DG1             .geo version 1 file
   5                5 points
   0 1 0            point list begins here
   .5 0 -.5
   -.5 0 -.5
   -.5 0 .5
   .5 0 .5
   3 0 1 2 7        polygon list begins here
   3 0 2 3 7        color code 7 is matte gray
   3 0 3 4 7
   3 0 4 1 7
   4 1 4 3 2 7

Each point is defined by three numbers, the (x, y, z) floating-point coordinates, separated by spaces. As in LightWave, the coordinate system is left-handed, with y increasing upward. The number of point lines should match the point count on line 2. Each polygon line contains a vertex count, a list of point indices, and a color code. A point index is a number that refers to one of the points in the preceeding point list (the first point in the list has an index of 0). The number of point indices listed for a polygon should match the vertex count. Points are listed in clockwise order.

The color code is an integer that defines the color and other surface attributes of each polygon. The base color is limited to one of 16 entries in a fixed palette, with codes from 0 to 15.

Attributes such as glossy, transparent and smooth are specified by adding multiples of 16 to the base color (equivalent to setting bits 4 through 7 of the color code). A few color codes, with values between 256 and 260, are used for colorless surface effects, e.g. chrome.