diff --git a/src/edit/include/edit/scene.hpp b/src/edit/include/edit/scene.hpp
index 3ad8084e486f16488c86fd90cfa5d81d803e0519..df098f1dfc60528da4919c9b6d1147e4800c5eb0 100644
--- a/src/edit/include/edit/scene.hpp
+++ b/src/edit/include/edit/scene.hpp
@@ -111,7 +111,7 @@ public:
     void addLight(node_ptr node, light_ptr light);
     void addLight(node_ptr node, Light light);
     void addLight(node_ptr node, glm::vec3 color = glm::vec3(1.0f, 1.0f, 1.0f), bool is_point = true);
-    void addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, bool _is_point = true);
+    void addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, bool _is_point = true, bool use_rotation = false);
     void addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, glm::vec3 cone_direction);
 
     void addCamera(node_ptr node, camera_ptr camera);
diff --git a/src/edit/src/scene.cpp b/src/edit/src/scene.cpp
index f661dbf51f106b6b50d87b898d9b1b07c4ef5613..68e621d11741ee142560ffd15f08fa7578845c2b 100644
--- a/src/edit/src/scene.cpp
+++ b/src/edit/src/scene.cpp
@@ -32,7 +32,7 @@ void Scene::createScene()
 
     auto camera_light_node = Node::create(glm::vec3(1.0f, 1.0f, 1.0f));
     camera_light_node->setScale(glm::vec3(0.1f, 0.1f, 0.1f));
-    addLight(camera_light_node, glm::vec4(0.0f), glm::vec4(0.5f), glm::vec4(0.0f), false);
+    addLight(camera_light_node, glm::vec4(0.0f), glm::vec4(0.5f), glm::vec4(0.0f), false, true);
 
     // Mesh light_cube_green(lit_cube_vertices, 
     //                 std::vector<float>{},
@@ -246,9 +246,9 @@ void Scene::addLight(node_ptr node, glm::vec3 color, bool is_point)
     node->addObject(std::make_shared<Light>(Light{color, node, is_point}));
 }
 
-void Scene::addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, bool is_point)
+void Scene::addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, bool is_point, bool use_rotation)
 {
-    node->addObject(std::make_shared<Light>(Light{node, ambient_color, diffuse_color, specular_color, is_point}));
+    node->addObject(std::make_shared<Light>(Light{node, ambient_color, diffuse_color, specular_color, is_point, use_rotation}));
 }
 
 void Scene::addLight(node_ptr node, glm::vec4 ambient_color, glm::vec4 diffuse_color, glm::vec4 specular_color, glm::vec3 cone_direction)
diff --git a/src/gfx/include/gfx/light.hpp b/src/gfx/include/gfx/light.hpp
index c705d2b3f48bc07522b62bfbfd6cb53f6605e65f..6afa28df658314e0a06cf754fc018ddd12e231f5 100644
--- a/src/gfx/include/gfx/light.hpp
+++ b/src/gfx/include/gfx/light.hpp
@@ -12,6 +12,7 @@ protected:
     // glm::vec3 color;
     node_weak_ptr node;
     bool is_point;
+    bool use_rotation;
 
     glm::vec4 ambient_color;
     glm::vec4 diffuse_color;
@@ -25,8 +26,8 @@ public:
       node{_node}, is_point{_is_point} {}
     /*--------------------*/
 
-    Light(node_ptr _node, glm::vec4 _ambient_color, glm::vec4 _diffuse_color, glm::vec4 _specular_color, bool _is_point = true)
-    : node{_node}, is_point{_is_point}, ambient_color{_ambient_color}, diffuse_color{_diffuse_color}, specular_color{_specular_color} {}
+    Light(node_ptr _node, glm::vec4 _ambient_color, glm::vec4 _diffuse_color, glm::vec4 _specular_color, bool _is_point = true, bool _use_rotation = false)
+    : node{_node}, is_point{_is_point}, use_rotation{_use_rotation}, ambient_color{_ambient_color}, diffuse_color{_diffuse_color}, specular_color{_specular_color} {}
 
     Light(node_ptr _node, glm::vec4 _ambient_color, glm::vec4 _diffuse_color, glm::vec4 _specular_color, glm::vec3 _cone_direction)
     : node{_node}, ambient_color{_ambient_color}, diffuse_color{_diffuse_color}, specular_color{_specular_color}, cone_direction{glm::vec4(_cone_direction, 0.0f)} 
@@ -37,7 +38,8 @@ public:
     virtual glm::vec4 getPosition() const
     { 
         node_ptr f = node.lock();
-        return glm::vec4(f->getPositionWorld(), static_cast<float>(is_point));
+        return use_rotation ? glm::vec4(f->getRotationAxisZWorld(), static_cast<float>(is_point))
+                            : glm::vec4(f->getPositionWorld(), static_cast<float>(is_point));
     }
 
     const glm::vec4 &getAmbientColor() const { return ambient_color; }