 # translateUVN Deformer - Unlimited Range

The translateUVN deformer isn't perfect, one of the annoying limitations is that points can't slide beyond the edge of the surface. You can work around this by adding a span to the surface but that's more CV's to manage. It would be nice if the points just kept moving along the tangents of the surface. The challenge is how to make sure the points move at a constant speed as they cross over the edge, you don't want the points to start moving faster as soon as they pas the edge, because that would not look right.

For this simple proof of concept I'm using a nurbs curve instead of a full surface. The speed of a point sliding along the curve is a result of the ratio between the parametric distance, and the arc length (the distance along the curve). \

In the image below I've used an arcLengthDimension node to measure the length of the curve from parameter 0 to parameter .5. The arc length was ~2.13 units. So a point on this curve would slide 4.26 units/parameter. But that speed is not constant for the entire curve. The CV's might be close together at one end and spaced out at another, so the point would travel faster through the areas with spaced out CV's. We need to find out how fast the point would be going exactly when it reaches the ends of the curve.

If you remember your calculus you'll know that this instantaneous speed is the derivative or for us, the magnitude of the tangent. The magnitude measures how fast the position changes relative to the parameter value. The magnitude of the tangent is 3 times the distance from the first CV to the second CV (This isn't something I completely understand the mathematical explanation for but it is the case). So if we take the tangent, divide it by 3, and then multiply it by 2 (because the second CV is associated with the parameter value of .5 not 1) then we appear to get a constant speed at the ends of the curve. This system relies on a lot of assumptions that I am thoroughly going to investigate before I commit to any changes, but if it works it'll be one less thing for end-users to worry about.