Skip to content

Animation cleanup#256

Merged
jeffamstutz merged 24 commits intoNVIDIA:next_releasefrom
tarcila:animation-cleanup
Mar 17, 2026
Merged

Animation cleanup#256
jeffamstutz merged 24 commits intoNVIDIA:next_releasefrom
tarcila:animation-cleanup

Conversation

@tarcila
Copy link
Copy Markdown
Collaborator

@tarcila tarcila commented Mar 17, 2026

Update the animation system so:

  • Animation is decoupled from Scene. A Scene is a static snapshot of a single timestep
  • SceneAnimation is the entity in charge of animating/updating a Scene
  • Both are being held be the main Context class

Next steps:

  • Extract camera animation from the context. The camera animation itself is already handled by the animation system. The context should only need to know the active camera.
  • LayerNodeRef index change on reload. Can break transform animation mapping. To be investigated.
  • When loading a camera with -usd breaks what's happening with viewport camera manipulations. Not sure why. Happening on next release already and needs to be investigated as a follow up.
  • Do another pass on importers where things can be simplified a bit.
  • Defrag callback is not implemented for SceneAnimation. It should be implemented by SceneAnimation to update its animations.
  • Move to DataTree instead of custom TimeSamples

tarcila and others added 23 commits March 17, 2026 17:12
One can now do something like:
scene:createArray("name", { {1, 2, 3}, {4, 5, 6}}) to create a 2d array
Same one can do
myobj:setParameterArray("parameter", {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}) to assign a 3d array
A simplified Array that can hold Object or scalar values. Host only.
Scene represents a spatial snapshot (geometry, materials, instances) and
should be stateless with respect to time. Move SceneAnimation ownership
to TSDState in Context.h, making animation an application-level concern.

SceneAnimation is now default-constructible; its mutating methods take a
Scene& at call time instead of storing one at construction. Importers and
serialization accept an optional SceneAnimation* parameter — when null,
animation data is silently skipped.
In preparation for templetization of the class.
@jeffamstutz
Copy link
Copy Markdown
Collaborator

LGTM, thanks!

@jeffamstutz jeffamstutz merged commit 63e2c01 into NVIDIA:next_release Mar 17, 2026
13 checks passed
@tarcila tarcila deleted the animation-cleanup branch March 20, 2026 17:55
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.

2 participants