OpenCTM is a file format designed to store compact 3D triangular meshes. It comes with a library for developers and 3D designers to read and write OpenCTM files.
OpenCTM only handles triangular mesh data and is not a scene description format. It is adaptable to almost any application, allowing visualization systems, game engines, medical applications to customize their own scene description or model format using OpenCTM as a 3D data support format.
The file format (extension .ctm) has the following features:
- Open format (zlib/libpng license).
- Supports storage of per-vertex normals, UV coordinates, and custom vertex attributes.
- Can store very large geometries (billions of triangles and vertices).
- Compact storage of 3D triangular geometries, using entropy reduction techniques, combined with state-of-the-art entropy coding (LZMA). An STL file can typically be compressed to 5-6% of its original size.
- Lossless compression with user-controllable precision:
- Lossless compression (IEEE 754 32-bit floating point).
- Fixed-point representation with user-controllable precision
The included 3D file converter (ctmconv) has the following features:
- Supports the following formats (read and write)::
- OpenCTM (.ctm)
- COLLADA 1.4/1.5 (.dae)
- Stéréolithographie (.stl
- Format triangle de Stanford (.ply)
- Studio 3D (.3ds)*
- Géométrie du front d'onde (.obj)*
- Objet LightWave (.lwo)
- Objet Geomview (.off)
- Control over OpenCTM compression settings.
- Scaling and transformation.
- Multiplatform: Windows, Mac OS X, Linux, OpenSolaris, etc.
The visualization application (ctmviewer) has the following features:
- Interactive OpenGL 3D view:
- Phong shading based on GLSL
- Texturing
- Vertex colors
- Fast loading - perfect for previewing 3D files.
- Imports and exports files supported by the conversion tool.
- Portable (works on Windows, Mac OS X, Linux, OpenSolaris, etc.).
CAD Interop distributes several software solutions for preparing, viewing, and converting OpenCTM files. Below is a list of our solutions compatible with the OpenCTM format: