How to achieve offline rendering / export animation to video? (Like SuperSplat)

Hello all,

I’ve been looking at the Supersplat viewer, which is built on PlayCanvas, and I’m very amazed by its feature that allows rendering a camera animation to a fixed-size MP4 video file.

This appears to be a high-quality, frame-by-frame render, not just a real-time screen capture.

My question is: How can I replicate this functionality in a vanilla PlayCanvas project?

I’m aiming to take a pre-defined camera animation (e.g., from a timeline or script) and programmatically render it out frame-by-frame to encode an MP4 video, rather than relying on an external screen recorder.

Since Supersplat is built on the engine and is open-source, is there a specific module, library, or technique used in that project that could be extracted or adapted to achieve this in a standard project? My intention is to render a scene that contains 3D assets as well as a Gaussian Splat into that video.

Any guidance on the best practices for this kind of “offline” rendering within PlayCanvas would be great.

Thanks!

@slimbuck @will

1 Like

Hi @VictorF,

Supersplat editor just uses the built-in browser support for generating videos, along with a video container library.

The source for screenshots and video generation is in supersplat/src/render.ts at main · playcanvas/supersplat · GitHub.

Waiting for GS sorting is a bit hairy, and hopefully something we can improve, but this should be a good starting place.

Thanks

1 Like

It was super useful, thank you!

1 Like