CTM to OBJ Converter

To convert CTM to OBJ, drop your .ctm file here and press Download OBJ. The OpenCTM mesh is unpacked in your browser, whichever compression it uses (RAW, MG1 or MG2), and saved as a standard OBJ with its normals, UVs and vertex colours. You can also save GLB or STL. Nothing is uploaded.

Free · RAW, MG1 and MG2 · your file stays in your browser

Loading the CTM converter...

How to convert CTM to OBJ

  1. 1

    Open the .ctm

    Drop the file on the converter or pick it. If the model has a texture image, add it too. Nothing is uploaded: the file is read in your browser.

  2. 2

    Check the preview

    The mesh appears in 3D with its colours, with the compression method, vertex and triangle counts and the texture name the file asks for.

  3. 3

    Download OBJ

    Press Download OBJ. You get the same vertices and triangles, in the same order, with normals, UVs and vertex colours when the file has them.

  4. 4

    Or GLB and STL

    Save GLB for web viewers, game engines and AR, or STL for a 3D printer slicer.

What is a CTM file, and who uses it?

A .ctm file is an OpenCTM file: a triangle mesh (the same kind of data as OBJ, STL or PLY) packed to a fraction of their size. OpenCTM was made by Marcus Geelnard as an open file format with a free C library and tools, under the permissive zlib licence.

Besides the vertices and triangles, a CTM file can hold normals, UV maps with the name of their texture image, and extra values per vertex, most often colours. It does not hold materials, scenes, bones or animation.

It is used where meshes have to be small: to store and share 3D scans, to send models to web 3D viewers (three.js shipped a CTM loader in its examples for years), and in MeshLab, which opens and saves CTM. Most 3D apps, game engines and slicers do not open it, so a CTM is usually converted to OBJ, GLB or STL before it is edited or printed.

OpenCTM compression: RAW, MG1 and MG2

RAWNo compression
Plain arrays of numbers, the largest CTM files. Converted exactly.
MG1Lossless
The triangle list is delta coded and everything is packed with LZMA. Converted exactly: every number comes back as it was saved.
MG2Fixed precision
Positions, normals, UVs and colours are rounded to a chosen precision before packing, which gives the smallest files. Converted at the precision it was saved with.

Common problems with CTM files

  • "This is not an OpenCTM file"

    Real .ctm files start with the letters OCTM. Some programs use .ctm for something else (other CAD, map or tool files). Those are not 3D meshes this page can read.

  • The model is grey

    The file has no vertex colours and its texture is a separate image. Add the image the file names (shown under the preview) and download the OBJ zip, which holds the OBJ, MTL and image.

  • The model is lying on its side

    Many scanners and CAD tools use Z as up, while OBJ apps usually use Y. Rotate it by 90 degrees in Blender or your slicer after import; the numbers are kept exactly as in the CTM.

  • The file is cut off or damaged

    If a download stopped early, the converter says where the data ends. Download the .ctm again, or ask for it as a zip so it cannot be cut silently.

  • It is very large

    Up to 100 MB of .ctm can be converted here. MG2 files unpack to many times their size, so very large scans work best on a desktop browser.

What this CTM converter does

RAW, MG1 and MG2

All three OpenCTM compression methods of file format version 5, the one every OpenCTM release writes.

Nothing is lost on the way

Vertices and triangles keep their count and order, so the OBJ matches the CTM line for line.

Normals, UVs and colours

Normals and the first UV map are written to the OBJ, and vertex colours as "v x y z r g b".

Textures

Add the image the CTM points to and get an OBJ zip with an MTL, or a GLB with the texture inside.

GLB and STL too

One click for a GLB (web, AR and game engines) or an STL (3D printing).

Private and free

Runs entirely in your browser. No signup, no watermark, no upload.

Need a new model instead? Make one with AI

Our AI tools make and paint 3D models in about a minute. Free to try.

Frequently Asked Questions

A .ctm file is an OpenCTM file: a compressed 3D triangle mesh. OpenCTM was made by Marcus Geelnard as an open format with a free (zlib licensed) library. A CTM file holds the vertices and triangles and can also hold normals, UV maps with a texture file name, and extra per-vertex values such as colours. It is used to store and send meshes, such as 3D scans, in a fraction of the size of OBJ or STL.
Open the .ctm on this page, check the preview, and press Download OBJ. The file is unpacked in your browser and written as a standard Wavefront OBJ that Blender, Maya, 3ds Max, Unity, Cinema 4D and 3D printing software open. If the model has a texture, add the image first and you get a zip with the OBJ, an MTL file and the image.
They are the three ways an OpenCTM file can be stored. RAW is not compressed. MG1 is lossless: the data is reordered and packed with LZMA. MG2 rounds positions and other values to a precision chosen when the file was saved, then packs them, which gives the smallest files. This converter reads all three; the method of your file is shown under the preview.
No. The OBJ gets the same vertices and triangles, in the same order, with the numbers the CTM holds. RAW and MG1 files come back exactly. An MG2 file was rounded when it was saved, so the OBJ has the precision the MG2 file was saved with; nothing more is lost in the conversion, and the lost detail cannot be added back.
Yes, when the CTM has them. Normals and the first UV map go into the OBJ, and vertex colours are written as "v x y z r g b", which MeshLab, recent Blender versions and three.js read. The texture is a separate image the CTM only names: add that image and the OBJ comes as a zip with an MTL that points to it. Custom attributes other than colour have no place in OBJ and are left out.
MeshLab opens and saves CTM files, and the OpenCTM tools include ctmviewer for viewing and ctmconv for converting. Most other 3D apps cannot open .ctm directly, which is why it is usually converted to OBJ, GLB or STL first. This page also works as a quick CTM viewer.
Yes, with ctmconv from the OpenCTM tools (on Debian and Ubuntu, the openctm-tools package): run "ctmconv model.ctm model.obj". The output format comes from the file extension. It also converts the other way, with --method RAW, MG1 or MG2 to choose the compression.
Yes. The converter is free with no signup, and your file is never uploaded: it is read and converted in your browser, so it works for private scans and client models. There is no watermark and no limit on the number of files.

More free 3D converters