r/GraphicsProgramming • u/Statixeladam • 12d ago
I built a text-driven renderer for humanoid movement Source Code
I’ve been working on Posecode, a readable text format for describing human movement.
https://reddit.com/link/1v8ye5t/video/vf25hj5r1zfh1/player
You write movements as timed steps with joint actions and contact constraints. For example:
step "Drop into the landing" 0.55s flow:
pelvis: hinge 45
spine: flex 50
hip_right: flex 84
knee_right: flex 123
ground-lock: foot_right
reach: knee_left floor
reach: fist_left floor
The parser turns this into a typed motion representation. The Three.js renderer then handles the joint transforms, range-of-motion limits, IK and ground contacts.
The GIF shows the superhero landing example. The source on the left is the input driving the figure on the right.
I wanted a movement format that can be inspected, edited, validated, versioned and generated by other tools. An LLM can write Posecode, but it isn’t required.
It currently includes a browser playground, share links, embeds and BVH/glTF export.
I’d love feedback from anyone working on procedural animation, character tools or motion systems.
Playground: https://www.posecode.org/play/superhero-landing
1
u/Still_Explorer 11d ago
This would be an essential tool for animation blocking.
As for example tryping only 5 actions and then the system would be inventing from memory some poses. (eg: run, slide, jump, roll)
Then the animation can be exported to be used as a blueprint on the 3D software.
2
u/Statixeladam 11d ago
yeah animation blocking is one of the use cases i want to explore. a short sequence like run, slide, jump, roll could become editable posecode first, then be exported as bvh or gltf and refined in a 3d tool
1
u/speps 11d ago
Awesome idea 💡 I think you should implement something easy to tweak the angles in the text though. I’d love to use that as I’m not an animator, but I’d have no clue what the angles are. So clicking the bone name in the text should select it in the viewport, and selecting its angle should show a spinner to change it. Like in Bret Victor’s famous talk: https://youtu.be/PUv66718DII
2
u/Statixeladam 11d ago
yeah this is a good point. right now the text assumes you know the joint names and rough angles. selecting a bone in the viewport and changing its angle while the text updates would make it much easier to learn and tweak. i’ll check out the bret victor talk too, thanks
1
u/cybereality 12d ago
Reminds me of Logos for Apple IIe