diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a4ae3e0cd38381b3d8c6c7095716f8f276c98fa..aa8b854a492afb1bb2e0913c53d3aafa21e8da06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,6 +55,7 @@ MESSAGE (STATUS "** Module path: "  ${CMAKE_MODULE_PATH})
 
 # we want a global automoc
 FIND_PACKAGE(Qt5 5.5.0 COMPONENTS OpenGL Core Gui Widgets)
+set(OpenGL_GL_PREFERENCE LEGACY)
 set(CMAKE_AUTOMOC ON)
 set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTORCC ON)
diff --git a/SimoxUtility/simox/SimoxPath.h b/SimoxUtility/simox/SimoxPath.h
index 90a03adb2d659fe2d7b4e5755165a7fb4533b3fe..abbdab2730cda5c7d090715c7309ca7881f09c46 100644
--- a/SimoxUtility/simox/SimoxPath.h
+++ b/SimoxUtility/simox/SimoxPath.h
@@ -1,5 +1,5 @@
 #include <filesystem>
-
+#include <vector>
 
 namespace simox
 {
diff --git a/VirtualRobot/IK/SupportPolygon.cpp b/VirtualRobot/IK/SupportPolygon.cpp
index 7a5c29adf0d1023826df4bd54b5dda1778df7417..2a3f846b85b73e1d8ee106ebd16621bcbda0d84d 100644
--- a/VirtualRobot/IK/SupportPolygon.cpp
+++ b/VirtualRobot/IK/SupportPolygon.cpp
@@ -8,10 +8,8 @@ namespace VirtualRobot
 
 
     SupportPolygon::SupportPolygon(SceneObjectSetPtr contactModels)
-        : contactModels(contactModels)
+        : contactModels(contactModels), floor(MathTools::getFloorPlane())
     {
-        floor =  MathTools::getFloorPlane();
-
         VR_ASSERT(this->contactModels);
 
         for (size_t i = 0; i < contactModels->getSize(); i++)
diff --git a/VirtualRobot/Visualization/TriMeshModel.cpp b/VirtualRobot/Visualization/TriMeshModel.cpp
index 6ca6c2c8467400262ede95a6b472be6f091a2e8e..c692a396d62a68a48982c440e012dab3ec20e08e 100644
--- a/VirtualRobot/Visualization/TriMeshModel.cpp
+++ b/VirtualRobot/Visualization/TriMeshModel.cpp
@@ -38,7 +38,7 @@ namespace VirtualRobot
             {
                 c = std::tolower(c);
             }
-            return std::move(s);
+            return s;
         };
         const std::string ext = tolower(std::filesystem::path{str}.extension());
         if (VirtualRobot::AssimpReader::can_load(str))
diff --git a/VirtualRobot/Workspace/Manipulability.cpp b/VirtualRobot/Workspace/Manipulability.cpp
index 6b417e77f19dc40cd10eddbb758c1c8bba842d8c..d2d36a851337ea9d8848090b59aa3943fc7c7fd9 100644
--- a/VirtualRobot/Workspace/Manipulability.cpp
+++ b/VirtualRobot/Workspace/Manipulability.cpp
@@ -760,7 +760,7 @@ namespace VirtualRobot
             // each thread gets a cloned robot
             CollisionCheckerPtr cc(new CollisionChecker());
             RobotPtr clonedRobot = VirtualRobot::RobotIO::loadRobot(this->robot->getFilename(), RobotIO::eCollisionModel);
-            threads[i] = std::thread([=] ()
+            threads[i] = std::thread([=, this] ()
             {
 
                 clonedRobot->setUpdateVisualization(false);
@@ -779,16 +779,16 @@ namespace VirtualRobot
                     dynamicCollisionModel = clonedRobot->getRobotNodeSet(dynamicCollisionModel->getName());
                 }
 
-                RobotNodeSetPtr selfDistStatic = this->selfDistStatic;
-                if (selfDistStatic && clonedRobot->hasRobotNodeSet(selfDistStatic->getName()))
+                RobotNodeSetPtr self_dist_static = this->selfDistStatic;
+                if (self_dist_static && clonedRobot->hasRobotNodeSet(self_dist_static->getName()))
                 {
-                    selfDistStatic = clonedRobot->getRobotNodeSet(selfDistStatic->getName());
+                    self_dist_static = clonedRobot->getRobotNodeSet(self_dist_static->getName());
                 }
 
-                RobotNodeSetPtr selfDistDynamic = this->selfDistDynamic;
-                if (selfDistDynamic && clonedRobot->hasRobotNodeSet(selfDistDynamic->getName()))
+                RobotNodeSetPtr self_dist_dynamic = this->selfDistDynamic;
+                if (self_dist_dynamic && clonedRobot->hasRobotNodeSet(self_dist_dynamic->getName()))
                 {
-                    selfDistDynamic = clonedRobot->getRobotNodeSet(selfDistDynamic->getName());
+                    self_dist_dynamic = clonedRobot->getRobotNodeSet(self_dist_dynamic->getName());
                 }
 
 
@@ -836,7 +836,7 @@ namespace VirtualRobot
                     if (successfullyRandomized)
                     {
                         Eigen::Matrix4f p = clonedTcpNode->getGlobalPose();
-                        addPose(p, clonedMeasure, selfDistStatic, selfDistDynamic);
+                        addPose(p, clonedMeasure, self_dist_static, self_dist_dynamic);
                     }
                     else
                     {
diff --git a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
index b1528b88c25a27f186af126d9b037972597b9f2f..be56bba8cf3ada42f36ba67e61ac4b1247cd4356 100644
--- a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
+++ b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
@@ -2171,7 +2171,7 @@ namespace VirtualRobot
 
         for (unsigned int i = 0; i < numThreads; i++)
         {
-            threads[i] = std::thread([=] ()
+            threads[i] = std::thread([=, this] ()
             {
                 // each thread gets a cloned robot
                 CollisionCheckerPtr cc(new CollisionChecker());
@@ -2180,13 +2180,13 @@ namespace VirtualRobot
                 RobotNodeSetPtr clonedNodeSet = clonedRobot->getRobotNodeSet(this->nodeSet->getName());
                 RobotNodePtr clonedTcpNode = clonedRobot->getRobotNode(this->tcpNode->getName());
 
-                SceneObjectSetPtr staticCollisionModel = this->staticCollisionModel;
-                if (staticCollisionModel && clonedRobot->hasRobotNodeSet(staticCollisionModel->getName()))
+                SceneObjectSetPtr static_collision_model = this->staticCollisionModel;
+                if (static_collision_model && clonedRobot->hasRobotNodeSet(static_collision_model->getName()))
                 {
-                    staticCollisionModel = clonedRobot->getRobotNodeSet(staticCollisionModel->getName());
+                    static_collision_model = clonedRobot->getRobotNodeSet(static_collision_model->getName());
                 }
 
-                SceneObjectSetPtr dynamicCollisionModel = this->dynamicCollisionModel;
+                SceneObjectSetPtr dynamic_collision_model = this->dynamicCollisionModel;
                 if (dynamicCollisionModel && clonedRobot->hasRobotNodeSet(dynamicCollisionModel->getName()))
                 {
                     dynamicCollisionModel = clonedRobot->getRobotNodeSet(dynamicCollisionModel->getName());
@@ -2215,13 +2215,13 @@ namespace VirtualRobot
                         clonedRobot->setJointValues(clonedNodeSet, v);
 
                         // check for collisions
-                        if (!checkForSelfCollisions || !staticCollisionModel || !dynamicCollisionModel)
+                        if (!checkForSelfCollisions || !static_collision_model || !dynamicCollisionModel)
                         {
                             successfullyRandomized = true;
                             break;
                         }
 
-                        if (!clonedRobot->getCollisionChecker()->checkCollision(staticCollisionModel, dynamicCollisionModel))
+                        if (!clonedRobot->getCollisionChecker()->checkCollision(static_collision_model, dynamicCollisionModel))
                         {
                             successfullyRandomized = true;
                             break;