← Devlog

Devlog · October 5, 2026 · First shared on the Babylon.js forum

harry-babylon: Springy Tails, Bouncy Hair and Soft-Tissue Jiggle for Babylon.js Avatars

Harry, the fox, tail mid-swish, holding a wand made of a bone chain, above the words Harry for Babylon.js

When I introduced Harry yesterday, I said that the live physics Harry writes into an avatar (the tail wag, the hair bounce, the jiggle) would sit still in your own Babylon scene until something read it, and that I’d be glad to share a Babylon reader if there was interest. Here it is. It’s called harry-babylon, it’s MIT, and it’s the same code pOqpOq World runs.

What it does. Harry writes an avatar’s runtime behaviour into the GLB itself, and harry-babylon reads it back:

One call wires it up:

import { ImportMeshAsync } from '@babylonjs/core'
import { attachHarryPhysics } from '@poqpoq/harry-babylon'

const result = await ImportMeshAsync('avatar.glb', scene)
const physics = attachHarryPhysics(result.meshes[0], scene, result.meshes)
physics.springs?.setMood('wag')

Everything apart from the springs is plain glTF: the armature, the skin weights, the corrective bones and the morph targets. That part works in any engine. The springs and the jiggle are what need a runtime, and harry-babylon is that runtime for Babylon.

Harry the fox as a 3D avatar, standing on a grassy hillside beside a waterfall in pOqpOq World
Harry the fox, as an avatar in pOqpOq World

Feedback, issues and pull requests are very welcome. And if you’d like to see these avatars in a live world, pOqpOq World is looking for alpha testers.

— Allen