Remote Control Web

Connect and control web pages by sharing JavaScript between web browsers in real-time.

RCWeb Live Tech

This website remotely controls your web browser by sending JavaScript over WebSockets.

A custom web server maintains connections to every web browser running special client-side web apps.

Web apps are updated by sending JavaScript from one web browser to another in the background without server-side processing or storage.

Every web browser running an RCWeb app is both a web server and a web client. Multiple web browsers in the same virtual room share JavaScript actions to create powerful distributed systems.

Persistent Connections

Firewall-resistant persistent connections help build real-time distributed systems across multiple web browsers by sharing JavaScript over WebSockets in real-time.

Overview diagram
Feature RCWeb Traditional
CPU Usage Low High
Memory Usage Low High
Responsiveness Instant Delayed
State Client-side Server-side
Database and Storage No data stored Required
Backup No data stored Required
Privacy No data stored Compromised

Apps

Here are some example apps to demonstrate how RCWeb technology can be used.

Remote Control

Use the remote control app to instantly send colors, images, videos, websites, apps, HTML and JavaScript to the viewer app in the same virtual room.

Remote Control Viewer

Viewer

The viewer app displays a QR Code to help open the controls app on a mobile device.

Remote Control

Controls

The controls app constructs JavaScript to send to web browsers running the viewer app.

This app demonstrates using one web browser to control a remote web browser. (Asymmetric Pattern)

Asymmetric diagram

Launch Remote Control

Supports multiple viewer apps. The controls app will control all viewer apps in the same virtual room. Multiple control apps will also control all viewer apps in the same virtual room. Other apps running in the same room may also update the viewer app. For example the gallery app includes a photo broadcast option. Photos added to the chat app will also be displayed on viewer apps active in the same room.

Collaboration

RCWeb makes it easy to share state between multiple web browsers. This makes it perfect for collaborative applications such as group chat and media sharing. RCWeb efficiently transfers files, such as photos, between browsers without storing them online.

Chat

This app provides a real-time chat with everyone in the same virtual room.

Chat

RCWeb Chat

Chat in real time with no message delays.

Share the chat page address to invite others to join the chat.

New arrivals receive the chat history from peers.

Everyone is notified when people join and leave the chat.

Send photos between browsers securely and efficiently without storing them online.

Photos in the chat disappear when the sender leaves the chat.

Messages in the chat remain until everyone has left.

This app demonstrates real-time communication. (Symmetric pattern)

Symmetric diagram

Launch RCWeb Chat

This app displays a gallery of photos and makes it easy for others to view the photos without storing them on a central server.

Shared Photo Gallery

RCWeb Gallery

Select photos on your local computer to display them as thumbnails in the gallery.

Share the gallery page address to grant visitors access to the photos.

Photos will be transferred between web browsers using RCWeb technology. Photos are not stored online.

Anyone in the same virtual room can add more photos. The gallery will refresh automatically.

Photos are removed from the gallery when the page is closed or the option to remove a photo is used.

This app demonstrates sharing photos between web browsers. (Symmetric pattern)

Launch RCWeb Gallery

Whiteboard

This app displays a real-time collaborative whiteboard where multiple users can share ideas without storing them on a central server.

Shared Photo Gallery

RCWeb Whiteboard

Write text, draw shapes, link with arrows and apply colors to convey ideas.

Upload images, resize and reposition to enhance the whiteboard.

Click and edit parts of the image. Undo and redo.

Share the whiteboard address to grant visitors access to the whiteboard.

Live updating pointer positions of all viewers.

Anyone in the same virtual room can contribute. The whiteboard will refresh automatically.

Whiteboard contents are removed when the page is closed.

This app demonstrates multiple users controlling a shared canvas.

Launch RCWeb Whiteboard

Shared Drum Machine

This app is a simple drum machine that allows multiple users to change the drum loop pattern together.

Shared Drum Machine

RCWeb Drums

Create a drum loop pattern.

Share the drum machine page address to grant others access to the same drum machine pattern.

Drum patterns will be transferred between web browsers using RCWeb technology.

Anyone in the same virtual room can change the drum pattern. The drum machine will refresh automatically.

Playback can be synchronized across multiple devices and the drum kit split between them.

This app demonstrates sharing drum patterns between web browsers. (Symmetric pattern)

Launch RCWeb Drums

File Transfers

This app displays a list of shared files and makes it easy to transfer them between web browsers. Even large files can be transferred by automatically splitting them into smaller chunks and reassembling them before they arrive at the destination.

Shared Files

Shared Files

Select files to share with everyone in the same virtual room.

The list of shared files updates automatically and provides links for anyone to start a file transfer.

The file is transferred between web browsers using RCWeb technology. It is not stored online.

Files are removed from the list and become inaccessible when the page is closed.

A QR Code provides quick access to the files on a mobile device.

