Agent: implement movement, camera, teleport, and multi-simulator state #60

Closed
opened 2026-08-08 08:20:45 +00:00 by hugo · 1 comment
Owner

Objective

Implement AgentMovement, camera/control flags, locomotion commands, sitting/flying/jumping, auto-pilot, teleport progress, and multi-simulator state.

Deliverables

  • Preserve update cadence/flags, coordinate frames, look-at/camera math, control reset, animations triggered by movement, and current-simulator routing.
  • Integrate teleport/region crossing state machines without duplicating lifecycle ownership.
  • Make time/cancellation deterministic in tests.

Validation

  • Movement/camera/teleport tests and fake-grid packet assertions pass.
  • No arbitrary sleeps or leaked update tasks.
  • Public state transitions and events match translated expectations.

Prerequisite

Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.

Project constraints

  • New native Rust behavior only; no bridge or C# fallback.
  • Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them.
  • Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
## Objective Implement AgentMovement, camera/control flags, locomotion commands, sitting/flying/jumping, auto-pilot, teleport progress, and multi-simulator state. ## Deliverables - Preserve update cadence/flags, coordinate frames, look-at/camera math, control reset, animations triggered by movement, and current-simulator routing. - Integrate teleport/region crossing state machines without duplicating lifecycle ownership. - Make time/cancellation deterministic in tests. ## Validation - Movement/camera/teleport tests and fake-grid packet assertions pass. - No arbitrary sleeps or leaked update tasks. - Public state transitions and events match translated expectations. ## Prerequisite Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed. ## Project constraints - New native Rust behavior only; no bridge or C# fallback. - Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them. - Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
hugo added this to the 09 - World vertical slices milestone 2026-08-08 08:20:45 +00:00
hugo added the enhancement label 2026-08-08 08:20:45 +00:00
Author
Owner

Implemented and pushed in commit 0791e0a.

Native Rust implementation now covers all 32 movement controls and reset semantics, camera/CoordinateFrame math and axis mapping, AgentUpdate cadence/duplicate suppression/current-simulator routing, locomotion/sit/always-run/FOV/autopilot LLUDP packets, UDP and CAPS teleport progress with cancellation-safe waiters, and the bounded region-crossing recovery state machine. Multi-simulator presence, border prediction, child-agent bookkeeping, and cross-simulator object visibility are implemented as well. Update and crossing workers use weak ownership, condition-variable wakeups, explicit cancellation, and joined handles.

Validation completed:

  • 7 focused movement/camera/teleport/crossing/multi-sim tests pass, including one- and two-simulator loopback fake grids that decode emitted packets
  • paused-time timeout and cancellation tests pass
  • tools/check_milestone_09_issue_60.py passes with no owned stubs
  • mapping generation, generated shims, API coverage, and generated API compile fixture pass
  • cargo clippy -p libremetaverse --lib --no-deps -- -D warnings passes on Rust 1.97.1
  • cargo check --workspace --all-targets --locked -j 1 passes
  • all issue-related tests in the pre-created library suite pass; remaining full-suite failures are explicit stubs assigned to later milestone areas

Compatibility and lifecycle details are documented in docs/agent-movement.md and summarized in README.md.

Implemented and pushed in commit 0791e0a. Native Rust implementation now covers all 32 movement controls and reset semantics, camera/CoordinateFrame math and axis mapping, AgentUpdate cadence/duplicate suppression/current-simulator routing, locomotion/sit/always-run/FOV/autopilot LLUDP packets, UDP and CAPS teleport progress with cancellation-safe waiters, and the bounded region-crossing recovery state machine. Multi-simulator presence, border prediction, child-agent bookkeeping, and cross-simulator object visibility are implemented as well. Update and crossing workers use weak ownership, condition-variable wakeups, explicit cancellation, and joined handles. Validation completed: - 7 focused movement/camera/teleport/crossing/multi-sim tests pass, including one- and two-simulator loopback fake grids that decode emitted packets - paused-time timeout and cancellation tests pass - tools/check_milestone_09_issue_60.py passes with no owned stubs - mapping generation, generated shims, API coverage, and generated API compile fixture pass - cargo clippy -p libremetaverse --lib --no-deps -- -D warnings passes on Rust 1.97.1 - cargo check --workspace --all-targets --locked -j 1 passes - all issue-related tests in the pre-created library suite pass; remaining full-suite failures are explicit stubs assigned to later milestone areas Compatibility and lifecycle details are documented in docs/agent-movement.md and summarized in README.md.
hugo closed this issue 2026-08-09 23:08:06 +00:00
Sign in to join this conversation.