About Stratus

Stratus Overview

Stratus is a low-latency game streaming service that enables users to play games from their web browser, similarly to past and present services such as Google Stadia, Amazon Luna, and GeForce NOW. Stratus offers identical functionality and comparable performance to these commercial alternatives, but was developed using far fewer resources and much less money.

Stratus Architecture

The Stratus service is composed of three main components: the web frontend, the coordination server, and the stream servers. Each of these is described in more detail below.

Overall Architecture Diagram

Web Frontend

The web frontend allows the user to browse the Stratus game library, select a game, and then stream game I/O to their browser.

Site map diagram

Coordination Server

The Stratus coordination server runs in an AWS EC2 instance and is responsible for connecting frontend clients with stream servers for new game streaming sessions, in addition to providing the web frontend with APIs for user authentication and game library queries.

Backend architecture diagram

Stream Servers

Stratus uses a cluster of 12 BC-250 stream servers running Linux to execute the games and stream game I/O. Each server runs a custom Stratus streaming software consisting of 5 modules, as shown below.

stratusd architecture diagram

The SideCar module handles communication with the coordination server over a persistent WebSockets connection. When a request to start a new stream is received, the SideCar module is responsible for initializing every other module and then launching the game itself. The game’s video output is then captured by the Capture module via the Wayland protocol, encoded by the Encode module using ffmpeg, and finally sent to the client by the Transport module over Google’s QUICHE transport layer. The Transport module also receives game controller input sent by the client and forwards it to the Input module, which injects the input into the game via a virtual controller device.

Our Team

Asher
I am a CS major with a background in Linux, and I’m excited to work on the custom OS and Wayland compositor for this project.
John
I am pursuing a bachelor’s degree in Computer Science with a certificate in Cybersecurity, with front-end experience and a little backend experience.
Carol
I am a Graphic Design and CS double-major, and I was invited onto this project as a designer.
Izzy
I am an applied CS senior. I have some experience with full stack applications, so I’m looking forward to working on a few components of the project, trying to achieve a seamless experience streaming from the compositor to the web client.
Amin
I am a Computer science major with a focus in Cyber Security. I have experience with Systems Engineering and Unreal Engine. I am looking forward to getting this project up and running and doing whatever is possible to reduce latency.
Nathen
I am a CS major. Through personal projects, I have gained experience with full-stack web development, and through internships, I have also gained experience with audio processing.