OpenCTM — the Open Compressed Triangle Mesh file format — is a file format, a software library and a tool set for compression of 3D triangle meshes. The geometry is compressed to a fraction of comparable file formats (3DS, STL, VRML, COLLADA...), and the format is easily accessible through a simple, portable API.


» JavaScript port of OpenCTM


Apparently, Juan Mellado ported OpenCTM to JavaScript (at least the reader part). I've been meaning to attack that problem myself at some point (OpenCTM seems like an ideal companion for WebGL). Great work!


» Mesh generation tutorial: Python and OpenCTM


Philip Rideout has contributed yet another nice tutorial. This time around he describes an interesting way to generate mathematical & procedural meshes using Python and OpenCTM.

See: Mesh generation with Python.

This shows one of the possible uses of the OpenCTM Python bindings.

» X to OpenCTM Converter


Philip Rideout has written an X file format (Direct X) to OpenCTM converter:

It is a Windows-only solution, but is definitely handy when working with X format files.

Update: Don't miss this nice tutorial and minimalist PEZ rapid development OpenGL library from Philip.

» xNormal support and OpenCTM tutorial


xNormal is a tool that focuses on generating normal maps and similar data for 3D meshes. It recently added support for OpenCTM files.

Also, Victor Martin has posted a nice video tutorial about the OpenCTM conversion tools: OpenCTM .OBJ to .CTM conversion.

» OpenCTM v1.0.3 has been released!


This release, v1.0.3, brings a few updates to the tools:

  • Added support for PNG format textures (ctmviewer).
  • Added support for LightWave LWO files (ctmconv and ctmviewer).
  • Added support for Geomview OFF files, e.g. as used by the Princeton Shape Benchmark (ctmconv and ctmviewer).
  • Improved the OBJ file loader (ctmviewer and ctmconv).
  • Experimental support for VRML 2.0 files - export only (ctmconv and ctmviewer).
  • Made it possible to run ctmviewer without command line arguments.
  • Improved the normal calculation algorithm (ctmviewer and ctmconv).
  • Normals are no longer exported if no normals were present in the input file (ctmviewer).

» OpenCTM v1.0.2 has been released!


OpenCTM v1.0.2 is the third production release of OpenCTM. This time, the 3D viewer has been much improved, but there are also a few other notable changes:

  • Added an OpenCTM exporter plugin for Maya.
  • Improved the mesh conversion control in the ctmconv tool.
  • Added manual pages for ctmconv and ctmviewer.
  • Added a "make install" target for Mac OS X and Linux.

» Over 1000 downloads


OpenCTM has now been downloaded more than 1000 times — which I find quite amazing given its relatively short life time.

Thanks everyone for showing so much interest!

» OpenCTM v1.0.1 is released!


This second production release of OpenCTM is a minor update to the v1.0 release. It is fully backwards compatible, but adds a few improvements:

  • Drastically reduced memory footprint. The LZMA compression has been tuned so that the default setting is now to use a 64 KB dictionary (was 16 MB in v1.0), without any loss in compression ratio for most models.
  • Added support for the Wavefront OBJ file format (converter & viewer).
  • Some improvements to the converter and viewer tools (e.g. better Explorer integration under Windows).
  • General source directory and build system cleanup.

» OpenCTM v1.0 is finally released!


The first production release of OpenCTM has been released!

Packages for Windows, Mac OS X, Linux, and most other operating systems are now available for download.

» Preparing the 1.0 release...


The 1.0 release of OpenCTM is getting closer. Among the news are:

  • The converter tool now support COLLADA files.
  • Python bindings and a demo Python application.
  • Improved internal integrity checking in the OpenCTM API.
  • Complete file format specification.

The final work is currently being done on the format specification, after which the release will be made.