Skip to content
glTF VRM extension Loader for babylon.js
TypeScript JavaScript Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci ci(gh-pages): Add gh-pages publish automation May 14, 2019
.vscode chore: Add vscode files Jun 27, 2019
test test: Add sample AliciaSolid.vrm May 17, 2019
.gitattributes Initial Commit May 13, 2019
.gitignore chore(README): add browser example with codepen Jun 5, 2019 Initial Commit May 13, 2019
LICENSE Initial Commit May 13, 2019
package.json chore(release): 1.4.4 [skip ci] Aug 21, 2019
tsconfig.json Changed js version May 26, 2019
tslint.json Initial Commit May 13, 2019
webpack.config.js fix(webpack): external exposes as var Jun 5, 2019
yarn.lock fix: Upgrade dependencies Aug 21, 2019


npm version Greenkeeper badge CircleCI semantic-release


VRM porting to babylon.js.

This is Work In Progress.

This loader is used as THE SEED ONLINE web VRM/VCI/glb viewer.


  • Supports .vrm file loading
    • with extensions.VRM glTF Extension
  • Supports .vci file loading
  • Supports MToonMaterial
  • Get bone(TransformNode) from Unity Humanoid bone mapping name
  • BlendShape morphing
  • Secondary Animation
  • Supports VCI features(partial support)
    • VCAST_vci_material_unity
    • TODO: VCAST_vci_meta
    • TODO: VCAST_vci_embedded_script
    • TODO: VCAST_vci_audios
    • TODO: VCAST_vci_colliders
    • TODO: VCAST_vci_rigidbody
    • TODO: VCAST_vci_joints
    • TODO: VCAST_vci_item


on browser

example is here.

with npm/yarn

$ npm install --save @babylonjs/core @babylonjs/loaders babylon-vrm-loader
# or
$ yarn add @babylonjs/core @babylonjs/loaders babylon-vrm-loader
import * as BABYLON from '@babylonjs/core'

// has side-effect
// ref.
import 'babylon-vrm-loader'

// vrmFile is File object retrieved by <input type="file">.
const scene = await BABYLON.SceneLoader.LoadAsync('file:', vrmFile, engine);
const vrmManager = scene.metadata.vrmManagers[0];

// Update secondary animation
scene.onBeforeRenderObservable.add(() => {

// Model Transformation
vrmManager.rootMesh.translate(new BABYLON.Vector3(1, 0, 0), 1);

// Work with HumanoidBone
vrmManager.humanoidBone.leftUpperArm.addRotation(0, 1, 0);

// Work with BlendShape(MorphTarget)
vrmManager.morphing('Joy', 1.0);




$ yarn build

Debugging MToonMaterial

$ yarn debug

You can see inspector on http://localhost:8080/

Related Links



This project uses babylon.js with Apache License, Version 2.0.

You can’t perform that action at this time.