feat: add URL deep linking with full view state sharing#804
Open
feat: add URL deep linking with full view state sharing#804
Conversation
Contributor
Author
|
@EdwardMoyse, Please let me know your thoughts on this! |
Signed-off-by: remo-lab <remopanda7@gmail.com>
e20d91d to
4124325
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for sharing the full current view state of the event display through a URL parameter.
Users can now generate a link that restores the exact camera position, camera target, geometry visibility toggles, and clipping angles they are currently viewing.
A new
stateURL parameter stores the scene state as compressed JSON. When the link is opened, the view is restored automatically.To keep URLs manageable, the state is compressed using the browser-native
CompressionStream(deflate) before encoding. In testing, a ~46KB state compresses to roughly ~8KB.Changes
getStateAsJSON()and camera target save/restore supportgetControlsManager()for camera target access?state=parameter and implemented decompression logic?state=is present to avoid overwriting restored stateTest Plan
?config=and?file=&type=parameters still work as expectedRecording.2026-02-23.140101.1.1.mp4