Materials get reset in USD Composer every time I make a change in Rhino

I’m still getting used to Omniverse so this might be a basic question. I created a simple block in Rhino and then live linked it in USD Composer. I added a material to the block in USD Composer. Then if I modified the block in Rhino it would remove the material in USD Composer. Doesn’t matter if I move the block, add a chamfer to it, increase the size, etc. Any modification removes the material. Is this normal behaviour or is there something I’m doing wrong?

Someone replied asking me to upload the log from Create but it looks like the comment is gone now. I’ve uploaded it now. Hopefully someone can have a look.
kit_20231031_151558.log (1.0 MB)

@keith.reilly i am just another OV. not sure if you were able to find the solution, but below are a few things to note as you are getting your feet wet with OV:

  • uni-directional connectivity - to start, the connector for Rhino is uni-directional and works explicitly in one direction (from Rhino to OV) for the time being (Connecting to Omniverse — Omniverse Connect latest documentation). in other words, any changes (material, geo, transforms, etc) done in OV would only stay in OV; and any changes in Rhino will override the scene in OV due to it being the ‘source’ file which drives the file OV uses.
  • OpenUSD - the behavior mentioned above may be inconvenient in the traditional sense because you won’t be able to translate the work back into Rhino. That said, it’s an opportunity to talk about the Layer system in USD. I would suggest you take a peek at this tutorial by Frank - where he walks through how you can preserve the material binding/assignments to work around the limitation presented by the uni-directional connector. i am going to go out on a hunch and say there were no material assignment inside of Rhino in the first place, so every update you make after the fact keeps getting overwritten.
  • sublayer - so in your case, what you can consider is making a new sublayer dedicated for assigning material(s) to meshes in your scene. that way, whenever you update the geo in Rhino, that new sublayer (in essence, a separate USD) will preserve the material as long as you keep the mesh name throughout your process.

Thank you. The uni-directional flow is actually fine for what I’d like to do.

Using layers would it be possible to do the following? Create geometry in Rhino => live link it to OV Create => add materials in OV Create => go back and make change in the Rhino geo (e.g. add a simple chamfer to an edge => Have the content in OV Create update to show the change but keep the materials I added previously

I was trialing this a few months ago and now my Rhino trial license is expired (we use Siemens and NX or Solidworks day to day) so I won’t be able to test this out until I get set up again.

you should be able to if you set it up using sublayers. i can probably point you to a few tutorials on layers if you think that’d help 🙂

and just fyi, i dont have Rhino myself at the moment; but the basic OpenUSD layer system/workflow is pretty straight forward.