diff --git a/projects/wobble_bobble/shaders/grid.vert b/projects/wobble_bobble/shaders/grid.vert
index 8acf8f264ffd02bc348e5b572d5b8540fa9db040..b7fb8d83be3baad931a0bdb2028691dfb4b8698f 100644
--- a/projects/wobble_bobble/shaders/grid.vert
+++ b/projects/wobble_bobble/shaders/grid.vert
@@ -15,11 +15,13 @@ void main()	{
     ivec3 gridResolution = imageSize(gridImage);
 
     ivec3 gridID = ivec3(
-        gl_InstanceIndex % gridResolution.x,
-        (gl_InstanceIndex / gridResolution.x) % gridResolution.y,
-        (gl_InstanceIndex / gridResolution.x / gridResolution.y) % gridResolution.z
+        gl_InstanceIndex,
+        gl_InstanceIndex / gridResolution.x,
+        gl_InstanceIndex / gridResolution.x / gridResolution.y
     );
 
+    gridID = ivec3(mod(gridID, gridResolution));
+
     vec3 position = (vec3(gridID) + vec3(0.5f)) / gridResolution;
     float size = 1.0f / length(vec3(gridResolution));