-1
\$\begingroup\$

I would have thought that browser based programs like BabylonJS allowed anyone with a pc powerful enough to load a webpage to be able to utilize extremely powerful software that you'd otherwise needs an expensive rig to do so. That is, you simply ping an extremely powerful rig through the web and it pings back the output of each command as a still image of sorts to display on yours.

I'm confused though, cause while using BabylonJS it throttles my CPU from 10-100% depending on what I'm doing. Is it loading components of a traditional 3d software application and then making my CPU do the work? Or is it some kind of 50/50 give and take relationship?

Similar to Google Stadia, I was just really excited by the idea of being able to use 3d editing software without any hardware limitations. Is this what BabylonJS offers or am I missing something?

\$\endgroup\$
3
  • \$\begingroup\$ It might appear you were under the impression that BabylonJS executes code remotely, you say "you simply ping an extremely powerful rig through the web and it pings back the output of each command" and "I was just really excited by the idea of being able to use 3d editing software without any hardware limitations", that is just not true, BabylonJS runs on your machine, it is limited by your hardware. \$\endgroup\$
    – Theraot
    May 5, 2019 at 13:52
  • \$\begingroup\$ A 1920x1080 screen at 60 fps is almost half a gigabyte per second - add in typical internet latencies and no, the kind of model you're imagining is just not possible for a real-time application with today's technology. \$\endgroup\$ May 5, 2019 at 17:38
  • \$\begingroup\$ @Theraot it looks to me like the "no" you wrote as a comment could be an accepted answer. :) \$\endgroup\$
    – DMGregory
    May 5, 2019 at 17:58

1 Answer 1

2
\$\begingroup\$

As Therarot commented above, you seem to have misunderstood what BabylonJS does.

you simply ping an extremely powerful rig through the web and it pings back the output of each command as a still image of sorts to display on yours.

BabylonJS is not a streaming service like Stadia that runs software on a powerful server elsewhere on the net and streams the video output to a thin client in your browser.

BabylonJS is a WebGL graphics engine. What that means:

  • WebGL is a Javascript API that lets code running in your browser, on your local machine, communicate with your GPU to render hardware-accelerated graphics, using a dialect of OpenGL.

    So it's still using your local device's hardware, it just opens the door to making better use of that hardware by offloading highly parallel workloads to a specialized graphics card / chip that can blaze through them more efficiently than doing the same operation on the CPU.

  • A graphics engine is a code library that makes it easier to create applications with graphical features.

    Writing low-level WebGL / OpenGL code directly can be a bit of a slog, and very error prone. An engine like BabylonJS provides abstractions and shortcuts for common things you might want to do, so your app can focus on the high level of what it wants to draw, and let the library code muck with the details of how to draw it.

BabylonJS will not itself improve the rendering / 3D editing performace of your device. What it can do is make it easier to write apps that achieve good performance for the device you're running them on.

Because this is all still running in Javascript inside your browser - with all the JIT compilation, security sandboxing, and overhead that entails, you should not expect performance to be competitive with dedicated native programs for 3D graphics.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .