Looks good. What if you define a setter function that also marks the node as needing an update?
Meteor.addRenderTask(() => {
rotation++;
node1.setRotation([0, rotation, 0]);
node2.setRotation([0, rotation, rotation]);
});
Or is node.rotation=
already using a setter?