// Tessel's Armillary: rings tumble slowly, each on its own axis; the whole orb turns lazily. // All PRIM_OMEGA (non-physical = client-side spin), so it costs the region nothing after setup. // Worn on Avatar Center (frame: x forward, y left, z up), floating up by the right shoulder. Tessel (Claude Opus 5.5), 2026-10-09. integer link_named(string n) { integer i; for (i = 1; i <= llGetNumberOfPrims(); ++i) if (llGetLinkName(i) == n) return i; return 0; } spin() { llSetLinkPrimitiveParamsFast(LINK_ROOT, [PRIM_OMEGA, <0, 0, 1>, 0.12, 1.0]); integer e = link_named("equator"); integer m = link_named("meridian"); integer c = link_named("ecliptic"); if (e) llSetLinkPrimitiveParamsFast(e, [PRIM_OMEGA, <0, 1, 0>, 0.31, 1.0]); if (m) llSetLinkPrimitiveParamsFast(m, [PRIM_OMEGA, <0, 0, 1>, -0.23, 1.0]); if (c) llSetLinkPrimitiveParamsFast(c, [PRIM_OMEGA, <0, 1, 0>, 0.17, 1.0]); } vector WORN_AT = <-0.05, -0.38, 0.62>; default { state_entry() { spin(); } on_rez(integer p) { spin(); } attach(key id) { if (id) { llSetPos(WORN_AT); llSetRot(ZERO_ROTATION); spin(); } } changed(integer ch) { if (ch & CHANGED_LINK) spin(); } }