Pose Studio: our own poser (OP Pose HUD UI) with poses shared via the LSL bridge, and consent-based posing of others #500
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#500
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Re-scoped 2026-10-07. This ticket now covers our own poser, built on the owner's OP Pose HUD UI, with poses shared with other Slipstream users through the LSL bridge (#428), and posing others only with consent. It replaces the earlier "pre-generated animations played by asset ID" design; that idea is kept below as an optional later phase. The reference HUD screenshot and UI notes are in the first comment.
Why the bridge, not IMs
llGetOwnerKey()gives the avatar behind a bridge, so nobody can fake poses or consent for someone else.llDialogto anyone, on any viewer, and their button press comes back authenticated as them.1. Rework the current poser (the Firestorm port) into our own
llcleananimstore isAvatarPosedLocally). Firestorm's extra tools (trackpad, IK #253, BVH export) are kept where they fit, and the old floater goes once the new one covers them.2. Share your own pose with other Slipstream users (bridge broadcast)
llRegionSay, or say/shout range; decide).llGetOwnerKey(id), and pass the data to their viewer withllOwnerSay, which the viewer intercepts silently. The pose is applied only to the avatar that owns the sending bridge.3. Posing other people, with consent
llDialog(" wants to pose you", Accept / Deny). This works whatever viewer they use.Interim (done 2026-10-07): posing other avatars is disabled in the current poser (self and own animesh only) until this ships.
Optional later phase: visible to every viewer
The original idea for this ticket: play pre-generated single-bone animations (the OP Pose HUD's procedural set) by asset ID through
AgentAnimation, so the sim relays the pose to all viewers. Needs a pack format (bone/angle step → animation UUID), the server's limit on concurrent animations, and priority handling. Could also become "bake pose to animation" (upload, costs L$). Only after parts 1–3.Depends on
Done when
Reference: the current OP Pose HUD UI (from the owner). It's a reference for layout and workflow, not something to copy exactly.
What's on it:
Ideas to carry over:
Stretch goal (not first version): posing someone else. In the HUD, the two-heads icon poses another pony wearing the same HUD. A viewer can only start animations on its own avatar, so the built-in version would need the other person to run Slipstream (or wear a helper) and agree to it. Your viewer sends pose commands, and their viewer plays the animations on their own avatar. The channel could be an IM with a hidden payload, or the bridge (#428). It needs a consent prompt, a revoke option, and rate limits. Skip it for now.
Built-in pose builder from the OP Pose HUD: per-bone pre-generated animations played by asset ID (visible to everyone)to Pose Studio: our own poser (OP Pose HUD UI) with poses shared via the LSL bridge, and consent-based posing of othersBackground for the re-scope (2026-10-07): Black Dragon's history (github.com/NiranV/Black-Dragon-Viewer).
ef783ccb49), at LL's request per the developer.;PoserRequest/;PoserAccept,b786c6479e), then pairwise pose sync over IMs (9aba3180f8,9e3f3e23a6). Nobody sees a synced pose except the paired people.We go with the bridge instead of IMs for one-to-many delivery, sim-authenticated identity, and consent dialogs that work on any viewer.
Planned for 1.1.0 Beta 10 (the beta after the octree work lands in Beta 9): the new poser with consent-based posing and one-to-all pose sharing via the bridge (#428).
Rotation model (owner requirement): the dials use swing + twist, not raw Euler. Y and Z = azimuth and elevation (aim the bone), X = twist about the bone's own forward axis, applied last. A head roll/tilt is then always the X dial whatever Y/Z are. (Black Dragon's poser doesn't do this and is harder to use; the OP Pose HUD does.) Stable near the poles; mirror mode mirrors in this parametrisation; loaded quaternion poses decompose back into swing + twist for the dials.
sky_line referenced this issue2026-10-11 05:32:54 +00:00