What's stamps()?

   295   3   0
User Avatar
Member
444 posts
Joined: Aug. 2019
Offline
When I drop a SOP import DOP in a DOP network, its default parameters are full of stamps():



What is stamps(), exactly? The document [www.sidefx.com] says:

Returns a copy stamping string value.

...sorry, but what's a copy stamping? Why does SOP import DOP need it?

Attachments:
Screenshot 2024-04-18 145631.png (104.8 KB)

User Avatar
Member
8557 posts
Joined: July 2007
Offline
In SOPs there used to be Copy SOP, lafer renamed to Copy Stamp SOP and deprecated, which allowed you to define "stamping variables" which could vary values per each copy

stamp() function for floats and stamps() for string were a way to evaluate such variables of a specific node per each copy and therefore modify left side nodes for each copy

This was replaced by for loops due to several technical reasons


However stamp() and stamps() were and still are also used in DOPs in a similar fashion, to evaluate certain variable values during cook and therefore being able to change behavior of nodes like SOP Solver based on which object is currently running over etc.

More info here https://www.sidefx.com/docs/houdini/nodes/dop/sopsolver.html [www.sidefx.com]
Edited by tamte - April 18, 2024 21:10:10
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
444 posts
Joined: Aug. 2019
Offline
tamte
In SOPs there used to be Copy SOP, lafer renamed to Copy Stamp SOP and deprecated, which allowed you to define "stamping variables" which could vary values per each copy

stamp() function for floats and stamps() for string were a way to evaluate such variables of a specific node per each copy and therefore modify left side nodes for each copy

This was replaced by for loops due to several technical reasons


However stamp() and stamps() were and still are also used in DOPs in a similar fashion, to evaluate certain variable values during cook and therefore being able to change behavior of nodes like SOP Solver based on which object is currently running over etc.

More info here https://www.sidefx.com/docs/houdini/nodes/dop/sopsolver.html [www.sidefx.com]

What confuses me is that I can middle click the parameter to show its value even it uses stamps(), just like other expressions. But if stamps() is evaluated during cook, does it mean the value we see by middle clicking it is not necessarily meaningful?
User Avatar
Member
8557 posts
Joined: July 2007
Offline
raincole
What confuses me is that I can middle click the parameter to show its value even it uses stamps(), just like other expressions. But if stamps() is evaluated during cook, does it mean the value we see by middle clicking it is not necessarily meaningful?
Correct, the value you see is the 3rd argument of stamp*() function, which defines a default value shown when evaluated out of context

Doesn't have to be meaningless, it's certainly a placeholder
Edited by tamte - April 18, 2024 22:40:52
Tomas Slancik
FX Supervisor
Method Studios, NY
  • Quick Links