
NunuStudio: a browser-based IDE for 3D and VR applications - DanielRibeiro
https://github.com/tentone/nunuStudio
======
marknadal
Don't listen to the HN haters, this is incredible and really exciting! Thanks
for contributing such a great project and making it Open Source - that takes a
lot of bravery and courage. Keep it up, very impressed!

~~~
markatkinson
Yea, so I don't know much about web development but I spend quite a lot of
time in the Unreal Engine, and to see something like this in a web browser was
really impressive!

Although it wasn't immediately obvious as to how to add scripts and create
actors etc.

------
dleslie
Ah, Javascript-based VR. That's easily five years away from being a pleasant
experience with anything but the most modest of scenes. And by then we'll be
using WebAssembly.

It's all well and good, in a sense, so long as your main loop does little more
than queue some buffers, shaders and materials before handing over the work to
the GPU; but as soon as things become dynamic JS really starts to show its
limitations.

To wit, I checked out the cannon.js demos and giggled as their examples
screamed along at a sweat-inducing 3 fps, showing little more than a small
stack of low-resolution spheres failing to tumble to the ground. The machine
I'm using isn't a beast by any stretch of the imagination, but this is
ludicrously poor performance even for it.

~~~
avaer
The problem isn't JavaScript, it's singlethreading. If your main loop does
little more than queue the drawcalls you're doing it wrong. Web workers work.

And ideally your physics engine doesn't live in the browser context, for the
same reason you don't draw geometry on your CPU. It's a specialized
computation suited for a specialized environment. It's easy enough to run
actual native Bullet Gpu-accelerated _outside_ the browser and bus diffs to
your renderer.

90FPS in Javascript-based VR is happening today. I'm doing it.

I'm nonetheless excited for the optimizations we'll make in the next 5 years,
though it has less to do with wasm and more to do with cutting out the fat on
the path to the GPU, both at the scene graph and webgl layers.

~~~
frozenport
A modern GPU has 720 GB/s of memory throughput. To achieve even a fifth of
that in the environment typical of an AAA game titles, you need to efficiently
invoke the host ogl drawing commands. Nvidia has some discussion of this in
their bindless texture white papers. Essentially, the bind/unbind steps in OGL
and similar have started to degrade performance.

This is not going to be easy to do in javascript, although VR/4k is not the
limiting factor, rather it is the complexity of the scene.

~~~
avaer
Yup, you're totally right.

A lot of it boils down to figuring out how to coalesce and pipeline your
rendering (mostly a THREE.js problem) and submit it quickly and efficiently to
the GPU (a webgl layer problem).

You'll have to trust me that there are people actively working on these things
-- the people providing the VR platforms. But these are things that need work
at web infrastructure layer, not something that will be solved by moving away
from Javascript, which is not the bottleneck.

And there are actually already workarounds for most of these. We just need to
massage the workarounds into default-on features in our browsers and
frameworks.

------
foobarbecue
"runs direcly on the browser without the need for additional plugins using
WebGL and WebVR."

WebGL isn't a plugin, is it!?

~~~
akovaski
I believe they meant "runs directly on the browser without the need for
additional plugins _by_ using WebGL and WebVR".

~~~
tapirl
What are the plugins using WebGL and WebVR? I never heard of such plugins.

~~~
JohnTHaller
It means it doesn't need plugins because it's using WebGL and WebVR, which are
baked into the browser.

------
yousry
Some hints: The Field of View in the demo is bad.(You can query the screen
parameters and estimate the viewers distance).

Also your normalmap calculations could be improved.

------
diamondo25
I think this would be cool to use for prototyping some ideas in VR.

------
philip142au
Does it support PBM? Physically Based Materials?

~~~
bhouston
Yes because three.js does. (I helped implement that in three.js)

------
bhouston
How does this differ from the threejs editor?

------
TeMPOraL
"Nunu" is what - at least in Poland - you say to toddlers when you mean "don't
do that".

A very adequate name.

