Stream app if WebGL is not supported

webgl
#1

While WebGL is basically supported by almost all devices, office machines and notebooks without graphics card or optimus will experience a very bad performance or crash frequently, mostly depending on the CPU then.

The case i want to stream the app, is for public WebGL based apps which are used for an average time of 5-15 minutes only rendering visualizations like configurators. In case the device doesn’t support WebGL or will perform very bad. I already implemented an optimizer which will try to adapt resolution and other settings in order to raise the framerate, but older notebooks can already struggle with regular websites.

So in case the device isn’t suited for WebGL, i would embed a app stream session as fallback. Does anyone know an already available service offering to stream apps? Amazon AppStream is offering such a service, but i’m not sure if it’s possible to provide it in a public manner like browserling.com, instead of user accounts.

Basically the demandings aren’t high and it’s only intended as fallback solution.

#2

I’ve always thought Amazon AppStream is intended for desktop applications. Is it even recommended by AWS to stream a web application?

#3

What about people who have slow PCs and slow internet? Wouldn’t it be better to provide a non-WebGL fallback?

#4

@looeee if they don’t have both than it’s their fault, at some point it doesn’t make sense anymore, that’s like if we would still support IE7 these days. Amazon AppStream for example requires a 1 Mbit connection. But the app in this case also isn’t targeting people on the go.

A non-webgl fallback isn’t possible, the application is intended to have 3D graphics. Besides the massive work of writing a 2D canvas alternative it would still have a bad performance.

Streaming a app ensures best quality and performance.

@Mugen87 that’s what i can’t exactly tell, i would simply wrap the site in a node-webkit container, i’m not sure if they offer the option to open public sessions or use let’s say 8 users to assign to public visitors. As i said, there are only few cases this issue appears, and some have rediculous bad office machines, or net/notebooks i mentioned. Especially optimus is a real problem, no regular user can easily turn it off or even know it exists.

#5

Maybe you should ask a question at the AWS developer forum: https://forums.aws.amazon.com/index.jspa

In this way, you can find out if your intended approach with AppStream is valid.

#6

Sure, i just want to look for alternative options as well, there might be exactly such an service to provide a fallback in case devices can’t provide a smooth experience or doesn’t support standard technologies such as WebGL.

#7

I’m using webrtc on one of my projects and or works great. Basically : get canvas content and stream it live online to a remote user/browser in a video element.

Of course, your visualisation wont be interacrive then but you might want to consider animating it or (as I did) adding a few UI buttons that can control the canvas from there.

Hope it helps
https://webrtc.github.io/samples/src/content/capture/canvas-video/

#8

I’d know how to stream a page container using webkit and transfer mouse and keyboard input, though i only want a on-demand service for this task instead developing and hosting it by myself for this rather rare exceptional case. But thanks anyway.

As update on this topic: the AWS streaming instances are very weak. Even a expensive graphics instance isn’t able to render WebGL smoothly and generally is rather laggy sadly. I might do some other tests with other images but i think i’ll have to implement the streaming service myself, since Amazon doesn’t offer a real client-side experience. For example saving or loading files will happen on the VM no the actual client, also there is permanently a control bar for the VM, and the service has no concept for visitors. A lot of such smaller or bigger issues make this service very unsuitable for our usecase.