diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp
index 999ad35c47aa54ddec085c1efbb18e5a786f1690..aa0ec51995de8f8b432058f177fd2e6076c1bc4f 100644
--- a/modules/camera/include/vkcv/camera/Camera.hpp
+++ b/modules/camera/include/vkcv/camera/Camera.hpp
@@ -1,5 +1,7 @@
 #pragma once
 
+#define GLM_DEPTH_ZERO_TO_ONE
+#define GLM_FORCE_LEFT_HANDED
 #include <glm/glm.hpp>
 #include <glm/gtc/matrix_transform.hpp>
 #include <glm/gtc/matrix_access.hpp>
diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp
index b9ffdb9ed17827532818371d94639124c8baeec1..917d1915cf17b690ba0147516aded08409c99b16 100644
--- a/modules/camera/include/vkcv/camera/CameraManager.hpp
+++ b/modules/camera/include/vkcv/camera/CameraManager.hpp
@@ -67,10 +67,10 @@ namespace vkcv{
          * @param[in] window The window
          * @param[in] width The width of the window
          * @param[in] height The height of the window
-         * @param[in] up The up vector of the camera. Per default: @code{.cpp} up = glm::vec3(0.0f, -1.0f, 0.0f) @endcode
+         * @param[in] up The up vector of the camera. Per default: @code{.cpp} up = glm::vec3(0.0f, 1.0f, 0.0f) @endcode
          * @param[in] position The position of the camera. Per default: @code{.cpp} position = glm::vec3(0.0f,0.0f,0.0f) @endcode
          */
-        CameraManager(Window &window, float width, float height, glm::vec3 up = glm::vec3(0.0f,-1.0f,0.0f), glm::vec3 position = glm::vec3(0.0f,0.0f,0.0f));
+        CameraManager(Window &window, float width, float height, glm::vec3 up = glm::vec3(0.0f,1.0f,0.0f), glm::vec3 position = glm::vec3(0.0f,0.0f,0.0f));
 
         /**
          * @brief Gets the camera object
diff --git a/modules/camera/src/vkcv/camera/Camera.cpp b/modules/camera/src/vkcv/camera/Camera.cpp
index 2f7ccf93fef5c41325e7065efeed0a3ceca7a09a..dfda62db1633edf1595cb77b91923f3ea05af789 100644
--- a/modules/camera/src/vkcv/camera/Camera.cpp
+++ b/modules/camera/src/vkcv/camera/Camera.cpp
@@ -4,7 +4,7 @@
 namespace vkcv {
 
     Camera::Camera(){
-        m_up = glm::vec3(0.0f, -1.0f, 0.0f);
+        m_up = glm::vec3(0.0f, 1.0f, 0.0f);
         m_position = glm::vec3(0.0f, 0.0f, 0.0f);
         m_cameraSpeed = 2.f;
 
@@ -154,8 +154,8 @@ namespace vkcv {
     void Camera::updatePosition(double deltaTime ){
         m_position += (m_cameraSpeed * getFront() * static_cast<float> (m_forward) * static_cast<float>(deltaTime));
         m_position -= (m_cameraSpeed * getFront() * static_cast<float> (m_backward) * static_cast<float>(deltaTime));
-        m_position -= (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_left) * static_cast<float>(deltaTime));
-        m_position += (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_right) * static_cast<float>(deltaTime));
+        m_position += (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_left) * static_cast<float>(deltaTime));
+        m_position -= (glm::normalize(glm::cross(getFront(), m_up)) * m_cameraSpeed * static_cast<float> (m_right) * static_cast<float>(deltaTime));
         m_position -= m_up * m_cameraSpeed * static_cast<float> (m_top) * static_cast<float>(deltaTime);
         m_position += m_up * m_cameraSpeed * static_cast<float> (m_bottom) * static_cast<float>(deltaTime);
     }
diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp
index a08684ec260ef098fe122498a51aeaf50cc74b1b..1358d39fd3f0d7a15ff67c9917bbc6bc7c13ead3 100644
--- a/modules/camera/src/vkcv/camera/CameraManager.cpp
+++ b/modules/camera/src/vkcv/camera/CameraManager.cpp
@@ -58,7 +58,6 @@ namespace vkcv{
     }
 
     void CameraManager::keyCallback(int key, int scancode, int action, int mods) {
-
         switch (key) {
             case GLFW_KEY_W:
                 m_camera.moveForward(action);
@@ -85,6 +84,7 @@ namespace vkcv{
                 break;
         }
     }
+
     Camera& CameraManager::getCamera(){
         return m_camera;
     }
diff --git a/modules/camera/src/vkcv/camera/TrackballCamera.cpp b/modules/camera/src/vkcv/camera/TrackballCamera.cpp
index e5ee35f5d3c65fb2a7abd2d424072ffb91c30ebe..e99540e93f4c4530ba7bd17ea85436fffb30649b 100644
--- a/modules/camera/src/vkcv/camera/TrackballCamera.cpp
+++ b/modules/camera/src/vkcv/camera/TrackballCamera.cpp
@@ -68,8 +68,8 @@ namespace vkcv {
     }
 
     void TrackballCamera::updatePosition(double deltaTime) {
-        glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(m_yaw), glm::vec3(0.0f, -1.0f, 0.0f));
-        glm::mat4 rotationX = glm::rotate(rotationY, -glm::radians(m_pitch), glm::vec3(1.0f, 0.0f, 0.0f));
+        glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(m_yaw), glm::vec3(0.0f, 1.0f, 0.0f));
+        glm::mat4 rotationX = glm::rotate(rotationY, glm::radians(m_pitch), glm::vec3(1.0f, 0.0f, 0.0f));
         glm::vec3 translate = glm::vec3(0.0f,0.0f,m_radius);
         translate = glm::vec3(rotationX * glm::vec4(translate, 0.0f));
         m_position = m_center + translate;