Skip to content

Conversation

@ft-lab
Copy link
Collaborator

@ft-lab ft-lab commented Jan 23, 2026

Description

Fixes #55

Fixed an issue where some urdf_files_datasets could not be converted correctly.
This was all due to issues during DAE file conversion.

Bug fixes

  • dae (parse): Fixed to correctly parse even when the dae file structure is corrupted.
    • In cases where the structure of lights or cameras within a dae file was corrupted, parsing would sometimes fail.
  • dae (material): Fixed an issue where geometry node material references were sometimes not retrieved correctly.
    • In some cases it was necessary to look up the target assigned to a material ID in the list of GeometryNode.materials.
  • dae (material): Fixed a calculation error when the material's Opaque Mode was "RGB_ZERO".
  • dae (geometry): Fixed an issue where the UV array could not be acquired correctly in some cases.
    • Modified to retrieve a list of "texcoord_indexset" instead of a list of "texcoord_index".
  • dae (material): Fixed an issue where materials with identical names within a single dae file were not bind correctly.
    • We had been identifying materials within a single dae file by their “material name,” but this could result in duplicate names.
    • We have changed the identification method to use the "Material ID". Note that the displayName will adopt the "Material Name".

URDF files for verifying each one

random/robot-assets/ur5/ur5_gripper.urdf

https://github.com/Daniella1/urdf_files_dataset/blob/main/urdf_files/random/robot-assets/ur5/ur5_gripper.urdf

This is referencing a dae file that is partially corrupted.
Previously, the following error occurred.

DaeBrokenRefError: Light #Lamp-light not found in library

This was circumvented with the following implementation.

conversion_collada.py

_collada = collada.Collada(str(input_path), ignore=[collada.DaeError])

urdf_dae_broken_20260123

random/robot-assets/r2_description/robots/r2c5.urdf

https://github.com/Daniella1/urdf_files_dataset/blob/main/urdf_files/random/robot-assets/r2_description/robots/r2c5.urdf

This had the following bugs.

  • Issue where some materials are not bound.
  • An issue where some materials were occasionally assigned transparency
  • An issue where some UVs were not passed correctly, preventing texture mapping

These issues were fixed in this PR, but since another issue was found, we are separating those problems.
-> Issue #61, Issue #62

The following is rendered entirely as metallic because the Specular Workflow is enabled and SpecularColor(1, 1, 1) is assigned.

urdf_dae_bug_fixes_20260123

matlab/robotiq2F85/urdf/robotiq2F85.urdf

https://github.com/Daniella1/urdf_files_dataset/blob/main/urdf_files/matlab/robotiq2F85/urdf/robotiq2F85.urdf

In the “robotiq_arg2f_85_base_link.dae” referenced by this URDF file, the same material name was assigned to multiple materials.

  <library_materials>
    <material name="mymaterial" id="material100">
      <instance_effect url="#effect100"/>
    </material>
        <material name="mymaterial" id="material0">
      <instance_effect url="#effect0"/>
    </material>
  </library_materials>

In this PR implementation, the material prim names are set to "material100" and "material0", and the displayName is set to "mymaterial".

urdf_dae_material_name_id_20260123

unit test:

The following files perform unit tests on DAE files with identical material names.

  • tests/data/test_displayname.urdf
  • tests/data/assets/box_two_materials_same_names.dae

Checklist

dae: Fixed an issue where the UV array could sometimes not be acquired correctly.

dae: Fixed an issue when Opaque Mode is set to 'RGB_ZERO'.
@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@ft-lab ft-lab marked this pull request as ready for review January 23, 2026 11:39
@ft-lab
Copy link
Collaborator Author

ft-lab commented Jan 23, 2026

Other issues I found here are separated out below.

@ft-lab ft-lab mentioned this pull request Jan 26, 2026
1 task
@ft-lab ft-lab mentioned this pull request Jan 27, 2026
1 task
@ft-lab ft-lab self-assigned this Jan 27, 2026
@andrewkaufman andrewkaufman merged commit 7a1a1f2 into newton-physics:main Jan 27, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Conversion failure in several samples

2 participants