diff --git a/vision/CMakeLists.txt b/vision/CMakeLists.txt
index b07dcc8b2b2ff88da956604849aa0661ff5675ab..47a39a6e4764d466876874994a8ae1d098e3df6c 100644
--- a/vision/CMakeLists.txt
+++ b/vision/CMakeLists.txt
@@ -10,7 +10,6 @@ set(CVNODESRC
 	src/calibrate.cpp
 	src/local.cpp
 	src/sync.cpp
-	src/display.cpp
 	src/disparity.cpp
 	src/streamer.cpp
 	src/middlebury.cpp
@@ -40,6 +39,7 @@ endif (CUDA_FOUND)
 
 add_executable(ftl-vision ${CVNODESRC})
 add_dependencies(ftl-vision ftlnet)
+add_dependencies(ftl-vision ftlrender)
 add_dependencies(ftl-vision libelas)
 
 if (CUDA_FOUND)
@@ -47,6 +47,6 @@ set_property(TARGET ftl-vision PROPERTY CUDA_SEPARABLE_COMPILATION ON)
 endif()
 
 #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include)
-target_link_libraries(ftl-vision Threads::Threads ZLIB::ZLIB libelas ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} glog::glog ftlnet)
+target_link_libraries(ftl-vision ftlrender Threads::Threads ZLIB::ZLIB libelas ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} glog::glog ftlnet)
 
 
diff --git a/vision/src/main.cpp b/vision/src/main.cpp
index 16e1bc6ae368a3658e54f74f808eeb96c88d1bb7..1b0c709c06cff5899bf6fc06f5081baf9411f52b 100644
--- a/vision/src/main.cpp
+++ b/vision/src/main.cpp
@@ -140,12 +140,12 @@ static void run(const string &file) {
 	if (config["calibrate"]) calibrate.recalibrate();
 	if (!calibrate.isCalibrated()) LOG(WARNING) << "Cameras are not calibrated!";
 	
+	cv::Mat Q_32F;
+	calibrate.getQ().convertTo(Q_32F, CV_32F);
+	
 	// Allow remote users to access camera calibration matrix
-	net.bind(string("ftl://utu.fi/")+(string)config["stream"]["name"]+string("/rgb-d/calibration"), [&calibrate]() -> vector<unsigned char> {
+	net.bind(string("ftl://utu.fi/")+(string)config["stream"]["name"]+string("/rgb-d/calibration"), [&calibrate,Q_32F]() -> vector<unsigned char> {
 		vector<unsigned char> buf;
-		cv::Mat Q_32F;
-		calibrate.getQ().convertTo(Q_32F, CV_32F);
-		
 		buf.resize(Q_32F.step*Q_32F.rows);
 		memcpy(Q_32F.data, buf.data(), buf.size());
 		return buf;
@@ -157,7 +157,9 @@ static void run(const string &file) {
 
 	Mat l, r, disp;
 
-	Display display(calibrate, config["display"]);
+	Display display(config["display"]);
+	display.setCalibration(Q_32F);
+	
 	Streamer stream(net, config["stream"]);
 
 	while (display.active()) {
@@ -179,6 +181,7 @@ static void run(const string &file) {
 		display.render(l, disp);
 
 		stream.send(l, disp);
+		display.wait(1);
 	}
 }