Skip to content

useVRMModel

Loads a VRM model with optimized defaults. Automatically uses MToonNodeMaterial when a WebGPU renderer is detected.

import { useVRMModel } from 'three-vrm-utils/use-vrm-model'
function VRMModel({ url }: { url: string }) {
const [gltf, vrm] = useVRMModel(url)
return <primitive object={vrm.scene} />
}

Returns a tuple [gltf, vrm]:

  • gltf — the raw GLTF result from useLoader
  • vrm — the parsed VRM instance
  • Registers VRMLoaderPlugin with the GLTF loader
  • Detects WebGPU renderer and uses MToonNodeMaterial when available
  • Removes unnecessary vertices (VRMUtils.removeUnnecessaryVertices)
  • Combines skeletons and morphs for performance
  • Rotates the scene 180° (VRM convention)
  • Disables frustum culling on all objects