BabylonJS 5 release

Hey team!
I can literally feel the stress, the pressure and strain you might have now. I keep my fingers crossed and wish you best luck to release it with minimum issues and in time. I’m trying to support you by helping the newbies on the forum. If there’s anything else I can do, just ping me.

Keep coding!

:vulcan_salute:

11 Likes

Man! You just made my day!!! Thanks for being part of the family!

2 Likes

It’s my pleasure David! :vulcan_salute:

1 Like

Thanks for being such a pillar of this community man :grin:

3 Likes

Thank you Carol! As I once wrote somewhere on the forum I am living my second childhood thanks to BabylonJS, thanks to all of you! This is an incredible feeling!

3 Likes

Looking forward to the official release, watch the video introduction, there are many interesting tools

1 Like

Yep, I already saw all available BabylonJS videos several times and I try to keep track of all the new stuff released :+1:

Hi,
Yes babylon is a great engine, I myself have done much more than with other engines.

For your trying to keep track of what’s new, I assume you know you have a ‘What’s new’ if this link which lists all the new stuff in version 5:

1 Like

Hey @Dad72! Thanks! I check this file regularly already :blush: I can recall your nickname, I read a few of your posts earlier and found some interesting stuff in the topics you started or answered! Have a nice day dude!

1 Like

But you actually didn’t :blush: I bet you have a solid understanding of everything related to code now because you became a coder when you were only in your childhood. Our brains were adapted to code and for the majority of ppl we are magicians :joy::joy::joy:

Regarding the force. Today I have earned the “Jedi Master” badge. :tada: After 9 months of being in the community. I am happy like a child receiving a badly wanted toy :joy::joy::joy: and I am proud of myself as well, yeaah LOL I like being a child now despite I am a 45 years old fart already :rofl:

4 Likes

Thank you!

Yes you are! I can sense the power! :muscle: The Voxel Builder is an amazing piece of software! The design is a real eyecandy. The game I am working on is a hybrid of voxel based stuff and regular meshes and I have plans to try your Voxel Builder to draw some voxelized enemy bosses. It will be much more easier than drawing flat PNG layers by hand and convert them into 3D space on startup or drawing boxes in Blender. (that’s what I am doing now) Thanks for sharing it bro!

You FREAKING can be proud! ;D

1 Like

Oh, glad you found interesting and useful topics for you with my posts.
Good day to you too man.

2 Likes

NGL, posts like these really make my day. This community rocks!

1 Like

Hi @Deltakosh!

I was thinking how could I help to move to BJS5 and I came up with an idea to automatically modify all the existing PGs so we can get rid of the deprecated BABYLON.Mesh.CreateXXX functions. I wrote a simple parser using acorn JS parser and created a simple node.js script which automatically rewrites the lines in the input string. There are still official examples using the deprecated methods and ton of custom PGs using them. I believe nobody is going to rewrite (I mean the custom ones) them so it would be cool to run this script on all PGs in the database.

The basic setup is:

Define the functions and parameters to be replaced:

const toReplace = [
  {
    name: "CreateTube",
    oldFunction:
      "name, path, radius, tesselation, radiusFunction, cap, scene, updatable, sideOrientation, instance",
    newFunction:
      "name, { path, radius, tesselation, radiusFunction, cap, updatable, sideOrientation, instance }, scene",
  },
  {
    name: "CreateBox",
    oldFunction: "name, size, scene, updatable, sideOrientation",
    newFunction: "name, { size, updatable, sideOrientation }, scene",
  },
// more to add
];

The script can handle optional parameters, inlined functions (arrow & classic as well) and pretty much everything thanks to acorn. :muscle:

An example input string:

const a = 3
BABYLON.Mesh.CreateTube("dd", myPath, 10, 4, function(o,p) {
    if (true) {
        function whatever(input1, input2) {
            return input1 + input2
        }
        return whatever(1, 2)
    } else {
        return dd
    }
}, 0, scene, true)
const y = 1

output:

const a = 3
BABYLON.MeshBuilder.CreateTube("dd", { path: myPath, radius: 10, tesselation: 4, radiusFunction: (o,p) => {
    if (true) {
        function whatever(input1, input2) {
            return input1 + input2
        }
        return whatever(1, 2)
    } else {
        return 10
    }
}, cap: 0, updatable: true  }, scene)
const y = 1

It is just a quick (under an hour) implementation but if you guys are interested in this stuff I can continue to work on it, test it thoroughly and dedicate it to the community.

:vulcan_salute:

2 Likes

Let me add @RaananW who owns the Playground DB now

1 Like

Yeah!
I was thinking about adding something like that to the playground snippet loader so that new code will always be modified. This is a great example.

I’ll keep myself assigned to that just to be able to track this, but this would be a great feature for the future versions of the playground. I wouldn’t want to change the actual playground code in the DB, as we treat our DB as an immutable store. But if we are loading old code3 in the playground and the playground adjusts the code, saving it (and running it) will work without an issue.
Once I have the initial implementation I will be happy to accept PRs! :slight_smile:

Hello @RaananW!
I am glad you like the idea and had something similar in your mind :sunglasses:

First I need to finish the YUKA examples I am currently working on. I expect to have my part of the examples (@labris is working on the others) to be ready in a week. Just right after I can start to work on this. I will get back to you asap.

I will create a new topic for this feature so we do not flood the original one.

Thank you!

EDIT: Replacing deprecated PG code automatically

1 Like