// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Distribute oscillator phases around a ring // Not compiled or tested in-world // Setup: Put in a spare owned prim. Set ELAPSED, positive PERIOD and WAVE_CYCLES around the ring. Owner touch prints calculations only. // Stop / restore: Disable/remove. No prim motion or appearance is changed. // Notes: WAVE_CYCLES controls spatial repetition, not the number of objects. No texture or motion changes occur. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Motion planning only. float ELAPSED=0.5; float PERIOD=4.0; integer WAVE_CYCLES=2; default { touch_start(integer detectedCount) { if(llDetectedKey(0)!=llGetOwner())return; if(PERIOD<=0.0) { llOwnerSay("Positive period required."); return; } integer i; for(i=0;i<8;++i) { float phase=TWO_PI*(ELAPSED/PERIOD+(float)(i*WAVE_CYCLES)/8.0); llOwnerSay("Part "+(string)i+" value="+(string)llSin(phase)); } } }