[HN Gopher] Launch HN: Hyperbeam API (YC W22) - Multiplayer embe...
___________________________________________________________________
Launch HN: Hyperbeam API (YC W22) - Multiplayer embeds of any
website
Hi HN, we're Philip, Amby, and Declan from Hyperbeam
(https://www.hyperbeam.dev). Hyperbeam is an API that makes it easy
for developers to embed real-time multiplayer capabilities into
their web apps--including any other web app that you want to
provide multiplayer access to. Building software to connect people
in real time is hard. We experienced this in college when we built
a "watch party" site for people to watch movies together
(https://hyperbeam.com). Other watch party solutions were
unreliable, so we spent two years building tech to allow friends to
watch stuff together with ease. The key piece was a "multiplayer
web browser". By that we mean a Chromium instance that you embed
inside your own web app (i.e. web browser inception) which is
actually hosted on a server and streamed via WebRTC, and so can be
shared and controlled by multiple people at the same time. For
example, say you have an online tutoring platform. An instructor
can open any application in the embedded web browser and then work
on it with the student together. Another use case is making non-
multiplayer apps multiplayer. One of our customers wanted to add a
collaborative version of Google Slides to their product, so
multiple participants could navigate the slides at once. Google
doesn't provide an API for that, so users had to screen share,
which isn't multiplayer. With Hyperbeam, you just open up a shared
instance of Google Slides and then multiple people can control it.
We didn't learn about those use cases until later, though. What
happened was that we grew hyperbeam.com to 150k monthly active
users and over 1M hours of video per month, but then it stopped
growing. Despite this, we got into YC, and soon had multiple
companies asking to buy our multiplayer browsing tech. After
closing three deals, we decided to sell our multiplayer web
browsers as an API. That way other companies can build products to
connect others without going through two years of WebRTC hell like
we did. We allow developers to embed multiplayer web browsers in
their web apps with a few lines of code. Users can then visit any
website from inside that web app together. Developers can specify
control permissions, programmatically navigate to specific URLs,
and hide the browser UI so apps appear as if they are natively
integrated. Unlike screen share solutions that upload your
personal computer stream to participants, Hyperbeam's multiplayer
web browsers run on our own virtual machines. This eliminates the
upload speed bottleneck that many users experience. We host a
Chromium browser instance on our server, record the video and audio
output and stream it to all participants using WebRTC. That sounds
simple, but hosting full-blown Chromium instances is challenging,
especially doing it cost-effectively: what we learned is Chromium
instances, at scale, love memory bandwidth a lot more than the
amount of memory. Also, network unreliability, like last-mile
packet loss, is also a problem, especially audio packet loss which
is a lot more noticeable than video packet loss. A simple hack we
have in place is literally sending every audio RTP packet twice,
which improves audio quality drastically over spotty connections.
Anyone is welcome to get a free playground API key and try our
product! Rather than spend time building a UI for that, we've just
put up a Google Form in the spirit of do-things-that-don't-scale.
Go to https://forms.gle/RSQhbFXbdrcqwqsc9, fill in your email and
we promise to send you an API key right away. The API docs are
here: https://showy-backpack-b3f.notion.site/Hyperbeam-API-
eb9874b... Pricing is not transparent on our website yet--we're
still working it out. However, we're going to use the same business
model as CPaaS companies such as Agora and Twilio. We'll charge
customers a minimum amount per month and provide a set amount of
participant hours. If a customer exceeds the provided participant
hours, we continue charging at a fixed rate. If you want to try
out tech in action, you can do that by signing up for free and
creating a room using our original Hyperbeam watch party platform:
https://hyperbeam.com/app/register We're happy to answer any
questions you have, and would love to hear your ideas for other
potential use cases as well. Thanks!
Author : declan_g
Score : 44 points
Date : 2022-02-22 20:16 UTC (2 hours ago)
| ScottyFillups wrote:
| If anyone wants a demo, all the founders are currently in
| https://hyperbeam.com/i/5yzVxENh
|
| We'll try to keep the discussion in the HN thread though :)
| omarfarooq wrote:
| We would love an API key at https://color.museum to experiment
| with using Hyperbeam to enable collaborative art (ie. through our
| https://color.museum/gallery)
|
| Looking forward to it! Thank you.
| ScottyFillups wrote:
| We sent an API key! Feel free to email us at
| founders@hyperbeam.com if you need anything else.
| vgel wrote:
| Since AFAIU it's a video stream without any DOM, is there any
| accessibility affordance?
| ambyjkl wrote:
| Currently, we do not have accessibility support for the
| browser, we only do the video stream. The reason we haven't
| worked on this yet is because of our focus on watch parties,
| and the video stream being streamed was usually that of a video
| itself, so not a lot of accessibility could be added to that
| use case. But now that we are looking at the bigger picture, we
| could implement full-fledged accessibility support where we
| serialize the accessibility tree and send that over instead of
| the video stream.
| vgel wrote:
| Good to hear it's on the roadmap!
| traverseda wrote:
| Cool, looks very similar to https://github.com/m1k1o/neko
| ScottyFillups wrote:
| There's also https://cryb.app/
|
| They're actively in development and the maintainer is friendly.
| traverseda wrote:
| Huh, those both mention the same app as inspiration. Neat.
| Operyl wrote:
| Yeah, Rabbit was incredible. They just had issues
| monetizing and it died .. heh.
| ScottyFillups wrote:
| We originally started out as a Rabbit alternative :)
|
| Here's our original launch post: https://www.reddit.com/r
| /RabbitReddit/comments/efiprp/tuttur...
|
| (We rebranded from Tutturu to Hyperbeam last year)
| tomjohnneill wrote:
| I'm not sure the API docs are publicly accessible?
| ScottyFillups wrote:
| Unfortunately the link the post is missing a "1" at the end,
| here are the links to the documentation:
|
| - https://showy-backpack-b3f.notion.site/API-Design-
| eb9874bd1e...
|
| - https://www.npmjs.com/package/@hyperbeam/iframe
| dang wrote:
| Link should be fixed above. Sorry about that!
| mwcampbell wrote:
| Congrats on your launch. I do have one concern though:
|
| > a Chromium instance that you embed inside your own web app
|
| Have you considered the accessibility ramifications of this, e.g.
| for blind people using screen readers? It will certainly be
| possible to make this accessible; indeed, that's an advantage of
| your approach over screen sharing. It won't be easy, but of
| course I believe it's still important and worth doing. My email
| address is in my profile if you want to discuss this further.
| ScottyFillups wrote:
| Thank you!
|
| > Have you considered the accessibility ramifications of this,
| e.g. for blind people using screen readers?
|
| We are considering the accessibility ramifications now since
| we've pivoted toward a general API. We didn't focus on
| accessibility for blind people initially because we were
| building a watch party platform.
|
| I think offering accessibility features would give us a massive
| edge against technologies like screenshare! Is there a specific
| use-case you're thinking of?
| mwcampbell wrote:
| > Is there a specific use-case you're thinking of?
|
| The OP mentioned a tutoring use case. If you're going to sell
| this to educational institutions or companies that serve
| them, at least in the US, then accessibility is important.
| ScottyFillups wrote:
| I see. Sorry! I got excited and went in founder mode -- for
| a moment I thought you had a problem we could solve for you
| :)
|
| Thank you for stressing the importance of accessibility.
| We're really impressed with the quality of the questions so
| far.
| unfocussed_mike wrote:
| > indeed, that's an advantage of your approach over screen
| sharing.
|
| In what way, particularly? it's streaming the video and audio
| from a remote browser instance, so surely that means all
| participants will have the same accessibility settings in the
| remotely viewed instance.
| mwcampbell wrote:
| Yes, that's true today. But since they're running a version
| of Chromium that they control, they can in principle modify
| it to push semantic information from the Chromium
| accessibility implementation along with the video stream.
| That would be much harder for, say, Zoom screen sharing to
| do, because of the way the platform accessibility APIs are
| designed.
| unfocussed_mike wrote:
| Ahh -- I see. Informative answer, thank you :-)
| ScottyFillups wrote:
| To add to mwcampbell's response, my cofounder Amby proposed a
| possible solution:
|
| > But now that we are looking at the bigger picture, we could
| implement full-fledged accessibility support where we
| serialize the accessibility tree and send that over instead
| of the video stream.
|
| What are your thoughts on this approach?
| mwcampbell wrote:
| You probably want to send the accessibility tree in
| addition to the video stream, not instead of it. Luckily
| the Chromium accessibility tree can already be serialized
| and pushed, because Chromium does that between the renderer
| and browser processes.
| fire wrote:
| Congrats on the launch!
| ScottyFillups wrote:
| Thank you fire!
| declan_g wrote:
| Thanks!
| ScottyFillups wrote:
| The documentation link in OP has a typo. Here's the fixed link:
| https://showy-backpack-b3f.notion.site/Hyperbeam-API-eb9874b...
|
| Theneo also converted our Notion documentation to a Stripe-like
| doc page -- please let us know what you all prefer!
|
| https://app.theneo.io/demo/hyperbeam/
| dang wrote:
| Link fixed above.
| ScottyFillups wrote:
| Thanks dang
| notacanofsoda wrote:
| Neat, looks like Mighty app but multi-user. Interesting that both
| companies are YC funded.
| ScottyFillups wrote:
| Yeah, that's one way of looking at it: a multiplayer Mighty app
| that you can iframe into your own website.
|
| In terms of how we're different, Mighty focuses on performance
| while we focus on collaboration.
| vgel wrote:
| Curious about how concurrent edits work. In, say, Figma, two
| users can simultaneously each create a text box and type into it.
| In my naive understanding of how Hyperbeam works, the remote
| Chrome instance would be receiving two streams of input events.
| Would those streams be interleaved, resulting in typing going to
| the wrong text box for one user? Or is there a different
| approach?
| ScottyFillups wrote:
| Yes, the streams would be interleaved.
|
| I'll created an instance you can play around with here:
|
| https://doovvlk32v0gmr9hrf3d9w84m.hyperbeam.com/-rlpzy3aQm6X...
| nichol4s wrote:
| Interesting! Something pretty similar to what enable at
| https://www.surfly.com the difference is that we focus more on
| B2B types of integrations and stream the actual DOM instead of a
| WebRTC videostream.
|
| Good luck!
| ScottyFillups wrote:
| Thank you!
| edmcnulty101 wrote:
| Is there a tutorial that I can check out to understand this
| better?
| declan_g wrote:
| If you're looking for a demo of the API specifically, you can
| check out the demo video on https://hyperbeam.dev.
|
| If you're looking to try out the embedded web browsers, you can
| check out our watch party site https://hyperbeam.com, create an
| account, create a room, and then start up a multiplayer web
| browser! However, it only shows off a subset of the
| functionality of the API.
|
| Finally, you can view our API documentation here if you prefer:
| https://showy-backpack-b3f.notion.site/Hyperbeam-API-eb9874b...
| edmcnulty101 wrote:
| Awesome thanks ya'll. Cool product. My immediate thought is
| to use it to watch NBA games with friends who aren't in my
| city.
|
| Going to poke around a bit and see what else I can do.
| ScottyFillups wrote:
| To add to what Declan said, our original watch party product is
| still online here: https://hyperbeam.com
|
| I've created a room and I can personally give you a demo :)
|
| https://hyperbeam.com/i/5yzVxENh
___________________________________________________________________
(page generated 2022-02-22 23:00 UTC)