Flow Along Surface creates inaccurate results?

Can somebody explain why the Flow Along Surface creates inaccurate results in the following case: I have a simple box which I flow along a circular surface. Target and reference surface have the exact same dimensions. But after the flow along surface command I get a different radius as a result. I know I can solve it in this case in a different way, but I’d just like to have a better understanding as to why this happens.

Here is the radius of the target surface:

And this is the result I get after flow along surface command, measuring the radius at different points:

180621 FlowAlongSurface Accuracy.3dm (192.4 KB)

My guess is the difference is due to how circles and similar are represented using NURBS. The “rational” part of Non-Uniform Rational B-Spline refers to weight coefficients in the NURBS formulas. For most purposes the weights are set to 1. However to exactly represent circles and other quadratic curves the weights are set to special values other than 1. Without using these special values of the weights it is not possible to exactly represent a circle exactly using B-Splines. Increase the number of control points will decrease the deviation from a perfect circle but never eliminate it.

Your circular surface was created as an extrusion of a circle so it uses the special values of the weight coefficients. That’s the reason the radius is exactly 500.00 everywhere. However I assume that FlowAlongSrf do no use special weight values so there will be some deviation from an exact circular surface.


Hello - the grim truth is that deformation operations are not exact… If you Rebuild the target cylinder to say 48 points in the around direction and degree 5, the result of the flow will be cleaner and the radius more consistent- the UV distribution is more even and the refitting is just cleaner.