Show HN: Browse HN Together in Three.js
268 points| declan_g | 3 years ago |threejs-example.hyperbeam.com
We’re Philip, Amby, and Declan, and we made “multiplayer virtual computers” that you can embed anywhere, including 3D spaces. We decided to build this because we noticed that embedding third-party apps and websites can be a nightmare due to incompatible platforms, security issues, and poor UX. Adding multiplayer functionality to these embeds makes this problem exponentially more difficult.
On the backend, we’re spinning up a VM and running a resource-optimized fork of Chromium which we then stream to participants via WebRTC. Since we’re hosting the servers running the applications, multiple users can connect and control the virtual computer seamlessly, and their client just needs to handle a video stream.
If you want to add multiplayer virtual computers to your own app, you can sign up on https://hyperbeam.com/?ch=hn&cm=hn1, grab a free API key, and throw the provided embed URL in an iframe in your app.
You can also play around more with the Three.js demo in our interactive sandbox: https://app.sideguide.dev/hyperbeam/threejs/
If you have any questions or feedback, feel free to comment or shoot me an email at declan@hyperbeam.com.
Thanks!
Docs: https://docs.hyperbeam.com Discord: https://discord.gg/D78RsGfQjq
crazygringo|3 years ago
If it matters, the HN link redirects for me to:
https://threejs-example.hyperbeam.com/672b6071
and the ID at the end stays the same even in incognito.
Since this is on the front page and I've been waiting around for 5 minutes there must be other people using it. How is it supposed to be multiplayer?
EDIT: once I posted this comment somebody else joined, I see how it works now. Very cool. I guess it depends on winding up with a shared ID or something?
thats-all-folks|3 years ago
declan_g|3 years ago
mgdlbp|3 years ago
https://pad.riseup.net/p/1_prWgNWMqs-Hu_bIi3I
https://app.kosmi.io/room/m4gsd4
“users, uh, find a way”
There's a couple ways of opening multiple windows, which enables title bar controls on every window. Minimizing and closing them softlocks to a black screen until the instance resets.
batch12|3 years ago
pookeh|3 years ago
Moosdijk|3 years ago
jonas-w|3 years ago
JoeOfTexas|3 years ago
unknown|3 years ago
[deleted]
tauwauwau|3 years ago
MuffinFlavored|3 years ago
You can't even take a screenshot of YouTube TV if you don't run it in a VM. Goes to the clipboard as all black.
How does HyperBeam not get abused (and consequentially shut down) for people wanting to share a stream of a pay-per-view / YouTube TV style subscription with their friends?
philipscott|3 years ago
brabel|3 years ago
I shared my link with my wife but she saw something entirely different... wasn't she supposed to be the same thing as me with the same "room" link?
bhedgeoser|3 years ago
warpech|3 years ago
bcjordan|3 years ago
owow123|3 years ago
Amazing job OP :)
ambyjkl|3 years ago
ceasesurthinko|3 years ago
moffkalast|3 years ago
I was also disappointed it didn't work.
coldblues|3 years ago
philipscott|3 years ago
The watch party website is still up at https://watch.hyperbeam.com, we're the biggest Rabb.it alt that offers virtual browsers.
Without Rabb.it, we wouldn't be here haha
MuffinFlavored|3 years ago
https://docs.hyperbeam.com/start-chromium-session
First thing that comes to my mind is... this is kind of like Puppeteer. Even if that is what they are using in the background... would they ever expose it so existing Puppeteer apps could plug and play (like https://www.browserless.io/)?
philipscott|3 years ago
Would appreciate your thoughts.
stevebmark|3 years ago
philipscott|3 years ago
Furthermore, an iframe cannot be synchronized across participants. If you and I load YouTube in an iframe, it's not guaranteed that our videos are sync'd.
With Hyperbeam, you can embed any website and the content is sync'd. Think of it like sitting beside somebody with a computer.
dang|3 years ago
Launch HN: Hyperbeam API (YC W22) – Multiplayer embeds of any website - https://news.ycombinator.com/item?id=30433104 - Feb 2022 (63 comments)
metadat|3 years ago
It's crazy to think this is built off forked chromium yet there is no really good self-hosted cross-platform Remote Desktop app.
Keep up the good work!
philipscott|3 years ago
Hyperbeam started out as anime watch party website for our engineering capstone project in 2019, so the commit history is a bit comical. https://uwaterloo.ca/news/engineering-students/taking-innova...
philipscott|3 years ago
founders@hyperbeam.com
philip@hyperbeam.com (CEO) - Philip#9001
amby@hyperbeam.com (CTO) - Ambyjkl#4365
declan@hyperbeam.com (CPO) - Dek#7777
chaosprint|3 years ago
I manage to vist https://glicol.org and get some live coding music there
but the audio seems to be compressed a lot and the cpu seems to be overloaded
I cannot open console there so I cannot tell
with that being said, I think it is really promising and look forward to the update
philipscott|3 years ago
philipscott|3 years ago
Also thanks for showing me glicol, I love dabbling with audio visualizers and often play around with the web audio API. Really cool that somebody made a DSL, I starred the project :)
coconut_t1|3 years ago
philipscott|3 years ago
The folks at SideGuide made the interactive demo for us — we love it too.
ambyjkl|3 years ago
aneesv|3 years ago
philipscott|3 years ago
Is there any use-case you have in mind? We're struggling to find people that want android emulators.
mertysn|3 years ago
kaetemi|3 years ago
WaffleIronMaker|3 years ago
declan_g|3 years ago
Remote tutoring: https://www.teachwithkoala.com
VR offices & conferences: https://framevr.io
Watch parties: https://kosmi.io
Online coding lessons: https://www.strivemath.com
VS Code embeds: https://github.com/mintlify/connector
As for improving VR support, we're in the process of building a Unity SDK. Running computationally-expensive tasks in VR sounds really interesting in addition to the social use-case!
graderjs|3 years ago
And a closed source version that has multiplayer, audio and much faster streaming (than the GitHub version) that uses webrtc.
I also have a few projects to bring even higher quality streaming, including an xvfb headful version using an extension to enable getDisplayMedia APIs to share the screen.
It's a different approach to Hyperbeam. I love that there are more and more new and young products in this space!
philipscott|3 years ago
Super curious how you got that many stars on your repository, that's impressive!
vz8|3 years ago
Suggestion: A hotkey (in or out of the virtual computer) that allows you to reset to the default orientation without having to reload the page. On a laptop with only a touchpad, I'm fighting with the controls a bit.
philipscott|3 years ago
throwaway888abc|3 years ago
Impressed by Hyperbeam tech behind. Bookmarked for later.
philipscott|3 years ago
The watch party website is still up here: https://watch.hyperbeam.com
declan_g|3 years ago
can16358p|3 years ago
me_bx|3 years ago
I'm guessing that other visitors get some content instead of the black box...
philipscott|3 years ago
peteforde|3 years ago
It's almost like it's so far ahead, I worry that people won't know what to do with it. It's like the "what would you do with infinite bandwidth" problem... even smart people tap out creatively depressingly quickly.
tyranitar10|3 years ago
taaron|3 years ago
declan_g|3 years ago
Remote tutoring: https://www.teachwithkoala.com
VR offices & conferences: https://framevr.io
Watch parties: https://kosmi.io
Online coding lessons: https://www.strivemath.com
VS Code embeds: https://github.com/mintlify/connector
unknown|3 years ago
[deleted]
jimhi|3 years ago
Is there a way to get this to work on mobile? Tried on safari and chrome
declan_g|3 years ago
When using the API you can set a specific height and width to resize the virtual computer. Additionally, we track touch events and you can drag-and-drop on devices like iPads.
Happy to chat more about it if you'd like! Feel free to join our Discord: https://discord.gg/D78RsGfQjq
zirror|3 years ago
declan_g|3 years ago
We’re building a “privacy mode” feature to address this exact problem that allows the host to black out the screen when entering sensitive information like credentials.
As for Hyperbeam getting access to credentials—we don’t store any input from users in the virtual computer. The only things we track are the time a particular IP is connected to the VM and the domains that are visited (this is anonymized).
sgt|3 years ago
philipscott|3 years ago
XCSme|3 years ago
declan_g|3 years ago
With that said, the virtual computer technology has some big differences when compared to something like TeamViewer.
- First off, Hyperbeam allows many participants to connect to the same virtual computer at once. All audio/video is synchronized, and any participant can control it (although our API has granular control permissions).
- Hyperbeam requires no downloads
- We manage the infrastructure ourselves, meaning you can embed Hyperbeam virtual computers in your app and scale seamlessly
- You can embed Hyperbeam virtual computers in 3D software and VR
- You can programmatically control the web browser
Here are some companies that are currently using our tech:
Remote tutoring: https://www.teachwithkoala.com
VR offices & conferences: https://framevr.io
Watch parties: https://kosmi.io
Online coding lessons: https://www.strivemath.com
philipscott|3 years ago
Zachsa999|3 years ago
ambyjkl|3 years ago
ARRgonaute|3 years ago
mupuff1234|3 years ago
Feels slightly like the infamous "hacking" scene when two people are using the same keyboard.
laserlight|3 years ago
parksy|3 years ago
As it stands, everyone's inputs clash.
The main issue is there's a single mouse pointer and keyboard input that all users control. It's quite chaotic as people scroll, click, select, etc. Provide some mechanism to nominate control authority or vote on interaction and it might be usable.
ambyjkl|3 years ago
MuffinFlavored|3 years ago
philipscott|3 years ago
Also, this is a bit of a tangent but my first name has one "L". My mother named me after the Philippines and I'm of Scottish descent on my father's side.
unknown|3 years ago
[deleted]
AtNightWeCode|3 years ago
philipscott|3 years ago
ambyjkl|3 years ago
NegativeLatency|3 years ago
fire|3 years ago
philipscott|3 years ago
tradester|3 years ago
declan_g|3 years ago
chaiv|3 years ago
nirajsheladiya|3 years ago
ambyjkl|3 years ago