Universe

OpenAI Blog Tools

Summary

OpenAI Universe is a software platform that enables RL agents to interact with any existing computer program through a VNC-based interface, supporting parallel environment execution at 60 FPS with human demonstrations and automated reward extraction.

We’re releasing Universe, a software platform for measuring and training an AI’s general intelligence across the world’s supply of games, websites and other applications.
Original Article
View Cached Full Text

Cached at: 04/20/26, 02:56 PM

# Universe Source: [https://openai.com/index/universe/](https://openai.com/index/universe/) Our design goal for universe was to support a single Python process driving 20 environments in parallel at 60 frames per second\. Each screen buffer is 1024x768, so naively reading each frame from an external process would take 3GB/s of memory bandwidth\. We wrote a batch\-oriented[VNC client⁠\(opens in a new window\)](https://github.com/openai/go-vncdriver)in Go, which is loaded as a shared library in Python and incrementally updates a pair of buffers for each environment\. After experimenting with many combinations of VNC servers, encodings, and undocumented protocol options, we now routinely drive dozens of environments at 60 frames per second with 100ms latency—almost all due to server\-side encoding\. Here are some important properties of our current implementation: **General**\. An agent can use this interface \(which was originally designed for humans\) to interact with any existing computer program without requiring an emulator or access to the program’s internals\. For instance, it can play any computer game, interact with a terminal, browse the web, design buildings in CAD software, operate a photo editing program, or edit a spreadsheet\. **Familiar to humans**\. Since people are already well versed with the interface of pixels/keyboard/mouse, humans can easily operate any of our environments\. We can use human performance as a meaningful baseline, and record human demonstrations by simply saving VNC traffic\. We’ve found demonstrations to be extremely useful in initializing agents with sensible policies with behavioral cloning \(i\.e\. use supervised learning to mimic what the human does\), before switching to RL to optimize for the given reward function\. **VNC as a standard**\. Many implementations of VNC are available online and some are packaged by default into the most common operating systems, including OSX\. There are even VNC implementations in[JavaScript⁠\(opens in a new window\)](https://kanaka.github.io/noVNC/), which allow humans to provide demonstrations without installing any new software—important for services like Amazon Mechanical Turk\. **Easy to debug**\. We can observe our agent while it is training or being evaluated—we just attach a VNC client to the environment’s \(shared\) VNC desktop\. We can also save the VNC traffic for future analysis\. We were all quite surprised that we could make VNC work so well\. As we scale to larger games, there’s a decent chance we’ll start using additional backend technologies\. But preliminary signs indicate we can push the existing implementation far: with the right settings, our client can coax GTA V to run at 20 frames per second over the public internet\. **Extracting rewards**\. While environments without reward functions can be used for unsupervised learning or to generate human demonstrations, RL needs a reward function\. Unlike with the Atari games, we can’t simply read out success criteria from the process memory, as there is too much variation in how each game stores this information\. Fortunately, many games have an on\-screen score which we can use as a reward function, as long as we can parse it\. While off\-the\-shelf[OCR⁠\(opens in a new window\)](https://en.wikipedia.org/wiki/Optical_character_recognition)such as[Tesseract⁠\(opens in a new window\)](https://github.com/tesseract-ocr/tesseract)performs great on standard fonts with clean backgrounds, it struggles with the diverse fonts, moving backgrounds, flashy animations, or occluding objects common in many games\. We developed a convolutional neural network\-based OCR model that runs inside the Docker container’s Python controller, parses the score \(from a screen buffer maintained via a VNC self\-loop\), and communicates it over the WebSocket channel to the agent\.

Similar Articles

Computer-Using Agent

OpenAI Blog

OpenAI introduced the Computer-Using Agent (CUA), a model combining GPT-4o's vision with reinforcement learning to interact with GUIs like a human, powering the new Operator agent. CUA sets new state-of-the-art benchmarks including 38.1% on OSWorld and 58.1% on WebArena, and is available as a research preview for ChatGPT Pro users in the US.

OpenWebRL: Demystifying Online Multi-turn Reinforcement Learning for Visual Web Agents

Hugging Face Daily Papers

OpenWebRL presents an open framework for training visual web agents using online multi-turn reinforcement learning on real websites, achieving state-of-the-art performance with minimal initial supervision. Their 4B-parameter model outperforms prior open agents and competes with proprietary systems like OpenAI CUA and Gemini CUA.

Gathering human feedback

OpenAI Blog

OpenAI releases RL-Teacher, an open-source tool for training AI systems through human feedback instead of hand-crafted reward functions, with applications to safe AI development and complex reinforcement learning problems.

OpenComputer | An Open Source Computer Built For Agents.

Reddit r/LocalLLaMA

OpenComputer is an open-source virtual machine environment for AI agents that provides a human-accessible computer interface, allowing agents to safely operate while users can observe and collaborate. It runs locally with small context models and avoids screenshot-based navigation for efficiency.