Smooth nodes not working when used inside user node

I’m not able to make any of “Smooth *” nodes to work when used inside an user node, they just don’t move the position.

I’ve simplified my case to a single smooth node exported as user node:

![smooth][smooth]
[smooth]: https://vuo.org/sites/default/files/question/smooth.png

Please try the composition and user not I’ve attached to reproduce the error with Vuo 1.2.5.

marcin.smooth.vuo (1.42 KB)

smoothtest.vuo (7.01 KB)

@marcin, thanks for taking the time to simplify your composition down to a small demo.

The problem involves events. As you probably know, the Smooth with Inertia node sets the position or target when an event hits the Set Position or Set Target input port. In smoothtest.vuo, you’re sending events into your marcin.smooth node’s Set Position, Set Target, and Time input ports. Here is the part that works differently than you expect: In marcin.smooth.vuo, whenever an event enters any of the published input ports, it travels through all of them. So, whenever an event hits the marcin.smooth node’s Time input port, it ends up hitting not only the Smooth with Inertia node’s Time port as intended, but also the Smooth with Inertia node’s Set Position, Set Target, and Duration input ports.

This often confuses people, and we have a feature request to change it.

In the meantime, you can modify your subcomposition to only allow events into the Smooth with Inertia node’s Set Position and Set Target ports when you actually want to set the position and target. For example, you could insert Allow Changes nodes:

Smooth with Allow Changes.png

This works if you know that each position and target is going to be different from the previous one. I’ve modified your smoothtest.vuo to satisfy this condition.

smoothtest_20170405.vuo (6.21 KB)

Thanks for a detailed answer.

1 Like