Performance

Please note that the following figures should be taken with a grain of salt. There are many things that impact the result, such as rounding/precision (e.g. how many decimal places are used in ASCII file formats), and which program was used to generate the file (e.g. triangle ordering, mesh representation etc).

Size

The sizes of several files were tested for different common 3D file formats. It should be noted that not all features are supported by all file formats (see the table below), making 1:1 comparisons a bit more difficult.

STLVRML 97PLYOBJLWO3DSOpenCTM
Vertex colorsNONO*YESNOYESNOYES
Texture coordinatesNOYESYESYESYESYESYES
Can have >65535 tri:sYESYESYESYESYESNOYES

Note* : Limitation in the Blender export.

Stanford bunny

TrianglesVerticesVertex colorsTexture coordinates
6945135947NONO

Diagram of file sizes for the bunny

Headless giant

TrianglesVerticesVertex colorsTexture coordinates
181649086NONO

Diagram of file sizes for the headless giant

Cyberware whole body scan (male03)

TrianglesVerticesVertex colorsTexture coordinates
1448269724231YESNO

Diagram of file sizes for the male

Ambulance (raf22031)

TrianglesVerticesVertex colorsTexture coordinates
446442NOYES

Diagram of file sizes for the ambulance

Audi TT wheel

TrianglesVerticesVertex colorsTexture coordinates
6909448011YESNO

Diagram of file sizes for the Audi TT wheel

Conclusion

When compared to other uncompressed file formats, the OpenCTM files compress to 7% with the MG2 method, 15% with the MG1 method and 51% with the RAW method (no compression), on average.

As a rule of thumb, the OpenCTM compression methods perform better on larger meshes (such as the male03 case, which achieves a compression ratio of 4.5% with the MG2 method). This can be attributed to the fact that OpenCTM uses a dictionary based entropy coder, which performs better with larger data sets. Also, highly tesselated meshes usually have less spatial entropy than sparse meshes.