-- Make camera fly around the subject avatar for a few seconds. local LLAgent = require 'LLAgent' local startup = require 'startup' local timers = require 'timers' local height = 2.0 -- meters local radius = 4.0 -- meters local speed = 1.0 -- meters/second along circle local start = os.clock() local stop = os.clock() + 30 -- seconds local function cameraPos(t) local agent = LLAgent.getRegionPosition() local radians = speed * t return { agent[1] + radius * math.cos(radians), agent[2] + radius * math.sin(radians), agent[3] + height } end local function moveCamera() if os.clock() < stop then -- usual case LLAgent.setCamera{ camera_pos=cameraPos(os.clock() - start), camera_locked=true } return nil else -- last time LLAgent.removeCamParams() LLAgent.setFollowCamActive(false) return true end end startup.wait('STATE_STARTED') -- call moveCamera() repeatedly until it returns true local timer = timers.Timer(0.1, moveCamera, true)