diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AntiAliasing/FXAANode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AntiAliasing/FXAANode.cpp
index 20350ced1bb6891baecbe493ff05a8c5a25a85b0..8a7a9a650b221e451087d7703a93a29bf9245672 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AntiAliasing/FXAANode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AntiAliasing/FXAANode.cpp
@@ -125,7 +125,7 @@ void FXAANode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
index 1dac170d5ccad3c35a72479e27a2ca8a658f8903..ad0573650363080a9cd8ac484652b4af3052d697 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
@@ -68,11 +68,11 @@ void DifferenceNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     // Texture 2
-    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputColor2           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* texColor2 = &inputColor2->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/LessThanThresholdNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/LessThanThresholdNode.cpp
index 0c1a2588dc8a2f334152a16c5ea3ec89059721d2..c6ae062f54794c8de6e25f701c11ce0e7d4d3f42 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/LessThanThresholdNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/LessThanThresholdNode.cpp
@@ -72,7 +72,7 @@ void LessThanThresholdNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MaxNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MaxNode.cpp
index 4b0e6cbe165f5f60b411843dd8bffb5976721c0d..f6930631ac6e71c2bfd34f93f16b0ed93bcc9760 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MaxNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MaxNode.cpp
@@ -68,11 +68,11 @@ void MaxNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     // Texture 2
-    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputColor2           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* texColor2 = &inputColor2->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MinNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MinNode.cpp
index 22e4565a6e8459083e53c96830be43bd27510396..e7fa17d3d48dc2ca5912b6aebf4105c2e072d210 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MinNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MinNode.cpp
@@ -68,11 +68,11 @@ void MinNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     // Texture 2
-    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputColor2           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* texColor2 = &inputColor2->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MoreThanThresholdNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MoreThanThresholdNode.cpp
index 01693e0b24b1585e0d9e995faa4e4ac9e3aab13c..f607e5afa948952561989f34c5ba1d37a14bbb6e 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MoreThanThresholdNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MoreThanThresholdNode.cpp
@@ -72,7 +72,7 @@ void MoreThanThresholdNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MultiplyNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MultiplyNode.cpp
index 1cd9640a33af1b083b37e058721c00c3f0f8fa7c..a932256f6a8c6b576bfc70a75d742b476bf6a400 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MultiplyNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/MultiplyNode.cpp
@@ -68,11 +68,11 @@ void MultiplyNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     // Texture 2
-    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputColor2           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* texColor2 = &inputColor2->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/OneMinusNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/OneMinusNode.cpp
index 77a7d22ead822f337154a7741ca325813f15e068..5c5ce07fa81335a16277f5a76c670d48bcce2d17 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/OneMinusNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/OneMinusNode.cpp
@@ -64,7 +64,7 @@ void OneMinusNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
index b49ba8040c0e65c006552bc9c9d72d782438768e..a7e2a999d58d49b19f92b3b4424e06c2c6f8738a 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
@@ -68,11 +68,11 @@ void SumNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Texture 1
-    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor1           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     NodeTypeTexture* texColor1 = &inputColor1->getData();
 
     // Texture 2
