diff --git a/assets/shaders/fragment.glsl b/assets/shaders/fragment.glsl
index c3c844785bab8e3acfc43e5fccac4290175d0a6b..40664ab349e88a6b3f6c082d65deeb88d19deda8 100644
--- a/assets/shaders/fragment.glsl
+++ b/assets/shaders/fragment.glsl
@@ -1,12 +1,45 @@
 #version 330 core
 
-in vec3 colorVS;
-in mat3 animationMatrix;
+uniform vec3 lightColor = vec3(1.0, 0.95, 0.8);
+uniform vec3 matSpecular = vec3(1.0, 1.0, 1.0); // Metall (chrom)
+uniform float matShininess = 20.0f;
 
 out vec4 color;
 
+in vec3 normal;
+in vec3 lightDir;
+in vec3 colorVS;
+in vec3 viewDir;
+
+
 void main() {
-    //vec3 animatedColor = animationMatrix * colorVS;
-    vec3 animatedColor =   colorVS;
-    color = vec4(animatedColor, 1.0);
+
+
+    // normalize everything necessary
+    vec3 N = normalize(normal);
+    vec3 L = normalize(lightDir);
+
+    // diffuse component
+    float cosa = max(0.0, dot(N,L));
+    vec3 diffuseTerm = colorVS * lightColor;
+
+    color = vec4( diffuseTerm * cosa, 1.0);
+
+    // specular component//
+    vec3 V = normalize(viewDir);
+    vec3 R = normalize(reflect(-L,N));
+    float cosBeta = max(0.0, dot(R,V));
+    float cosBetak = pow(cosBeta, matShininess);
+    vec3 specularTerm = matSpecular * lightColor;
+
+    color += vec4(specularTerm * cosBetak, 1.0);
+
+    // ambient component //
+    float ambientStrength = 0.2;
+    vec3 ambientColor = colorVS; // this could also be a global ambient color
+    vec3 ambientTerm = ambientColor * lightColor * ambientStrength;
+
+    color += vec4(ambientTerm, 1.0);
+
+
 }
\ No newline at end of file
diff --git a/assets/shaders/vertex.glsl b/assets/shaders/vertex.glsl
index ae9fab182511a6b9c1ab6edfc176383338aa322a..1683b9feb18a666bef3ee0c12c846c6c6213ee62 100644
--- a/assets/shaders/vertex.glsl
+++ b/assets/shaders/vertex.glsl
@@ -1,21 +1,36 @@
 #version 330 core
 
-layout (location = 0) in vec3 pos;
-layout (location = 1) in vec3 normalVector;
+layout (location = 0) in vec3 vertex;
+layout (location = 1) in vec3 vertex_normal;
 layout (location = 2) in vec3 colorRGB;
 
-out vec3 colorVS;
-out mat3 animationMatrix;
 
 uniform mat4 model;
-uniform mat3 animationMatrixFromUniform;
-
 uniform mat4 view;
 uniform mat4 projection;
+uniform vec3 lightPos;
+
+out vec3 normal, lightDir;
+out vec3 colorVS;
+out vec3 viewDir;
+
 
 void main(){
+
+    gl_Position = projection * view * model *  vec4(vertex, 1.0);
     colorVS = colorRGB;
-    animationMatrix = animationMatrixFromUniform;
-    gl_Position = projection * view * model * vec4(pos.x, pos.y, pos.z, 1.0);
-    //gl_Position = model * vec4(pos.x, pos.y, pos.z, 1.0);
+
+    // compute normal in view space //
+    vec4 n = vec4(vertex_normal, 1.0);
+    mat4 normalMat = transpose(inverse(view * model));
+    normal = (normalMat * n).xyz;
+
+    // compute light direction in view space //
+    vec4 lp = vec4(view * vec4(lightPos, 1.0));
+    vec4 P = view * model * vec4(vertex, 1.0);
+    lightDir = (lp - P).xyz;
+
+    // specular term //
+    viewDir = -P.xyz;
+
 }
diff --git a/cmake-build-debug/.cmake/api/v1/reply/index-2025-05-17T20-39-09-0612.json b/cmake-build-debug/.cmake/api/v1/reply/index-2025-05-24T21-03-31-0508.json
similarity index 100%
rename from cmake-build-debug/.cmake/api/v1/reply/index-2025-05-17T20-39-09-0612.json
rename to cmake-build-debug/.cmake/api/v1/reply/index-2025-05-24T21-03-31-0508.json
diff --git a/cmake-build-debug/.ninja_deps b/cmake-build-debug/.ninja_deps
index 65bba35204b291e48cb8059f43d68b961d0e2624..fdb2f96383c882bb30b43e4edd8d70ca9bdba33b 100644
Binary files a/cmake-build-debug/.ninja_deps and b/cmake-build-debug/.ninja_deps differ
diff --git a/cmake-build-debug/.ninja_log b/cmake-build-debug/.ninja_log
index 14fb1364a7d7c15cca7628e95edc99003935205f..1962e810587bdbc4c8443aebf53635b1904fb680 100644
--- a/cmake-build-debug/.ninja_log
+++ b/cmake-build-debug/.ninja_log
@@ -1,24 +1,24 @@
 # ninja log v5
-6831	8361	7686065183312964	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_tls.c.obj	37adbcd9a1b59fc1
-2402	5124	7686065150930272	CMakeFiles/OpenGL_Praktikum.dir/framework/Input.cpp.obj	3aa35e4a541b37cb
 3253	7539	7686065174954045	CMakeFiles/OpenGL_Praktikum.dir/framework/OBJLoader.cpp.obj	d2f9fcf70f53a76f
 11	2397	7686065123684395	CMakeFiles/OpenGL_Praktikum.dir/src/Framework/SceneElements/Transform.cpp.obj	79d1706bd494aca2
-9748	9859	7686065198313281	libs/glfw-3.2.1/src/libglfw3.a	7f148bdc7acbce15
-12	2101	7692151093484304	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj	ab9d4e71a8c90cb0
+6831	8361	7686065183312964	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_tls.c.obj	37adbcd9a1b59fc1
+2402	5124	7686065150930272	CMakeFiles/OpenGL_Praktikum.dir/framework/Input.cpp.obj	3aa35e4a541b37cb
 17	2775	7686065127464165	CMakeFiles/OpenGL_Praktikum.dir/src/Framework/Assets/ShaderProgram.cpp.obj	636d8f8ef2520675
+9748	9859	7686065198313281	libs/glfw-3.2.1/src/libglfw3.a	7f148bdc7acbce15
+7	2060	7697234848507880	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj	ab9d4e71a8c90cb0
 3	3331	7686065132987911	CMakeFiles/OpenGL_Praktikum.dir/src/Framework/Assets/AssetManager.cpp.obj	a3cf3a9a87bd79b4
