diff --git a/projects/wobble_bobble/shaders/particle.inc b/projects/wobble_bobble/shaders/particle.inc
index ddb07e7854e90f7468a6e98db9f2343d5daf82c1..92ce70eb5e3b8f7bf474908cae9356622f46bf07 100644
--- a/projects/wobble_bobble/shaders/particle.inc
+++ b/projects/wobble_bobble/shaders/particle.inc
@@ -62,17 +62,6 @@ float cube_radius(float volume) {
 	return pow(volume / 8.0f, 1.0f / 3.0f);
 }
 
-float simulationMass(float density, float size, int form) {
-	switch (form) {
-		case SIM_FORM_SPHERE:
-			return density * sphere_volume(size);
-		case SIM_FORM_CUBE:
-			return density * cube_volume(size);
-		default:
-			return 0.0f;
-	}
-}
-
 float weight_A(float x) {
 	return max(1.0f - x, 0.0f);
 }
diff --git a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
index ade23ae766508dbe448d8197ad9c8249d61425c2..71d342e14129c2d6b8404044df11b52e0d9c9d2a 100644
--- a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
+++ b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp
@@ -13,7 +13,7 @@ layout(set=0, binding=1) uniform simulationBlock {
     Simulation simulation;
 };
 
-layout(set=0, binding=2, rgba32f) restrict writeonly uniform image3D gridImage;
+layout(set=0, binding=2, rgba16f) restrict writeonly uniform image3D gridImage;
 
 layout( push_constant ) uniform constants {
     float t;
diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp
index de12087422fc19968271b32f2d811deaf3e4de8d..6fd28707b77a31cc68babc647c384cab440d977f 100644
--- a/projects/wobble_bobble/src/main.cpp
+++ b/projects/wobble_bobble/src/main.cpp
@@ -308,7 +308,7 @@ int main(int argc, const char **argv) {
 	);
 	
 	vkcv::Image grid = core.createImage(
-			vk::Format::eR32G32B32A32Sfloat,
+			vk::Format::eR16G16B16A16Sfloat,
 			64,
 			64,
 			64,
@@ -316,14 +316,6 @@ int main(int argc, const char **argv) {
 			true
 	);
 	
-	std::vector<glm::vec4> grid_vec (grid.getWidth() * grid.getHeight() * grid.getDepth());
-	
-	for (size_t i = 0; i < grid_vec.size(); i++) {
-		grid_vec[i] = glm::vec4(0.0f);
-	}
-	
-	grid.fill(grid_vec.data());
-	
 	vkcv::SamplerHandle gridSampler = core.createSampler(
 			vkcv::SamplerFilterType::LINEAR,
 			vkcv::SamplerFilterType::LINEAR,
diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp
index ae69aa75265e207737fc1dd56b86c5e5df5c1f9c..bfee504f599d941e625e6ef5c6045805c33a29a1 100644
--- a/src/vkcv/ImageManager.cpp
+++ b/src/vkcv/ImageManager.cpp
@@ -353,6 +353,8 @@ namespace vkcv {
 				return 4;
 			case vk::Format::eR8G8B8A8Unorm:
 				return 4;
+			case vk::Format::eR16G16B16A16Sfloat:
+				return 8;
 			case vk::Format::eR32G32B32A32Sfloat:
 				return 16;
 			default: