diff --git a/modules/gfx/pymod/export_render_options.cc b/modules/gfx/pymod/export_render_options.cc
index cb5a530b7b0f84b41e1851870bd8aca578ce2522..5d2a951725552e236ed86a7e22b879b6b2190fec 100644
--- a/modules/gfx/pymod/export_render_options.cc
+++ b/modules/gfx/pymod/export_render_options.cc
@@ -79,6 +79,7 @@ void export_RenderOptions()
   ;
 
   class_<CartoonRenderOptions, boost::shared_ptr<CartoonRenderOptions>, bases<RenderOptions>, boost::noncopyable>("CartoonRenderOptions")
+    .def(init<optional<bool> >())
     .def("SetSplineDetail", &CartoonRenderOptions::SetSplineDetail)
     .def("GetSplineDetail", &CartoonRenderOptions::GetSplineDetail)
     .def("SetPolyMode", &CartoonRenderOptions::SetPolyMode)
diff --git a/modules/gfx/src/impl/cartoon_renderer.cc b/modules/gfx/src/impl/cartoon_renderer.cc
index 887e4c449d82292ef2a517442bbfaf8c42bd4f85..e9b750232ed57e27da7f6dbaf68aaeb048ab372c 100644
--- a/modules/gfx/src/impl/cartoon_renderer.cc
+++ b/modules/gfx/src/impl/cartoon_renderer.cc
@@ -32,7 +32,7 @@ using namespace impl;
 
 CartoonRenderer::CartoonRenderer(BackboneTrace& trace, bool force_tube): 
   TraceRendererBase(trace, 3),   force_tube_(force_tube),
-  options_(new CartoonRenderOptions())
+  options_(new CartoonRenderOptions(force_tube))
 {
 if(force_tube){
   this->SetName("Smooth Tube");
diff --git a/modules/gfx/src/render_options/cartoon_render_options.cc b/modules/gfx/src/render_options/cartoon_render_options.cc
index 1f3428c15f2d3fe7ceeca12d8edb1e9b617ba892..30996bfd1288bcdf80aafc1c391682b7b66b3a63 100644
--- a/modules/gfx/src/render_options/cartoon_render_options.cc
+++ b/modules/gfx/src/render_options/cartoon_render_options.cc
@@ -26,7 +26,8 @@ namespace ost {
 
 namespace gfx {
 
-CartoonRenderOptions::CartoonRenderOptions(): 
+CartoonRenderOptions::CartoonRenderOptions(bool force_tube):
+  force_tube_(force_tube),
   spline_detail_(6),
   poly_mode_(2),
   arc_detail_(4),
@@ -41,10 +42,14 @@ CartoonRenderOptions::CartoonRenderOptions():
   strand_ecc_(0.3) {}
 
 RenderMode::Type CartoonRenderOptions::GetRenderMode(){
- return RenderMode::HSC;
+  if(force_tube_)
+    return RenderMode::TUBE;
+  return RenderMode::HSC;
 }
 
 bool CartoonRenderOptions::CanApplyRenderOptions(RenderOptionsPtr render_options){
+  if(force_tube_)
+    return render_options.get()->GetRenderMode()==RenderMode::TUBE;
   return render_options.get()->GetRenderMode()==RenderMode::HSC;
 }
 
diff --git a/modules/gfx/src/render_options/cartoon_render_options.hh b/modules/gfx/src/render_options/cartoon_render_options.hh
index cddecbdab098c65a028a1debb827066f94853880..55653bb53edd76241e82b4d018ec2b23faa49f01 100644
--- a/modules/gfx/src/render_options/cartoon_render_options.hh
+++ b/modules/gfx/src/render_options/cartoon_render_options.hh
@@ -33,7 +33,7 @@ namespace ost { namespace gfx {
 
 class DLLEXPORT_OST_GFX CartoonRenderOptions: public ost::gfx::RenderOptions {
 public:
-  CartoonRenderOptions();
+  CartoonRenderOptions(bool force_tube=false);
 
   virtual RenderMode::Type GetRenderMode();
 
@@ -76,6 +76,7 @@ public:
   virtual ~CartoonRenderOptions();
 
 private:
+  bool force_tube_;
   uint spline_detail_;
   uint poly_mode_;
   uint arc_detail_;