Added viscosity term but still unstable... and complex shader code crashes my GL context