diff --git a/offline_ray_tracer/include/settings.hpp b/offline_ray_tracer/include/settings.hpp
index ccaf3b7864c38669a2448f1ad352fcb074461eca..23f106e84609576d462542fed65fe28e345e9439 100644
--- a/offline_ray_tracer/include/settings.hpp
+++ b/offline_ray_tracer/include/settings.hpp
@@ -23,7 +23,7 @@ struct settings
   {
     double                time    ;
     std::array<double, 3> position;
-    std::array<double, 3> forward ;
+    std::array<double, 3> center  ;
     std::array<double, 3> up      ;
   };
 
@@ -50,10 +50,10 @@ struct settings
 
     image_size      = {root["image_size"     ][0].asInt   (),
                        root["image_size"     ][1].asInt   ()};
-    step_size       =  root["step_size"]         .asDouble();
+    step_size       =  root["step_size"      ]   .asDouble();
     samples         =  root["samples"        ]   .asInt   ();
     ambient_samples =  root["ambient_samples"]   .asInt   ();
-    shadows         =  root["shadows"]           .asBool  ();
+    shadows         =  root["shadows"        ]   .asBool  ();
 
     update_rate     =  root["update_rate"    ]   .asDouble();
 
@@ -65,10 +65,10 @@ struct settings
                        iteratee["position"][0].asDouble(),
                        iteratee["position"][1].asDouble(),
                        iteratee["position"][2].asDouble()};
-      entry.forward  = std::array<double, 3> {
-                       iteratee["forward" ][0].asDouble(),
-                       iteratee["forward" ][1].asDouble(),
-                       iteratee["forward" ][2].asDouble()};
+      entry.center   = std::array<double, 3> {
+                       iteratee["center"  ][0].asDouble(),
+                       iteratee["center"  ][1].asDouble(),
+                       iteratee["center"  ][2].asDouble()};
       entry.up       = std::array<double, 3> {
                        iteratee["up"      ][0].asDouble(),
                        iteratee["up"      ][1].asDouble(),
diff --git a/offline_ray_tracer/source/main.cpp b/offline_ray_tracer/source/main.cpp
index 3f81035fe2368330cd681f7e7bc6d6f5c8b1eeb7..148bf9b64fac58845138a9158202ed453784f112 100644
--- a/offline_ray_tracer/source/main.cpp
+++ b/offline_ray_tracer/source/main.cpp
@@ -52,11 +52,9 @@ std::int32_t main(std::int32_t argc, char** argv)
   for (const auto& key_frame : settings.key_frames)
   {
     auto* camera = renderer->GetActiveCamera();
-    camera      ->SetPosition  (key_frame.position[0] , key_frame.position[1], key_frame.position[2]);
-    camera      ->SetFocalPoint(key_frame.position[0] + key_frame.forward [0], 
-                                key_frame.position[1] + key_frame.forward [1], 
-                                key_frame.position[2] + key_frame.forward [2]);
-    camera      ->SetViewUp    (key_frame.up      [0] , key_frame.up      [1], key_frame.up      [2]);
+    camera      ->SetPosition  (key_frame.position.data());
+    camera      ->SetFocalPoint(key_frame.center  .data());
+    camera      ->SetViewUp    (key_frame.up      .data());
     interpolator->AddCamera    (key_frame.time, camera);
   }
 
@@ -71,12 +69,13 @@ std::int32_t main(std::int32_t argc, char** argv)
   std::cout << "Setting up video writer.\n";
   auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New(); 
   auto video_writer    = vtkSmartPointer<vtkAVIWriter>          ::New(); 
-  window_to_image->SetInput          (window);
-  video_writer   ->SetInputConnection(window_to_image->GetOutputPort());
-  video_writer   ->SetFileName       ("video.avi");
-  video_writer   ->SetQuality        (2);
-  video_writer   ->SetRate           (static_cast<std::int32_t>(1000.0 / settings.update_rate));
-  video_writer   ->Start             ();
+  window_to_image->SetInput                (window);
+  window_to_image->ReadFrontBufferOff      ();
+  video_writer   ->SetInputConnection      (window_to_image->GetOutputPort());
+  video_writer   ->SetFileName             ("video.avi");
+  video_writer   ->SetRate                 (static_cast<std::int32_t>(1000.0 / settings.update_rate));
+  video_writer   ->SetQuality              (2);
+  video_writer   ->Start                   ();
 
   std::cout << "Starting rendering.\n";
   auto current_time = 0.0;
diff --git a/settings.json b/settings.json
index d2b7a0e06617c6f7754e567b294bc70f84dd3b7e..aa91994846d84e16b1cdc52353f28d42c51fa3ba 100644
--- a/settings.json
+++ b/settings.json
@@ -1,26 +1,25 @@
 {
   "data_file_paths":
   [
-    { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"},
-    { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"},
-    { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"}
+    { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q" }
   ],
   "transfer_function": "D:/source/internal/oxyflame_rendering_tools/transfer_function.json",
   "time_scale"       : 1000.0,
-  "loop"             : true,
+  "loop"             : false,
 
-  "image_size"       : [4096, 4096],
-  "step_size"        : 0.1,
-  "samples"          : 128,
+  "image_size"       : [1920, 1080],
+  "step_size"        : 0.05,
+  "samples"          : 16,
   "ambient_samples"  : 0,
   "shadows"          : true,
 
   "update_rate"      : 16.0,
   "key_frames"       :
   [
-    { "time":     0.0, "position": [   0.0, 0.0,  250.0], "forward": [ 0.0, 0.0, -1.0], "up": [0.0, 1.0, 0.0] },
-    { "time":  2500.0, "position": [ 250.0, 0.0,    0.0], "forward": [-1.0, 0.0,  0.0], "up": [0.0, 1.0, 0.0] },
-    { "time":  5000.0, "position": [   0.0, 0.0, -250.0], "forward": [ 0.0, 0.0,  1.0], "up": [0.0, 1.0, 0.0] },
-    { "time": 10000.0, "position": [-250.0, 0.0,    0.0], "forward": [ 1.0, 0.0,  0.0], "up": [0.0, 1.0, 0.0] }
+    { "time":     0.0, "position": [   0.0, 0.0,  200.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+    { "time":  4000.0, "position": [ 200.0, 0.0,    0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+    { "time":  8000.0, "position": [   0.0, 0.0, -200.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+    { "time": 12000.0, "position": [-200.0, 0.0,    0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+    { "time": 32000.0, "position": [   0.0, 0.0,    0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] }
   ]
 }