API Specification#
Ingress#
HTTP API#
The Unreal Renderer microservice exposes an HTTP API. With this API you can:
Add and remove active streams to the microservice.
Stream Management#
The Unreal Renderer microservice is a stateful service, which only starts streaming after a stream has been registered with a stream ID.
An animation data stream can be added with:
stream_id=$(uuidgen)
curl -X POST -s http://localhost:8021/streams/$stream_id
Similarly, an animation data stream can be removed with:
curl -X DELETE -s http://localhost:8021/streams/$stream_id
Please note, that the Unreal Renderer microservice only supports a single stream.
Egress#
gRPC API#
The Unreal Renderer microservice connects to an animation data compositor (e.g. Animation Graph microservice) to receive an animation data stream. This animation data stream is requested through the PullAnimationDataStream remote procedure call (RPC). The renderer then updates the avatar pose, renders the image, and streams the image over WebRTC to a downstream component. The RPC is defined in the Animation Data Service.
Animation Data Stream Audio Format#
The Unreal Renderer microservice currently only supports animation data streams with the following audio format.
Format |
PCM |
Channel Count |
1 |
Sample Rate |
16000 Hz |
Bit Per Sample |
16 |
Propagation API#
The Unreal renderer microservice can propagate the add and remove stream HTTP API calls to a downstream component, if this can’t be done by a controller.