Babylon.js Ease of Use

Oh man!! that was fun :slight_smile:

2 Likes

“It’s widely agreed, even by people who are not idiots, that web users are driven by a desire for fast gratification. If they can’t find what they’re looking for within three clicks, they might move on to somebody else’s site.”

From Jeffrey Zeldman’s 2001 book, ‘Taking Your Talent to the Web’

1 Like

If they can’t find what they’re looking for within three clicks, they might move on to somebody else’s site.

Following this principle, I see several issues with babylon.js home page from my beginner’s view.

  • There is no Get Started link on the home page. The quickest path is clicking menu icon → LEARN (note it is amongst a fairly big list of other menu items, and thanks for the all capital letters :rofl:) → Still no quick start link. :frowning:

  • I just noticed there is different demos in the carousel section if I click different menu items from home page. Personally, I feel not all the examples on the home page are the most visually appealing ones.

  • Playground | Node Material Editor | Sandbox are the most centered links on the home page. Maybe they can go into a Tools section lower in the home page.

  • The text content on the home page sounds more like release log for v4.2, not introducing the key features of babylon.js. Maybe the main sections on the home page can enumerate the menu items. Each section can have links in addition to the menu button.

4 Likes

Apologies ahead of time for the length of this response, I’ve spent considerable time today sorting out my thoughts on this thread.

First and foremost every single one of us in this community owes @JohnK a MASSIVE “Thank You.” His passion for teaching others, and helping people learn this platform has helped literally COUNTLESS people get up and running.

John, from the bottom of my heart and on behalf of this big wonderful Babylon family, Thank you so much for all of the passion, hours, and dedication you’ve poured into each one of us through your informative and well-written documentation. We are sincerely all forever in your debt.

As has been pointed out by several folks in this thread, teaching to beginners is an incredibly difficult concept. You wouldn’t think it’d be hard, but it is. The issue comes down to the fact that everyone comes to the table with their own idea of what it means to be a “beginner.” John and I have spent hours discussing this very topic on several occasions. It is simply a very difficult concept to address because everyone has a different definition.

I think we have to acknowledge 4 important pieces of data that could help us understand the different types of beginners we often see in this community, several of which are hinted at here in this thread.

  1. There are those who prefer to learn by being “guided” by someone else. This is where the current “Getting Started” documentation is quite helpful and successful. I would caution against any proposal to remove or redo this section because it is quite valuable to anyone who likes to learn in this style. The YouTube tutorial videos also tie into this category.

  2. There are also folks out there who prefer to learn by being “shown.” This is different than being guided. In this style of learning, folks often want to be shown a successful starting template example and then use that to start building. This type of “beginner” would benefit from the “download” button described above. This type of beginner could download the necessary set of files to do the absolute basic setup for a Babylon scene, and then they could use this starting template to build from as their project progresses.

  3. There are also beginners who are more like explorers. They want to dive right in and learn by themselves. They don’t need a teacher or to be shown the way, they just want to get in and start playing.

  4. There are also beginners who come to Babylon with absolutely ZERO experience at all. Some of whom have never written a line of code in their lives. For these types of folks, the playground is an incredible tool, it allows you to see code, experiment with code, and then see the result real time without committing to ANY permanent setup at all.

So why spend the time to highlight these types of “beginners.” Simple, we have to acknowledge our own biases in how we approach this subject. Not everyone thinks the way that I think, or the way that you think, each one of us is different and comes to Babylon with an incredibly different set of experiences and expectations.

There is no possible way we can meet every single beginner at exactly where they are at in their journey.

So do we give up? No! Not at all.

We acknowledge gaps and improvements but also realize we’ll never be perfect.

So I’d prefer to steer the community away from asking “What should the Getting Started pages look like?” And instead ask the question of, “What types of beginners are we NOT currently meeting, and how can we best welcome them into this community and set them up to be successful?”

What’s missing? What can we ADD, not take away.

One very specific proposal is to have a “download” button and associated instructions that allow someone to download the necessary foundational files to get a BASIC Babylon scene set up.

I like this idea very much! I don’t think it’s quite the slam dunk everyone thinks it might be as it will still likely require some things that might intimidate folks…such as VSCode or Node.js. We have to acknowledge that some folks will find these concepts to be intimidating.

I also agree with @slin’s suggestion of having a LEARN section on our website.

There are MANY opportunities to make improvements to how people learn Babylon and we should explore every single one of them, without dismissing the existing efforts and documents that exist that attempt to do the same.

In short, your ideas and perspectives are all wonderful and welcomed. How can we leverage all of your ideas and learn to say “Yes and,” instead of “No, but.” How can we add to what exists without tearing it down?

As the official person overseeing the docs, I will personally be thinking about the “download” button path and how it can serve a demographic of beginners who currently might be under supported.

Again sorry for the long thread but I think it’s an important discussion to pause and think through.

Thank you all for your continued passion and dedication to this community and platform, and again a BIG thank you to folks like @JohnK who pour countless hours into helping everyone try to learn. If you are passionate about this subject and would like to be a part of the solution to making it better, please feel free to send me a private message and consider how you might contribute to the docs to make them even better.

You are all amazing!
-Jason

8 Likes

Much like persuasive copywriting, you have to first become your audience before you can understand their needs, challenges and motivations. Only then words have power.

