diff --git a/projects/sph/shaders/force.comp b/projects/sph/shaders/force.comp
index 865d6be5f6270f1418ed45a2a2c733e4076f1975..54ce5d36df28017ace196cf8944e09acbf8e370f 100644
--- a/projects/sph/shaders/force.comp
+++ b/projects/sph/shaders/force.comp
@@ -62,10 +62,13 @@ void main() {
 
     for(uint i = 0; i < inParticle.length(); i++)  
     {
-        vec3 dir = inParticle[id].position - inParticle[i].position;
-        float dist = length(dir);
-        pressureForce += mass * -(inParticle[id].pressure + inParticle[i].pressure)/(2.f * inParticle[i].density) * spiky(dist) * normalize(dir);
-        viscosityForce += mass * (inParticle[id].velocity - inParticle[i].velocity)/inParticle[i].density * laplacian(dist);
+        if (id != i)
+        {
+            vec3 dir = inParticle[id].position - inParticle[i].position;
+            float dist = length(dir);
+            pressureForce += mass * -(inParticle[id].pressure + inParticle[i].pressure)/(2.f * inParticle[i].density) * spiky(dist) * normalize(dir);
+            viscosityForce += mass * (inParticle[id].velocity - inParticle[i].velocity)/inParticle[i].density * laplacian(dist);
+        }
     }
     viscosityForce *= viscosity;