SOLVED Node ID relevant bits?

When calling FindUniqueID() for a node, I always get returned a 128 bit block of memory with the first 96 bits looking identical for any node I queried so far in any scene.

Is it safe to assume I can throw these away so I'm left with a neat, 32 bit GUID?

Hi @Virtualritz,

welcome to the forum and the Cinema 4D Community. Please note that we require postings to be tagged with information regarding the operating system, programming environment and Cinema 4D version. You can find out more about our forum procedures in our Forum Guidelines. So I would have to ask you to please add that information to your posting with tags.

Regarding your question of splitting the unique ID - it depends a bit on your scenario. First of all I am assuming here that you talk about MAXON_CREATOR_ID, because otherwise the ID could have any shape or form, depending on what has been passed when the ID has been added.

We recently had this posting where we talked about the hash function of the unique ids returned by FindUniqueID(MAXON_CREATOR_ID). The first 8 bytes are the mac-address of the machine, so you can sort of treat this as a constant, but there is of course is reason why it is there, as it seperates node instances by the mac-address of the creator. The reason why you assumed the first 12 bytes to be constants is probably because you made the queries all on the same day and the second hashing element with 4 bytes is a time stamp. Although it surprises me a bit that they ware identical down to the last bit, I would have more expected only the first 10 bytes to be identical or so.

There is also this post where @m_adam answered a few questions of mine (when I was a user) regarding the collision resistance of FindUniqueID(MAXON_CREATOR_ID). This might also be relevant to you.

Cheers,
Ferdinand

Hi @Virtualritz,

welcome to the forum and the Cinema 4D Community. Please note that we require postings to be tagged with information regarding the operating system, programming environment and Cinema 4D version. You can find out more about our forum procedures in our Forum Guidelines. So I would have to ask you to please add that information to your posting with tags.

Regarding your question of splitting the unique ID - it depends a bit on your scenario. First of all I am assuming here that you talk about MAXON_CREATOR_ID, because otherwise the ID could have any shape or form, depending on what has been passed when the ID has been added.

We recently had this posting where we talked about the hash function of the unique ids returned by FindUniqueID(MAXON_CREATOR_ID). The first 8 bytes are the mac-address of the machine, so you can sort of treat this as a constant, but there is of course is reason why it is there, as it seperates node instances by the mac-address of the creator. The reason why you assumed the first 12 bytes to be constants is probably because you made the queries all on the same day and the second hashing element with 4 bytes is a time stamp. Although it surprises me a bit that they ware identical down to the last bit, I would have more expected only the first 10 bytes to be identical or so.

There is also this post where @m_adam answered a few questions of mine (when I was a user) regarding the collision resistance of FindUniqueID(MAXON_CREATOR_ID). This might also be relevant to you.

Cheers,
Ferdinand

Hi @Virtualritz! Nice to see you on this forum. (Filip here, we talked on the 3delight discord)

Hi @Virtualritz,

without further questions or updates we will consider this topic as solved by Thursday and flag it accordingly.

Cheers,
Ferdinand