Skip to content

Add owner LookAt direction evaluation API - #270

Merged
snkmcb merged 1 commit into
mainfrom
codex/lookat-direction-api
Oct 5, 2026
Merged

snkmcb merged 1 commit into
mainfrom
codex/lookat-direction-api

Conversation

@snkmcb

@snkmcb snkmcb commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

What changed?

Live gaze directions cannot use the existing point-only LookAt API without inventing a target distance or introducing eye-offset parallax. Add LookAtEvaluator::EvaluateDirection for a world unit vector, head orientation and explicit timestamp, using the existing owner angle/range-map/output implementation for both bone and expression rigs.

Directions ignore head translation, avatar/clip eye offsets and the point-only distance threshold. Invalid vectors resolve to no gaze with diagnostics. VRMRIG_LOOKAT_DIRECTION_API advertises the additive entry point for separately built consumers. Update the library documentation and motion policy.

Validation

  • Tests or checks were run, or the reason they were not run is described below.
  • Documentation was updated when needed.
  • I did not add private or non-redistributable assets.

Checks run on Windows x64/MSVC 19.51 with OpenUSD 26.08 and installed motionCore 0.5.0:

  • Standalone Release vrmRig configure/build/install succeeded.
  • vrmRig_unit and vrmRig_boundaries: 2/2 passed, including signed direction yaw, both output types, invalid vectors, timestamp/diagnostics and independence from placement/offsets/distance threshold.
  • Separately built usd-avatar-runtime adapter against the installed owner package: 5/5 contract/adapter tests passed, including its separately configured installed consumer.
  • Existing dependency-free runtime direct suite: 3/3 passed.
  • Relative documentation links/fragments and git diff --check passed.

Notes for reviewers

Existing value layouts and point/pose overloads remain unchanged. Consumers using the new entry point need a rebuilt owner library as well as updated headers. This does not publish a new package version or change clip MotionPose::lookAtTarget point semantics.

The companion runtime PR, animu-sphere/usd-avatar-runtime#6, connects world/joint-local point/direction observations to this owner API. Merge/rebuild/install this owner change before adopting the runtime adapter change. Integration evidence uses constructed rigs and test input; real avatar/motion/connector acceptance remains open.

@snkmcb
snkmcb merged commit 9743b5d into main Oct 5, 2026
14 checks passed
@snkmcb
snkmcb deleted the codex/lookat-direction-api branch October 5, 2026 10:01
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.

1 participant