Videoscape GEO file formatWritten by Max Gilead, based on Blender manualThanks to Ton Roosendaal who wrote the paper docs Additions by Paul Bourke
Videoscape file format was originally used by an early Amiga animation package called "Videoscape 3D". It is now used by Blender for importing/exporting meshes in text format. All compatibility is tested with Blender. In fact, all info in this doc is taken from Blender manual. GEO files are ascii printable text only files, the first line of which contains a single word that determines the type of file format that follows. The coordinate system is left handed, traditionally with the y axis as the default up or sky vector. Where appropriate, polygon vertices are ordered in a clockwise direction. Blank lines may be added to make file more readable but no comments lines are allowable. Files may be in four major flavours:Each flavour is identified by magic number (first line in file). They are each listed in the following sections. 1. Mesh with coloured faces
3DG1  magic number total_number_of_vertices  total number of vertices x1 y1 z1 x2 y2 z2 ...  vertex coordinates number_of_vertices_in_face vertex_index_1 vertex_index_2 vertex_index_3 ... vertex_index_n color Vertex index is counted starting from 0. Color is written in BGR format (reverse order to RGB). Eg. red color in BGR is 0x0000FF.
2. Mesh with coloured vertices
Warning! This file flavour doesn't seem to be recognized or saved by Blender and is here for completeness only. GOUR  magic number total_number_of_vertices  total number of vertices x1 y1 z1 color x2 y2 z2 color ...  vertex coordinates with color in BGR format number_of_vertices_in_face vertex_index_1 vertex_index_2 vertex_index_3 ... vertex_index_nExample file:
GOUR 4 1.000000 1.000000 0.000000 0x0000ff 1.000000 1.000000 0.000000 0x00ff00 1.000000 1.000000 0.000000 0xff0000 1.000000 1.000000 0.000000 0x00ffff 4 0 3 2 13. Lamp
3DG2  magic number total_number_of_lamps  total number of lamps in file for each lamp: type  lamp type (0  point lamp, 1  spot lamp, 2  sun) spotsize spotblend  size of spot beam in degrees and intensity (length) of beam R G B E  color (RGB) and (E)nergy of lamp x y z  lamp coordinates vecx vecy vecz  lamp direction vector
4. Gouraud curves or NURBS surfaces This kind of file can describe both curves and surfaces. 3DG3  magic number type  object type (5 is surface, other is bezier curve) number_of_items  number of curves or surfaces ext1 ext2  extrude numbers also indicated for surfaces. These are NOT floats, they're integers divided by 500. Matrix [4][4]  righthanded object matrix. Used to determine position, rotation and size for each item: type  type (0  poly, 1  bezier, 4  nurbs. Add 8 to this if curve is 2D.) pntsu pntsv  numbers of vertices in u and v directions resolu resolv  resulotion of u and v direction orderu orderv  order in the u and v direction flagu flagv  the 'cyclic' flag in u and v direction. If equal to 1 it is cyclic. for bezier repeat this block pntsu times: x y z x y z x y z  three handle vertices h1 h2  handle types (0  free, 1  auto, 2  vector, 3  aligned) for other curve type or for surface repeat this block pntsu*pntsv times: x y z w  coordinates and weight of vertices for other curve types add this block: u1 u2 u3...  knots in u direction for surfaces add this block: v1 v2 v3...  knots in v direction The number of knots is a very precise value. If the value is not correct, file will not be properly loaded. This is the calculation for the total number of knots = order + pnts + (order1)*(flag&1) If necessary, a series of increasing numbers can be filled in here.