-    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputColor2           = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* texColor2 = &inputColor2->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
index cd880553f097f341304fdac3f69f6d8c4fd1d29e..fdd1fccf211f3eeb62490829b81633dd8f1565df 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
@@ -24,17 +24,20 @@ class FilterNode : public Node
 
     void execute() override {
         auto input            = dynamic_cast<PortIn<std::vector<T>>*>( m_inputs[0].get() );
-        std::vector<T> inData = input->getData();
-        m_elements.clear();
-        for ( size_t i = 0; i < inData.size(); i++ )
+        if ( input->isLinked() )
         {
-            if ( m_filterFunction( inData[i] ) ) { m_elements.push_back( inData[i] ); }
-        }
+            std::vector<T>& inData = input->getData();
+            m_elements.clear();
+            for ( size_t i = 0; i < inData.size(); i++ )
+            {
+                if ( m_filterFunction( inData[i] ) ) { m_elements.push_back( inData[i] ); }
+            }
 #ifdef GRAPH_CALL_TRACE
-        std::cout << "\e[36m\e[1mFilterNode \e[0m \"" << m_name << "\": execute, from "
-                  << input->getData().size() << " to " << m_elements.size() << " "
-                  << typeid( T ).name() << "." << std::endl;
+            std::cout << "\e[36m\e[1mFilterNode \e[0m \"" << m_name << "\": execute, from "
+                      << input->getData().size() << " to " << m_elements.size() << " "
+                      << typeid( T ).name() << "." << std::endl;
 #endif
+        }
     }
 
     void destroy() override {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
index c0a262a703f3da5245e3a6d87df4f94447032d4e..32ecf59eda9a014005b64b2472cd6d568b33aa04 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
@@ -37,7 +37,7 @@ class FilterROByTypeNode : public FilterNode<NodeTypeRenderObject>
         }
     }
     void fromJsonInternal( const nlohmann::json& data ) override {
-        if ( data.contains( "filteredType" ) ) { m_selector.set( data["filteredType"].get<std::string>() ); }
+        if ( data.contains( "filteredType" ) ) { setTypeToFilter( data["filteredType"].get<std::string>() ); }
         else
         { m_selector.set(0); }
     }
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
index 037b56b2d23d1b9927a768ae38ce1bf4394e84bb..eb3d56690aec4e2e86714157f55bb6b605696ed9 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
@@ -110,17 +110,17 @@ void AccessibilityBufferNode::update() {
 void AccessibilityBufferNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Positions
-    auto inputPosition          = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
-    NodeTypeTexture* posTexture = &inputPosition->getData();
+    auto inputPosition          = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto posTexture = &inputPosition->getData();
 
     // Normals
-    auto inputNormal               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
-    NodeTypeTexture* normalTexture = &inputNormal->getData();
+    auto inputNormal               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto normalTexture = &inputNormal->getData();
 
     // AO Radius
     float aoRadius = m_editableAORadius;
     if ( m_inputs[2]->isLinked() )
-    { aoRadius = dynamic_cast<PortIn<Scalar>*>( m_inputs[2].get() )->getData(); }
+    { aoRadius = static_cast<PortIn<Scalar>*>( m_inputs[2].get() )->getData(); }
 #ifdef GRAPH_CALL_TRACE
     else
     {
@@ -132,7 +132,7 @@ void AccessibilityBufferNode::execute() {
     // AO Samples
     int samples = m_editableSamples;
     if ( m_inputs[3]->isLinked() )
-    { samples = static_cast<int>( dynamic_cast<PortIn<Scalar>*>( m_inputs[3].get() )->getData() ); }
+    { samples = static_cast<int>( static_cast<PortIn<Scalar>*>( m_inputs[3].get() )->getData() ); }
     if ( m_currentSamples != samples )
     {
         m_currentSamples = samples;
@@ -141,8 +141,8 @@ void AccessibilityBufferNode::execute() {
     }
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
-    std::vector<NodeTypeCamera> cameras = inputCamera->getData();
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
+    std::vector<NodeTypeCamera>& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
 #endif
@@ -223,8 +223,13 @@ void AccessibilityBufferNode::resize( uint32_t width, uint32_t height ) {
 }
 
 void AccessibilityBufferNode::toJsonInternal( nlohmann::json& data ) const {
-    data["samples"] = m_currentSamples;
-    data["radius"] = m_editableAORadius;
+    if ( m_currentSamples != AO_DefaultSamples ) {
+        // do not write default value
+        data["samples"] = m_currentSamples;
+    }
+    if ( m_editableAORadius != AO_DefaultRadius ) {
+        // do not write default value
+        data["radius"] = m_editableAORadius; }
 }
 
 void AccessibilityBufferNode::fromJsonInternal( const nlohmann::json& data ) {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
index a17b8afdfb258cd4780aa261b91dd6c009847d57..ce20ec94f83e1ad841e06c2eefa2017c0d9bad16 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
@@ -26,11 +26,14 @@ class NodeBasedRenderer_LIBRARY_API AccessibilityBufferNode : public Node
     void fromJsonInternal( const nlohmann::json& data ) override;
 
   private:
+    static constexpr Scalar AO_DefaultRadius {5_ra};
+    static constexpr Scalar AO_DefaultSamples {64_ra};
+
     NodeTypeTexture* m_rawAO{ nullptr };
     NodeTypeTexture* m_AO{ nullptr };
 
-    Scalar m_editableAORadius{ 5 };
-    Scalar m_editableSamples{ 64 };
+    Scalar m_editableAORadius{ AO_DefaultRadius };
+    Scalar m_editableSamples{ AO_DefaultSamples };
 
     int m_currentSamples{ 64 };
     Scalar m_sceneDiag{ 1.0 };
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
index f7421e2bbdccd052530ca5751e6e4b485fca86b0..42448750c83c6577d07a98fde8629cfb9ee94dfb 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
@@ -38,13 +38,13 @@ void ClearColorNode::update() {
 
 void ClearColorNode::execute() {
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Clear color
-    auto inputClearColor = dynamic_cast<PortIn<Ra::Engine::Data::Color>*>( m_inputs[1].get() );
+    auto inputClearColor = static_cast<PortIn<Ra::Engine::Data::Color>*>( m_inputs[1].get() );
     float clearColor[4];
     clearColor[0] = m_editableClearColor.x();
     clearColor[1] = m_editableClearColor.y();
@@ -68,9 +68,9 @@ void ClearColorNode::execute() {
 #endif
 
     // Envmap
-    auto inputEnvmap = dynamic_cast<PortIn<EnvMapData>*>( m_inputs[2].get() );
+    auto inputEnvmap = static_cast<PortIn<EnvMapData>*>( m_inputs[2].get() );
     RadiumNBR::EnvMap* envmap{ nullptr };
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
     if ( inputEnvmap->isLinked() )
     {
         envmap = inputEnvmap->getData().get();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
index 0a3f7542f5f6107ae1910efcda767055bb6ff4ed..f11e4202aa189e9eed86af530085a4927076eb01 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
@@ -54,22 +54,22 @@ void EmissivityNode::update() {
 void EmissivityNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
-    NodeTypeTexture* depthTexture = &inputDepth->getData();
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto depthTexture = &inputDepth->getData();
 
     // AO Radius
-    auto inputAO               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
-    NodeTypeTexture* AOTexture = inputAO->isLinked() ? &inputAO->getData() : m_blankAO;
+    auto inputAO               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
+    auto AOTexture = inputAO->isLinked() ? &inputAO->getData() : m_blankAO;
     inPassParams.addParameter( "amb_occ_sampler", AOTexture );
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -81,7 +81,7 @@ void EmissivityNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
     auto& cameras = inputCamera->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
index d91e4b833d01dd3c729b2b39b9b9961b2af50388..f66e4ea7c14a2bd72b304a9efdebde4fa84bc7ba 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
@@ -60,22 +60,22 @@ void EnvLightNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // AO
-    auto inputAO               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
+    auto inputAO               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
     NodeTypeTexture* AOTexture = inputAO->isLinked() ? &inputAO->getData() : m_blankAO;
     inPassParams.addParameter( "amb_occ_sampler", AOTexture );
 
     // Envmap
-    auto inputEnvmap = dynamic_cast<PortIn<EnvMapData>*>( m_inputs[3].get() );
+    auto inputEnvmap = static_cast<PortIn<EnvMapData>*>( m_inputs[3].get() );
     RadiumNBR::EnvMap* envmap{ nullptr };
     if ( inputEnvmap->isLinked() )
     {
@@ -104,7 +104,7 @@ void EnvLightNode::execute() {
     }
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[4].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[4].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -116,7 +116,7 @@ void EnvLightNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[5].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[5].get() );
     auto& cameras = inputCamera->getData();
 
     m_framebuffer->bind();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
index 66a5c38989c6856350ebdcbfb4883ad7959690ba..4a18648d5358c30840dcd6fe70e42e11fd50c3dc 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
@@ -56,22 +56,22 @@ void LocalLightNode::update() {
 void LocalLightNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // AO
-    auto inputAO               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
+    auto inputAO               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[2].get() );
     NodeTypeTexture* AOTexture = inputAO->isLinked() ? &inputAO->getData() : m_blankAO;
     inPassParams.addParameter( "amb_occ_sampler", AOTexture );
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -83,11 +83,11 @@ void LocalLightNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
     auto& cameras = inputCamera->getData();
 
     // Lights
-    auto inputLight = dynamic_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[5].get() );
+    auto inputLight = static_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[5].get() );
     if ( !inputLight->isLinked() )
     {
 #ifdef GRAPH_CALL_TRACE
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/SimpleNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/SimpleNode.cpp
index 5d9d0b190fd9dc4e52a9f0a7a262af752791817b..c147361e69f2e4dbfa9e38e64ac9567ab64dacd6 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/SimpleNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/SimpleNode.cpp
@@ -85,7 +85,7 @@ void SimpleNode::update() {}
 
 void SimpleNode::execute() {
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[0].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[0].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -97,10 +97,10 @@ void SimpleNode::execute() {
     std::vector<NodeTypeRenderObject>& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[1].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[1].get() );
     auto& cameras = inputCamera->getData();
     // Lights
-    auto inputLight = dynamic_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[2].get() );
+    auto inputLight = static_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[2].get() );
     if ( !inputLight->isLinked() )
     { return; }
     auto& lights = inputLight->getData();
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
index 54ee7f4a61fdf9bd9bc63401534f853f6511c9e4..592b1b8275cb5a502818d775680fa50cec12f414 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
@@ -94,17 +94,17 @@ void TransparencyNode::update() {
 void TransparencyNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -116,14 +116,14 @@ void TransparencyNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
 #endif
 
     // Lights
-    auto inputLight = dynamic_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
+    auto inputLight = static_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
     if ( !inputLight->isLinked() )
     {
 #ifdef GRAPH_CALL_TRACE
@@ -204,10 +204,10 @@ void TransparencyNode::resize( uint32_t width, uint32_t height ) {
 
     // output
     {
-        auto revealageOut = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[1].get() );
+        auto revealageOut = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[1].get() );
         revealageOut->setData( m_revealageTexture );
 
-        auto accumulationOut = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[2].get() );
+        auto accumulationOut = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[2].get() );
         accumulationOut->setData( m_accumulationTexture );
     }
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
index 809f176f485b20e30f20d24da3be3f4513ad7fe1..aae77ac3dd19afc55cb48b3ea444427f0549dcbe 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
@@ -38,17 +38,17 @@ void UINode::update() {
 void UINode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // Activate
-    auto inputActivate = dynamic_cast<PortIn<bool>*>( m_inputs[2].get() );
+    auto inputActivate = static_cast<PortIn<bool>*>( m_inputs[2].get() );
     bool activate      = true;
     if ( !inputActivate->isLinked() )
     { std::cout << "Activation port is not linked, default to true" << std::endl; }
@@ -56,7 +56,7 @@ void UINode::execute() {
     { activate = inputActivate->getData(); }
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -68,7 +68,7 @@ void UINode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
index b88c28a49b79cf93f3c042b9b452db3db67b0cd9..f327f12f3f877d4d2e903f88769df1ffe2f98011 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
@@ -84,17 +84,17 @@ void VolumeNode::update() {
 void VolumeNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -106,14 +106,14 @@ void VolumeNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
 #endif
 
     // Lights
-    auto inputLight = dynamic_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
+    auto inputLight = static_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
     if ( !inputLight->isLinked() )
     {
 #ifdef GRAPH_CALL_TRACE
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
index 7cff2d82cc7a76969fbd78a5034b839e379cd4e9..1425be366880b55f6ec118f5ad14442c43015bbf 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
@@ -105,17 +105,17 @@ void VolumeVizualisationNode::update() {
 void VolumeVizualisationNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[2].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -127,14 +127,14 @@ void VolumeVizualisationNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[3].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
 #endif
 
     // Lights
-    auto inputLight = dynamic_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
+    auto inputLight = static_cast<PortIn<std::vector<NodeTypeLight>>*>( m_inputs[4].get() );
     if ( !inputLight->isLinked() )
     {
 #ifdef GRAPH_CALL_TRACE
@@ -230,7 +230,7 @@ void VolumeVizualisationNode::buildRenderTechnique(
     // Compute gradients
     auto mro = const_cast<Ra::Engine::Rendering::RenderObject*>( ro );
     auto volume =
-        dynamic_cast<Ra::Core::Geometry::VolumeGrid&>( mro->getMesh()->getAbstractGeometry() );
+        static_cast<Ra::Core::Geometry::VolumeGrid&>( mro->getMesh()->getAbstractGeometry() );
     auto paramProvider = std::make_shared<VolumeWithGradientParameterProvider>( mat, volume );
 
     if ( auto cfg = Ra::Engine::Data::ShaderConfigurationFactory::getConfiguration(
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
index d5084bc8ffc2225b2b8e0e9e4c0386126d050270..96e78adddf1698d6641de8982fc44769aafc8f11 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
@@ -128,17 +128,17 @@ void WireframeNode::update() {
 void WireframeNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
     // Color
-    auto inputColor  = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    auto inputColor  = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
     m_colorTexture   = &inputColor->getData();
-    auto outputColor = dynamic_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
+    auto outputColor = static_cast<PortOut<NodeTypeTexture>*>( m_outputs[0].get() );
     outputColor->setData( m_colorTexture );
 
     // Depth
-    auto inputDepth               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    auto inputDepth               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
     NodeTypeTexture* depthTexture = &inputDepth->getData();
 
     // Activate
-    auto inputActivate = dynamic_cast<PortIn<bool>*>( m_inputs[2].get() );
+    auto inputActivate = static_cast<PortIn<bool>*>( m_inputs[2].get() );
     bool activate      = m_editableActivate;
     if ( inputActivate->isLinked() ) { activate = inputActivate->getData(); }
 #ifdef GRAPH_CALL_TRACE
@@ -147,7 +147,7 @@ void WireframeNode::execute() {
 #endif
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[3].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -161,7 +161,7 @@ void WireframeNode::execute() {
     if ( m_wireframes.size() > renderObjects.size() ) { m_wireframes.clear(); }
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[4].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
index d93feebecb3b4c4bdd755a2e3bf183f51da69fbc..d929a234d8ce2edb8a70eb6c17f2f40f7732c35b 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
@@ -60,7 +60,7 @@ void ZGeomPrepassNode::execute() {
     Ra::Engine::Data::RenderParameters inPassParams;
 
     // Render objects
-    auto inputRO = dynamic_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[0].get() );
+    auto inputRO = static_cast<PortIn<std::vector<NodeTypeRenderObject>>*>( m_inputs[0].get() );
     if ( !inputRO->isLinked() )
 #ifdef GRAPH_CALL_TRACE
     { std::cout << "RenderObjects port is not linked, no render object" << std::endl; return;}
@@ -72,7 +72,7 @@ void ZGeomPrepassNode::execute() {
     auto& renderObjects = inputRO->getData();
 
     // Cameras
-    auto inputCamera = dynamic_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[1].get() );
+    auto inputCamera = static_cast<PortIn<std::vector<NodeTypeCamera>>*>( m_inputs[1].get() );
     auto& cameras = inputCamera->getData();
 #ifdef GRAPH_CALL_TRACE
     std::cout << cameras.size() << " cameras" << std::endl;
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
index a6cb6802a526e08314d6b60097e8adbde598e56a..d510ba5b983e08b4a8944bdcb3440feaa3fc15c6 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
@@ -39,7 +39,7 @@ void DisplaySinkNode::execute() {
         {
             if ( m_inputs[i]->isLinked() )
             {
-                auto input = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[i].get() );
+                auto input = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[i].get() );
                 NodeTypeTexture* texture = &input->getData();
                 if ( texture ) { m_textures.push_back( texture ); }
             }
@@ -83,7 +83,7 @@ void DisplaySinkNode::observeConnection( const std::string& name,
         }
         if ( m_inputs[i]->isLinked() )
         {
-            auto input               = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[i].get() );
+            auto input               = static_cast<PortIn<NodeTypeTexture>*>( m_inputs[i].get() );
             NodeTypeTexture* texture = &input->getData();
             if ( texture ) { m_textures.push_back( texture ); }
         }
diff --git a/src/libRender/Resources/RadiumNBR/RenderGraphs/fullfeaturerenderer.flow b/src/libRender/Resources/RadiumNBR/RenderGraphs/fullfeaturerenderer.flow
index 3870f914d6253ffbd2a82cbbf869784e80a20ca6..b5f6e46488555a000e2aff8b731bfa7b355e24ee 100644
--- a/src/libRender/Resources/RadiumNBR/RenderGraphs/fullfeaturerenderer.flow
+++ b/src/libRender/Resources/RadiumNBR/RenderGraphs/fullfeaturerenderer.flow
@@ -1,159 +1,159 @@
 {
     "connections": [
         {
-            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
-            "in_index": 0,
-            "out_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "in_index": 4,
+            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
+            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
             "in_index": 3,
-            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
-            "in_index": 4,
+            "in_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
+            "in_index": 3,
             "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
-            "in_index": 2,
-            "out_id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
+            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "in_index": 5,
+            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
             "in_index": 1,
             "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "out_index": 0
         },
         {
-            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "in_id": "{aa0f14a1-bb34-43a6-a11d-5b88404d254d}",
             "in_index": 0,
-            "out_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
+            "out_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
             "out_index": 0
         },
         {
             "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
-            "in_index": 2,
-            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "in_index": 1,
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "out_index": 0
         },
         {
-            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
-            "in_index": 4,
+            "in_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_index": 1,
             "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
-            "in_index": 0,
-            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "in_index": 2,
+            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
-            "in_index": 3,
-            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
-            "out_index": 0
+            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "in_index": 1,
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "out_index": 2
         },
         {
-            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
-            "in_index": 2,
-            "out_id": "{9579a8e2-d2d0-4107-b7b5-32b4aa1e7ce9}",
-            "out_index": 0
+            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "in_index": 0,
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "out_index": 1
         },
         {
             "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
-            "in_index": 3,
-            "out_id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
+            "in_index": 0,
+            "out_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
             "out_index": 0
         },
         {
-            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
-            "in_index": 4,
-            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_index": 2,
+            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
             "out_index": 0
         },
         {
-            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
-            "in_index": 4,
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_index": 5,
             "out_id": "{c6d4682c-2a02-467a-9c5c-5511b63b17ba}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
             "in_index": 0,
-            "out_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "out_id": "{62ad7aec-1ea4-4f10-85cb-4be1ecda4263}",
             "out_index": 0
         },
         {
-            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
-            "in_index": 1,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
+            "in_index": 0,
+            "out_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
             "out_index": 0
         },
         {
-            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
             "in_index": 0,
-            "out_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
+            "out_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
             "out_index": 0
         },
         {
             "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
-            "in_index": 1,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_index": 4,
+            "out_id": "{c6d4682c-2a02-467a-9c5c-5511b63b17ba}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
             "in_index": 2,
-            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "out_id": "{9579a8e2-d2d0-4107-b7b5-32b4aa1e7ce9}",
             "out_index": 0
         },
         {
-            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "in_id": "{9579a8e2-d2d0-4107-b7b5-32b4aa1e7ce9}",
             "in_index": 0,
-            "out_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
             "out_index": 0
         },
         {
             "in_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
-            "in_index": 0,
-            "out_id": "{62ad7aec-1ea4-4f10-85cb-4be1ecda4263}",
+            "in_index": 2,
+            "out_id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
             "out_index": 0
         },
         {
-            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
-            "in_index": 1,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
-            "out_index": 2
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_index": 3,
+            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "out_index": 0
         },
         {
-            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
-            "in_index": 4,
-            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
+            "in_index": 3,
+            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
-            "in_index": 2,
-            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "in_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_index": 0,
+            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
             "out_index": 0
         },
         {
-            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
-            "in_index": 5,
-            "out_id": "{c6d4682c-2a02-467a-9c5c-5511b63b17ba}",
+            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
+            "in_index": 4,
+            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
             "in_index": 1,
-            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "out_index": 0
         },
         {
@@ -163,145 +163,125 @@
             "out_index": 0
         },
         {
-            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
-            "in_index": 1,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "in_index": 4,
+            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{aa0f14a1-bb34-43a6-a11d-5b88404d254d}",
-            "in_index": 0,
-            "out_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
+            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "in_index": 2,
+            "out_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
             "out_index": 0
         },
         {
-            "in_id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
-            "in_index": 1,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "in_index": 3,
+            "out_id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
             "out_index": 0
         },
         {
-            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
-            "in_index": 5,
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_index": 4,
             "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "out_index": 0
         },
         {
-            "in_id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
-            "in_index": 0,
-            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
-            "out_index": 1
+            "in_id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "in_index": 4,
+            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "out_index": 0
         },
         {
-            "in_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
-            "in_index": 3,
-            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "in_index": 0,
+            "out_id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
             "out_index": 0
         },
         {
             "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
-            "in_index": 3,
-            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "in_index": 1,
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "out_index": 0
         },
         {
-            "in_id": "{9579a8e2-d2d0-4107-b7b5-32b4aa1e7ce9}",
-            "in_index": 0,
-            "out_id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "in_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "in_index": 1,
+            "out_id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "out_index": 0
         },
         {
-            "in_id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
-            "in_index": 4,
-            "out_id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "in_id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
+            "in_index": 0,
+            "out_id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
             "out_index": 0
         }
     ],
     "nodes": [
         {
-            "id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
-            "model": {
-                "files": "/Users/mathias/Professionnel/Data/skyboxes/Spherical/spiaggia_di_mondello.jpg",
-                "instance": "EnvMapTextureSource14",
-                "name": "Source std::shared_ptr<RadiumNBR::EnvMap>",
-                "strength": 100,
-                "type": 2
-            },
-            "position": {
-                "x": -592.8287999999998,
-                "y": 153.8016
-            }
-        },
-        {
-            "id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
+            "id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
             "model": {
-                "activated": false,
-                "instance": "WireframeNode13",
-                "name": "Wireframe Pass"
+                "instance": "AccessibilityBufferNode4",
+                "name": "Accessibility Buffer Pass"
             },
             "position": {
-                "x": 1814.7455999999997,
-                "y": 309.31199999999995
+                "x": 460.73280000000034,
+                "y": 391.6895999999998
             }
         },
         {
-            "id": "{62ad7aec-1ea4-4f10-85cb-4be1ecda4263}",
+            "id": "{aa0f14a1-bb34-43a6-a11d-5b88404d254d}",
             "model": {
-                "instance": "ColorTextureNode12",
-                "name": "Color Texture"
+                "instance": "display",
+                "name": "Display Sink"
             },
             "position": {
-                "x": -457.97759999999994,
-                "y": -215.02080000000004
+                "x": 2139.9160319999987,
+                "y": 65.31194879999975
             }
         },
         {
-            "id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
+            "id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
             "model": {
-                "instance": "cameras",
-                "name": "Cameras"
+                "instance": "TransparencyNode5",
+                "name": "Transparency Pass"
             },
             "position": {
-                "x": -92.15999999999983,
-                "y": 321.92640000000017
+                "x": 1362.3552,
+                "y": 159.9552000000001
             }
         },
         {
-            "id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
+            "id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
             "model": {
-                "instance": "LocalLightNode11",
-                "name": "Local Light Pass"
+                "instance": "EmissivityNode6",
+                "name": "Emissivity Pass"
             },
             "position": {
-                "x": 1059.4128,
-                "y": 0.4959999999999809
+                "x": 462.06719999999984,
+                "y": -292.3775999999999
             }
         },
         {
-            "id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
+            "id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
             "model": {
-                "clearColor": [
-                    0.1607843041419983,
-                    0.1607843041419983,
-                    0.1607843041419983
-                ],
-                "instance": "ClearColorNode10",
-                "name": "Clear Color Pass"
+                "instance": "EnvLightNode8",
+                "name": "Environment Light Pass"
             },
             "position": {
-                "x": 7.430399999999992,
-                "y": -444.0959999999998
+                "x": 761.1129600000002,
+                "y": -145.65696
             }
         },
         {
-            "id": "{c6d4682c-2a02-467a-9c5c-5511b63b17ba}",
+            "id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
             "model": {
-                "instance": "lights",
-                "name": "Lights"
+                "instance": "ZGeomPrepassNode7",
+                "name": "Z Geometry Prepass"
             },
             "position": {
-                "x": 918.0384000000001,
-                "y": 552.3648000000001
+                "x": 109.49759999999998,
+                "y": -19.007999999999967
             }
         },
         {
@@ -317,82 +297,100 @@
             }
         },
         {
-            "id": "{c66eb0ff-d015-4974-b729-a272678bce05}",
+            "id": "{c6d4682c-2a02-467a-9c5c-5511b63b17ba}",
             "model": {
-                "instance": "EnvLightNode8",
-                "name": "Environment Light Pass"
+                "instance": "lights",
+                "name": "Lights"
             },
             "position": {
-                "x": 761.1129600000002,
-                "y": -145.65696
+                "x": 1059.6384,
+                "y": 539.1648000000002
             }
         },
         {
-            "id": "{9654598f-d4d4-494d-9f14-65d75606f1af}",
+            "id": "{4eabb57e-6858-49aa-bfe2-c6a0a20850c3}",
             "model": {
-                "instance": "ZGeomPrepassNode7",
-                "name": "Z Geometry Prepass"
+                "clearColor": [
+                    0.15686273574829102,
+                    0.15686273574829102,
+                    0.15686273574829102
+                ],
+                "instance": "ClearColorNode10",
+                "name": "Clear Color Pass"
             },
             "position": {
-                "x": 109.49759999999998,
-                "y": -19.007999999999967
+                "x": 7.430399999999992,
+                "y": -444.0959999999998
             }
         },
         {
-            "id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
+            "id": "{bdfe05be-3655-4d56-924d-ff3b1bbd709b}",
             "model": {
-                "instance": "renderObjects",
-                "name": "RenderObjects"
+                "instance": "LocalLightNode11",
+                "name": "Local Light Pass"
             },
             "position": {
-                "x": -149.2454400000004,
-                "y": -820.3622399999997
+                "x": 1059.4128,
+                "y": 0.4959999999999809
             }
         },
         {
-            "id": "{d79d27a4-64c1-4fa1-adc8-c39fd9da3008}",
+            "id": "{6ceda554-f6d1-4cf0-a36d-e811fc0ad3f1}",
             "model": {
-                "instance": "EmissivityNode6",
-                "name": "Emissivity Pass"
+                "instance": "cameras",
+                "name": "Cameras"
             },
             "position": {
-                "x": 462.06719999999984,
-                "y": -292.3775999999999
+                "x": -140.15999999999977,
+                "y": 387.9264000000001
             }
         },
         {
-            "id": "{34e8d2d1-a2de-4ebe-a18f-4dcd5b440d1c}",
+            "id": "{d07939d8-46d5-4d48-90fa-4ab2a4eebf30}",
             "model": {
-                "instance": "TransparencyNode5",
-                "name": "Transparency Pass"
+                "instance": "renderObjects",
+                "name": "RenderObjects"
             },
             "position": {
-                "x": 1362.3552,
-                "y": 159.9552000000001
+                "x": -138.44544000000042,
+                "y": -589.9622399999997
             }
         },
         {
-            "id": "{aa0f14a1-bb34-43a6-a11d-5b88404d254d}",
+            "id": "{62ad7aec-1ea4-4f10-85cb-4be1ecda4263}",
             "model": {
-                "instance": "display",
-                "name": "Display Sink"
+                "instance": "ColorTextureNode12",
+                "name": "Color Texture"
             },
             "position": {
-                "x": 2264.7160319999984,
-                "y": 152.91194879999978
+                "x": -438.7775999999999,
+                "y": -589.4207999999999
             }
         },
         {
-            "id": "{cb6e4c08-38bf-48fd-8cf2-392a5491751b}",
+            "id": "{c4f37638-3568-46cd-acbe-622013f79c13}",
             "model": {
-                "instance": "AccessibilityBufferNode4",
-                "name": "Accessibility Buffer Pass",
-                "radius": 5,
-                "samples": 64
+                "activated": false,
+                "instance": "WireframeNode13",
+                "name": "Wireframe Pass"
+            },
+            "position": {
+                "x": 1659.9455999999996,
+                "y": 309.31199999999995
+            }
+        },
+        {
+            "id": "{ab3678ab-f0fd-4815-8fa7-7cd08bb239fd}",
+            "model": {
+                "files": "/Users/mathias/Professionnel/Data/skyboxes/Spherical/spiaggia_di_mondello.jpg",
+                "instance": "EnvMapTextureSource14",
+                "name": "Source std::shared_ptr<RadiumNBR::EnvMap>",
+                "strength": 100,
+                "type": 2
             },
             "position": {
-                "x": 410.3328000000006,
-                "y": 462.48959999999977
+                "x": -495.6287999999997,
+                "y": -42.998399999999975
             }
         }
     ]