HLMV (Half-Life Model Viewer) is the program used to preview 3D models created for Source, specifically Source .MDL files. It can be also used by modellers to refine a .QC file by finding the exact origin and physics constraints and generating a .QC with the right values. You can preview and, in some cases, edit many aspects of your 3D model from within Model Viewer.
It is accessible through the Source SDK.
The original Half-Life Model Viewer
Up until 1999, HLMV was developed by chUmbaLum sOft for previewing Goldsrc models, the latest version at that time was
1.25 but only
1.24 was released as a binary.
Jed's Half-Life Model Viewer
Development of HLMV was continued by Neil "Jed" Jedrzejewski, who started a new branch with the original authors blessing, building on the 1.25 code using version numbers
1.36. This version is widely known as "Jed's HLMV" or "JHLMV".
The primary motivation for the branch was to add support for 1-bit transparent textures when previewing models. During development of JHLMV features such as wire-frame overlays, viewing and exporting of UV maps, view-model weapon origin view, previewing animation events and loading files from GCF archives were added. Supports was added for models created for the PS2 version of Goldsrc. Private/experimental versions of JHLMV also include support for models for the Dreamcast version of Goldsrc and ragdoll physics.
JHLMV is still supported although development is on-hold pending completion of other projects.
HLMV for the Source engine
Valve ship their own version of HLMV with the Source SDK specifically for viewing models created for the Source engine. It appears to be based on the original HLMV 1.22 codebase but re-worked to use Source's own 3D viewport and material system.
It's unclear under what license it is used/distributed but Source HLMV still provides a credit and link to chUmbaLum sOft in its About menu. Several features of the Source HLMV have been copied from JHLMV.
Each iteration of the Source engine has a slightly updated version of the model viewer giving access to newer or enhanced features of the respective engine.
For the Source HLMV settings such as rendering options and background color is saved in the Windows registry and stored on a per model basis, unfortunately there doesn't appear to be a way to set the standard options.
Source HLMV features
- Normal mapping
- Specular mapping
- Generating QC code for Hitboxes, Physics, Attachments, IKRule, Event
- Visually displaying vertex weighting.
- Animation blending
- Pose parameters
- LOD models
- Flex animations
- drag in the center of the viewport will orbit the camera.
- drag on the edge of the viewport will roll the camera.
- + drag will orbit the light source.
- drag will dolly the camera back/forward.
- + drag with pan the camera left/right up/down.
- will refresh the textures if they have been recompiled.
- will toggle UV chart view
- Note:Normal mapping for textures is not checked on by default.
will toggle textured view.
Click through to learn to Create and Modify hitboxes with HLMV.
- If you find that HLMV is missing textures, such as floor, background, and cubemap, extract a set from a working SDK. Find them at
materials/hlmv/(e.g. in source materials.gcf).
- HLMV has had a very wobbly history. Without warning it sometimes no longer works because of changes/updates done to the Source SDK.
.jpgmodel thumbnail made using Photoshop or ImageReady will crash HLMV.
- The normal map flag can be tricky to switch on depending on your graphic card.
- Wireframe mode was broken shortly since after the release of the Source SDK, rendering the default texture (purple/black squares) over the model. To add injury to the insult, the flat shaded mode that provided some of the same functionality, was removed between Episodes One and Two. In later engine builds, the issues with wireframe mode has been resolved.
- When selecting a submodel category, the second submodel is displayed in the 3D view, but the name of the first submodel is still being displayed as the selected in the dropdown menu (also present in Goldsrc versions).
- When moving from folder to folder the scroll bar doesn't reset.
- Texture resolution on models may be displayed at 1/4 of it's actual resolution (Mipmap 1) due to issues with some graphics drivers To do: Need to confirm if nVidia only?. Textures will appear more blurry and over sharpened.
- When viewing models using materials that use "$cloakPassEnabled" "1" the triangle count will double what it actually is due to a calculation bug.
- Using Options > Make Screenshot... doesn't seem to produce effective screenshots.