Introduction
The studio model is Valve’s model format for Half-Life, released in 1998, and for the Source engine that followed. Unlike the Quake model it replaced, it is skeletal: the meshes are attached to a hierarchy of bones, and animations are sequences of bone movements that can be blended. A model also holds hit boxes for collisions with bullets, attachment points, body groups that swap parts in and out, and skin families of textures.
Studio models are compiled with Valve’s studiomdl tool from source files
such as SMD meshes and animations, and tools exist to
decompile them back.
Structure
A studio model is binary and little-endian. It starts with IDST, a
version number, the model’s name and its length, then the eye position, bounding
boxes and flags, followed by counts and offsets for each table: bones, bone
controllers, hit boxes, sequences, sequence groups, textures, skin families, body parts
and attachments.
Half-Life models are version 10. Large models may keep their textures in a second
file with a T added to the name, such as scientistT.mdl, and
animation in sequence group files numbered 01, 02 and so on.
Source engine models, version 44 and upwards, split the data further: the
.mdl holds the skeleton and animation, while the vertices are in a
.vvd file and the triangle strips in .vtx files.
Variants
- Quake model (IDPO) – Quake’s animated model: palette skins inside the file and whole-frame animation
- Studio model (IDST) – Valve’s skeletal model for Half-Life and Source: bones, sequences and hit boxes
Links
Software
- Half-Life Model Viewer – community viewer for studio models (Windows)
Developers
- Half-Life SDK – Valve’s code, including the studio model renderer and
studiomdl(C++) - Assimp – library that imports dozens of 3D formats, Half-Life studio models among them (C++)