BVH to GLB Converter: Bones and Motion Only | MiConvert

Convert BVH to GLB (Joint Hierarchy and Motion)

A BVH file stores a skeleton and its frame-by-frame motion, nothing else, so the GLB you get back holds animated joint nodes and no mesh, materials or textures — and because our pipeline rejects a GLB with no meshes, a skeleton-only export can come back as an error. FBX is the safer target for a bare mocap take.

📁

Drop your file here

or click to browse

Select File

Max 10 files, 50MB each

SSL Encrypted Auto-deleted No Sign Up 100% Free
BVH → GLB

What BVH holds and what lands in the GLB

BVH (Biovision Hierarchy) is a plain-text motion capture format in two halves: a HIERARCHY block that names each joint and gives its offset and channel list, and a MOTION block with one row of channel values per frame. There are no vertices, faces, UVs, skin weights or materials anywhere in the file. Web viewers, glTF validators and most engine asset pipelines do not read .bvh at all, which is why people go looking for a GLB version of a mocap take.

On our servers, Blender 5.1.2 imports the BVH as an armature with its animation, then Blender's glTF exporter writes a single binary .glb. Nothing runs in your browser. Joints become glTF nodes, the per-frame channel values become animation samplers on those nodes, and the file's End Site entries show up as extra tip joints with an _end suffix (we saw Hips, Spine, Spine_end on a test take). The exporter handles the axis conversion, so the result is Y-up as glTF expects, with no rotation to fix afterward.

Preserved: joint names, the hierarchy, rest offsets, root translation and joint rotations across the file's frame range, written as one animation. Not preserved, because the source never had it: geometry, skinning, materials, textures. Scale needs attention as well. No step of our pipeline converts units, so the numbers in the BVH pass through unchanged and the GLB declares them as meters by spec. A take authored in centimeters therefore arrives roughly a hundred times too large, and you correct it with a 0.01 scale on import or on the root node.

There is one honest caveat to flag before you upload. Our output check refuses a GLB that provably contains no meshes, and a skeleton-only export can trip that check and come back as "No valid 3D geometry found in this file." If that happens, convert the same BVH to FBX instead: FBX stores the armature and the motion as a take, and that is the format most mocap pipelines, game engines and DCC tools expect for a bare skeleton anyway.

Converting a BVH take step by step

  1. Open the .bvh in a text editor and check it starts with HIERARCHY and contains a MOTION block with Frames and Frame Time lines; note the unit your mocap tool exported in, since centimeters is common. Truncated exports and hand-edited files are the usual cause of a read error at import.
  2. Upload the .bvh file on this page. There are no sidecar files to worry about, so no ZIP is needed; the per-file ceiling is 50 MB as a guest and 100 MB with an account.
  3. The conversion runs server-side: Blender imports the skeleton and action, then exports one binary GLB.
  4. Download the result, named after your upload with a .glb extension. The download link stays valid for about four hours.
  5. Load it in your viewer or engine. If the skeleton looks enormous, apply the 0.01 (or other) scale; if you need a visible character, bind the clip to a rigged mesh in Blender and export that scene to GLB.

What the BVH to GLB step produces

  • Blender 5.1.2 rebuilds the HIERARCHY block as an armature and the MOTION block as a single action covering the full frame range, then exports it through Blender's glTF writer.
  • One self-contained binary .glb comes back, with no separate .bin or image files to keep track of.
  • Correct glTF orientation: the exporter writes Y-up, so this pair needs no manual rotation after import, unlike our mesh-to-3MF or mesh-to-DXF paths.
  • Joint names and the parent-child chain survive the trip, which is what retargeting scripts and skeleton inspectors read.
  • BVH is offered to FBX, GLB and glTF only, since there is no geometry to send to STL, OBJ or 3MF; FBX is the fallback when a mesh-free GLB is rejected.
  • Up to 10 files per request on the free tiers, each take converted as its own job and downloaded separately.

Video Tutorial

Need to change BVH to GLB? Watch this quick guide to find out how to convert your files easily and for free. 🔗 Free BVH to GLB Tool: https://miconvert.com/bvh-to-glb Stop wasting time downloading h

BVH to GLB questions

Why does my GLB look empty in the viewer?

Because BVH contains no mesh. The GLB holds animated joint nodes, so a viewer that draws only surfaces shows nothing and may report an empty bounding box. Use a viewer that can draw joint nodes, or bind the motion to a rigged character and export that.

The conversion failed with "No valid 3D geometry found in this file". What now?

That is our output check refusing a GLB with no mesh geometry in it. Convert the same file on our BVH to FBX page instead: FBX keeps the skeleton and the motion as a take, which is what animation and game tools expect from a mocap file.

How do I convert BVH to FBX here?

Use the BVH to FBX page with the same file. The output is binary FBX 7400 with the armature and one take per action. The FBX exporter adds a leaf bone at the end of each chain, so you will see extra tip bones compared with the BVH joint list.

The skeleton is far too big or too small. Why?

We never convert units. BVH offsets and root positions are written into the GLB as-is, and glTF treats those numbers as meters. A centimeter take becomes a 100x oversized skeleton, a millimeter take 1000x. Scale the root node in your viewer or set the import scale in your engine.

Can you combine my BVH motion with a character mesh?

No. Each conversion takes one file, and there is no rigging, retargeting or merging step. Import the BVH onto your rig in Blender, then upload the .blend or the exported FBX to our BLEND to GLB or FBX to GLB page for an animated, visible GLB.

Does the GLB contain more than one animation clip?

No. A BVH file carries a single MOTION block, so the GLB gets one animation. If you have a library of takes, convert them one by one (up to 10 per request) and combine the clips in your engine or in Blender.

Why won't my BVH import at all?

The common reasons are a file cut short during export, a HIERARCHY block whose channel list does not match the frame rows, or a file that is not really BVH despite the extension. Re-export the take from your mocap software with standard rotation channels and try again.

What happens to my file after the conversion?

Processing happens on our servers, not in the browser. Your uploaded BVH is deleted as soon as the job finishes, and the converted GLB and its download link are removed automatically after about four hours. File names, sizes and outcomes are logged, and signed-in accounts keep a conversion history entry. Converting is free with no account inside the guest limits.