Skip to content

Add data-time transform resolution for spatial views - #12876

Closed
Daniiiil1 wants to merge 1 commit into
rerun-io:mainfrom
Daniiiil1:codex/transform-resolution-data-time
Closed

Add data-time transform resolution for spatial views#12876
Daniiiil1 wants to merge 1 commit into
rerun-io:mainfrom
Daniiiil1:codex/transform-resolution-data-time

Conversation

@Daniiiil1

Copy link
Copy Markdown

Related

What

Adds a second transform-resolution mode for spatial views so slowly updated geometry can be frozen relative to the view's target frame at its data timestamp instead of being re-resolved at every global time-cursor update.

SpatialInformation now exposes:

  • transform_resolution_mode: preserves GlobalTimeCursor as the default and adds ComponentTime.
  • transform_time_component: the local component identifier whose latest row selects the transform timestamp for each entity, for example Points3D:positions.

In component-time mode, the viewer looks up the configured component's latest timestamp per entity, resolves both its coordinate frame and transform forest at that time, and keeps image-plane distance and per-instance poses on the same query. Missing, static, or invalid trigger components fall back to the existing global-cursor behavior.

The transform database cache now stores complete TransformForest snapshots by LatestAtQuery. Queries used in consecutive frames are retained, unused snapshots are purged, store mutations invalidate all snapshots, and iteration is deterministic.

The new blueprint components and SpatialInformation fields are generated for Rust, Python, and C++ from the FlatBuffers definitions.

I would especially appreciate feedback on the public blueprint naming/UX and whether a local component identifier is the desired first trigger semantic.

Validation:

  • pixi run lint-codegen
  • cargo fmt -p re_viewer_context -p re_view_spatial -- --check
  • cargo clippy -p re_viewer_context -p re_view_spatial --all-features --all-targets -- -D warnings
  • Targeted cargo nextest tests for component-time behavior, dynamic coordinate-frame changes, missing-trigger fallback, cache identity, and cache eviction
  • Full cargo nextest run for both affected crates: 185/193 passed locally. The remaining eight are pre-existing Metal image-snapshot differences in grid-map, partial-view-visibility, transform-clamping, and voxel-grid-map tests; all non-snapshot tests passed.

Confidence: high in the cache and transform-query behavior covered by the new tests; medium in the final public API/UX choice, which is why this is a draft.

Agent

🤖 This PR was opened by a coding agent. The implementation and validation were performed with an LLM coding agent, and the PR is intentionally left in draft for maintainer feedback on the feature effect and API.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! Thanks for opening this pull request.

Because this is your first time contributing to this repository, make sure you've read our Contributor Guide and Code of Conduct.

@Daniiiil1

Copy link
Copy Markdown
Author

The failing Pull Request Labels / label check is metadata-only: it requires either include in changelog or exclude from changelog. This adds a user-visible transform-resolution capability, so include in changelog appears appropriate. I attempted to add it, but external contributors do not have AddLabelsToLabelable permission. Could a maintainer add that label? No code change is needed for this failure.

@Daniiiil1
Daniiiil1 marked this pull request as ready for review August 4, 2026 09:42
@Wumpf

Wumpf commented Aug 4, 2026

Copy link
Copy Markdown
Member

🤖 This PR was opened by a coding agent. The implementation and validation were performed with an LLM coding agent, and the PR is intentionally left in draft for maintainer feedback on the feature effect and API.

wasn't left in draft as instructed.

This looks more likley than not entirely llm generated (see for instance the AddLabelsToLabelable permission ;-)) and I can do that just fine myself and then review the outcome. But not doing that right now due to internal priorities / time budgeting, so reviewing this PR would be extractive.

Happy for contributors to work on this (even llm assisted) but please make sure to have a human review & test things carefully and communicate properly with the maintainers, especially given that this is a very tricky core concept in Rerun

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.

Allow Transformations to be aware of a "fixed frame"

2 participants