diff --git a/SimoxUtility/color/hsv.cpp b/SimoxUtility/color/hsv.cpp
index aaa74dba0a044bbca62bc87ceb0dd25d271a5df2..0597e9d535c84f3e57f957400cb89dba1a4a5fe7 100644
--- a/SimoxUtility/color/hsv.cpp
+++ b/SimoxUtility/color/hsv.cpp
@@ -61,6 +61,7 @@ Eigen::Vector3f simox::color::rgb_to_hsv(const Eigen::Vector3f& rgb)
     return hsv;
 }
 
+
 Eigen::Vector3f simox::color::hsv_to_rgb(const Eigen::Vector3f& hsv)
 {
     // source: https://stackoverflow.com/a/6930407
@@ -125,13 +126,3 @@ Eigen::Vector3f simox::color::hsv_to_rgb(const Eigen::Vector3f& hsv)
     }
     return rgb;
 }
-
-Eigen::Vector3i simox::color::rgb_to_hsv(const Eigen::Vector3i& rgb)
-{
-    return to_byte(rgb_to_hsv(to_float(rgb)));
-}
-
-Eigen::Vector3i simox::color::hsv_to_rgb(const Eigen::Vector3i& hsv)
-{
-    return to_byte(hsv_to_rgb(to_float(hsv)));
-}
diff --git a/SimoxUtility/color/hsv.h b/SimoxUtility/color/hsv.h
index c4339ac818d69fc98e2920ec06cb4eb3d9d36b82..1c4bb7884c864209bb721ec1a9309d7c1d9d8ee5 100644
--- a/SimoxUtility/color/hsv.h
+++ b/SimoxUtility/color/hsv.h
@@ -8,14 +8,27 @@
 namespace simox::color
 {
 
-    /// Convert an RGB color to HSV (hue in degrees).
+    /**
+     * @brief Convert an RGB color to HSV.
+     *
+     * Hue is measured in degrees, i.e. [0, 360].
+     * All other channels (saturation, value, red, green, blue)
+     * are in the interval [0, 1].
+     *
+     * @param rgb The RGB color with all channels in range [0, 1].
+     * @return The HSV color in [0, 360] x [0, 1] x [0, 1].
+     */
     Eigen::Vector3f rgb_to_hsv(const Eigen::Vector3f& rgb);
-    /// Convert an HSV color to RGB (hue in degrees).
-    Eigen::Vector3f hsv_to_rgb(const Eigen::Vector3f& hsv);
 
-    /// Convert an RGB color to HSV (hue in degrees).
-    Eigen::Vector3i rgb_to_hsv(const Eigen::Vector3i& rgb);
-    /// Convert an HSV color to RGB (hue in degrees).
-    Eigen::Vector3i hsv_to_rgb(const Eigen::Vector3i& hsv);
+
+    /**
+     * @brief Convert an HSV color to RGB
+     *
+     * @see `simox::color::rgb_to_hsv()` for the expected intervals.
+     *
+     * @param hsv The HSV color in [0, 360] x [0, 1] x [0, 1]
+     * @return The RGB color with all channels in [0, 1].
+     */
+    Eigen::Vector3f hsv_to_rgb(const Eigen::Vector3f& hsv);
 
 }
diff --git a/SimoxUtility/math/regression/linear.hpp b/SimoxUtility/math/regression/linear.hpp
index a082d17c543f1a441b7bd15aa092e3e43b8bb442..3b878cbf98565c5b98e48696f65152695ed8f2da 100644
--- a/SimoxUtility/math/regression/linear.hpp
+++ b/SimoxUtility/math/regression/linear.hpp
@@ -48,7 +48,7 @@ namespace simox::math
     {
     public:
 
-        static const int Dim = _Dim;
+        static constexpr int Dim = _Dim;
         using FloatT = _FloatT;
         using VectorT = typename Eigen::Matrix<FloatT, Dim, 1>;
         using CoefficientsMatrixT = typename Eigen::Matrix<FloatT, Dim, 2>;
diff --git a/VirtualRobot/Compression/tests/CompressionBZip2Test.cpp b/VirtualRobot/Compression/tests/CompressionBZip2Test.cpp
index 8cf3e177e366c728b8dab0c13d21aed4acccfd8f..2d5d85986e60da9189c072eee74c1f5e74171741 100644
--- a/VirtualRobot/Compression/tests/CompressionBZip2Test.cpp
+++ b/VirtualRobot/Compression/tests/CompressionBZip2Test.cpp
@@ -64,6 +64,7 @@ BOOST_AUTO_TEST_CASE(testNullBlock)
 
     for (unsigned char i : blockN2)
     {
+        (void) i;
 //        BOOST_CHECK_EQUAL(i, 0);
     }
 
diff --git a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
index 1b7a10d890ce5f2c3e5593f8332f30cc875d93d9..70bdc2ca4a02aa6727996ac3bd8363fd8893cca0 100644
--- a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
+++ b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
@@ -277,6 +277,8 @@ namespace VirtualRobot
 
     VisualizationNodePtr CoinVisualizationFactory::getVisualizationFromFileWithAssimp(const std::string& filename, bool boundingBox, float scaleX, float scaleY, float scaleZ)
     {
+        (void) scaleX, (void) scaleY, (void) scaleZ;  // Unused.
+
         SoNode* node = AssimpReader::readFileAsSoNode(filename);
         if (!node)
         {
diff --git a/VirtualRobot/Workspace/WorkspaceGrid.cpp b/VirtualRobot/Workspace/WorkspaceGrid.cpp
index 9d6b652865cf9e71ddb42fbb91cf00ee72e604e5..6c47064a13f750198c9d02d93ad4bb23cf67d900 100644
--- a/VirtualRobot/Workspace/WorkspaceGrid.cpp
+++ b/VirtualRobot/Workspace/WorkspaceGrid.cpp
@@ -471,6 +471,8 @@ namespace VirtualRobot
 
     bool WorkspaceGrid::fillGridData(WorkspaceRepresentationPtr ws, const Eigen::Matrix4f &global_T_grasp_orig, GraspPtr g, RobotNodePtr baseRobotNode, float baseOrientation, const float maxAngle, const float minCenterDistance)
     {
+        (void) maxAngle;  // Unused.
+
         if (!ws)
         {
             return false;
diff --git a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
index f953ebfc8c5fb7c947585dbca8f4fce9c425168c..032a0478a7e8f8bc4633893a57b838326f5bf72b 100644
--- a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
+++ b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
@@ -1854,6 +1854,7 @@ namespace VirtualRobot
     std::vector<WorkspaceRepresentation::WorkspaceCut2DTransformationPtr> WorkspaceRepresentation::createCutTransformations(WorkspaceRepresentation::WorkspaceCut2DPtr cutXY, RobotNodePtr referenceNode, const float maxAngle)
     {
         THROW_VR_EXCEPTION_IF(!cutXY, "NULL data");
+        (void) maxAngle;  // Unused.
 
         std::vector<WorkspaceRepresentation::WorkspaceCut2DTransformationPtr> result;