We are working on fewer clicks, keep you eye open for PR for docs.
Can you help here?
We are working on fewer clicks, keep you eye open for PR for docs.
Can you help here?
I think babylonjs is the default, which is the product developed in the production environment,
Just according to the learning background and learning roadmap, babylonjs should launch learning paths for different development groups
For example, front-end engineers use babylonjs to develop 3D business
How do traditional game engineers use babylonjs and how to develop 3D business
Web3D is a new field for front-end engineers
cc @RaananW about SEO
I used to manage large SEO and Adwords campaigns for companies. These days only coding + UX/UI Design, but can definitely help with Babylon homepage. (Do not want to promise the entire site, because I do not have much free time).
None of the XR examples in the document supports the WebXR device emulator browser extension. I think this makes novices doubt their life. Itâs better to give an example of xrweb simulator
I thought @RaananW addressed this one not long ago ?
Yes I did. Did it stop working again? Iâll check that in a sec.
Just checked, everything is rendered correctly, but then I read again what you wrote, and I guess you meant that the playground itself doesnât support the emulator correctly?
The playground you pasted is the physics playground. Click the left button (i.e. âsqueeze buttonâ) and the scene will reset. right one will shoot spheres from your right controller. The only thing that is missing is the teleportation, which you can enable if you force it to work with the main button. This is a limitation of the emulator that is stating it has a thumbstick but doesnât let you control it.
Just chiming in with some random commentary here, since I have spent quite some time working on technical documentation and also with novice programmers/CS students⌠maybe it will be of use, after all.
Letâs first take a look at the front pages these open source projects:
We can see that both Node and Docusaurus have optimized for getting people started as fast as possible, with the âGetting startedâ tutorial link being the first (and most prominent) thing featured on the front page. There is information about what the project can do for you, and lots of additional resources, but the focus is clearly on making the new user experience as smooth as possible. Electron has succumbed to a bit of bloat here unfortunately, but it still does feature the âgetting startedâ section on the front page, where it can be found by just about anyone.
Thereâs also a quickstart project people can simply clone from GitHub and get started with making changes for both Electron and Docusaurus; it does introduce some additional complexity by requiring new users to blindly use yarn or npm but overall itâs almost impossible to not see a working example application within minutes (not one hour). Again, it âjust worksâ and you donât even have to think about it until youâve had time to see what it does and how it can be used in the most basic of cases.
BJS on the other hand focuses more on wowing users with all the amazing things it can do. While that is understandable, it can only be the first step, and the very next step should be to get new users started ASAP. Nothing like following up their initial thoughts of âWow, this looks awesomeâ with â⌠so how do I get started?â to sour the first impression. Why is there a mention of specifics like WebXR and HDR files, that only a subset of potential users will even know what to do with, when the most pressing concern of all new users would instead benefit from having a big fat âGetting startedâ button that is impossible to miss instead?
Going by my own experience, as well as having observed multiple people try to use some or all of these projects with no previous knowledge (but some years of programming experience), the approach that Node and Docusaurus take has BY FAR provided the most painless experience, compared to most other projects Iâve encountered that didnât focus on the initial bootstrapping process as much. You want your users to feel like Ii âjust worksâ and once theyâve passed the initial hurdle, it will be much easier to take additional steps.
I will admit that BJS faces some issues here, because there are many different contexts where it could be used. The best way to deal with it is probably to let the user decide: They know if they want to make a website with 3D features, or a standalone app/game. If there was a simple app that you could clone and within 2 minutes you get an Electron app with BJS installed, that shows the cube/sphere examples when started via npm start
that would go a long way. For browsers, you might need to include a simple webserver to serve the webpage and mention that this is only a substitute for the real-world website theyâd be using, but otherwise thereâs no reason the first steps couldnât be similarly straight-forward.
Another issue that is very prevalent in the BJS docs is that there is no explicit mention of the knowledge required, meaning as a new user I donât know if this topic is appropriately difficult for me or if I still need to do some reading up (and what concepts I must learn because theyâre silently assumed). The simplest, and in my experience most effective solution, is to always add a brief âPrerequisitesâ section where the fundamental terminology is listed, and links are provided to either other parts of the documentation that may be required reading, or external resources.
In a similar vein, there should always be a âsee alsoâ section where people can go to documentation pages for related concepts or âadvancedâ topics that build on what they have just been reading about. I think this already exists on some pages, but itâs probably worth considering the structure of the documentation as a whole in terms of âhow can we effectively link related information so that users make the required connections?â. This is crucial because learning involves forming connections between related knowledge, so if there are gaps (and they canât just be filled by googling, because you donât know what to google forâŚ) then there will never be a complete understanding.
Lastly, one important thing I want to draw attention to is that there are multiple different types of documentation that serve different purposes. Mixing them into one giant documentation soup is problematic because it means people are confused, they canât find the information that they need, and worst of all they will feel like itâs their fault and that theyâre just stupid (usually, at least if theyâre inexperienced). Needless to say, that isnât exactly fostering motivation, and the fact that the documentation for most open source projects is like this isnât a good reason to keep it that way.
Depending on who you ask, the exact categories may differ slightly, but I tend to use these four:
One key thing Iâve already mentioned before is that these need to be extremely easy to find. Users will probably always know what kind of documentation they need in a given moment, but they usually wonât know where it is due to how different projects may structure their documentation differently. In my experience it is best to be as explicit as possible and âdonât make users thinkâ, which is just basic user experience design AFAIK.
Since itâs already too long and this likely warrants further investigation, letâs just take a brief look at the documentation front page:
Apologies for the in-depth commentary and I hope no one takes any offense, because it is not intended as such! I love working with BJS and participating in the community, but since this thread is about the new user experience and that is always a pet peeve of mine, I felt like I should at least try to add to the discussion.
Thank you for some inciteful observations, there are many good points to consider, some requiring more major changes than others. We in the middle of discussing some changes to the documentation though not a complete rewrite some will be in line with your suggestions. We could well come up with a list of tasks. Should you think any of the tasks are ones you would and could go along with would you be willing to undertake some of them.
For example from your list
As part of the metadata for each page there exists a further reading section which links to either internal or external pages. You could look to see how you might use this to link information across the docs.
This also relates to this
and the coming next reference you made. The image to use is picked up from the linked pageâs first image or one stated in the metadata. No images on the page the BJS icon is used as default. As images help to break up text on a page any one interested in adding relevant pictures to text only pages very welcome.
@rdw1 - First and foremost NO offense taken at all. The depth of your thinking AND the kindness/graciousness in how you present it makes it clear that you have the best interests of this community and platform at heart.
I have to personally thank you for starting your thoughts by recognizing that everyone comes to Babylon with different experiences and different goals. This makes the overall documentation design process quite a challenging one.
I think you raise a TON of amazing points and thoughts here. Please know that weâre actively in discussion about how to move the needle on this topicâŚfrom possibly reorganization of the docs, to adding new docs geared towards specific types of learners with specific goals.
Weâll absolutely be keeping these thoughts on our minds as we carry forward.
I really like your proposal for the 4 categories.
This is a nice way to categorize and simplify the breadth of the documentation. Something weâll definitely be thinking about.
Lots of great thoughts here. Thank you again so much for taking the time to share them.
Cheers!
I didnât read this as a question at first, my apologies. If thereâs something simple enough a dummy like me can do, Iâll be happy to assist
The missing images might not be a big deal, I just figured that icons are normally used to make finding information easier but in this case they donât really help (since theyâre mostly the BJS logo). Inside of the individual documentation pages, they can of course help illustrate things, but whether using those images as âiconsâ improves anything is something that would likely have to be experimented with.
Speaking of experiments, I think it would be supremely useful to have some data on these topics to make more informed decisions and identify what the biggest problems are. Off the top of my head, hereâs a round of (quite possibly very silly) questions that I couldnât answer with just my intuition:
Again Iâm mostly focused on the ânew user experienceâ here, since itâs the topic of this thread, but Iâm sure a lot of issues could be uncovered in the process of investigating those types of questions that may affect intermediate and veteran users, as well.
Listening to feedback is a great starting point, but itâs also equally important to look at the analytics data. In marketing, it is a well known fact that in order to maximize conversions, you should pay close attention to what people actually do.
The discussion here are very insightful indeed, but itâs lacking data. For example, what keywords (aka search phrases) do people use the most when they arrive to the homepage? That user intent should be the deciding factor when it comes to redesigning the homepage (or any page on the website).
For example, if the most encountered keyword is 3D visualisation on the web, then indeed focusing on wowing users first is more important than Get Started button.
The reason big frameworks like Node.js, Electron.js focus on get started first is because their main audienceâs intent is to begin playing around with the code (since by the time they arrive on homepage, most likely they have read about the framework somewhere else, and they are devs - most dev prefer hands on approach than typical wow-me-first approach).
i just wanna drop in that over the last 6 months or so Iâve found there is a Microsoft mdn saturation of Google search results with stuff about reverse kinematics that is interfering with a lot of my searches. none of which are about ik
u wut m8
lol. sorry over the last six months, my ability to Google useful stuff about bjs has become more and more saturated with useless (to me) results about inverse kinematics (and some other basic topics), which are all on mdn.
a year or so ago, my search results were more or less what i expect from such an ecosystem.
now Iâm constantly battling Google to find anything.
This is an excellent point, and also what I was trying to emphasize in my second reply: If there isnât any data itâll be difficult to decide what should actually be done, in terms of actionable changes and their expected impact.
The suggestions I made are otherwise focused on making it easier to get started, based on the difficulties described in the OP (thesis), and given from a developerâs point of view. Since I donât have any other data, those ideas might as likely be terrible as they are great if thatâs not something you want to focus on.
That said, keywords alone can also be problematic: Wowing users might be more important if you need (want) to convince stakeholders to adopt BJS, but making it easier to get started is more important if you want to focus on a great developer experience. Thereâs a bit of a strategic decision involved here, but at the end of the day these arenât mutually exclusive and you could still have both
If it turns out to be a split case (half of the users are Managers/CEOs, and another half are devs), then a common approach is to have multiple CTAs (call to actions) at the top, splitting the screen into two sections, like what marketplaces usually do. Something along this line:
For Decision Makers | For Developers
----- [Live Demos]-----|â[Get Started]â
My point is, it should be a holistic approach.
Be flexible like fluid, strong like ice, and light as steam. Be like water, my friend.
Something along that line, as said by Bruce Lee
I would suggest something officially maintained for this new ES6 world. Much like create-react-app that hides away all the scariness of webpack, webpack-dev-server (or whatever local server) and having startLocal/build commands all set up. With the same type of option to eject the configs for advanced users. Also bootstrapping them with a basic setup / example scene to go off of.