diff --git a/projects/saf_r/shaders/raytracing.comp b/projects/saf_r/shaders/raytracing.comp
index e4ab9582b66238d5986c9e12dee1f2a8e782abb7..cb3a811964e22e474fc1a42cf6a5092b3979253f 100644
--- a/projects/saf_r/shaders/raytracing.comp
+++ b/projects/saf_r/shaders/raytracing.comp
@@ -32,6 +32,10 @@ layout(std430, binding = 2) coherent buffer spheres{
     Sphere inSpheres[];
 };
 
+layout(set=0, binding=3, rgba8) uniform image2D outImage;
+
+
+
 vec3 safr_reflect(const vec3 dir, const vec3 hit_center) {
     return dir - hit_center * 2.f * (dot(dir, hit_center));
 }
@@ -100,7 +104,6 @@ vec3 castRay(const vec3 orig, const vec3 dir, int max_depth) {
         direction = reflect_dir;
     }
 
-    //TODO: Warum wollten wir nochmal einene Sphere Index haben?
     if(intersect != -1){
         vec3 reflect_color = result;
         for(int i = 0; i < depth; i++){
@@ -130,7 +133,21 @@ vec3 castRay(const vec3 orig, const vec3 dir, int max_depth) {
     return result;
 }
 
+vec3 computeDirection(ivec2 coord){
+
+    //float x = (2 * (i + 0.5f) / (float)width - 1) * tan(fov / 2.f) * width / (float)height;
+    //float y = -(2 * (j + 0.5f) / (float)height - 1) * tan(fov / 2.f);
+    //glm::vec3 dir = glm::normalize(glm::vec3(x, y, -1));
+
+    return vec3(1,1,1);
+}
+
 
 void main(){
-    int i = 42;
+    //ivec2 coord = ivec2(gl_GlobalInvocationID.xy);
+   // int max_depth = 4;
+    //vec3 direction = computeDirection(coord);
+    //vec3 color = castRay(vec3(0,0,0), direction, max_depth);
+   // vec3 color = vec3(1,0,0);
+    //imageStore(outImage, coord, vec4(color, 0));
 }
\ No newline at end of file
diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp
index 316d0a7dcb7f0a5f21d2f0d772094f9d31e7a313..7808e42505b4bfd2d04212ad988d1b8137711ad2 100644
--- a/projects/saf_r/src/main.cpp
+++ b/projects/saf_r/src/main.cpp
@@ -79,6 +79,7 @@ int main(int argc, const char** argv) {
 	const vkcv::DescriptorBindings& descriptorBindings = safrShaderProgram.getReflectedDescriptors().at(0);
 	vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(descriptorBindings);
 	vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout);
+    vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle();
 
 	//materials for the spheres
 	std::vector<safrScene::Material> materials;
@@ -149,6 +150,8 @@ int main(int argc, const char** argv) {
 	core.writeDescriptorSet(computeDescriptorSet, computeWrites);
 	computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(2,sphereBuffer.getHandle()) };
 	core.writeDescriptorSet(computeDescriptorSet, computeWrites);
+	computeWrites.storageImageWrites = { vkcv::StorageImageDescriptorWrite(3, swapchainInput)};
+    core.writeDescriptorSet(computeDescriptorSet, computeWrites);
 
 	const auto& context = core.getContext();
 
@@ -199,7 +202,7 @@ int main(int argc, const char** argv) {
 	vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle);
 	vkcv::DrawcallInfo drawcall(renderMesh, { descriptorUsage }, 1);
 
-	const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle();
+	//const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle();
 
 	vkcv::camera::CameraManager cameraManager(window);
 	uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT);
diff --git a/projects/saf_r/src/safrScene.cpp b/projects/saf_r/src/safrScene.cpp
index 38a40605723161ab874d02cd6768654090a12c15..18b6be310db52b44b50e1c5184d567460e1ca32d 100644
--- a/projects/saf_r/src/safrScene.cpp
+++ b/projects/saf_r/src/safrScene.cpp
@@ -67,7 +67,7 @@ vkcv::asset::Texture safrScene::render(const std::vector<safrScene::Sphere>& sph
 #pragma omp parallel for
 	for (size_t j = 0; j < height; j++) {
 		for (size_t i = 0; i < width; i++) {
-			framebuffer[i + j * width] = glm::vec3(j / float(height), i / float(width), 0);
+			//framebuffer[i + j * width] = glm::vec3(j / float(height), i / float(width), 0);
 			float x = (2 * (i + 0.5f) / (float)width - 1) * tan(fov / 2.f) * width / (float)height;
 			float y = -(2 * (j + 0.5f) / (float)height - 1) * tan(fov / 2.f);
 			glm::vec3 dir = glm::normalize(glm::vec3(x, y, -1));