日本語版ReadMeはこちら
Low-latency peer-to-peer remote play system for Windows.
This is a version of a system I originally created to play games with my twin brother, customized for public use.
There are two reasons behind the name:
- It started as a system for me to play with my twin brother.
- I wanted the two devices to operate with low latency, as if they were a single device.
TwinsRemote incurs ongoing maintenance costs.
Server fees (production + TURN + staging) + domain fees = 2,300 yen/month (14.38 USD/month)
If you like TwinsRemote and want it to continue for a long time, or if you’d like us to keep working hard to develop new features, please consider supporting us.
- Features
- Supported Features
- Architecture
- How To Use
- Troubleshooting
- Requirements
- Current Limitation
- Networking
- Development
- Building
- Future Plans
- Report
- FAQ
- Project Background
- Status
- Disclaimer
- Peer-to-peer communication using WebRTC
- Very low latency under stable network conditions
- Designed for interactive gameplay, not just video playback
-
No client installation required
-
Open the client page in a Chromium-based browser and connect
-
Confirmed working on:
- Google Chrome
- Brave
Client URL:
https://play.twins-remote.com
- Hardware encoding using NVIDIA NVENC
- Multiple predefined streaming modes
- User-created custom modes
- Tunable for unstable network environments
- IPv4 / IPv6 support
- TURN relay support for NAT traversal
Three audio sharing modes are available:
- Full PC system audio
- Application-specific audio sharing
- Audio disabled
Supported and tested controllers:
- Xbox Controllers
- DualShock 4
- DualSense
Controller input is transmitted through WebRTC DataChannels with very low latency.
Responsible for:
- WebRTC communication
- DataChannel processing
- Controller input handling
- TURN/STUN support
- NAT traversal
Uses:
- WebRTC
- ViGEm for virtual controller emulation
ViGEm installation is required on the host PC to allow remote controller input.
Used for:
- Video capture and NVENC encoding
- Audio capture
Windows Forms application used for:
- Host UI
- Streaming configuration
- Session connection management
The host application supports:
- Japanese
- English
- No frontend framework
- Browser-based WebRTC client
- Session ID generation and connection handling
- Launch
TwinsRemoteHost.exe - Select a streaming mode
- Enter the session ID shared by the client
- Press the connect button
Streaming will start automatically after the connection is established.
- Open:
https://play.twins-remote.com
- A session ID will be generated automatically
- Send the session ID to the host
- Wait for the host to connect
After the host finishes processing, the stream will begin automatically.
The audio is muted by default, so please unmute it as needed.
If you try to run the host on a gaming laptop, it may not work properly.
You may need to review your PC settings. Click here for more details
- Windows
- NVIDIA GPU with NVENC support
- Chromium-based browser is NOT required on the host
-
Chromium-based browser
- Chrome
- Brave
The following are examples.
It is not yet determined whether these will be implemented in the future.
- Dynamic resolution switching during streaming
- Multi-monitor selection
- CPU encoding
- Windows host only
- Main monitor capture only
- NVIDIA NVENC required
Twins Remote supports:
- P2P WebRTC communication
- IPv4
- IPv6
- TURN relay fallback
- NAT traversal
Currently, a TURN server is deployed in Tokyo.
- Rust
- C++
- C#
- WebRTC
- NVENC
- ViGEm
- Vanilla JavaScript
- WebRTC
Visual Studio is required for development.
The repository contains multiple projects including:
NvEncProcessAudioCaptureSystemMicCaptureTwinsRemoteHost
These projects are managed through a Visual Studio solution.
Please feel free to submit any feature requests or bug reports.
Please submit your reports via GitHub Issues or in the comments section of the X post below.
We plan to actively incorporate any suggestions that do not stray too far from the core philosophy of Twins Remote.
Here is some examples:
- Keyboard and mouse input support
- Host-side input permission settings
- Dynamic resolution switching
- Additional streaming optimizations
- More flexible display selection
I also welcome GitHub issues
Please reply to This Post on X
Please reply to This Post on X
Please reply to This Post on X
No.
Twins Remote is not tied to Steam and can be used with:
- Non-Steam games
- Emulators
- Desktop applications
No.
The client only needs a supported browser.
ViGEm is used to emulate virtual game controllers on the host PC so that remote controller input can be recognized by games.
This project originally started as a system built for the developer and their twin brother to play games remotely together.
The name "Twins Remote" comes from:
- The original use case between twins
- The goal of making two distant PCs feel as synchronized as possible
This project is currently under active development.
Features and behavior may change significantly over time.
This project is provided as-is without warranty.
Use at your own risk.