January 1999

The Vertex-Edge-Face format isn't a formal file format but is used by many people to describe single geometric objects. The files are generally easy to create by hand or automatically, they are easy to read in software, and they contain the essense of the geometry of the object.

The file consists of 3 parts- A list of the vertices making up the object as an (x,y,z) triple
- A list of the edges in the object referenced by a pair of vertex numbers
- A list of the faces (polygons) making up the object referenced
by a number of vertex numbers

For each of these parts there is a count at the beginning of the part indicating the number of items in that part. ie: the number of vertices preceedes the vertices themselves, the number of edges and faces preceed their respective data. Generally, line breaks separate each item. So there is one vertex per line, one edge per line, and one face per line. The parts of a line are separated by any white space character, usually a space or tab.

There are some variations that are often found- The vertices can be numbered from 1 instead of from 0.
- Sometimes the vertices have a label, normally as the first item
on the line for each vertex.
- The vertices can have more than 3 coordinates for higher dimensional
objects.
- Comments are sometimes supported, normally anything from a "#"
to the end of the line is considered to be a comment.
- The edge list can be missing, indeed it can always be reconstructed
from the face list.
- The face list can be in terms of the edge numbers instead of the
vertex numbers.
- It is often necessary for the faces to be specified in a particular
order, for example, clockwise when looking "out" of the object.
- For higher dimensional geometric forms there can be other parts
which list the hyperfaces say.

**Example**

A unit cube with it's left-bottom corner at the origin
might be described as follows:

8 # Number of vertices 0 0 0 # x y z 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 12 # Number of edges 0 1 # Bottom edges 1 2 2 3 3 0 4 5 # Top edges 5 6 6 7 7 4 0 4 # Middle edges 1 5 2 6 3 7 6 # Number of faces 4 0 1 2 3 # Bottom 4 4 5 6 7 # Top 4 0 1 5 4 # Front 4 3 2 6 7 # Back 4 0 3 7 4 # Left 4 1 2 6 5 # Right

It was created by hand from the sketch below