differential grasshopper