DiffTaichi: Differentiable Programming for Physical Simulation | Synapse