Blender to Babylon AddOn - status

Hi friends,
I last used the Blender to Babylon AddOn in december 2021, and now I need to use it again, in connection with a React app I have that uses Babylon and I need to export blender models to babylon to use them in the react app.

What is the status of the addon? is it being maintained? I went to the github and I see that I can only download a zip file that is called: Blender2Babylon-3.3x.zip
will that only work with Blender 3.3 and earlier ones? it won’t work with the Blender 4.2?
is the Addon no longer active? but still working with older blender versions?

thank you for any clarifications, info, tips, etc

all best :slight_smile:

1 Like

cc @JCPalmer the daddy of the exporter :slight_smile:

In version 4.x depending on your need, you can try the gltf/glb exporter from Blender

2 Likes

thank you very much @sebavan , I definitely need to keep using the same system because all my code of the react app is made to work with the results of that addon, and I bet that changing now to use a different export would create a huge mess in my app.
At the moment for each model that I import in Babylon I have four files:

model.babylon
model.babylon.manifest
model.log
model_baked_DIFFUSE.jpg

and If I look at the .log file, I see the versions that I have been using:

Exporter version: 2.80.0, Blender version: 2.80 (sub 75)
========= Conversion from Blender to Babylon.js =========

the 2.80 versions, and also in the past I also used these:
Exporter version: 6.4.6, Blender version: 2.82 (sub 7)
========= Conversion from Blender to Babylon.js =========

the problem now is that the update of my blender pipeline is now based on geo nodes so I cannot use blender 2.80 anymore, now I need to use blender 4.2 yes or yes,

so dear @JCPalmer , please, do you have good news regarding the wonderful blender to babylon exporter? is it still being maintained, can it work with blender 4.2? :slight_smile:

thank you very much :slight_smile:

2 Likes

That’s just precisely why I hate (and always try to avoid) working with plug-ins or add-ons. I experienced this a number of time and is an absolute nightmare. Lucky you, you picked one from a reliable (and still alive :grin: :headstone: :rofl:) dev. Hopefully, he’ll fix it for you. But you should try get rid off these dependancies on an ongoing project (my opinion only)

3 Likes

@mawa I couldn’t agree more , totally agree with you :slight_smile: crossing fingers :slight_smile:

For your immediate needs, a tutorial from @gryff, Geometry Nodes and Blender 3.3 Export. Part 1 An Object and Instances using 3.3, shows how Blender Geo nodes can be exported.

As for Blender 4.x, they have seemed to modularize their fragment shaders & changed the UI for Principled material. This is a definite downgrade for exporters, however, who do not have the same shaders. There are duplicate places to assign the same thing, and would require many changes with the sole benefit of merely just running as before. Most blender improvements are not really exportable, anyway.

Exporters are not really Blender’s core focus. 2D renders & video creation is. We are just riding for free. Fortunately, every version of Blender ever published is available for download, Previous Versions — blender.org. If you have used it long enough, you will discover that their breaking of compatibility is going to nip your prior work.


The exporter is very mature, and only going to be maintained for bugs & things which are actually going to benefit BJS.

One bug, Proposal: Support `Alpha` settings in material even when image texture's file format is PNG · Issue #70 · BabylonJS/BlenderExporter · GitHub, is highly likely to be implemented. This change is needed to do for security reasons. The 2 stage loading I have implemented, goes thru a Container. This requires that textures be inline / embedded. Alpha needs to be controlled by other than the images file extension name.

Fortunately, this is both minor & I already have an example showing the problem.


The only thing being considered for improvement, is an input JSON file with changes to materials made in the browser to be mechanically updated in the Blend file. In my work, I am already writing things changed to materials in a .txt file using a web server with put capability.

The exporter can assign many things that Blender does not even understand like Iridescence & Parallax, & Environment Intensity. Once you start working with things like this, you no longer really care what it looks like in Blender, but how to get the changes back into the Blend file.

My in scene material editing, all that can be changed to suit the actual implementation look of things. I may also improve the editing by putting the UI needed on one of the arm panels I have, rather that a dedicated scene.

Sorry if this is not the answer you wanted. If there is no interest in change imports, then it will not be implemented for the JSON exporter.

1 Like

Yes. @javismiles You know you’ve chosen the unsafe option here, don’t you? You should at least maintain one rig/set-up to generate your updates when choosing this path. I remember at one time, using up to five different rigs with legacy OS and set-ups simply to assure the distribution of an app (ok, it was a lead capture app so there was some return for all this). Still, it really is a bother. May be you should take the time needed to make a new base for the future? :thinking: I suppose it’s time to make some hard decisions :grimacing: I’m sorry for what you have to go through at this moment :hugs:

Thank you very much @JCPalmer and @mawa for your always great advice and support. I have no time to rebuild it all again, so the app will have to stay frozen at the state in which it was up to last year, unfortunately.
Yes, the lesson I have learnt a few times already is, try to avoid AddOns, plugins, and the like, always a bad idea to use anything of that sort

