Introduction
3DS is the scene format of 3D Studio, Autodesk’s modelling and animation program for MS-DOS, first released in 1990 and later replaced by 3ds Max. It holds triangle meshes with texture coordinates, materials, lights, cameras and keyframe animation. Long after the DOS program, it stayed a common way to swap models between programs, and many old model libraries are in this format.
The format has tight limits from its time: each mesh holds at most 65,535 vertices and faces, because the counts are 16-bit, and texture file names follow the short MS-DOS 8.3 pattern. Autodesk never published it; what is known comes from studying the files.
Structure
A 3DS file is binary and little-endian, built from nested chunks. Each chunk starts
with a 16-bit ID and a 32-bit length that includes its own 6-byte header, so a reader
can skip any chunk it does not know. The whole file is one main chunk,
0x4D4D. Inside it, the editor chunk 0x3D3D holds materials
(0xAFFF) and named objects (0x4000). A triangle mesh
(0x4100) contains the vertex list (0x4110), the face list
(0x4120) and the texture coordinates (0x4140). Keyframe
animation sits in a separate chunk, 0xB000.
00x4D4D main chunk, the whole file6-byte header…0x3D3D editor: materials and objectsvaries…0xAFFF material: name, colours, texture mapsvaries…0x4000 object: name, then a mesh, light or cameravaries
…0xB000 keyframer: animation tracksvaries
Links
Software
- Autodesk 3ds Max (Windows)
- Blender (Windows, macOS, Linux), with its 3DS add-on
- MeshLab (Windows, macOS, Linux)
Developers
- Assimp, C++ library that imports dozens of 3D formats, 3DS among them