ALL-IN-ONE REMOTE GAMING

Hey everyone, my team's been building a remote desktop app (skyPC) aiming to be an alternative to Parsec and Sunshine/Moonlight.

Our team went with a simple approach: combine the strengths of both, then add what neither of them has done yet.

  • From Sunshine/Moonlight: super low latency, smooth enough for fast-paced games.
  • From Parsec: quick setup, just one click to install the app on both host and client and you're good to go.

And here's what we're adding on top of that:

  • A client you can use directly through a web browser, no app install needed, with quality on par with the native app.
  • Full USB forwarding support (equivalent to what Virtualhere sells for $49/license).
  • Webcam/microphone forwarding support.

Of course all the other essentials are there too: two-way file transfer, headless support, gamepad, stylus/drawing tablet support, P2P with relay fallback. 

All for 1 goal: you only need to 1 click to install, then you use. Solid fit for gaming, graphic design, or remote work in general.

>To pull this off, we built our own protocol from scratch along with 5 custom drivers (virtual display, USB-2, hardware & mic).

Right now the product's in the final phase, beta's expected to open this July and it'll be completely free to try.

If you want in, drop your email or dm me one, I'll send the setup instructions via email when beta open.

Thanks for reading, and have a great weekend everyone.

Demo of fast-paced gaming, play via browser, CS2 at 2k 120fps 15mbps bitrate

reddit.com
u/laminhthienday — 18 hours ago

ALL-IN-ONE REMOTE DESKTOP SOLUTION

Hey everyone, my team's been building a remote desktop app (skyPC) aiming to be an alternative to Parsec and Sunshine/Moonlight.

After digging into this space for a while, I noticed the current high-performance remote desktop solutions all have some gaps:

  • Sunshine/Moonlight: performance is great, but setup is messy for beginners, not friendly for casual users.
  • Parsec: easy to set up, performance slightly behind Sun/Moon, and the free tier often fails to establish P2P connections, if you want stability you have to go paid to use relay.

So our team went with a simple approach: combine the strengths of both, then add what neither of them has done yet.

  • From Sunshine/Moonlight: super low latency, smooth enough for fast-paced games.
  • From Parsec: quick setup, just one click to install the app on both host and client and you're good to go.

And here's what we're adding on top of that, which neither one has:

  • A client you can use directly through a web browser, no app install needed, with quality on par with the native app.
  • Full USB forwarding support (equivalent to what Virtualhere sells for $49/license).
  • Webcam/microphone forwarding support.

Of course all the other essentials are there too: two-way file transfer, headless support, gamepad, stylus/drawing tablet support, P2P with relay fallback. Solid fit for gaming, graphic design, or remote work in general.

>To pull this off, we built our own protocol from scratch along with 5 custom drivers (virtual display, USB-2, hardware & mic).

Right now the product's in the final phase, beta's expected to open this July and it'll be completely free to try.

If you want in, drop your email or dm me one, I'll send the setup instructions via email when beta open.

Thanks for reading, and have a great weekend everyone.

Demo of fast-paced gaming, play via browser, CS2 at 2k 120fps 15mbps bitrate

reddit.com
u/laminhthienday — 22 hours ago

Feature to build

We just got confirmation for EV code signing delivery, the driver signing process is about 10 days, so we have around 2 more weeks before beta launch.

At the moment, we still have some features on the milestone: 4:4:4 color subsampling, multi monitor, frame gen and multi user session.

For a 2 week sprint, I guess we can only deliver 1 more feature for the beta, so which one should we focus on?

reddit.com
u/laminhthienday — 10 days ago

Quick USB/IP Setup Guide

While building skyPC (our remote desktop solution), we ran into some interesting things, and I think it might help some of you out there.

USB over IP.

On the market, there's virtualhere at $49 (a lifetime license tied to the host hardware, meaning the license is bound to whichever host machine you activate it on, while the client side has no limits on the number of installs). The free version only lets you share a single USB device at a time.

