The problem is the line "swipeCurrVelocity = ... " in UpdateSwipeScrollDestintationPosition() of tk2dUIScrollableArea.cs. What happens is that the value can be set to 0 if the user happens to release their finger on the frame that a swipe delta had just begun to calculate (i.e., the start point and end point are equal). The "quick fix" is to merely check if the two value are equal, and if so, don't re-calculate swipeCurrVelocity. It will be left with it's previous delta value and you'll get good velocity on all releases. I tried a couple of other techniques, including weighting and averaging the two values together, but inevitably you get "sticky" swipes at 1/2 speeds and such. Ideally, the algorithm should be keeping a running weighted average of the last several swipe deltas over time, and use that averaged value to set swipeCurrVelocity on release.