-7540	9264	7686065192309264	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_window.c.obj	f3663704c5e7b483
 22	3445	7686065134113940	CMakeFiles/OpenGL_Praktikum.dir/framework/OpenGLWindow.cpp.obj	34ea2011e57f2170
+7540	9264	7686065192309264	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_window.c.obj	f3663704c5e7b483
+8	3053	7698237175403412	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj	a89dc091bea583c7
 8264	10755	7686065207221889	libs/glew-2.1.0/build/cmake/CMakeFiles/glew_s.dir/__/__/src/glew.c.obj	49302988e0a6d721
-13	2314	7692174810008034	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj	a89dc091bea583c7
-6279	7932	7686065179033527	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/window.c.obj	4f7adc10a9b5c100
 3446	5087	7686065150584678	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/context.c.obj	25e8349415fc9756
+6279	7932	7686065179033527	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/window.c.obj	4f7adc10a9b5c100
 3713	5273	7686065152431421	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/init.c.obj	c23d9b4a554c4f26
-5360	6841	7686065168085346	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/vulkan.c.obj	d183a1e3d22ea511
 2777	5359	7686065153297237	CMakeFiles/OpenGL_Praktikum.dir/framework/glerror.cpp.obj	283e4f1da4998727
-26	2020	7692151092685063	CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj	195d9e105c20c9dc
-8245	9748	7686065197204313	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/input.c.obj	e27f20b419f1800e
+5360	6841	7686065168085346	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/vulkan.c.obj	d183a1e3d22ea511
+15	1972	7697234847628145	CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj	195d9e105c20c9dc
 5088	6646	7686065166162948	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/monitor.c.obj	7ef9e67f35f28cd5
+8245	9748	7686065197204313	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/input.c.obj	e27f20b419f1800e
 5125	6673	7686065166335158	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	82d66a06693256c5
 5273	6831	7686065167859215	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	c9b9fd7628118e17
 6673	8245	7686065182160366	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/win32_time.c.obj	a83aac5291489e
@@ -26,12 +26,12 @@
 6842	8491	7686065184420325	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/egl_context.c.obj	a926327ff0927a5f
 8361	8516	7686065184908185	libs/glew-2.1.0/build/cmake/CMakeFiles/glew_s.dir/__/glew.rc.obj	b31ab018f98307f0
 8516	8843	7686065188136532	libs/stb/CMakeFiles/stb.dir/stb_image_write.c.obj	3526fea5ed75b7b5
-4	749	7692175495458573	build.ninja	e200cd586be24cf3
 7932	9454	7686065194250355	libs/glfw-3.2.1/src/CMakeFiles/glfw.dir/wgl_context.c.obj	6893a4a99f5b69c5
+4	749	7698238114480087	build.ninja	e200cd586be24cf3
 8492	9494	7686065194635396	libs/stb/CMakeFiles/stb.dir/stb_image.c.obj	e492735f915a3aa
 9494	9620	7686065195935485	libs/stb/libstb.a	5abafcb88860c9c8
 10756	10849	7686065208208944	lib/libglew32d.a	bc6e147c3a6b7648
-2314	2919	7692174815999842	OpenGL_Praktikum.exe	9fec4fbaeb613d2c
+3054	3592	7698237180744957	OpenGL_Praktikum.exe	9fec4fbaeb613d2c
 13	74	7686767474063569	CMakeFiles/OpenGL_Praktikum.dir/src/Game/wajdi.cpp.obj	20b3fc935b3f3aa4
-7	2285	7692176035625664	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj	a89dc091bea583c7
-2285	2829	7692176041012060	OpenGL_Praktikum.exe	9fec4fbaeb613d2c
+7	2102	7698238845718646	CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj	a89dc091bea583c7
+2102	2648	7698238851109538	OpenGL_Praktikum.exe	9fec4fbaeb613d2c
diff --git a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj
index a87506cd21085f47f45684ef51393fe98b44c1db..63a2c27e8568a05ca937ab514696958491ba2322 100644
Binary files a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj and b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Scene.cpp.obj differ
diff --git a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj
index 62d8ce2a6fc193e2fe81d1ac8d2508b42698506a..bbcbb4fde271c50f124c8ae4d08a9f18d920dedc 100644
Binary files a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj and b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/Game/Window.cpp.obj differ
diff --git a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj
index 7f2cfba266c50ad06f98a860eda77f62c8ee5905..5f1349e1ed295db658a846143a0829eb9b2909fa 100644
Binary files a/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj and b/cmake-build-debug/CMakeFiles/OpenGL_Praktikum.dir/src/main.cpp.obj differ
diff --git a/cmake-build-debug/CMakeFiles/clion-Debug-log.txt b/cmake-build-debug/CMakeFiles/clion-Debug-log.txt
index dd7ee5ebb141e2d427ca62f5b1e9c5e02283f225..a4bde58d101a71462de2c7b611fbd6e0828d6f55 100644
--- a/cmake-build-debug/CMakeFiles/clion-Debug-log.txt
+++ b/cmake-build-debug/CMakeFiles/clion-Debug-log.txt
@@ -69,6 +69,6 @@ CMake Deprecation Warning at libs/stb/CMakeLists.txt:1 (cmake_minimum_required):
   CMake that the project does not need compatibility with older versions.
 
 
--- Configuring done (0.5s)
+-- Configuring done (0.3s)
 -- Generating done (0.1s)
 -- Build files have been written to: C:/Users/saifa/Desktop/Visual Computing/repo/cmake-build-debug
diff --git a/cmake-build-debug/OpenGL_Praktikum.exe b/cmake-build-debug/OpenGL_Praktikum.exe
index e3f961f4d26983c718940fc3e6e35a0d50994984..4875a48f7e872f8d1279930258b404c7cc90b0c9 100644
Binary files a/cmake-build-debug/OpenGL_Praktikum.exe and b/cmake-build-debug/OpenGL_Praktikum.exe differ
diff --git a/cmake-build-debug/Testing/Temporary/LastTest.log b/cmake-build-debug/Testing/Temporary/LastTest.log
index 7f07e21bd5aa7e12b5f990fe135f89e0f79265e2..f746dd521baac5b18189a964efd3f6eaffc6069d 100644
--- a/cmake-build-debug/Testing/Temporary/LastTest.log
+++ b/cmake-build-debug/Testing/Temporary/LastTest.log
@@ -1,3 +1,3 @@
-Start testing: May 17 22:40 Mitteleurop�ische Sommerzeit
+Start testing: May 24 23:04 Mitteleurop�ische Sommerzeit
 ----------------------------------------------------------
