It seems that every object in BabylonJS is required to have a name. And according to the answer in here the name exists solely for the developer, allowing one to look up object by names.
But looks like additionally each object also has an ID. This ID seems to be the same as the name, and there are similar methods to look up object by ID.
var sphere = BABYLON.MeshBuilder.CreateSphere("sphere1", {}, scene);
console.log(sphere.name); // -> sphere1
console.log(sphere.id); // -> sphere1
scene.getMeshByName("sphere1");
scene.getMeshById("sphere1")
It seems like exactly the same feature, just under a different name. But there must be something that’s different about these ID-s? Or not?