Orbital HUD Motion
Decorative circles are design elements, not filler. They must be derived from the reference composition and support the subject.
Design rules
- Keep the avatar/subject dominant; rings should frame, not trap or overpower it.
- Derive radii, arc breaks, marker positions, and dash density from the reference image when possible.
- Separate layers:
- far/background aura: faint, slow, soft;
- mid orbit: thin arcs/dashes;
- markers/dots: sparse and synchronized;
- foreground accents: rare and short-lived.
- Prefer opacity/emission/dash phase over large rotation/scale changes.
- Never animate all rings in the same direction/speed; use subtle counter-motion/parallax.
- Do not include context rings in the base avatar mesh/export unless explicitly requested.
Animation recipe
- Create an
HUD_CONTEXTcollection separate fromAVATAR_BASE. - Build arcs/dots from a manifest of normalized radii and angles.
- Keyframe:
- dash offset or arc reveal;
- emission strength pulse;
- subtle rotation (1–12 degrees per loop, not full spin unless requested);
- marker opacity/scale blips at beats.
- Render a contact sheet with subject-only and with-HUD views.
- Reject if rings obscure the face/silhouette or dominate the frame.
Hard rules
- No random full circles when the reference has broken arcs/dashed guides.
- No oversized markers unless the source has them.
- No HUD animation until static avatar baseline is locked.
- For GLB, use object transforms/material keyframes or document runtime requirements.
Scripts
scripts/orbit_layout_manifest.pycreates a source-independent orbit manifest from simple radii/angle parameters.