-End testing: May 17 22:40 Mitteleurop�ische Sommerzeit
+End testing: May 24 23:04 Mitteleurop�ische Sommerzeit
diff --git a/cmake-build-debug/assets/shaders/fragment.glsl b/cmake-build-debug/assets/shaders/fragment.glsl
index c3c844785bab8e3acfc43e5fccac4290175d0a6b..40664ab349e88a6b3f6c082d65deeb88d19deda8 100644
--- a/cmake-build-debug/assets/shaders/fragment.glsl
+++ b/cmake-build-debug/assets/shaders/fragment.glsl
@@ -1,12 +1,45 @@
 #version 330 core
 
-in vec3 colorVS;
-in mat3 animationMatrix;
+uniform vec3 lightColor = vec3(1.0, 0.95, 0.8);
+uniform vec3 matSpecular = vec3(1.0, 1.0, 1.0); // Metall (chrom)
+uniform float matShininess = 20.0f;
 
 out vec4 color;
 
+in vec3 normal;
+in vec3 lightDir;
+in vec3 colorVS;
+in vec3 viewDir;
+
+
 void main() {
-    //vec3 animatedColor = animationMatrix * colorVS;
-    vec3 animatedColor =   colorVS;
-    color = vec4(animatedColor, 1.0);
+
+
+    // normalize everything necessary
+    vec3 N = normalize(normal);
+    vec3 L = normalize(lightDir);
+
+    // diffuse component
+    float cosa = max(0.0, dot(N,L));
+    vec3 diffuseTerm = colorVS * lightColor;
+
+    color = vec4( diffuseTerm * cosa, 1.0);
+
+    // specular component//
+    vec3 V = normalize(viewDir);
+    vec3 R = normalize(reflect(-L,N));
+    float cosBeta = max(0.0, dot(R,V));
+    float cosBetak = pow(cosBeta, matShininess);
+    vec3 specularTerm = matSpecular * lightColor;
+
+    color += vec4(specularTerm * cosBetak, 1.0);
+
+    // ambient component //
+    float ambientStrength = 0.2;
+    vec3 ambientColor = colorVS; // this could also be a global ambient color
+    vec3 ambientTerm = ambientColor * lightColor * ambientStrength;
+
+    color += vec4(ambientTerm, 1.0);
+
+
 }
\ No newline at end of file
diff --git a/cmake-build-debug/assets/shaders/vertex.glsl b/cmake-build-debug/assets/shaders/vertex.glsl
index ae9fab182511a6b9c1ab6edfc176383338aa322a..1683b9feb18a666bef3ee0c12c846c6c6213ee62 100644
--- a/cmake-build-debug/assets/shaders/vertex.glsl
+++ b/cmake-build-debug/assets/shaders/vertex.glsl
@@ -1,21 +1,36 @@
 #version 330 core
 
-layout (location = 0) in vec3 pos;
-layout (location = 1) in vec3 normalVector;
+layout (location = 0) in vec3 vertex;
+layout (location = 1) in vec3 vertex_normal;
 layout (location = 2) in vec3 colorRGB;
 
-out vec3 colorVS;
-out mat3 animationMatrix;
 
 uniform mat4 model;
-uniform mat3 animationMatrixFromUniform;
-
 uniform mat4 view;
 uniform mat4 projection;
+uniform vec3 lightPos;
+
+out vec3 normal, lightDir;
+out vec3 colorVS;
+out vec3 viewDir;
+
 
 void main(){
+
+    gl_Position = projection * view * model *  vec4(vertex, 1.0);
     colorVS = colorRGB;
-    animationMatrix = animationMatrixFromUniform;
-    gl_Position = projection * view * model * vec4(pos.x, pos.y, pos.z, 1.0);
-    //gl_Position = model * vec4(pos.x, pos.y, pos.z, 1.0);
+
+    // compute normal in view space //
+    vec4 n = vec4(vertex_normal, 1.0);
+    mat4 normalMat = transpose(inverse(view * model));
+    normal = (normalMat * n).xyz;
+
+    // compute light direction in view space //
+    vec4 lp = vec4(view * vec4(lightPos, 1.0));
+    vec4 P = view * model * vec4(vertex, 1.0);
+    lightDir = (lp - P).xyz;
+
+    // specular term //
+    viewDir = -P.xyz;
+
 }
