ansys / ansys/Visual-Interactive-Simulation-Object-Renderer
[Remote rendering 4.5] Remote camera interaction end-to-end
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 37
Description
### 📝 Description of the feature
Make rotate, pan, and zoom work against the server-side interactor: the client forwards the interaction event, the server applies it to the camera, renders, and streams the updated frame back. The stock interaction adapter doesn't reliably handle the event format the canvas emits, so a direct dispatch stands in.
Note:
In the spike, the stock vtkRemoteInteractionAdapter.ProcessEvent didn't recognize the JSON event format RemoteCanvas emits, because RemoteCanvas was emitting different event shapes (e.g. both flat {x, y} and nested {position: {x, y}} shapes.
A workaround was used in the spike, dispatching events directly to an interactor instead of going through the adapter, since it wasn't clear whether the adapter's strict behavior is intended or an upstream issue whose fix is to accept both shapes.
If a similar issue is encountered in the course of this user story, we could first check with Kitware on whether we resolve the issue by conforming RemoteCanvas to a single shape or whether the fix is on the adapter side (if it's not intended to be as strict)
### Acceptance Criteria
Rotate, pan, and zoom work in remote mode.
### 💵 Business Value
_No response_
### 🔗 Useful links and references
_No response_
Contributor guide
Research direction
Start by tracing the RemoteCanvas event emission and the server-side interactor path, then inspect vtkRemoteInteractionAdapter.ProcessEvent and the differing JSON event shapes described here. Confirm the intended event format or direct-dispatch approach; done means rotate, pan, and zoom work in remote mode with updated frames streamed back.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-graphics, full-stack
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100