removing spatial interpolation if lines are straight
diff --git a/player/index.html b/player/index.html
index 3c1e4df..4c6f63b 100644
--- a/player/index.html
+++ b/player/index.html
@@ -12,8 +12,8 @@
         }
         #bodymovin{
             background-color:#333;
-            width:500px;
-            height:600px;
+            width:700px;
+            height:700px;
             /*width:800px;
             height:500px;*/
             display:block;
diff --git a/player/js/elements/htmlElements/HCameraElement.js b/player/js/elements/htmlElements/HCameraElement.js
index bae1d78..c1e3396 100644
--- a/player/js/elements/htmlElements/HCameraElement.js
+++ b/player/js/elements/htmlElements/HCameraElement.js
@@ -33,6 +33,7 @@
         comp = this.comp.threeDElements[i];
         comp[0].style.perspective = comp[0].style.webkitPerspective = this.pe.v+'px';
         comp[1].style.transformOrigin = comp[1].style.mozTransformOrigin = comp[1].style.webkitTransformOrigin = "0px 0px 0px";
+        comp[0].style.transform = comp[0].style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';
     }
 };
 
diff --git a/player/js/utils/PropertyFactory.js b/player/js/utils/PropertyFactory.js
index a6fa72d..feb334c 100644
--- a/player/js/utils/PropertyFactory.js
+++ b/player/js/utils/PropertyFactory.js
@@ -328,6 +328,21 @@
     }
 
     function KeyframedMultidimensionalProperty(elem, data, mult){
+        console.log(data);
+        var i, len = data.k.length;
+        var s, e,to,ti;
+        for(i=0;i<len-1;i+=1){
+            if(data.k[i].to && data.k[i].s && data.k[i].e ){
+                s = data.k[i].s;
+                e = data.k[i].e;
+                to = data.k[i].to;
+                ti = data.k[i].ti;
+                if(bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],s[0] + to[0],s[1] + to[1],s[2] + to[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],e[0] + ti[0],e[1] + ti[1],e[2] + ti[2])){
+                    data.k[i].to = null;
+                    data.k[i].ti = null;
+                }
+            }
+        }
         this.keyframes = data.k;
         this.offsetTime = elem.data.st;
         this.k = true;
diff --git a/player/js/utils/bez.js b/player/js/utils/bez.js
index 6d8f10b..ad04cbb 100644
--- a/player/js/utils/bez.js
+++ b/player/js/utils/bez.js
@@ -7,6 +7,21 @@
         return bm_abs(((x2 - x1) * (y3 - y1)) - ((x3 - x1) * (y2 - y1))) < 0.00001;
     }
 
+    function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){
+        /* x1 y1 1   x1 y1
+           x2 y2 1   x2 y2
+           x3 y3 1   x3 y3
+
+         x1 z1 1
+         x2 z2 1
+         x3 z3 1
+
+         */
+        var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);
+        var det2 = (x1*z2) + (z1*x3) + (x2*z3) - (x3*z2) - (z3*x1) - (x2*z1);
+        return det1 > -0.0001 && det1 < 0.00001 && det2 > -0.00001 && det2 < 0.00001;
+    }
+
     function getEasingCurve(aa,bb,cc,dd,encodedFuncName) {
         if(!encodedFuncName){
             encodedFuncName = ('bez_' + aa+'_'+bb+'_'+cc+'_'+dd).replace(/\./g, 'p');
@@ -198,7 +213,9 @@
         getEasingCurve : getEasingCurve,
         getBezierLength : getBezierLength,
         getNewSegment : getNewSegment,
-        buildBezierData : buildBezierData
+        buildBezierData : buildBezierData,
+        pointOnLine2D : pointOnLine2D,
+        pointOnLine3D : pointOnLine3D
     };
 }