diff --git a/cmake-build-debug/glerrorlog.txt b/cmake-build-debug/glerrorlog.txt
new file mode 100644
index 0000000000000000000000000000000000000000..35c34714e37abec441e2e87d7c54d69bc61258e3
--- /dev/null
+++ b/cmake-build-debug/glerrorlog.txt
@@ -0,0 +1,26 @@
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
+An OpenGL error occured at file: "C:/Users/saifa/Desktop/Visual Computing/repo/src/Framework/Assets/ShaderProgram.h", line: 225:
+invalid operation
diff --git a/cmake-build-debug/perflog.csv b/cmake-build-debug/perflog.csv
index 3a93ccc2dea11c913df920445740a7ac3b959af3..504f807572df83b98c88ed9022ebb2dad23a06dd 100644
--- a/cmake-build-debug/perflog.csv
+++ b/cmake-build-debug/perflog.csv
@@ -1,23 +1,348 @@
-9.63027,16.5575,103.839,60.3956
-14.0531,18.8094,71.1589,53.1649
-10.7378,16.14,93.1292,61.9579
-10.7157,17.5091,93.3211,57.1132
-10.7615,20.3542,92.924,49.1299
-11.4212,20.9038,87.5568,47.8382
-10.7757,17.5094,92.8014,57.1122
-10.9347,17.496,91.4521,57.1559
-10.8413,20.7932,92.2395,48.0926
-10.8569,17.7613,92.107,56.3022
-11.0058,20.7413,90.8613,48.213
-10.8398,20.4669,92.2524,48.8594
-10.8514,17.7736,92.154,56.2632
-10.9272,20.9221,91.5149,47.7963
-10.8534,17.694,92.1368,56.5163
-11.1691,20.8271,89.5329,48.0144
-11.0069,17.3086,90.8518,57.7747
-10.9379,17.5873,91.4255,56.8592
-9.37321,20.5845,106.687,48.5802
-11.0787,20.9632,90.2631,47.7026
-11.0809,17.6249,90.2452,56.7379
-11.629,21.1175,85.9919,47.3541
-12.4808,16.7333,80.1231,59.7611
+7.11189,15.7292,140.61,63.576
+7.04252,12.0832,141.995,82.7595
+7.65093,23.8558,130.703,41.9185
+6.93657,8.3827,144.163,119.293
+6.93379,7.4675,144.221,133.914
+6.9443,8.2295,144.003,121.514
+6.92817,7.3797,144.338,135.507
+7.03151,11.5717,142.217,86.4177
+6.93904,7.6593,144.112,130.56
+7.03106,15.4264,142.226,64.8239
+7.45846,11.9655,134.076,83.5736
+6.92395,7.5951,144.426,131.664
+6.9363,7.7955,144.169,128.279
+7.13119,12.9061,140.229,77.4827
+6.93437,7.8861,144.209,126.805
+7.59948,13.1039,131.588,76.3132
+7.11621,19.1577,140.524,52.1983
+6.92573,7.6035,144.389,131.518
+7.22996,12.9634,138.313,77.1403
+7.34176,13.2812,136.207,75.2944
+7.44424,13.0365,134.332,76.7077
+6.93463,7.7292,144.204,129.379
+7.23117,12.5557,138.29,79.6451
+6.93836,8.1849,144.126,122.176
+7.13244,12.4507,140.204,80.3168
+6.93678,9.0351,144.159,110.679
+7.13029,12.4909,140.247,80.0583
+6.93328,7.6231,144.232,131.18
+6.98051,9.8854,143.256,101.159
+6.89212,7.711,145.093,129.685
+6.93565,7.699,144.183,129.887
+8.33683,22.9105,119.95,43.6481
+6.98565,13.7267,143.151,72.8507
+6.93513,7.5397,144.193,132.631
+7.33919,13.9469,136.255,71.7005
+34.6576,450.521,28.8537,2.21965
+6.94425,7.8211,144.004,127.859
+6.92882,7.7466,144.325,129.089
+6.93924,10.0321,144.108,99.68
+6.93277,9.433,144.242,106.011
+6.93686,7.6381,144.157,130.923
+6.93732,7.4863,144.148,133.577
+6.9449,7.9778,143.991,125.348
+6.92538,10.2432,144.396,97.6257
+6.93476,7.7496,144.201,129.039
+6.94084,7.4265,144.075,134.653
+6.9328,8.3317,144.242,120.024
+6.96858,9.2808,143.501,107.749
+7.41657,19.1138,134.833,52.3182
+7.12913,11.8005,140.27,84.7422
+6.93572,10.298,144.181,97.1062
+6.9341,7.3171,144.215,136.666
+6.94599,7.7631,143.968,128.815
+6.93031,7.3176,144.294,136.657
+7.22743,22.015,138.362,45.4236
+7.59977,19.8386,131.583,50.4068
+7.77241,13.8214,128.66,72.3516
+9.48954,26.0351,105.379,38.4097
+9.4864,22.3046,105.414,44.8338
+7.38971,12.9808,135.323,77.0369
+7.44388,19.5797,134.339,51.0733
+7.08366,10.642,141.17,93.9673
+7.29019,16.2238,137.171,61.6378
+6.93167,10.8445,144.265,92.2126
+7.46573,21.1678,133.945,47.2416
+7.43091,17.7581,134.573,56.3123
+6.93704,10.8212,144.154,92.4112
+7.03104,11.2699,142.226,88.7319
+7.34042,12.4098,136.232,80.5815
+6.93165,10.5912,144.266,94.418
+6.94247,9.5863,144.041,104.316
+7.22862,28.757,138.339,34.7741
+6.93681,7.4792,144.158,133.704
+7.14162,12.6089,140.024,79.3091
+7.0211,12.4413,142.428,80.3775
+6.93803,7.449,144.133,134.246
+7.33758,12.4555,136.285,80.2858
+6.93216,7.4921,144.255,133.474
+7.94851,69.3008,125.81,14.4298
+7.42733,30.2772,134.638,33.0282
+6.93632,7.4984,144.169,133.362
+6.93534,7.6129,144.189,131.356
+6.93704,7.5347,144.154,132.719
+6.93658,7.3741,144.163,135.61
+7.04699,12.6886,141.905,78.8109
+8.02154,75.6884,124.664,13.2121
+7.34159,18.2428,136.21,54.8161
+6.93419,7.4823,144.213,133.649
+7.2338,13.1841,138.24,75.8489
+7.15293,12.5685,139.803,79.564
+8.14088,15.02,122.837,66.5779
+6.93578,7.507,144.18,133.209
+7.13369,11.8591,140.18,84.3234
+6.93469,7.4857,144.202,133.588
+6.93481,7.8564,144.2,127.285
+6.93638,9.1826,144.167,108.902
+6.93611,7.5444,144.173,132.549
+6.93651,9.0269,144.165,110.78
+7.03326,12.7766,142.182,78.2681
+6.93485,9.1489,144.199,109.303
+7.05455,12.9883,141.752,76.9924
+7.53249,14.1706,132.758,70.5686
+6.96168,9.1371,143.644,109.444
+7.00702,12.9217,142.714,77.3892
+6.93461,7.4712,144.204,133.847
+6.93771,9.6919,144.14,103.179
+6.93665,9.288,144.162,107.666
+7.04992,11.5882,141.846,86.2947
+7.01417,13.0133,142.569,76.8445
+6.93791,10.2855,144.136,97.2242
+7.03017,12.3738,142.244,80.8159
+6.93889,7.3544,144.115,135.973
+6.9335,7.5999,144.227,131.581
+6.93869,7.3362,144.119,136.31
+6.96091,9.3704,143.659,106.719
+7.00608,11.6532,142.733,85.8133
+6.93702,9.8448,144.154,101.576
+6.93431,7.4701,144.211,133.867
+6.93935,7.6756,144.106,130.283
+6.93282,9.3128,144.241,107.379
+7.2346,12.6605,138.225,78.9858
+6.93465,7.62,144.203,131.234
+7.16959,12.5066,139.478,79.9578
+7.09794,11.3481,140.886,88.1205
+6.93558,7.4522,144.184,134.189
+6.93579,7.4083,144.18,134.984
+6.93413,7.4308,144.214,134.575
+7.33852,12.9746,136.267,77.0737
+7.12515,12.9296,140.348,77.3419
+7.03882,15.362,142.069,65.0957
+6.93588,7.589,144.178,131.77
+6.93707,9.4657,144.153,105.645
+7.03196,11.9814,142.208,83.4627
+7.03294,12.2453,142.188,81.664
+7.23573,11.7912,138.203,84.809
+6.93321,9.6993,144.233,103.1
+6.93885,8.9507,144.116,111.723
+6.93429,10.5494,144.211,94.7921
+6.93417,10.6159,144.213,94.1983
+6.93787,7.7869,144.137,128.421
+6.93512,9.6526,144.194,103.599
+6.96314,9.033,143.613,110.705
+7.10445,11.6793,140.757,85.6216
+6.9343,7.5361,144.211,132.695
+6.97151,9.3374,143.441,107.096
+7.09563,17.6337,140.932,56.7096
+6.93664,10.6209,144.162,94.154
+6.93691,10.0547,144.156,99.456
+6.93513,10.4508,144.193,95.6865
+6.94221,7.7139,144.046,129.636
+6.92999,8.9132,144.3,112.193
+7.03456,11.0155,142.155,90.7812
+6.93452,9.8878,144.206,101.135
+6.94456,7.697,143.998,129.921
+6.92772,8.3509,144.348,119.748
+6.9343,7.3617,144.211,135.838
+6.93812,8.5697,144.131,116.69
+6.93556,8.8975,144.184,112.391
+6.93328,10.3615,144.232,96.5111
+7.13482,12.0643,140.158,82.8892
+6.93361,7.757,144.225,128.916
+6.9365,7.9135,144.165,126.366
+7.05932,11.8165,141.657,84.6274
+7.02808,11.5588,142.286,86.5142
+7.01194,11.7754,142.614,84.9228
+7.03167,12.4791,142.214,80.134
+7.36049,19.0967,135.861,52.3651
+6.9198,7.4922,144.513,133.472
+6.9394,7.5414,144.105,132.601
+6.93403,8.0571,144.216,124.114
+6.94321,7.8277,144.026,127.751
+6.92798,7.5983,144.342,131.608
+7.1662,12.5796,139.544,79.4938
+7.00198,12.1613,142.817,82.2281
+7.03077,11.7055,142.232,85.4299
+6.93648,7.5059,144.165,133.229
+7.23425,12.5735,138.231,79.5323
+7.03302,12.5993,142.186,79.3695
+6.93638,8.4913,144.167,117.768
+6.93564,7.6214,144.183,131.209
+6.93502,7.3877,144.196,135.36
+7.15321,11.2875,139.797,88.5936
+6.91707,7.5222,144.57,132.94
+6.93741,7.8255,144.146,127.787
+7.14773,11.9319,139.905,83.8089
+7.12012,12.1748,140.447,82.1369
+7.05264,11.5655,141.791,86.4641
+7.21152,12.5192,138.667,79.8773
+6.93559,9.3286,144.184,107.197
+6.93712,8.956,144.152,111.657
+7.13151,13.5162,140.223,73.9853
+6.93585,9.0867,144.179,110.051
+7.23405,13.6255,138.235,73.3918
+6.93439,7.398,144.209,135.172
+6.97039,9.4138,143.464,106.227
+7.30565,19.1289,136.88,52.2769
+7.12684,17.1368,140.315,58.354
+6.93798,7.7519,144.134,129.001
+6.93535,7.9171,144.189,126.309
+6.93499,7.9421,144.196,125.911
+6.93755,8.1031,144.143,123.41
+6.93707,8.2933,144.153,120.579
+6.93525,9.5245,144.191,104.992
+7.03552,10.9619,142.136,91.2251
+6.93356,7.5795,144.226,131.935
+7.03183,11.4654,142.211,87.2189
+6.93664,9.2716,144.162,107.856
+7.13152,12.0298,140.223,83.1269
+6.93126,7.7653,144.274,128.778
+6.93977,7.2918,144.097,137.14
+6.93471,7.5487,144.202,132.473
+7.1326,11.8131,140.201,84.6518
+7.03292,11.9261,142.188,83.8497
+7.33638,12.5438,136.307,79.7207
+6.93625,9.3157,144.17,107.346
+6.93614,9.5098,144.172,105.155
+7.2344,13.1073,138.229,76.2934
+7.03199,11.6739,142.207,85.6612
+7.1306,12.0732,140.241,82.8281
+6.93798,7.5297,144.134,132.807
+6.93436,8.68,144.209,115.207
+7.03142,11.6787,142.219,85.626
+7.55724,12.3287,132.324,81.1116
+6.93604,7.6812,144.174,130.188
+7.15431,12.5088,139.776,79.9437
+7.21235,20.1725,138.651,49.5724
+7.13067,13.6437,140.239,73.2939
+6.93537,7.4263,144.188,134.657
+7.33803,22.2399,136.276,44.9642
+7.13054,19.8559,140.242,50.3629
+11.1712,23.5877,89.5157,42.395
+8.00422,14.9555,124.934,66.865
+7.21797,13.23,138.543,75.5858
+6.93408,10.8694,144.215,92.0014
+6.94037,10.2162,144.085,97.8838
+6.93827,10.3724,144.128,96.4097
+7.61677,15.7476,131.289,63.5017
+7.38388,17.2942,135.43,57.8229
+7.13559,11.5043,140.143,86.924
+7.02608,12.9884,142.327,76.9918
+6.94156,8.1491,144.06,122.713
+7.24605,14.6957,138.006,68.0471
+7.44252,34.361,134.363,29.1028
+7.54031,12.2747,132.62,81.4684
+7.05188,12.1184,141.806,82.5191
+7.11893,13.3665,140.47,74.8139
+7.0444,11.2625,141.957,88.7902
+6.91937,10.7848,144.522,92.7231
+7.08555,11.0857,141.132,90.2063
+7.08097,10.7729,141.224,92.8255
+6.98529,10.7609,143.158,92.929
+6.98163,10.8448,143.233,92.2101
+7.05652,11.8517,141.713,84.3761
+6.92307,10.8995,144.445,91.7473
+6.92627,10.6721,144.378,93.7023
+6.93545,8.749,144.187,114.299
+6.93762,8.3102,144.142,120.334
+6.93285,8.3754,144.241,119.397
+7.35759,27.2521,135.914,36.6944
+6.91618,8.1641,144.588,122.487
+6.93742,8.2767,144.146,120.821
+6.93276,8.1199,144.243,123.154
+6.94361,8.3645,144.017,119.553
+6.93282,8.1314,144.241,122.98
+6.94957,10.9842,143.894,91.0399
+7.21845,11.61,138.534,86.1326
+7.45013,17.7174,134.226,56.4417
+7.02952,11.2863,142.257,88.603
+6.95545,11.0727,143.772,90.3122
+7.10884,11.7227,140.67,85.3046
+7.04424,11.4855,141.96,87.0663
+6.92743,11.4837,144.354,87.0799
+7.13217,10.9614,140.21,91.2292
+6.93722,10.7452,144.15,93.0648
+7.35847,13.2636,135.898,75.3943
+6.91647,8.6317,144.582,115.852
+6.93592,8.2163,144.177,121.709
+7.34025,20.2121,136.235,49.4753
+6.93822,8.5987,144.129,116.297
+6.93305,8.6406,144.237,115.733
+7.46695,13.1032,133.923,76.3172
+6.91594,8.5361,144.593,117.15
+6.93765,8.2027,144.141,121.911
+7.23202,12.8952,138.274,77.5482
+6.93891,10.5529,144.115,94.7607
+7.92631,20.8009,126.162,48.0748
+7.3955,11.5525,135.217,86.5614
+7.84393,19.0465,127.487,52.5031
+7.23003,11.5839,138.312,86.3267
+7.67753,15.2377,130.25,65.6267
+7.50533,11.8949,133.239,84.0696
+7.85494,15.5496,127.308,64.3103
+6.93712,11.1451,144.152,89.7255
+8.23092,20.8709,121.493,47.9136
+7.58944,13.3116,131.762,75.1224
+7.95031,33.6252,125.781,29.7396
+6.92815,8.8168,144.339,113.42
+6.94134,8.0297,144.064,124.538
+6.93741,8.1369,144.146,122.897
+6.94695,8.1202,143.948,123.15
+6.93168,8.8352,144.265,113.184
+7.32559,12.6949,136.508,78.7718
+6.93653,8.5384,144.164,117.118
+6.93624,9.3745,144.17,106.672
+6.9375,9.2926,144.144,107.613
+7.14531,11.3809,139.952,87.8665
+7.11356,10.9476,140.577,91.3442
+7.44958,26.4755,134.236,37.7708
+7.13275,11.2141,140.198,89.1735
+7.28986,11.4754,137.177,87.1429
+7.17396,12.2079,139.393,81.9142
+7.2842,11.4947,137.283,86.9966
+7.08139,11.4938,141.215,87.0034
+7.79065,26.0983,128.359,38.3167
+7.04127,14.3031,142.02,69.9149
+6.92458,8.596,144.413,116.333
+6.95336,8.5295,143.815,117.24
+7.21954,12.7913,138.513,78.1781
+6.93438,8.084,144.209,123.701
+7.58342,12.5052,131.867,79.9667
+7.00767,11.3921,142.701,87.7801
+6.94674,8.5902,143.953,116.412
+7.43262,15.181,134.542,65.8718
+7.46799,12.7709,133.905,78.303
+7.11245,11.9268,140.599,83.8448
+8.44566,19.9369,118.404,50.1582
+7.61637,16.9122,131.296,59.1289
+7.7239,15.1625,129.468,65.9522
+7.33665,11.4489,136.302,87.3446
+7.48366,18.2788,133.625,54.7082
+7.10324,14.7499,140.781,67.7971
+7.03565,11.0676,142.133,90.3538
+8.57876,15.5977,116.567,64.112
+7.39183,11.7294,135.284,85.2559
+7.72863,14.4056,129.389,69.4174
+6.93615,8.5242,144.172,117.313
+7.61538,18.5973,131.313,53.7712
+6.97805,10.9517,143.306,91.31
+7.49202,17.7671,133.475,56.2838
+7.82243,20.6435,127.838,48.4414
+7.48573,19.1003,133.587,52.3552
+7.12345,22.7698,140.381,43.9178
+6.93516,8.7437,144.193,114.368
+7.25997,17.9205,137.742,55.802
+7.3203,18.9605,136.607,52.7412
+8.30118,21.8097,120.465,45.8512
+7.17863,13.5141,139.302,73.9968
+7.62589,15.2288,131.132,65.6651
diff --git a/src/Game/Scene.cpp b/src/Game/Scene.cpp
index dc3c4b329cd9a25d99440adbc2eaefd2e86e424b..7ce0a73ef2735377726c2b827b2650f2594d15b4 100644
--- a/src/Game/Scene.cpp
+++ b/src/Game/Scene.cpp
@@ -59,7 +59,6 @@ void createAndBind_VBO_VAO_IBO(ObjectBuffer& objectBuffer){
 }
 
 
