ScreenLab – 3D Dome & Curved Screen Simulator | BuildVR

We’ve been developing ScreenLab by BuildVR, a Three.js-based tool for previewing and testing video content across different immersive display geometries.

The idea came from a practical challenge: how can content teams understand how a video may appear on a curved screen, dome, or large immersive display before accessing the physical venue?

A standard video player cannot show how content behaves when mapped onto a curved surface, viewed from different audience positions, or displayed inside a dome. ScreenLab provides a browser-based 3D environment where users can test these conditions earlier in the production workflow.

Supported display environments

ScreenLab currently supports:

  • Flat screens

  • Curved screens

  • Full domes

  • Half-domes

The uploaded video is mapped as a texture onto the selected Three.js geometry, allowing the same content to be tested across multiple display configurations.

Geometry controls

Depending on the selected display type, users can adjust:

  • Screen height

  • Screen radius

  • Curvature arc

  • Horizontal coverage

  • Vertical coverage

  • Dome size

  • Screen distance

  • Audience viewing distance

These controls can help approximate different installation environments, from slightly curved screens to wide immersive displays and dome-based projection setups.

Audience and camera simulation

ScreenLab also allows the environment to be inspected from different viewing positions.

Available scene controls include:

  • Audience-distance adjustment

  • Viewer-position preview

  • Scene navigation

  • Fit scene to view

  • Camera reset

  • Grid and axis references

  • Snapshot capture

This helps users examine how content composition, text placement, scale, and distortion may change depending on the audience position.

Video testing tools

Users can upload their own videos and test them directly inside the selected display environment.

Playback controls include:

  • Play and pause

  • Timeline seeking

  • Loop playback

  • Mute and unmute

  • Playback-speed adjustment

  • Restart and reset

  • Current time and duration

  • Fit view during playback

Why we created ScreenLab

Content teams often complete a video before testing it on the final display environment. This can lead to issues being discovered late in the process, including:

  • Important visuals appearing too close to curved-screen edges

  • Text becoming difficult to read on dome surfaces

  • Incorrect assumptions about display scale

  • Distortion from certain audience positions

  • Uncertainty about whether existing content is suitable for an immersive installation

ScreenLab is designed to move part of this testing process into the browser, making early experimentation and review more accessible.

Three.js implementation

Three.js is used for:

  • Procedural screen geometry

  • Video textures

  • UV mapping

  • Camera positioning

  • Audience-view simulation

  • Real-time geometry updates

  • Scene navigation

  • Display-specific controls

  • Lighting and environment presentation

One of the key challenges has been creating controls that remain understandable across very different geometries. Curved screens rely on radius and arc settings, while dome environments require different coverage, mapping, and camera considerations.

We would be interested in feedback from the Three.js community around:

  • Video UV mapping for dome geometries

  • Camera presets for audience simulation

  • High-resolution video texture performance

  • Useful parameters for immersive displays

  • Configuration import and export

  • Improving real-world scale representation

We’ve included a few images showing ScreenLab across its different display modes and viewing configurations.

Demo: ScreenLab

3 Likes