How VRM Extends glTF 2.0 for Humanoid Avatars

The VRM format builds directly on top of the glTF 2.0 3D asset standard, transforming a general-purpose graphics format into a specialized, cross-platform standard for interactive humanoid avatars. While glTF 2.0 provides an efficient way to transmit 3D meshes, textures, materials, and generic node hierarchies, it lacks humanoid-specific semantics required for real-time applications like VRChat, VTubing, and the broader metaverse. VRM bridges this gap by embedding JSON-based extensions that standardize humanoid bone mappings, facial blend shapes, dynamic physics, camera viewpoints, and digital persona licensing directly into a single, portable .vrm file.

Standardized Humanoid Skeletal Rigging

Standard glTF files define skeletons as arbitrary hierarchies of nodes and bones, leaving the interpretation of which bone corresponds to an arm, spine, or finger entirely up to the receiving engine. VRM solves this by enforcing a normalized humanoid bone structure based on Unity's Humanoid standard.

The VRMC_vrm extension maps the internal node hierarchy of the glTF model to a standardized set of required and optional humanoid bones.

  • Required bones: Hips, Spine, Head, Upper Arm, Lower Arm, Hand, Upper Leg, Lower Leg, and Foot.
  • Optional bones: Fingers, Toes, Neck, Chest, and Shoulder bones.

This mapping ensures that any animation clip authored for a standard humanoid rig can be retargeted to any VRM model automatically, regardless of the model's original scale, mesh structure, or naming convention.

Facial Expressions and Morph Target Standardization

While glTF 2.0 natively supports morph targets (blend shapes), it provides no universal semantics for what those targets represent. A shape key could be named "smile" in one model and "mouth_happy" in another.

VRM standardizes these morph targets into defined expression presets, including:

  • Emotional presets: Neutral, Happy, Angry, Sad, Relaxed, and Surprised.
  • Lip-sync visemes: Standard Japanese phonetic vowels (A, I, U, E, O) easily mapped to real-time speech audio.
  • Eye controls: Blink, Blink Left, and Blink Right.

By unifying these definitions, software applications can trigger universal facial expressions and dynamic lip-syncing without needing custom keyframe mapping for each individual model.

Physics via Spring Bones

Real-time humanoid characters require secondary motion for elements such as hair, loose clothing, ribbons, and accessories. Normally, this dynamic movement requires engine-specific cloth or ragdoll physics (such as PhysX in Unity or Chaos in Unreal Engine), breaking portability.

VRM introduces the Spring Bone specification (VRMC_springBone). This system defines lightweight mass-spring-damper physics directly in the model data:

  • Spring joints: Nodes designated to react to avatar movement with configurable stiffness, drag, and gravity parameters.
  • Collision spheres and capsules: Defined collision shapes attached to bones (such as the head, shoulders, or chest) to prevent dynamic hair or cloth from clipping through the character's body.

Because the physics calculations are standardized, the character's hair and clothing sway consistently across any platform or engine supporting the VRM runtime.

First-Person View and Gaze Control

Generic glTF files have no concept of where an avatar's eyes are or how a user interacts with the model in virtual reality. VRM adds specific view-related metadata:

  • First-Person Viewpoint: An explicit vector offset designating the exact center point between the avatar's eyes, allowing VR camera rigs to spawn at the correct height and position.
  • Mesh Annotation: Tags that allow certain meshes (like the character’s head or hair) to be automatically hidden from the first-person camera while remaining visible to third-person observers and mirrors, preventing visual obstruction.
  • LookAt and Gaze Management: Logic determining how the eyes track targets, supporting both bone-based rotation and morph-target-based eye movements.

Embedded Persona Licensing and Metadata

A unique extension of VRM beyond graphics is the integration of digital rights and usage metadata. The format embeds specific licensing terms within the file itself, answering critical questions regarding avatar usage:

  • Persona authorization: Specifies who is permitted to perform as the avatar (only the author, specific individuals, or anyone).
  • Commercial permissions: Explicit flags for commercial vs. non-commercial use.
  • Content boundaries: Permissions regarding the depiction of violence, sexual content, and political or religious expression.
  • Attribution: Standardized author names, contact details, and redistribution licenses (such as Creative Commons).

Technical Integration with glTF 2.0

Architecturally, a .vrm file is a binary glTF file (.glb). It preserves all standard glTF 2.0 features—including Physically Based Rendering (PBR) materials, Draco mesh compression, and embedded buffer data. VRM simply embeds its humanoid data inside the glTF extensions dictionary under the VRMC_vrm and related namespaces.

Because VRM respects the underlying glTF specification, applications that do not support VRM extensions can still parse the asset as a standard static or rigged 3D model, while VRM-compliant engines unlock its full humanoid and interactive toolset.