3D model instance keeps stale bounds/dimensions after replacing GLB

Describe the bug

When replacing the GLB resource used by an existing 3D Model object, existing scene instances can render at the wrong apparent scale/position if the new GLB has slightly different geometry bounds.

The instance’s X/Y/Z, Width/Height/Depth and rotation remain unchanged, but the model itself visibly shifts/scales.

Deleting the affected instance and placing a fresh instance of the exact same 3D Model object fixes it immediately.

In my case, I modified only the roof geometry of a room. The walls/door were not resized, but giving the roof thickness slightly increased the model’s overall bounding box. After replacing the GLB, the existing room instance rendered incorrectly.

Steps to reproduce

  • Import a GLB as a 3D Model object and place an instance in a scene.

  • Modify the GLB so its overall bounding box changes slightly, without resizing the main architecture. For example, extrude part of the roof upward.

  • Replace the GLB resource used by the existing 3D Model object.

  • Observe that the already-placed instance now appears shifted/scaled incorrectly even though its X/Y/Z, W/H/D and rotation have not changed.

  • Delete that instance and place a new instance of the same 3D Model object.

  • The freshly placed instance renders correctly.

Expected behavior

Existing instances should recalculate the model’s native/original dimensions or bounds when the underlying GLB resource is replaced, while preserving the instance’s scene position and W/H/D.

Actual behavior

Existing instances appear to retain stale model dimension/bounding-box information after the resource is replaced. Recreating the instance forces the dimensions to be recalculated and fixes the issue.

Video demonstrating the issue:
https://jumpshare.com/s/hZpWXy94eumnSSqFV2z8

Version 5.6.279 Latest

I am getting this without replacing the glb. Just scaling up or down the object “scaling factor” in the Edit window. Apply. But the changes doesn’t appear in the world.

Hello @huraurhaur

Unfortunately, the video you shared is gone, if you can re-upload it that’d be great.
Can you confirm if your project is in the cloud or stored locally?

Thanks

Hi, here is a detailed video showing an issue I run into fairly often.

My workflow is:
I create an entire room in Blender, export, I place a GLB in the scene, resize/reposition it until it fits correctly, then later edit that same GLB in Blender and replace/export over the existing file. It is a local project only.

After replacing the GLB, the already-placed instance in GDevelop becomes shifted/misaligned, even though I haven’t changed its position or intended size in GDevelop.

The only reliable workaround I’ve found is deleting the existing instance and placing/resizing it again from scratch, which is very time-consuming.

Is this something I’m doing incorrectly, or is this a GDevelop issue with existing custom-sized 3D model instances not updating properly when the GLB’s dimensions/bounds change?

Video:
https://jumpshare.com/s/vNJ272XRODznZ1AbUCyC

Also, here is a before/after 2D topdown Gdevelop image comparison.
The entire room shown in both images is a single GLB/3D Model object (the doors on the side are separate glbs)

In the “after” image, the updated GLB is visibly squished and no longer lines up with the surrounding geometry, even though the existing instance’s position and W/H/D in GDevelop were not intentionally changed. Deleting the instance and placing it again fixes the proportions, but this is time-consuming because I have to manually resize and line everything back up again.

Additional detail: the room instance is already manually custom-sized in GDevelop before I replace the GLB. I don’t leave the model at its default 1:1 size. After the GLB bounds change, adjusting W/H/D to compensate also resizes the existing part of the room, so I haven’t found a simple way to preserve the instance’s previous per-axis scale while allowing the new geometry to extend outward.

Thanks for the video!

My intuition is that your 3D Model object gets scaled to fit the Width/Height/Depth you give it (as you have a custom size), and GDevelop works out that fit from the model’s bounding
box: the overall box your model occupies in Blender. So the bounding box is what everything inside the model is measured against.

When you cut a piece off the wall, the bounding box changes. Your instance keeps the same Width/Height/Depth (which is why nothing looks different in the
properties panel), so the new model gets stretched to fill that same box, and everything inside it, table and couch included, gets rescaled along with it.

Possible workaround: manage to keep the bounding box identical between exports.
Add two small cubes in Blender at opposite corners of your finished room, positioned
just outside the outer walls so the player can never see them from inside, and never move them again. (not marking them as hidden in Blender otherwise they’re not taken into account)

Let me know if that works?

I’m looking at possible fixes in the meantime.