@JCPalmer @mawa and everybody, thank you again for your advice and support,
as I just shared on the separate thread, I finally made the app compile again, I had to force all the versions to be the ones of the version that was working in the past, but in this way it now works:

“dependencies”: {
@babylonjs/gui”: “4.2.0”,
@material-ui/core”: “4.11.2”,
@material-ui/icons”: “4.11.2”,
@testing-library/jest-dom”: “5.11.6”,
@testing-library/react”: “11.2.2”,
@testing-library/user-event”: “12.6.0”,
“babylonjs-loaders”: “^7.24.0”,
“react”: “17.0.1”,
“react-bootstrap”: “1.4.0”,
“react-dom”: “17.0.1”,
“react-loading”: “2.0.3”,
“react-redux”: “7.2.2”,
“react-scripts”: “4.0.1”,
“react-window”: “1.8.6”,
“redux”: “4.0.5”,
“redux-thunk”: “2.3.0”,
“web-vitals”: “0.2.4”
},
“devDependencies”: {
@babylonjs/core”: “4.2.0”,
@babylonjs/inspector”: “4.2.0”
}

It compiles with only 1 react related warning, that I think it’s not causing problems.

So now my final question. I have accepted that I won’t be able to rely on the Blender to Babylon exporter anymore and that’s ok. What I can do is: there is a menu in the app that loads 3d models exported with that add-on, that can become sort of the legacy menu and I can open a new menu that loads newer models, but the question is, is there any alternative to export from Blender 4.2 models to use them in Babylon today?
what is a possible pipeline forgetting about the old AddOn? I’m ok to try a new path and just create a new menu in the app for these new models, which I guess may look different. Is it documented anywhere? both the process of exporting from blender 4, and also of importing and loading those exports from babylon?
although mmm of course, now I realize about a problem, I cannot use the new babylon, I have to use the old babylon, so maybe it won’t be so easy mmm

thank you for any tips :slight_smile:

Is there no way to convert .glb files to left hand?
I’d rather not have to scale -z every time I load a model.

I’m also not going to switch the engine handedness.

The only way I know is to choose from one. Are you actually mixing both?
Else, I believe you could just set ‘scene.useRightHandedSystem’ in your scene.
https://doc.babylonjs.com/features/featuresDeepDive/importers/glTF

I like the default lefthand scene, but use blender so everything is flipped.
Strange to me there is no simple solution for this.

Nah. This is something we had for ages in all domains and the digital surely is no exception. Bringing people (read companies) with a competitive edge and sometimes opposite vision and objectives to cooperate is probably one of the greatest challenges. It requires a hell of a lot of efforts, commitment and diplomacy to even just get a slight chance for this to happen. One of the best levers you can trigger to push this being ‘customer experience’ (read ‘customer satisfaction’). There’s some sort of threeshold were a company (or a group of companies) will eventually react when they fear that they might loose business. That’s why we should not fear from stating (and shouting out) when we do not agree with some method/practice. Together, we are strong. Alone, we are simply ignored.

In practice in BJS (regarding left- vs right-handed): When you import a blender (right-handed) model in BJS, there’s already a ‘fix’ done by default. It creates a root node with a transform that adapts it to ‘left-handed’. A good practice is to remove this root node (and eventually parent to new). Makes things easier. Else, no, as said, until everyone would conform to using the same (which is unlikely to happen anytime soon), we will just have to deal with the fact that there are two (and eventually more :grin:) different ways. :dizzy_face: :grimacing:

1 Like

I guess the first mesh out of BABYLON.SceneLoader.ImportMesh meshes is a generated parented transform node.

tyvm. the math guys should like it too if it makes their math harder

1 Like

Yes, it is. It conforms it but - in a way - also adds a level of complexity/confusion to it. Especially when using quartenions. As always, there are pros and cons. At least, it shows ‘correctly’ on import. The way you handle it next is yours to decide (which is fine by me - I don’t like it that much when systems ‘live their own life’ and ‘translate’ my instruction/order into something I didn’t ask for. If I had to make a choice, I very much prefer the ‘open’ and ‘user responsible’ way of BJS. In fact, it’s one of the reasons why I very much like it. :smiley:

1 Like

You mean on an imported mesh from right-handed that’s got a root transform (mesh or node)? Rotating it on the Y-axis counterclockwise, is it?…
Real quick then…

There are different ways, you’ll find them in the doc in section ‘transformation’ and ‘rotation quartenion’. You may also convert to euler angles, which might make it easier.
Usually, what I do however, if I want to work my scene left-handed, is I get rid-off this _root_ node and eventually parent to new (if applicable). Eventually, if I do not need the quartenion (and because I hate it :grin: :face_with_raised_eyebrow:), I also null the quartenion or set a new vector3 for rotation (which nulls the quartenion).

1 Like