Skip to content

Modernize gaze runtime path - #27

Draft
meekmachine wants to merge 5 commits into
mainfrom
codex/modern-gaze-agency
Draft

Modernize gaze runtime path#27
meekmachine wants to merge 5 commits into
mainfrom
codex/modern-gaze-agency

Conversation

@meekmachine

@meekmachine meekmachine commented May 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Route eye/head gaze state, config, and lifecycle through the modern GazeService path.
  • Use the animation-agency scheduler as the preferred GazeRuntime when an animation agency is present, so gaze output mixes with other Loom3 snippets instead of writing AUs directly.
  • Keep direct transitionContinuum output only as the fallback path when no animation agency is available.
  • Preserve the production experimental target filtering defaults (smoothFactor: 0.25, minDelta: 0.01) so high-frequency pointer/webcam noise is damped before it reaches Loom3.
  • Upsert repeated eye/head tracking snippets by name without explicitly removing them first, allowing inherited first keyframes to resolve from the live pose without a mixer gap.
  • Clear disabled gaze channels immediately: disabling head tracking removes head snippets and schedules neutral head yaw/pitch/roll snippets without disturbing eye tracking.
  • Force a camera-relative apply when eye/head channels are enabled so newly enabled head tracking catches up even if the shared gaze target did not move.
  • Keep gazeMode and useAnimationAgency as deprecated compatibility fields, and document the new architecture.
  • Add focused tests for GazeService planning/runtime behavior, scheduler-backed gaze output, channel disable cleanup, and camera-relative channel enable catch-up.

Closes #15
Refs #12

Verification

  • npm run typecheck
  • npm run build
  • npm test
  • npm test -- --run src/eyeHeadTracking/__tests__/eyeHeadTrackingService.test.ts src/eyeHeadTracking/__tests__/eyeHeadTrackingScheduler.test.ts src/gaze/__tests__/service.test.ts

Copy link
Copy Markdown
Owner Author

Companion LoomLarge UI/profile PR is open here: meekmachine/LoomLarge#578.

It persists profile.eyeHeadTracking settings in character profiles and routes the app/module UI through the modern gaze runtime path from this Latticework PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modernize gaze agency around Most.js streams and Effect state

1 participant