Gradient smoothing + Flow calculus
Merge: Keeping Adonais's local changes vs. Ethan's