1 Like

trying to figure out if i’m wrong or the documentation is wrong

1 Like

Neither the readers nor the writers are wrong they all just have assumptions, expectations and goals that do not fully match

1 Like

Let us also refresh this one-year old thread - Doc suggestion, for new users

@slin Here is the implementation order data.


2 Likes

Since the PDF is quite big (72 pages) and not everybody has time or energy to read it, I’ll put here another example of bad user experience.




Maybe there is still some sense in his last sentences?

“All in all I want to start, not to learn at first.”
“I want things to stand out, I have ADHD, I don’t have the energy to read a lot.”

1 Like

I’m glad to see that 6 out of 9 would pick Babylon:)

3 Likes

Here is another sample data for you: when I tried installing Babylon the first time, it broke, and if given 1 hour test, I’d have failed the test.

What happened?
(recalling the narratives of my past self - a seasoned frontend/fullstack dev without prior CG experience):
Looks cool, seems like a great community.
Seems like much better docs than Three.js.
At least I understand something here, while at Three had no idea where to begin.
ok, lets try their ES6 Module.
(at my newly created next.js project folder)

yarn add @babylonjs/core

… some minutes later, opening by hot reload next.js page with babylon
Boom! ERROR! cannot compile…
…30 minutes later, after reading Babylon forum
turns out that when using ES6, there are side effects, you need to manually import all dependencies, like ‘@babylonjs/core/Engines/Extensions/engine.views’
fix that, refresh page again…
Boom! ERROR! cannot resolve module…
…another 30 minutes searching and testing
turns out the inspector in version 4.1 (if I remember correctly) did not work in ES6
Finally, had to copy paste minified bundle from cdn…
Damn, either I’m stupid or this thing is not as easy as it seems!
pulling my hair…

1 Like

This is something we are really working hard to fix (it is more a JS ecosystem issue but still)…cc @RaananW

And I agree this should be dead clear in the documentation

3 Likes

I don’t have any more hair to pull! :slight_smile:

I totally get your frustration. I know the framework too well to complain about those things, but it can be a bit frustrating. I totally agree.
I am working (still in a private branch) on improving our build system, and right after I will be working on a side-effect-free version of babylon that will be more component based than what we are doing right now.

We tried to document it all, but it is sometimes hard to keep up with the changes. Again, this is not an excuse. I totally agree with everything you wrote. we need to ramp up and are doing a lot to get to a point where this frustration is a thing of the past.

3 Likes

Since @ecoin would like to catch the 3D wave, maybe this also needs to be fixed. 73 vs 1099 :smiley:

Screen Shot 2022-01-25 at 2.09.40 PM

Screen Shot 2022-01-25 at 2.09.23 PM

2 Likes

That’s 73 very discerning employers vs 1099 not so much.

Or, Babylon is so much simpler to achieve stunning results that fewer developers are required.

:slight_smile:

Just a bit of fun … not casting shade on Three.js which is a great project also. Like many people, I was exposed to it first, so I’m glad I explored alternatives and found Babylon.js which is more in alignment with my requirements and development philosophy, not to mention having a truly awesome, incomparable community.

4 Likes

Job security with three since you have refactor after every release. Zing.

6 Likes

Security through obscurity :slight_smile:

The other top 1% devs in the world write elegant code, and they do not have job security.

Companies that have them worry about keeping asset security :slight_smile:

Partially it relates to SEO, I believe. I had the same choice about a 3 years ago and after I’ve spent several hours with Three.js trying to understand what I need to do in order to load a GLTF model I came to Babylon and was able to do it after just 30 minutes of doc reading and simple PG tweaking.

I think the start was much easier for me also because there were the times when the first page of the documentation was dedicated how to use Babylon.js (screenshots below are from https://endoc.cnbabylon.com/):

So, the most important initial information was directly available without any extra clicks.

What we have now for the newcomers? They need at least three clicks.

The biggest paradox is that now Babylon.js documentation starting page describes NOT how to use Babylon.js BUT how to use Babylon.js documentation.

Well, but my initial point was related to SEO. Back in 2019 I started to search for the possible 3D web solutions with the search phrase “3D web”. Three.js was on the first page and Babylon.js on the third. Seems that nothing has changed since then. Babylon.js is still on the third page… so hard to find…

I believe that a good SEO analytic would help to move to the first page in several months, organically.
This is just a matter of relevant keywords used.
Currently there are so much instruments which may help to better understand users and their behaviors. Link maps, scrolling maps, click maps etc. Personally I don’t trust myself when judging my own websites - I trust my analytics tools. Below there is just an example of click map from https://babylonpress.org/.

3 Likes

https://www.similarweb.com/website/threejs.org/

https://www.similarweb.com/website/babylonjs.com/

Both average ~ 6 minute page visits, with three being about 4x more popular. Note that babylon also has a chinese hosted domain and a lot of connections to three may be tunneled. So adjusted popularity of three to bjs may actually be lower at 2-3x.

Another metric to check is dependents, which are abysmally bad for babylon. 3k vs 80k . These arent accurate because babylon’s github indexing has issues.

.Network Dependents ¡ BabylonJS/Babylon.js ¡ GitHub

.Network Dependents ¡ mrdoob/three.js ¡ GitHub

Libraries.io stopped working after microsoft bought github :frowning:

1 Like