Improving Asset Import Workflow for External Models with Textures (FBX, glTF, GLB, USDZ, etc.)

Hi everyone,

As an end user, I find it quite difficult to import external 3D models with textures into Gazebo Sim / Fuel. Common formats downloaded from asset sites (FBX, glTF/GLB, USDZ, etc.) are not straightforward to convert to SDF-supported formats.

I tried gz-usd but the conversion often fails to properly handle textures.

Suggestion:
It would be very helpful if there was at least a clear, official or community tutorial showing the recommended workflow for converting textured models to Gazebo-compatible formats.

Even better would be improved native support for these modern formats (especially with textures) or a simple one-click/batch conversion tool/script.

This would make it much easier for users to bring more assets into Fuel and Gazebo.

Thanks!

1 Like

There’s native support for gltf in Gazebo. Was there a particular feature that wasn’t working for you?

Hi azeey,

Thanks for your reply.

  1. I couldn’t find a clear, centralized list of natively supported texture file formats in the official Gazebo Sim documentation.

  2. I tried GLB and textures loaded, but there’s a bug: one side is visible while the opposite side is not.

  3. There’s no good way to directly convert GLB (or other formats) into the standard model folder structure.

  4. Currently, my GLB import workflow is cumbersome: I have to manually write an SDF file and replace the mesh path to point to the GLB. Is there an easier way to import, especially since many assets in simulation are static (visual-only) with no physics requirements?

BUG:

1 Like
  1. Yes, documentation is lacking on that. We have it listed in the API docs of MeshManager, but this is hardly discoverable. I added a comment in Add documentation on best practices for 3D designs · Issue #308 · gazebosim/docs · GitHub

  2. This could be a bug, but there’s a valid use case where you want one side to be transparent. I know blender has a setting to make a face double sided. I imagine other 3D tools have the same.

  3. Not sure what you mean. There is no “standard” model folder structure. It is mostly convention. You can simply store the GLB (with all its textures embedded) in a meshes directory and reference it in your SDF file.

  4. We don’t have an official 3D authoring tools, but there are several in the community. There are some listed here. @Cole created SDF_Gen (ROSCon video) which I think helps with this. Maybe @Cole or @iche033 can chime in.

1 Like

Thanks for clarifying! I’ve been mistakenly assuming the model format used for downloading/uploading on Fuel was the official standard recommended by Gazebo.

On a related note, I do think defining a standard asset format would add real value. It would give everyone a unified reference to follow, streamline asset conversion, Fuel uploads and version management, and make the whole workflow pipeline much more consistent and smooth.

Thanks again for your help!

1 Like