diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp b/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
index 10a8bf4858baf5806efc51318a582e457e260e35..f2b0693bb01368a044e89ddb4633ec2b9b7d1862 100644
--- a/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
+++ b/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
@@ -11,6 +11,7 @@
 #include <VirtualRobot/XML/RobotIO.h>
 #include <VirtualRobot/XML/ObjectIO.h>
 #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualization.h>
+#include <VirtualRobot/Import/MeshImport/AssimpReader.h>
 
 #include <SimoxUtility/algorithm/string/string_tools.h>
 
@@ -79,18 +80,30 @@ namespace armarx::viz::coin
             {
                 ARMARX_INFO << "Loading object from " << fullFilename;
 
-                if (simox::alg::ends_with(fullFilename, ".wrl"))
+                std::filesystem::path path{fullFilename};
+                const std::string ext = simox::alg::to_lower(path.extension());
+
+                if (ext == ".wrl" || ext == ".iv")
                 {
                     VirtualRobot::VisualizationFactoryPtr factory = VirtualRobot::VisualizationFactory::fromName("inventor", NULL);
                     VirtualRobot::VisualizationNodePtr vis = factory->getVisualizationFromFile(fullFilename);
                     result = VirtualRobot::ManipulationObjectPtr(new VirtualRobot::ManipulationObject(filename, vis));
-
                 }
-                else
+                else if (ext == ".xml")
                 {
                     result = VirtualRobot::ObjectIO::loadManipulationObject(fullFilename);
 
                 }
+                else if (VirtualRobot::AssimpReader::can_load(fullFilename))
+                {
+                    const auto& tri = VirtualRobot::AssimpReader{}.readFileAsTriMesh(fullFilename);
+                    result = VirtualRobot::ManipulationObjectPtr(new VirtualRobot::ManipulationObject(filename, tri));
+                }
+                else
+                {
+                    ARMARX_WARNING << "Could not load object from file: " << fullFilename
+                                   << "\nunknown extension '" << ext << "'";
+                }
             }
             catch (std::exception const& ex)
             {