Supports download resuming and seeking within very large files such as videos. If a multi-gigabyte video is shared, another web browser can stream the video and seek within it without transferring the whole file.

This app demonstrates sharing large files between web browsers. (Symmetric pattern)

Launch Shared Files

Shared Notepad

This app synchronizes a text area with everyone in the same virtual room.

Notepad

Shared Notepad

At startup, text is requested from a web browser in the same virtual room.

Updates to the text are sent to all web browsers in the same room.

View new text as it typed by each user.

Users can set their name and you can view where their cursor and selection are.

Text is only accessible while one or more web browsers have the page open. It is not stored online.

This app demonstrates collaboration across multiple web browsers. (Symmetric pattern)

Launch Shared Notepad

Gaming

RCWeb is an excellent foundation for multi-player games on a single screen. To add an additional player, simply scan a QR code using another phone. Each phone gets its own controls interface.

This pattern could work well in public spaces to engage interactivity.

Spacewar

This is a simple Spacewar game. Multiple players can join and battle using their mobile devices as controllers.

Spacewar

Spacewar Game

The game view displays a QR Code to quickly access the game from a mobile phone. Each mobile phone receives controls for their own space ship.

Spacewar Controls

Spacewar Controls

The control view includes buttons to fire and rotate left and rotate right. The ship automatically moves forward.

This game demonstrates one or more remote web browsers controlling a single web browser. (Asymmetric pattern)

Launch Spacewar

Spacewar 2D

Spacewar 2D

Co-operative version of Spacewar. Everyone must shoot asteroids and enemies for points. (HTML5 canvas)

Launch Spacewar 2D

Spacewar 3D

Spacewar 3D

Updated Spacewar with new game play elements including multiple waves of enemies, powerups and more. (three.js)

Launch Spacewar 3D

Flappy Birds

Flappy Birds

Flappy Bird, but with many birds. Scan the QR code to add another bird controller.

Flappy Birds

Snake Pro

Snake Pro

Classic snake, but with many snakes. Scan the QR code to add another snake controller.

Snake Pro

Progressive Web Apps

RCWeb Apps are designed to be installed as Progressive Web Apps (PWAs).

PWAs eliminate the need for app store downloads by allowing users to install to their home screen or start menu. The following RCWeb Apps are PWA enhanced.

Server

RCWeb uses a custom Java web server. Thousands of concurrent connections are maintained using virtual threads with very little overhead. The server does not need to perform complex parsing operations on data sent between browsers because it only proxies the JavaScript as raw bytes. This makes the server very lightweight.

Rooms

RCWeb uses virtual rooms to isolate groups of communicating web browsers.

A new room is created when a web browser opens the root page rcweb.live or app page for the first time. The web browser will be automatically redirected to a new room.

The new room identifier will be added to the query parameter r and be a string of 4 alphanumerics, a dash and another 4 alphanumerics. For example:

?r=abcd-efgh

To connect multiple web browsers, they must all be in the same room. (The r query parameter must match)

https://rcweb.live/chat/?r=abcd-efgh

An app name is featured at the beginning of the path, in this example, the chat app. The app provides an initial state before communication starts in the virtual room. RCWeb Server is stateless and apps can communicate without any changes to the server-side code.

Rooms are temporary and only facilitate communications. No data is stored on RCWeb.

Telemetry

Server Telemetry

Advanced real-time telemetry is built into the web server. A WebSocket connection updates stats in milliseconds.

Server Telemetry

Telemetry

Tools for detailed monitoring of the server, including live stats, HTTP request log tailing and WebSocket frame tailing. This information is sanitized when viewed online.

Monitoring
Live Logs

Stats HTTP Logging WebSocket Logging

Client Telemetry

The info app collects and displays telemetry data from all clients in the same room. The app shows a live updating chart of the latency to each client and detailed information about each client including:

  • When the client started.
  • The app the client is running in the room.
  • The latency between the client running the info app and the client.
  • The number of blocks of JavaScript sent via RCWeb to the client that successfully executed and failed.
  • Additional details including locale, platform, timezone, window size and browser user-agent string.
Client Telemetry

Client Telemetry

The link above connects to the room demo-demo. Open on multiple devices to see the web browsers (clients) in the same room.

Development

RCWeb technology will be used as a foundation for new projects.

AI Generated RCWeb Apps

New RCWeb Apps can be implemented without modifying any server-side code.

This is because the server acts only as a proxy for data without any parsing, processing or storage.

This design pattern is ideal for untrusted LLM generated code because it means no RCWeb app can compromise the server.

Digital Signage

TargetR digital signage currently uses custom Android players, for example SignageNode, to display content in addition to powerful servers to upload, store and manage multimedia content.

RCWeb technology will provide a foundation for building a lightweight digital signage platform that only requires web browsers and minimal server resources.