diff --git a/.travis.yml b/.travis.yml
index 99a0b555ee502e48c78084de00cbc62e219fdf6a..89e87d4ce52e900113712f8a293229f56c2b24c5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,12 +20,14 @@ cache:
     - $HOME/cmake-3.1.1-Linux-x86_64
     - $HOME/VTK-Install-7.1
     - $HOME/boost_1_56_0
+    - $HOME/eigen-eigen-dc6cfdf9bcec
     - $HOME/.conan
 
 env:
   global:
     - VTK_DIR=$HOME/VTK-Install-7.1/lib/cmake/vtk-7.1
     - BOOST_ROOT=$HOME/boost_1_56_0
+    - EIGEN3_ROOT=$HOME/eigen-eigen-dc6cfdf9bcec
     - CCACHE_SLOPPINESS=pch_defines,time_macros
 matrix:
   include:
@@ -46,6 +48,7 @@ before_install:
   - if [ "$CASE" != "CHECK" ]; then bash scripts/travis/cmake.sh; fi
   - if [ "$CASE" != "CONAN" ] && [ "$CASE" != "CHECK" ]; then bash scripts/travis/boost.sh; fi
   - if [ "$CASE" != "CONAN" ] && [ "$CASE" != "CHECK" ]; then bash scripts/travis/vtk.sh; fi
+  - if [ "$CASE" != "CONAN" ] && [ "$CASE" != "CHECK" ]; then bash scripts/travis/eigen.sh; fi
   - if [ "$CASE" == "CONAN" ] && [ "$CASE" != "CHECK" ]; then bash scripts/travis/conan.sh; fi
 
 before_script:
diff --git a/scripts/travis/eigen.sh b/scripts/travis/eigen.sh
new file mode 100644
index 0000000000000000000000000000000000000000..de97440c900ee0b07b3ebb9cf6516e48aef8710e
--- /dev/null
+++ b/scripts/travis/eigen.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+# check to see if cmake folder is empty
+if [ ! -d "$HOME/eigen-eigen-dc6cfdf9bcec/Eigen" ]; then
+    ZIP="3.2.9.zip"
+    cd $HOME
+    curl -L -o $ZIP http://bitbucket.org/eigen/eigen/get/$ZIP;
+    unzip $ZIP;
+else
+    echo 'Using cached eigen directory.';
+fi