Poser: local IK targets (limb / spine / look-at solvers, draggable targets, bake to FK) #253

Closed
opened 2026-10-02 21:06:38 +00:00 by sky_line · 1 comment
Owner

Request

Add IK targets to the poser (the FS poser port, fsfloaterposer / fsposingmotion). You place a target handle in the world (or attach it to an object or another avatar point), and the limb's joints solve to reach it, instead of rotating each joint by hand.

"Local" means it's evaluated in the viewer for posing / photography, like the rest of the poser. The result is the posed skeleton; sharing it with others goes through the existing poser save / export paths (and BD Pose Creator .anim export, #117), not a new server feature.

Scope

  • Chains: arms (shoulder→elbow→wrist with hand target), legs (hip→knee→ankle, foot target), spine / neck→head look-at, tail and wing chains (Bento), fingers (optional).
  • Solvers: two-bone analytic IK for arms and legs with pole vector (elbow / knee direction) control; FABRIK or CCD for longer chains (spine, tail); look-at for head / eyes.
  • Joint limits: respect anatomical rotation limits (configurable per joint; sensible defaults) so solves stay natural.
  • Targets:
    • draggable gizmo in world (use the existing manipulator / gizmo drawing on the VK overlay);
    • pin target to world position, to an object (follows it), or to another joint (hand on hip);
    • per-target weight / blend with FK pose;
    • lock feet to ground mode.
  • UI: in the poser floater, an IK section listing chains, enable / disable per chain, pole controls, "bake to FK" (writes the solved rotations into the normal poser joint values so the pose saves / exports normally).
  • Interaction with the existing poser: IK runs after FK edits each frame (on the posing motion), mirroring / symmetry tools apply to targets, undo / redo covers target moves.
  • World pause (Ctrl+Shift+F) friendly: IK keeps solving while the world is frozen, for posing.

Notes

  • Black Dragon's poser has some IK / look-at features. Check BD (LGPL) and FS for existing pieces to port; theme the UI like our poser floater.
  • GPU anim path: posed avatars use the CPU joint path (mode 0 copy-through rows); verify that IK-solved rotations stream to the GPU joint table (C7 changed-row streaming).
  • Rigged mesh and system bodies (new VK system-body path) follow automatically via the skeleton.

Acceptance

  • Drag a hand target and the arm reaches it with a natural elbow.
  • Feet pinned to the floor stay planted while moving the pelvis.
  • Head look-at follows a target.
  • "Bake to FK" then save / load reproduces the pose exactly.
  • Works on Bento tails / wings.
## Request Add **IK targets** to the poser (the FS poser port, `fsfloaterposer` / `fsposingmotion`). You place a target handle in the world (or attach it to an object or another avatar point), and the limb's joints solve to reach it, instead of rotating each joint by hand. "Local" means it's evaluated in the viewer for posing / photography, like the rest of the poser. The result is the posed skeleton; sharing it with others goes through the existing poser save / export paths (and BD Pose Creator .anim export, #117), not a new server feature. ## Scope - **Chains:** arms (shoulder→elbow→wrist with hand target), legs (hip→knee→ankle, foot target), spine / neck→head look-at, tail and wing chains (Bento), fingers (optional). - **Solvers:** two-bone analytic IK for arms and legs with pole vector (elbow / knee direction) control; FABRIK or CCD for longer chains (spine, tail); look-at for head / eyes. - **Joint limits:** respect anatomical rotation limits (configurable per joint; sensible defaults) so solves stay natural. - **Targets:** - draggable gizmo in world (use the existing manipulator / gizmo drawing on the VK overlay); - pin target to world position, to an object (follows it), or to another joint (hand on hip); - per-target weight / blend with FK pose; - lock feet to ground mode. - **UI:** in the poser floater, an IK section listing chains, enable / disable per chain, pole controls, "bake to FK" (writes the solved rotations into the normal poser joint values so the pose saves / exports normally). - **Interaction with the existing poser:** IK runs after FK edits each frame (on the posing motion), mirroring / symmetry tools apply to targets, undo / redo covers target moves. - **World pause (Ctrl+Shift+F) friendly:** IK keeps solving while the world is frozen, for posing. ## Notes - Black Dragon's poser has some IK / look-at features. Check BD (LGPL) and FS for existing pieces to port; theme the UI like our poser floater. - GPU anim path: posed avatars use the CPU joint path (`mode 0` copy-through rows); verify that IK-solved rotations stream to the GPU joint table (C7 changed-row streaming). - Rigged mesh and system bodies (new VK system-body path) follow automatically via the skeleton. ## Acceptance - Drag a hand target and the arm reaches it with a natural elbow. - Feet pinned to the floor stay planted while moving the pelvis. - Head look-at follows a target. - "Bake to FK" then save / load reproduces the pose exactly. - Works on Bento tails / wings.
sky_line added this to the Slipstream project 2026-10-06 15:04:14 +00:00
Author
Owner

Superseded by #530 (IK in Pose Studio, which replaced the Firestorm poser floater); the solver notes here were carried over.

Superseded by #530 (IK in Pose Studio, which replaced the Firestorm poser floater); the solver notes here were carried over.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#253
No description provided.