The ask
Pick a humanoid rig convention that three.ws does not understand yet and teach it to the retargeter. This is the highest-leverage self-contained contribution in the project, and it is genuinely open-ended: there is no fixed list of remaining conventions, because new authoring tools keep inventing new bone names.
Why it matters
three.ws plays one library of pre-baked clips on any humanoid avatar a user uploads, by rewriting every rig to one canonical skeleton first. A convention we understand animates. A convention we do not understand falls back to a default body, and the user sees someone else's character instead of theirs. The whole feature is that map.
How to find a gap
// scratch.mjs
import { canonicalizeBoneName } from './src/glb-canonicalize.js';
for (const n of ['your_rig_bone_1', 'your_rig_bone_2']) {
console.log(n, '->', canonicalizeBoneName(n));
}
null means that bone would be dropped. If most of a rig comes back null, you have found a real gap and a real contribution.
The best source of candidates is a rig you actually own. Export a character from whatever tool you use, run its joint names through the function above, and see what falls out. If you upload it to Rig Doctor, the Unrecognised joints panel gives you the same list without writing any code.
Conventions confirmed missing at the time of writing, if you would rather not hunt: Xsens MVN's vertebra-named spine (L5, L3, T12, T8), and MediaPipe's foot joints (left_heel, left_foot_index). Both are motion-capture pipelines whose output people do bring to us.
What a complete contribution looks like
- Mapping entries in the
EXTRA_ALIASES block of src/glb-canonicalize.js, with a comment explaining the convention and anything you deliberately did not map.
- Tests in
tests/glb-canonicalize.test.js, covering both sides.
- A fingerprint in
CONVENTIONS in src/rig-report.js, with a test, so Rig Doctor names the convention on sight.
- A row in the conventions table in
docs/rig-doctor.md.
The MikuMikuDance support added on 2026-08-21 does all four and is the reference diff. The full walkthrough is in Your first contribution.
Two rules that will save you a review round
- Never cross sides. A left bone mapped to a right canonical name tears the avatar apart in motion.
- Do not map bones that are not chain joints. IK targets, twist bones, constraint-driven control rigs, and metacarpal scaffolding are deliberately left unmapped. The header comment in
glb-canonicalize.js explains why in detail. Read it before you widen a match.
Say which convention you are taking in a comment so two people do not do the same one.
The ask
Pick a humanoid rig convention that three.ws does not understand yet and teach it to the retargeter. This is the highest-leverage self-contained contribution in the project, and it is genuinely open-ended: there is no fixed list of remaining conventions, because new authoring tools keep inventing new bone names.
Why it matters
three.ws plays one library of pre-baked clips on any humanoid avatar a user uploads, by rewriting every rig to one canonical skeleton first. A convention we understand animates. A convention we do not understand falls back to a default body, and the user sees someone else's character instead of theirs. The whole feature is that map.
How to find a gap
nullmeans that bone would be dropped. If most of a rig comes backnull, you have found a real gap and a real contribution.The best source of candidates is a rig you actually own. Export a character from whatever tool you use, run its joint names through the function above, and see what falls out. If you upload it to Rig Doctor, the Unrecognised joints panel gives you the same list without writing any code.
Conventions confirmed missing at the time of writing, if you would rather not hunt: Xsens MVN's vertebra-named spine (
L5,L3,T12,T8), and MediaPipe's foot joints (left_heel,left_foot_index). Both are motion-capture pipelines whose output people do bring to us.What a complete contribution looks like
EXTRA_ALIASESblock ofsrc/glb-canonicalize.js, with a comment explaining the convention and anything you deliberately did not map.tests/glb-canonicalize.test.js, covering both sides.CONVENTIONSinsrc/rig-report.js, with a test, so Rig Doctor names the convention on sight.docs/rig-doctor.md.The MikuMikuDance support added on 2026-08-21 does all four and is the reference diff. The full walkthrough is in Your first contribution.
Two rules that will save you a review round
glb-canonicalize.jsexplains why in detail. Read it before you widen a match.Say which convention you are taking in a comment so two people do not do the same one.