diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
index a7640731b27231b276fa1c2fb92c284f0b990a18..7e06319069204052b6988c1bb7bb94af3e259495 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
@@ -690,7 +690,11 @@ namespace armarx
                 {
                     object.fileByObjectFinder(id);
                 }
-                if (visu.alpha < 1)
+                if (visu.alphaByConfidence && objectPose.confidence < 1.0f)
+                {
+                    object.overrideColor(simox::Color::white().with_alpha(objectPose.confidence));
+                }
+                else if (visu.alpha < 1)
                 {
                     object.overrideColor(simox::Color::white().with_alpha(visu.alpha));
                 }
@@ -831,6 +835,7 @@ namespace armarx
             tab.visu.inGlobalFrame.setValue(visu.inGlobalFrame);
             tab.visu.alpha.setRange(0, 1.0);
             tab.visu.alpha.setValue(visu.alpha);
+            tab.visu.alphaByConfidence.setValue(visu.alphaByConfidence);
             tab.visu.oobbs.setValue(visu.oobbs);
             tab.visu.objectFrames.setValue(visu.objectFrames);
             {
@@ -849,6 +854,8 @@ namespace armarx
             row++;
             grid.add(Label("Alpha"), {row, 0}).add(tab.visu.alpha, {row, 1}, {1, 3});
             row++;
+            grid.add(Label("Alpha By Confidence"), {row, 0}).add(tab.visu.alphaByConfidence, {row, 1});
+            row++;
             grid.add(Label("OOBB"), {row, 0}).add(tab.visu.oobbs, {row, 1});
             row++;
             grid.add(Label("Object Frames"), {row, 0}).add(tab.visu.objectFrames, {row, 1});
@@ -918,6 +925,7 @@ namespace armarx
         defs->optional(enabled, prefix + "enabled", "Enable or disable visualization of objects.");
         defs->optional(inGlobalFrame, prefix + "inGlobalFrame", "If true, show global poses. If false, show poses in robot frame.");
         defs->optional(alpha, prefix + "alpha", "Alpha of objects (1 = solid, 0 = transparent).");
+        defs->optional(alphaByConfidence, prefix + "alphaByConfidence", "If true, use the pose confidence as alpha (if < 1.0).");
         defs->optional(oobbs, prefix + "oobbs", "Enable showing oriented bounding boxes.");
         defs->optional(objectFrames, prefix + "objectFrames", "Enable showing object frames.");
         defs->optional(objectFramesScale, prefix + "objectFramesScale", "Scaling of object frames.");
diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.h b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.h
index bf693a18dfb9f52a159891ee107c41b256cb44dc..be40690bed158978ff73de2a4bbdc6ed87f37135 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.h
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.h
@@ -199,6 +199,7 @@ namespace armarx
             bool enabled = false;
             bool inGlobalFrame = true;
             float alpha = 1.0;
+            bool alphaByConfidence = false;
             bool oobbs = false;
             bool objectFrames = false;
             float objectFramesScale = 1.0;
@@ -224,6 +225,7 @@ namespace armarx
                 RemoteGui::Client::CheckBox enabled;
                 RemoteGui::Client::CheckBox inGlobalFrame;
                 RemoteGui::Client::FloatSlider alpha;
+                RemoteGui::Client::CheckBox alphaByConfidence;
                 RemoteGui::Client::CheckBox oobbs;
                 RemoteGui::Client::CheckBox objectFrames;
                 RemoteGui::Client::FloatSpinBox objectFramesScale;