-
 void drawObject(ObjectBuffer& obj){
     glBindVertexArray(obj.vaoID);
     glDrawArrays(GL_TRIANGLES,0,obj.verticesLength);
@@ -79,6 +78,21 @@ glm::vec3 setRotationAxe(float angle,char axe='x'){
 }
 
 
+const glm::mat4 getMatrixSun() {
+
+    float translateX = 1.0;
+    float translateY = 1.0;
+    float sunRotationSpeed = 0.1;
+    float angleRotation = animationTime * 360.0f * sunRotationSpeed;
+
+    Transform translate,rotation,scale;
+    translate.translate(glm::vec3(translateX,translateY,0.0f));
+    rotation.rotateAroundPoint(glm::vec3( 0.0f,0.0f, 0.0f),setRotationAxe(angleRotation,'y'));
+    scale.scale(glm::vec3(0.2, 0.2, 0.2));
+
+    return rotation.getTransformMatrix() * translate.getTransformMatrix() * scale.getTransformMatrix();
+}
+
 const glm::mat4 getMatrixHead() {
     float ty= (0.375 + gap) + (0.25 * 0.5); // body + 1/2 head
     Transform translate,scale;
@@ -88,7 +102,6 @@ const glm::mat4 getMatrixHead() {
 }
 
 const glm::mat4 getMatrixBody() {
-
     Transform translate,scale;
     scale.scale(glm::vec3(0.5, 0.75, roboterBodyHeadThiknessZ));
     translate.translate(glm::vec3(0.0,0.0 , 0.0f));
@@ -97,7 +110,6 @@ const glm::mat4 getMatrixBody() {
 
 const glm::mat4 getMatrixLegs(char x) {
 
-
     float legScaleX = 0.1;
     float legScaleY = 0.4;
     float legX = 0.12 ;
@@ -132,7 +144,7 @@ const glm::mat4 getMatrixShoulders(char x) {
     float scaleY = 0.3;
 
     float translateX = (0.5 * 0.5) + (scaleX * 0.5) + gap; // bodyX + shoulder
-    float translateY = (0.75 * 0.5) - (scaleY * 0.5); // bodyY - shoulderY
+    float translateY = (0.75 * 0.5) - (scaleY * 0.5) ; // bodyY - shoulderY
     float translateZ = 0.0f;
 
     float angleShoulderAndLegs = 20.0f * sin(animationTime * rotationSpeed);
@@ -162,20 +174,21 @@ const glm::mat4 getMatrixArms(char x) {
 
     // shoulder and arm have same value
     float scaleY = 0.3;
-
-    float translateY = 1.05 + gap;
+    float gapArm = 0.1;
+    //float translateY = 1.05 + gap;
+    float translateY =  (0.5 *2)  + gapArm; //
 
     Transform translate;
-    translate.translate(glm::vec3(0.0,  - translateY, 0.0));
+    translate.translate(glm::vec3(0.0,  -translateY, 0.0));
 
     float rotationSpeedArm = 0.7;
-    float angle = 60.0f * (sin(animationTime * rotationSpeedArm) + 1) / 2 ;
+    float angle = 50.0f * ( (sin(animationTime * rotationSpeedArm) + 1) / 2 ) ;
     Transform rotate;
     rotate.rotateAroundPoint(glm::vec3( 0.0, 0.5, 0.0f),glm::vec3(glm::radians(-angle),0.0f,0.0f));
 
 
     if(x == 'l'){
-        return   getMatrixShoulders('l') * translate.getTransformMatrix() * rotate.getTransformMatrix();
+        return   getMatrixShoulders('l') * translate.getTransformMatrix()  * rotate.getTransformMatrix();
     }else if(x == 'r'){
         return   getMatrixShoulders('r') * translate.getTransformMatrix() * rotate.getTransformMatrix();
     }else{
@@ -299,8 +312,8 @@ void Scene::render(float dt)
     glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
-    float animationSpeed = 1.00f;
-    float colorAnimValue = (sin(animationTime * animationSpeed) + 1.5f) / 2.0f; // → [0, 1]
+    float animationSpeed = 10.00f;
+    float colorAnimValue = (sin(animationTime * animationSpeed) + 1.5f) / 2.0f;
     glm::mat3 animationMatrixFromUniform = glm::mat3(
             colorAnimValue + 0.9, 0.0f,         0.0f,
             0.0f,         colorAnimValue + 0.2, 0.0f,
@@ -309,213 +322,65 @@ void Scene::render(float dt)
     m_shader->setUniform("animationMatrixFromUniform", animationMatrixFromUniform , false);
 
     glm::mat4 view = glm::lookAt(
-            glm::vec3(3.0f, 1.0f, 2.0f), // Kameraposition für bessere Sicht
-            glm::vec3(0.0f), // Blickpunkt
+            glm::vec3(x_eye, y_eye, z_eye), // Kameraposition für bessere Sicht
+            glm::vec3(0.0f,0.0f,0.0f), // Blickpunkt
             glm::vec3(0.0f, 1.0f, 0.0f) // Up-Vector
     );
     m_shader->setUniform("view", view, false);
 
-    //float angleShoulderAndLegs = 10.0f * sin(animationTime * rotationSpeed);
 
     // Projektionsmatrix (Perspektive)
     glm::mat4 projection = glm::perspective(
             glm::radians(45.0f),
-            800.0f/600.0f,
+            800.0f/800.0f,
             0.1f,
             100.0f
     );
     m_shader->setUniform("projection", projection, false);
 
+    // sun
+    m_shader->setUniform("model", getMatrixSun(), false);
+
+    glm::vec3 sunPos = glm::vec3(getMatrixSun()[3]);
+    m_shader->setUniform("lightPos", sunPos);
+
+    drawObject(obj);
+
+
 
-    float rotationSpeedAllReboter = 0.05f;
-    float angleRotation = 360.0f * sin(animationTime * rotationSpeedAllReboter);
-    Transform rotateRoboter;
-    rotateRoboter.rotateAroundPoint(glm::vec3( 0.0f, 0.0f, 0.0f), glm::vec3(0.0f,glm::radians(angleRotation),0.0f));
 
     // head
-    m_shader->setUniform("model", rotateRoboter.getTransformMatrix() * getMatrixHead(), false);
+    m_shader->setUniform("model", getMatrixHead(), false);
     drawObject(obj);
 
     // body
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixBody(), false);
+    m_shader->setUniform("model",getMatrixBody(), false);
     drawObject(obj);
 
     // Leg R
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixLegs('r'), false);
+    m_shader->setUniform("model",getMatrixLegs('r'), false);
     drawObject(obj);
 
     // Leg L
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixLegs('l'), false);
+    m_shader->setUniform("model", getMatrixLegs('l'), false);
     drawObject(obj);
 
     // Shoulder R
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixShoulders('r'), false);
+    m_shader->setUniform("model", getMatrixShoulders('r'), false);
     drawObject(obj);
 
     // Shoulder L
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixShoulders('l'), false);
+    m_shader->setUniform("model", getMatrixShoulders('l'), false);
     drawObject(obj);
 
     // Arm R
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixArms('r'), false);
+    m_shader->setUniform("model", getMatrixArms('r'), false);
     drawObject(obj);
 
     // Arm L
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * getMatrixArms('l'), false);
+    m_shader->setUniform("model", getMatrixArms('l'), false);
     drawObject(obj);
 
-
-
-
-
-
-
-
-
-
-
-
-
-/*
-    float gap = 0.04;
-    float gapShoulderArm = 0.01;
-
-    float rotationSpeed = 0.4f;
-
-    float boxHeight = 0.5f;
-    float boxWidth = 0.5f;
-
-    float bodyScaleX = 0.5f; // halbieren
-    float bodyScaleY = 0.8f;
-    float bodyScaleZ = 0.5f;
-    float bodyX = 0.0f;
-    float bodyY = 0.0f;
-
-    float headScaleXY = bodyScaleX / 2;
-    float headScaleZ = 0.4;
-    float headX = 0.0f;
-    float headY = (boxHeight*bodyScaleY) + (headScaleXY/2) + gap;
-
-    float legScaleX = 0.1;
-    float legScaleY = 0.4;
-    float legScaleZ = 0.25;
-
-    float legX = 0.12;
-    float legY = (boxHeight*bodyScaleY) + (legScaleY/2) + gap;
-    float legRotationPointX = legX;
-    float legRotationPointY = gap + (boxHeight*bodyScaleY); // body + gap
-
-    float shoulderArmScaleX = 0.1;
-    float shoulderArmScaleY = 0.3;
-    float shoulderArmScaleZ = 0.25;
-
-    float shoulderX = (boxWidth * bodyScaleX) + (boxWidth * shoulderArmScaleX) + gap ;
-    float shoulderY =  (boxHeight*bodyScaleY) - (boxHeight * shoulderArmScaleY);
-    float shoulderRotationPointX = shoulderX;
-    float shoulderRotationPointY = (boxHeight*bodyScaleY); // body + gap
-
-
-    // translate to shoulder position and then translate down the size of the shoulder
-    //boxHeight * shoulderArmScaleY is half size of shoulder
-    // we will make the Arms a littel bit different (scaling than rotation than translation) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-    float ArmY = (shoulderY - ( 2 * (boxHeight * shoulderArmScaleY) ) ) - gapShoulderArm;
-    float ArmX = (boxWidth * bodyScaleX) + (boxWidth * shoulderArmScaleX) + gapShoulderArm ;
-    float armRotationPointX = 0.0f;
-    float armRotationPointY = shoulderArmScaleY * boxHeight;
-
-
-    float angleShoulderAndLegs = 360.0f * sin(animationTime * rotationSpeed);
-    float angleArm = 15.0f * ((sin(-animationTime * rotationSpeed) + 1.0f) / 2.0f); // sin value is between [0..1] not [-1..1]
-
-
-    float rotationSpeedAllReboter = 0.001f;
-    float angleRotation = 0.0f; //* sin(animationTime * rotationSpeedAllReboter);
-    Transform rotateRoboter;
-    rotateRoboter.rotateAroundPoint(glm::vec3( 0.0f, 0.0f, 0.0f), glm::vec3(0.0f,glm::radians(angleRotation),0.0f));
-
-
-    Transform rotateLegLeft;
-    rotateLegLeft.rotateAroundPoint(glm::vec3( -legRotationPointX, -legRotationPointY, 0.0f), setRotationAxe(angleShoulderAndLegs));
-
-    Transform rotateLegRight;
-    rotateLegRight.rotateAroundPoint(glm::vec3( legRotationPointX, -legRotationPointY, 0.0f), setRotationAxe(-angleShoulderAndLegs));
-
-    Transform rotateShoulderLeft;
-    rotateShoulderLeft.rotateAroundPoint(glm::vec3( -shoulderRotationPointX, shoulderRotationPointY, 0.0f), setRotationAxe(angleShoulderAndLegs));
-
-    Transform rotateShoulderRight;
-    rotateShoulderRight.rotateAroundPoint(glm::vec3( shoulderRotationPointX, shoulderRotationPointY, 0.0f), setRotationAxe(-angleShoulderAndLegs));
-
-    Transform rotateHandLeft;
-    rotateHandLeft.rotateAroundPoint(glm::vec3( -armRotationPointX, armRotationPointY, 0.0f), setRotationAxe(angleArm));
-
-    Transform rotateHandRight;
-    rotateHandRight.rotateAroundPoint(glm::vec3( armRotationPointX, armRotationPointY, 0.0f), setRotationAxe(-angleArm));
-
-    //Transform rotateRobot;
-    //float viewAngle = 60.0;
-    //rotateRobot.rotateAroundPoint(glm::vec3( 0.0,0.0,0.0),setRotationAxe(viewAngle,'y'));
-
-
-
-
-
-    // Body
-    Transform T11,T12;
-    T12.scale(glm::vec3(bodyScaleX, bodyScaleY,bodyScaleZ));
-    T11.translate(glm::vec3(0.0f, 0.0f, 0.0f));
-    //m_shader->setUniform("model",    rotateRoboter.getTransformMatrix() * T11.getTransformMatrix() *  T12.getTransformMatrix(), false);
-    //drawObject(obj);
-
-    // Head
-    Transform T1,T2;
-    T2.scale(glm::vec3(headScaleXY, headScaleXY, headScaleZ));
-    T1.translate(glm::vec3(headX,headY , 0.0f));
-    //m_shader->setUniform("model",  rotateRoboter.getTransformMatrix() * T1.getTransformMatrix() * T2.getTransformMatrix(), false);
-   // drawObject(obj);
-
-    // Legs
-    Transform T8,T9,T10;
-    T9.scale(glm::vec3(legScaleX, legScaleY, legScaleZ));
-
-    //Left Leg
-    T8.translate(glm::vec3(-legX, -legY, 0.0f)); // translate Left Leg
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * rotateLegLeft.getTransformMatrix() * T8.getTransformMatrix() * T9.getTransformMatrix(), false);
-   // drawObject(obj);
-
-    //Right Leg
-    T10.translate(glm::vec3(legX, -legY , 0.0f)); // translate Left Leg
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix() * rotateLegRight.getTransformMatrix() * T10.getTransformMatrix() * T9.getTransformMatrix(), false);
-    //drawObject(obj);
-
-    // shoulders &  Arms
-    Transform T3,T4,T5,T6,T7;
-    T5.scale(glm::vec3(shoulderArmScaleX, shoulderArmScaleY, shoulderArmScaleZ));
-
-    //Left shoulder
-    T7.translate(glm::vec3(-shoulderX, shoulderY , 0.0f)); // translate Left Leg
-    m_shader->setUniform("model", rotateRoboter.getTransformMatrix() * rotateShoulderLeft.getTransformMatrix() * T7.getTransformMatrix() * T5.getTransformMatrix(), false);
-    //drawObject(obj);
-
-    //Right shoulder
-    T4.translate(glm::vec3(shoulderX, shoulderY , 0.0f)); // translate Left Leg
-    m_shader->setUniform("model", rotateRoboter.getTransformMatrix() * rotateShoulderRight.getTransformMatrix() * T4.getTransformMatrix() * T5.getTransformMatrix(), false);
-    //drawObject(obj);
-
-    //Left Arm
-    T3.translate(glm::vec3(-ArmX, ArmY , 0.0f)); // translate Left Leg
-    m_shader->setUniform("model",rotateRoboter.getTransformMatrix()  * T3.getTransformMatrix() * rotateShoulderLeft.getTransformMatrix() * rotateHandLeft.getTransformMatrix() * T5.getTransformMatrix(), false);
-    //drawObject(obj);
-
-    //Right Arm
-    T6.translate(glm::vec3(ArmX, ArmY , 0.0f)); // translate Left Leg
-    m_shader->setUniform("model",    rotateRoboter.getTransformMatrix() * T6.getTransformMatrix()* rotateHandRight.getTransformMatrix() * T5.getTransformMatrix(), false);
-    //drawObject(obj);
-
- */
-
-
-
 }
 
 void Scene::update(float dt)
@@ -531,6 +396,28 @@ OpenGLWindow * Scene::getWindow()
 
 void Scene::onKey(Key key, Action action, Modifier modifier)
 {
+    if (key == Key::Down) {
+        // Merke ob "Down" gedrückt ist oder losgelassen wurde
+        downPressed = (action != Action::Up);
+        return;
+    }
+
+    // Nur auf Key Press oder Repeat reagieren
+    if (action != Action::Down && action != Action::Repeat)
+        return;
+
+    float step = downPressed ? -0.1f : 0.1f;
+
+    if (key == Key::Left)
+        x_eye += step;
+    else if (key == Key::Up)
+        y_eye += step;
+    else if (key == Key::Right)
+        z_eye += step;
+
+
+
+    std::cout << "Camera Eye: (" << x_eye << ", " << y_eye << ", " << z_eye << ")\n";
 
 }
 
diff --git a/src/Game/Scene.h b/src/Game/Scene.h
index 5a9aa9f6ec158294b669863ed837d31130532c43..84f05e92905d58c574c5b80e7ea5a060d4381c1a 100644
--- a/src/Game/Scene.h
+++ b/src/Game/Scene.h
@@ -14,7 +14,7 @@ static float animationTime = 0.0f;
 
 static float rotationSpeed = 2.0f;
 
-static float gap = 0.03;
+static float gap = 0.05;
 
 struct ObjectBuffer {
     GLuint vaoID = 0;
@@ -78,5 +78,9 @@ private:
     AssetManager m_assets;
     ShaderProgram* m_shader;
     ObjectBuffer obj;
+
+    float x_eye,y_eye,z_eye;
+    bool downPressed = false;
+
 };