So what about USB/IP? Completely free, of course (it's open source). If you find it useful, the author has a coffee link for donations.

This guide covers setup for Host: Windows / Client: Windows.

Part 1: Setting up the Host (the machine with the USB device plugged in)

Step 1: Install usbipd-win (repo https://github.com/dorssel/usbipd-win)

Open PowerShell (Windows + X, choose Terminal Admin), paste the following and hit enter:

>winget install usbipd

https://preview.redd.it/f9qen8vkdr7h1.png?width=1104&format=png&auto=webp&s=49bcde82b3a79e8a523e1739308475bde11ae69e

Once installed, the system will automatically create a service named usbipd-win, which you can check in Control Panel.

Step 2: List the USB devices on the host machine

Open a new powershell tab and run:

>usbipd list

https://preview.redd.it/eddwpxlldr7h1.png?width=1108&format=png&auto=webp&s=62d3b62c6caf3f48b48789ec45270ec51617a4a6

This will display a list of the USB devices on your machine, in this example there are 4 devices. The BUSID column is the usb slot

Step 3: Share (bind) a device to the network

For example, to share a G435 headset:

>usbipd bind --busid 4-4

https://preview.redd.it/vhl8mmzldr7h1.png?width=1107&format=png&auto=webp&s=e0b325eb173b064deeb19acf0d03fc071d2cba4c

Then run usbipd list again, you'll see the STATE for the G435 has changed to Shared, meaning the device is now ready for the client to use. Repeat for any other devices.

To stop sharing a device, use unbind (same syntax as bind), for example:

>usbipd unbind --busid 4-4

Part 2: Setting up the Client machine

Head over to the repo: https://github.com/vadimgrn/usbip-win2

Step 1: Download the matching installer.

>!Note: if you're on ARM64, check release 0.9.7.5. for ARM64 installer!<

Author has already built a GUI, so it's straightforward to use, once installed, just open the app like any normal program. The "server" field is the IP address of your host machine.

After adding the server and the devices, you'll see the USB devices show up. Pick the one you want and Attach.

https://preview.redd.it/i802kjipdr7h1.jpg?width=1132&format=pjpg&auto=webp&s=da8d168ba9de7762ceaafd6fc653942bfc495ca0

Fast, convenient, simple.

In my case it was windows-windows, but also works for windows-linux or vice versa. A couple of other use cases worth mentioning: sharing USB devices with WSL2 works really well, and forwarding game controllers is another common one.

That's it, hope this helps.

reddit.com
u/laminhthienday — 18 days ago

Quick USB/IP Setup Guide

While building skyPC (our remote desktop solution), we ran into some interesting things, and I think it might help some of you out there.

USB over IP.

On the market, there's virtualhere at $49 (a lifetime license tied to the host hardware, meaning the license is bound to whichever host machine you activate it on, while the client side has no limits on the number of installs). The free version only lets you share a single USB device at a time.

So what about USB/IP? No fee, It's open source. If you find it useful, the author has a coffee link for donations.

This guide covers setup for Host: Windows / Client: Windows.

Part 1: Setting up the Host (the machine with the USB device plugged in)

Step 1: Install usbipd-win

Open PowerShell (Windows + X, choose Terminal Admin), paste the following and hit enter:

>winget install usbipd

https://preview.redd.it/f9qen8vkdr7h1.png?width=1104&format=png&auto=webp&s=49bcde82b3a79e8a523e1739308475bde11ae69e

Once installed, the system will automatically create a service named usbipd-win, which you can check in Control Panel.

Step 2: List the USB devices on the host machine

Open a new powershell tab and run:

>usbipd list

https://preview.redd.it/eddwpxlldr7h1.png?width=1108&format=png&auto=webp&s=62d3b62c6caf3f48b48789ec45270ec51617a4a6

This will display a list of the USB devices on your machine, in this example there are 4 devices. The BUSID column is the usb slot

Step 3: Share (bind) a device to the network

For example, to share a G435 headset:

>usbipd bind --busid 4-4

https://preview.redd.it/vhl8mmzldr7h1.png?width=1107&format=png&auto=webp&s=e0b325eb173b064deeb19acf0d03fc071d2cba4c

Then run usbipd list again, you'll see the STATE for the G435 has changed to Shared, meaning the device is now ready for the client to use. Repeat for any other devices.

To stop sharing a device, use unbind (same syntax as bind), for example:

>usbipd unbind --busid 4-4

Part 2: Setting up the Client machine

Head over to the repo: https://github.com/vadimgrn/usbip-win2

Step 1: Download the matching installer.

>!Note: if you're on ARM64 like me, check release 0.9.7.5. for ARM64!<

Author has already built a GUI, so it's straightforward to use, once installed, just open the app like any normal program. The "server" field is the IP address of your host machine.

After adding the server and the devices, you'll see the USB devices show up. Pick the one you want and Attach.

https://preview.redd.it/i802kjipdr7h1.jpg?width=1132&format=pjpg&auto=webp&s=da8d168ba9de7762ceaafd6fc653942bfc495ca0

Fast, convenient, simple.

In my case it was windows-windows, but also works for windows-linux or vice versa. A couple of other use cases worth mentioning: sharing USB devices with WSL2 works really well, and forwarding game controllers is another common one.

That's it, hope this helps.

reddit.com
u/laminhthienday — 18 days ago