Will Three.js continue to thrive in the WebGPU era?

I’m from China and I love Three.js very much.

Recently I discovered a Chinese company that is planning to build an open source engine based on WebGPU: Orillusion

Their official website: https://www.orillusion.com/
Their slogan: The Next Generation WebGPU Engine
Their plan: use in March this year, open source in June

I recently saw an article from them:
“In the WebGPU era, why not Three.js or Babylon.js?”

I extracted a part of the content and hope to share and discuss with you.

The following is from Google Translate:

Three.js and Babylon.js, in the corresponding branches, have done access to WebGPU capabilities and some demos. We have seen their implementation and demo, and we are even more convinced that there is a high probability that they will not be able to do the WebGPU engine.

Because the engine architectures of Three.js and Babylon.js are both designed for WebGL, and WebGPU can be said to have undergone earth-shaking changes compared to WebGL, canceling the global state machine and giving developers too many permissions to control memory , added Compute Shader and more. Therefore, Three.js and Babylon.js cannot be said to support WebGPU, but can only be said to be connected to WebGPU, but due to historical burdens, they cannot take advantage of WebGPU at all.

The WebGPU Demo of Three.js has almost no improvement compared to the WebGL Demo. Encapsulating the more high-level and complex Babylon.js, the implementation of WebGPU’s Demo is even slower than WebGL.

https://demo.orillusion.com/ecs/example/asteroids.html

If Three.js and Babylon.js really want to make an engine that can fully utilize the performance of WebGPU, they can only break their wrists and completely reconstruct the engine framework. Because the historical baggage of Three.js and Babylon.js is too heavy, they have a large number of users, and a large number of functional implementations, it takes a lot of courage to completely give up and develop again, and we have not seen any such sign.

What do you think of the above point of view ?

1 Like

I think the article is biased which is not surprising since the writer wants to promote Orillusion.

Because I’m one of the developers of three.js, I’m also some sort of biased and not in the position for objectively comparing other engines with three.js.

The only thing I want to say is: The developers who support three.js (and BabylonJS) have a lot of experience in 3D, are well-educated and are sometimes directly involved in the WebGL, WebGPU, WebXR or glTF standardization process or browser implementations. I’m convinced the teams will make sure to utilize the advantages coming along with WebGPU. Even if this means to introduce some breaking changes when migrating from WebGL to WebGPU.

13 Likes

really now, “denied by referrer access control list”? they hide the demo from 3js people? what are they afraid of with their superior technology, lol

LOL :joy:

image

whats this

2 Likes

Just use proxy or vpn

it works if you copy-paste url into address bar by hand

1 Like

Allow me to translate what @Mugen87 said in somewhat of non-confrontational and inoffensive way is this:

  • Orillusion guys are not special in any way. They are no geniuses who have discovered the truth of the universe.
  • People working on three.js are some of the best in the industry
  • People who work on three.js are some of the same people who have CREATED WebGPU standard. Meaning that they are extremely well positioned to take advantage of said standard.
  • The fact that three.js is a WebGL engine currently means close to 0 for its success with WebGPU, as three.js will change, and WebGPURenderer has a very different architecture, one that takes advantage of WebGPU-specific features.
  • What Orillusion guys wrote about Orillusion about the greatness their product - is entirely expected and is not convincing. If you made a product, would you say:
    1. “my product is much worse than the competition”

    2. “my product is absolutely average, it is in no way better than the competition”

      OR

    3. “my product is the best, and the competition is :poop: !”

From my own side I would add that:

  1. I didn’t find their demo impressive at all, in fact it ran significantly worse than what you get in three.js. To me that’s mind-blowing, you have this way faster API, and you can’t even make your demo run well enough to convince me?
  2. WebGPU rendering has been in development at three.js since as pretty much the point when WebGPU standard was announced. It has had a lot of development put into it already over the past years.

I can show you a horrible piece of software and proclaim “it is amazing, look, it can do X!” and depending on how impressed and cool I sound as well as how poorly you understand the subject matter - you will either be impressed or not.

You can sell water to the fish, or you may fail to sell food to the starving. It’s called “marketing”.

So far, it seems that Orillusion guys are good at that - marketing. Good for them I say, nothing wrong with building a business.

If they are impressed with their own technology - that’s also great, people work better when they are motivated and believing that your work is great is a nice motivator.

2 Likes

unfortunately thats impossible since their demo does use three.js :roll_eyes:

1 Like

I understand that you like to be contrarian, me too in fact :slight_smile:

What I mean is not their “engine”, but their demo. What engine it’s built on top of is irrelevant really. If you know three.js well enough, and you use instancing properly - you can make a demo that looks the same, but runs way better. That’s my point. Say they do use three.js, they try to convince me that I should buy (or use) their product - they failed to do so, because their demo fails to convince me of any performance benefits even before I take a look at their implementation (which may or may not be, actually, three.js).

Here’s what I see as well when I inspect their demo page:

But to me that’s not 100% proof that they do or don’t use three.js for rendering. All it tells me is that it’s included. I would venture a safe guess that they do use three.js geometry abstraction and math code as well, things like Vector3, Matrix4 etc. but I do not want to assume whether or not they actually use WebGLRenderer. I didn’t read the code, so I just don’t know :person_shrugging:

That being said, throwing shade on three.js whilst using it is not a good look - that’s true.

ah, that is something I did not consider. Occam razor made me think that if three.js is there, so the simplest and funniest explanation must be true. however, they do, in fact, seem to have their own rendering code:

Well, I also think their views are a bit biased, even though they are a Chinese company and I am from China.

Their code has not been officially open sourced, so we don’t know the details yet.

I’m learning WebGPU and I’m pretty confident with Three.js.

I originally wanted to learn more about Three.js’ future plans for WebGPU, but I didn’t expect everyone to focus on criticizing the company.

Sorry.

“Break their wrists”. Love it :grin:

1 Like

This is where their whole argument fails IMHO:

Three.js architecture was not designed for WebGL. It was not designed for any specific backend. First it was Flash, then it was Canvas 2D, then WebGL, and now we’re doing the WebGPU backend.

17 Likes

probably some chinese idiom. @puxiao mind elaborating on this one? e g was there a story that made the expression well-known? I imagine a guy chained to something by hand and he has to break his hand to free himself?

1 Like

壮士断腕
Google translation is not accurate enough.
This sentence comes from a Chinese classic in 278 ad. The original meaning is that when a person with courage is bitten by a poisonous snake, he can immediately cut off his wrist to prevent the poison from spreading.
Be decisive and give up something in exchange for something more important.

5 Likes

very impressive reply, the guys who stand high level and concentrate on tech itself not business make great thing.
As a Chinese develpoer, orillusion make me embarrassing.
Hope all good project go well.
Thanks to all open source contributor.

3 Likes

Don’t be, same happens everywhere :smile:
There’s plenty of great software coming out of China in recent years, and there are plenty cool open source projects from China too. Three.js has people from US, Germany, Spain, France, Russia, China, Japan and UK working on it to name a few countries.

Also competition is good, three.js benefits from existence of Babylon.js and vice-versa for example. Different projects get to try out doing things different ways, and others get to learn from that. Orillusion guys benefited from three.js, and who knows, maybe 1-2 years from now they will have something impressive for all of us to learn from as well.

9 Likes

I agree with you.
The key point that makes me embarrassed is the strong commercial atmosphere, like a group of people relying on their existing social achievements, and they start working after pulling in investment. It’s not that this is not good, but as a developer, I instinctively smell something bad. Maybe it will succeed, but I stick to my cognition

4 Likes