diff --git a/.gitmodules b/.gitmodules
index cc275fed76c6f3bdb8a21f597b98066e92b319d7..b405a34756178d6b545677d9b0b568ebbd761010 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@
 [submodule "ThirdParty/tetgen"]
 	path = ThirdParty/tetgen
 	url = https://github.com/ufz/tetgen.git
+[submodule "vtkdiff"]
+	path = ThirdParty/vtkdiff
+	url = https://github.com/ufz/vtkdiff.git
diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt
index d7c2d0e55fcc1e4f715bb2457bb322a34ed34440..de6f091b73d4ac8d5a9ce13da9ed838e9d7d98af 100644
--- a/ThirdParty/CMakeLists.txt
+++ b/ThirdParty/CMakeLists.txt
@@ -44,3 +44,9 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/tetgen/CMakeLists.txt)
 		install (PROGRAMS $<TARGET_FILE:tetgen> DESTINATION bin COMPONENT ogs_extras)
 	endif()
 endif()
+
+# vtkdiff
+if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/vtkdiff/CMakeLists.txt)
+	add_subdirectory(vtkdiff)
+	install (PROGRAMS $<TARGET_FILE:vtkdiff> DESTINATION bin COMPONENT ogs_extras)
+endif()
diff --git a/ThirdParty/vtkdiff b/ThirdParty/vtkdiff
new file mode 160000
index 0000000000000000000000000000000000000000..d8af1935bc8577c6d2accb2c828524ead107630b
--- /dev/null
+++ b/ThirdParty/vtkdiff
@@ -0,0 +1 @@
+Subproject commit d8af1935bc8577c6d2accb2c828524ead107630b
diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake
index 93f86302742a2372cbe0749805a6c133e080fe00..59dc99ff47ce97a043cb989d5016abc85ffd42be 100644
--- a/scripts/cmake/SubmoduleSetup.cmake
+++ b/scripts/cmake/SubmoduleSetup.cmake
@@ -6,6 +6,7 @@ if(NOT OGS_ADDITIONAL_SUBMODULES_TO_CHECKOUT)
 endif()
 set(REQUIRED_SUBMODULES
 	ThirdParty/quickcheck
+	ThirdParty/vtkdiff
 	${OGS_ADDITIONAL_SUBMODULES_TO_CHECKOUT}
 )