ansys / ansys/Visual-Interactive-Simulation-Object-Renderer

[Remote rendering 4.1] Add headless RemoteRenderer and RCA streaming backend

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
technical
Dominant language
Python
Stars
0
Forks
0
Avg merge
1d 10h
Merged PRs (30d)
37

Description

### 📝 Description of the feature

Stand up the server-side rendering path on the backend:
* a `RemoteRenderer` that implements `IRenderer` against an off-screen `vtkRenderWindow` (`SetOffScreenRendering(1)`), writing per-part mutations through the shared `VtkNodePipeline` and owning camera state directly on the server-side camera (unlike the local path, where the camera lives in the browser).
* `RemoteApp` wires the render window into trame-rca so frames can stream to the client, and complete `VisorRemoteScene` against the runtime-state hooks from user story 1.2. This includes render coalescing (back to back mutations produce one frame).
* This is the largest story in the phase and is expected to break down into several sub-PRs, e.g.
* The off-screen renderer
* the streaming wiring
* coalescing + camera push

Local mode is untouched in this user story; all of this new code is behind the mode flag.

### Acceptance Criteria

* A connecting client receives an initial frame.
* Tests pass

### 💵 Business Value

_No response_

### 🔗 Useful links and references

_No response_

Contributor guide

Open the contributing guide

Research direction

Trace the RemoteRenderer, RemoteApp, VtkNodePipeline, and VisorRemoteScene entry points described in the issue, starting with the existing local renderer and runtime-state hooks. Break the work into the off-screen renderer, streaming wiring, and coalescing/camera behavior; done means a connecting client receives an initial frame and the tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.