diff --git a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
index 49df347948c0e1cebed4c077320b94ad6cdd3e4e..7e999944ccaa2c8066efd326ac1af09c86dd8276 100644
--- a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
+++ b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
@@ -71,7 +71,7 @@ void main()	{
         memoryBarrierShared();
     }
 
-    gridValue.xyz += vec3(0.0f, -9.81f * dts * gridValue.w, 0.0f);
+    gridValue.xyz += vec3(0.0f, -9.81f * dts * gridValue.w * 0.0f, 0.0f);
     gridValue.xyz /= gridValue.w;
 
     if (any(isnan(gridValue.xyz)) || any(isinf(gridValue.xyz))) {
@@ -90,7 +90,7 @@ void main()	{
         (lowerID.z && negativeVelocity.z) || (greaterID.z && positiveVelocity.z)
     );
 
-    gridValue.xyz = mix(gridValue.xyz, vec3(0.0f), collision);
+    gridValue.xyz = mix(gridValue.xyz, -gridValue.xyz, collision);
 
     barrier();
     memoryBarrierShared();
diff --git a/projects/wobble_bobble/shaders/update_particle_velocities.comp b/projects/wobble_bobble/shaders/update_particle_velocities.comp
index c5f53ee00f6ccfb6bf134e1bfe06eb42d60d045a..65cb6f7fe920f117959493187d44e6339cefb1e1 100644
--- a/projects/wobble_bobble/shaders/update_particle_velocities.comp
+++ b/projects/wobble_bobble/shaders/update_particle_velocities.comp
@@ -85,7 +85,7 @@ void main()	{
                 mat3 delta = lame2 * (F - F_T_inv) + lame1 * log(J) * F_T_inv;
                 mat3 stress = (1.0f / J) * delta * F_T;
 
-                mls_Q -= dts * volume * stress * D_inv;
+                mls_Q -= dts * volume * D_inv * stress;
             }
 
             affine_C = affine_B * D_inv;
diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp
index 7d69a2e7cdee39b18447b766318bea45bb22cb62..492b75cfeeb86073c445b8459ae93e11acee5e6d 100644
--- a/projects/wobble_bobble/src/main.cpp
+++ b/projects/wobble_bobble/src/main.cpp
@@ -171,13 +171,13 @@ int main(int argc, const char **argv) {
 			swapchainExtent.height
 	).getHandle();
 
-	glm::vec3 initialVelocity (0.0f, 1.0f, 0.0f);
+	glm::vec3 initialVelocity (0.0f, 0.1f, 0.0f);
 	float density = 2500.0f;
 	float radius = 0.1f;
 	
 	vkcv::Buffer<Particle> particles = core.createBuffer<Particle>(
 			vkcv::BufferType::STORAGE,
-			64
+			256
 	);
 	
 	resetParticles(particles, initialVelocity, density, radius);