What is the SMD file format?
An .smd file is a Studiomdl Data file - a plain ASCII text format used as the intermediate representation for 3D models and animations in Valve's GoldSrc and Source engines (Half-Life, Counter-Strike, Team Fortress 2, Portal). The format has been in use since Half-Life's development in 1998 and remains central to Source engine modding.
An .smd is never loaded directly by the engine. It is an intermediate in a two-step compile pipeline: a .qc script references one or more .smd files (one reference mesh, one per animation sequence), and studiomdl.exe compiles them into the binary .mdl file the engine loads.
The file begins with the literal line version 1 and contains up to four named sections:
nodes- the bone/joint hierarchyskeleton- per-frame bone transforms (keyframe animation data)triangles- mesh geometry: material name followed by vertex triplets giving bone index, XYZ position, surface normal, and UV coordinatesvertexanimation- optional flex/morph target data for facial animation
Because it is plain ASCII, .smd files can be edited in any text editor and tracked in version control. The Blender Source Tools addon exports .smd directly from Blender, which is the standard modding workflow. The DMX format is preferred in modern Source 2 tools but .smd remains widely supported.
Security & safety
RISK: LOWSMD is plain ASCII text with no executable code. Safe to open in any text editor. SMD files from untrusted sources may reference copyrighted game assets - legal concern rather than a security risk.
Format details
in a nutshell- Sega Genesis / Mega Drive ROM Image (Super Magic Drive format) - Interleaved ROM dump format produced by the Super Magic Drive cartridge copier; differs from the plain binary .bin/.gen format by having a 512-byte header and byte-swapped 16 KB blocks. Opened by Kega Fusion, Genesis Plus GX, RetroArch emulators.
- SubStation Alpha Subtitle Script - Some older SubStation Alpha subtitle files reportedly used .smd; the standard extension for SubStation Alpha is .ssa / .ass.
Programs that open SMD files
Technical details
deep spec| Format | Plain ASCII text (7-bit; contains no binary data) |
| File identifier | First line must be the literal text "version 1" |
| Role | Intermediate format only - never loaded by the engine directly |
| Compile tool | studiomdl.exe (Source SDK / game-specific SDK) compiles .smd plus a .qc script into a binary .mdl file |
| Sections | nodes (bone hierarchy), skeleton (keyframe transforms), triangles (mesh geometry), vertexanimation (morph targets, optional) |
| Vertex data | Each vertex line carries: bone index, XYZ world position, surface normal XYZ, and UV texture coordinates |
| Animation data | Bone transforms stored per frame in the skeleton section; one .smd file per animation sequence |
| Material reference | Each triangle group in the triangles section opens with a material or texture name string |
| MIME type | text/plain |
| Typical file size | 10 KB - 10 MB; complex high-poly animated models at the high end |
| Engine support | GoldSrc (Half-Life series), Source (HL2, CS:S, TF2, Portal), Source 2 tools via Blender Source Tools |
| Authoring tool | Blender with Blender Source Tools addon; Crowbar tool for decompiling and recompiling .mdl to .smd |
| Editability | Plain text format: readable and editable in any text editor, diffable and trackable in version control systems |
| Released | 1998 (GoldSrc engine, Half-Life development) |
| Latest version | SMD version 1 (unchanged; version 3 adds extra UV layers in Source 2 variants) |
| Open standard | Yes · royalty-free |
| Specification | developer.valvesoftware.com |
SMD conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about SMD files.