IN PROGRESS OF BEING UPDATED — DO NOT USE TILL 1.5.0. This demo is being reworked for the 1.4.x → 1.5.0 window and still encodes the pre-1.4.1 expression block, so it does not match the current protocol. The normative source is spec/Posy.md.

Posy transmission demo

Left: what you do. Right: what the room sees — only what you declared, after a lossy channel. Runs entirely in this tab.

you · the full performance
the room · what you declared, after the channel drag to turn both views · double-click to reset

Send

Tracker
Sent

Connection

Avatar and result

Showing the built-in stick figure. A model you load stays in this tab.
Extras

Extras need a loaded avatar: the stick figure is the humanoid body and nothing else.

frame: – B rate: – FPS bitrate: – kbit/s delivered: – / dropped: –

 

What is transmitted, and why
DataTracker deliversAvatar can showTransmitted

A part is transmitted only if the tracker delivers it and the avatar can show it (spec §2.1). That set is declared once as caps.sends = . Everything else stays in its rest pose on the right and costs no bytes. The right-hand camera frames the declared region. The stick figure has a part for every data type: fingers, one toe piece per foot, lids, mouth, tongue and pupils. What a loaded model can show is read from the model. Finger joints are worked out on the receiving side from the finger block (spec §5.5); the face comes from the expression block (§5.6).

About the poses, hips height and send rate

Poses. Written as joint angles in the spec's conventions (§3.4) and grouped by the part of the body they show. Pick a group, then one pose of it or a cycle through the group; "All" cycles through every pose. The last group holds the conformance pose vectors from testvectors/poses, legs only.

Turning. Drag on either view to turn both cameras around the avatar, or let "Turn" do it; a double-click puts them back. That is how a tail or wings get seen.

Extras. With a model loaded, the two lists hold its further bones and the expressions of its own that the face block does not carry (spec §2.6). Picking a name declares it; a chip takes it out again. Another avatar starts with nothing declared.

Hands, feet and face. "Count to ten" raises one hand and opens it finger by finger, thumb first, then the other hand. "Toes" lifts the toes of each foot, then stands on tiptoe. "Face" goes through the lids, the mouth shapes, the tongue and the gaze one at a time; the step that is on is named next to the selector. The view selector moves both cameras close to the hands, the feet or the face; on "auto" these three poses do that themselves. On a model, the toes are easiest to see barefoot, and the tongue direction has nothing to drive: only the stick figure shows it.

What moves. In every pose the hands and the face do what fits it: hands hang relaxed, lie flat on the lap, grip the hips or open for a wave; the mouth moves when the pose speaks or shouts. Otherwise only the lids blink and the eyes follow the head.

Hips height. The sender estimates how high the hips are from the lowest point of the legs (spec Appendix D) and transmits it as h. On the high stool and in the air nothing touches the floor, so those poses supply the height themselves.

Send rate is how many pose frames leave the sender each second (FPS). Spec tiers: 30 FPS (FULL) looks smooth; 15 FPS (NORMAL) still looks fine because the receiver interpolates between frames; 5 FPS (MINIMAL) is the readable floor. (The spec calls this rate in Hz; it's the same number.)