Licence
MIT
Version
0.1.0
Deps
0
Size
497 kB
Vulns
0
Weekly
0
pose-three
3D human pose editor engine for Three.js. IK/FK posing with a CCD solver, a pose-library loader, and one-click export of OpenPose / depth / normal maps — ready to feed AI image models (ControlNet) as reference.
Headless engine extracted from the free-pose-editor app: no Vue, no DOM framework, just classes that take Three.js objects.
Install
npm install pose-three threethree >= 0.160 is a peer dependency.
Quickstart
import { PoseEditor } from 'pose-three'
// Mounts a full renderer into the container element (by id).
const editor = new PoseEditor('canvas-host')
// Load a rigged Mixamo-style FBX (must include OpenPose helper bones).
editor.loadModel('/models/mannequin.fbx')
// Pose it in the viewport (drag IK end-effectors, rotate FK joints), then:
await editor.exportOpenPose(true) // OpenPose skeleton (+hands) → PNG
await editor.exportDepthMap() // depth map → PNG
await editor.exportNormalMap() // normal map → PNGLower-level building blocks
The engine ships its parts so you can compose your own editor:
PosingModel— bone detection, IK/FK controller generation, pose apply/serialize, hand mirroringCCDIKSolver— cyclic-coordinate-descent IKDragControls— plane-projected end-effector draggingExportManager— OpenPose / depth / normal / regular render exportJSONPoseLoader— load/apply pose & hand-pose JSONOpenPoseConverter— import OpenPose JSON back into a 3D posePoseSerializer/PoseLibrary— rich pose format + browser libraryJointLimits— per-bone rotation limits
Playground
npm install
npm run dev # interactive demo (playground/)Build
npm run build # → dist/ (es + cjs + d.ts)License
MIT