Skip to content

Latest commit

 

History

History
51 lines (39 loc) · 1.62 KB

File metadata and controls

51 lines (39 loc) · 1.62 KB

posecode-render

Renders a posecode-parser IR as an animated 3D human figure with Three.js: forward kinematics plus ground-lock CCD IK, live in the browser at 60fps. Pass characterUrl to show a realistic skinned character (any Mixamo-rigged GLB); without it — or while it loads, or if it fails — a procedural athletic figure renders instead, so the scene is never blank. Either way, a capsule self-collision pass keeps limbs from passing through the body.

Part of Posecode: a kinematic-motion protocol LLMs can write, rendered as text-to-motion 3D animation.

Install

npm install posecode-render posecode-parser three

Usage

import { parse } from "posecode-parser";
import { createViewer } from "posecode-render";

const canvas = document.querySelector("canvas")!;
const viewer = createViewer(canvas, {
  autoRotate: false,
  // Optional: realistic skinned character (Mixamo bone naming). Omit for the
  // zero-asset procedural figure.
  characterUrl: "https://posecode.org/models/xbot.glb",
});

const { ir } = parse(myPosecodeSource);
if (ir) {
  viewer.load(ir);
  viewer.setLoop(true);
  viewer.play();
}

viewer.onPhase(({ phaseName, cue }) => {
  console.log(phaseName, cue);
});

No GPU, no diffusion model: generation is a fraction of a cent of text, and rendering is plain forward kinematics.

License

AGPL-3.0-only. A separate commercial license is available for closed-source product use; see commercial licensing.