diff --git a/css/style.css b/css/style.css
index 1b909dcedc89d27fbd7dcc00dd72ce5ef1514c6d..37a43d8a5b800c0f28f07961c6c6713b3ee5f73c 100644
--- a/css/style.css
+++ b/css/style.css
@@ -28,6 +28,11 @@
 
 /* todo: propper rewrite of the structure; */
 
+html {
+  scroll-behavior: smooth;
+}
+
+
 body {
   /* position: relative; */
   -webkit-font-smoothing: antialiased;
@@ -51,6 +56,7 @@ body {
 
 canvas {
   position: absolute;
+  /* cursor: none !important; */
   /* cursor: pointer; */
 }
 
diff --git a/index.html b/index.html
index 84eaa047530fdc78b415f700fb68132edce1e2e4..a5c655f629092cffd04bdf0171939430b5ad7174 100644
--- a/index.html
+++ b/index.html
@@ -21,7 +21,7 @@
 	<script src="js/vue.min.js"></script>
 	<script src="js/marked.min.js"></script>
 	<script src="js/lodash.min.js"></script>
-	<script src="js/pixi.min.js"></script>
+	<script src="js/pixi.min.5.js"></script>
 	<script src="js/pixi-packer-parser.js"></script>
 	<script src="js/loader.js"></script>
 	<script src="js/canvas.js"></script>
@@ -77,13 +77,13 @@ cpietsch@gmail.com
 <body>
 	<div id="hiddenreload"></div>
 
-	<div class="browserInfo">
+	<!-- <div class="browserInfo">
 		<p>This visualization is not optimized for mobile phones and needs WebGL enabled.</p>
 		<p>Please come back on a Computer.</p>
 		<span>💡</span>
-	</div>
+	</div> -->
 
-	<div class="search"></div>
+	<!-- <div class="search"></div> -->
 
 	<div class="page">
 
@@ -131,12 +131,12 @@ cpietsch@gmail.com
 			</div>
 		</div>
 
-		<div class="navi hide">
+		<div class="navi" style="display: none">
 			<div class="time button active" data="time">time</div>
 			<div class="tsne button" data="tsne">similarity</div>
 		</div>
 
-		<div class="infobar sneak">
+		<div class="infobar sneak hide">
 			<div class="infobutton">
 				<svg width="16px" height="24px" viewBox="0 0 16 24">
 					<path d="M13.6824546,2 L3.7109392,11.9715154 L13.7394238,22" stroke="#FFF" stroke-width="5"></path>
@@ -154,7 +154,7 @@ cpietsch@gmail.com
 				</div>
 			</div>
 		</div>
-		<div class="searchbar">
+		<div class="searchbar hide">
 			<input type="input" name="suche">
 			<div class="button">
 				<div class="openbutton"></div>
diff --git a/js/canvas.js b/js/canvas.js
index c001d4c2afeea0982713d4bdac92de904add2ed5..1609704725614ce6e31347bb425ffdc392e1c78b 100644
--- a/js/canvas.js
+++ b/js/canvas.js
@@ -104,6 +104,11 @@ function Canvas() {
     var tsne = []
     var tsneIndex = {}
 
+    
+    var scaleTo, scaleNow = 1;
+    var translateTo, translateNow =[0,0]
+
+
     var scaleFactor = 0.9
 
     function canvas() {}
@@ -190,7 +195,7 @@ function Canvas() {
             width: width + margin.left + margin.right,
             height: height
         };
-        renderer = new PIXI.WebGLRenderer(renderOptions);
+        renderer = new PIXI.Renderer(renderOptions);
         renderer.backgroundColor = parseInt(config.style.canvasBackground.substring(1), 16)
         window.renderer = renderer;
 
@@ -256,10 +261,10 @@ function Canvas() {
 
         vizContainer = d3.select(".viz")
             .call(zoom)
-            .on("mousemove", mousemove)
+            // .on("mousemove", mousemove)
             .on("dblclick.zoom", null)
             .on("touchstart", function (d) {
-                mousemove(d);
+                // mousemove(d);
                 touchstart = new Date() * 1;
             })
             .on("touchend", function (d) {
@@ -344,7 +349,9 @@ function Canvas() {
         var mouse = d3.mouse(vizContainer.node());
         var p = toScreenPoint(mouse);
 
-        var distance = 200
+        if(zoomI % 10 !== 0) return
+
+        var distance = 10
 
         var best = nearest(p[0] - imgPadding, p[1] - imgPadding, {
             d: distance,
@@ -447,7 +454,7 @@ function Canvas() {
                 sleep = false;
             }
 
-            d.sprite.visible = d.visible && d.sprite.alpha > 0.1;
+            d.sprite.visible = d.visible && d.sprite.alpha > 0.01;
 
             // d.sprite.visible = d.visible;
 
@@ -459,10 +466,31 @@ function Canvas() {
                     sleep = false;
                 }
 
-                d.sprite2.visible = d.sprite2.alpha > 0.1;
+                d.sprite2.visible = d.sprite2.alpha > 0.01;
                 //else d.sprite2.visible = d.visible;
             }
         });
+
+        diff = (-stage2.scale.x + scaleTo)*0.1;
+        if(Math.abs(diff) > 0.0001){
+            stage2.scale.x += diff
+            stage2.scale.y += diff
+            sleep = false
+        }
+        diff = (translateTo[0] - stage2.x) * 0.1;
+        if(Math.abs(diff) > 0.0001){
+            stage2.x += diff
+            sleep = false
+        }
+        diff =  (translateTo[1] - stage2.y) * 0.1;
+        if(Math.abs(diff) > 0.0001){
+            stage2.y += diff
+            sleep = false
+        }
+
+        scaleNow = stage2.scale.x
+        translateNow = [stage2.x, stage2.y]
+
         return sleep
     }
 
@@ -481,6 +509,7 @@ function Canvas() {
         loadImages();
         if (sleep) return
         sleep = imageAnimation();
+        if(zoomI++ % 10 === 0) filterVisible();
         renderer.render(stage);
     }
 
@@ -498,6 +527,7 @@ function Canvas() {
     }
 
     function zoomToImage(d, duration) {
+        return
         state.zoomingToImage = true;
         zoom.center(null);
         loadMiddleImage(d);
@@ -578,11 +608,12 @@ function Canvas() {
 
     function showAllImages() {
         data.forEach(function (d) {
-            d.alpha = d.active ? 1 : 0.2;;
+            d.alpha = d.active ? 1 : 0;
             d.alpha2 = d.visible ? 1 : 0;
         })
     }
 
+    var zoomI = 0;
     function zoomed() {
         translate = d3.event.translate;
         scale = d3.event.scale;
@@ -592,38 +623,38 @@ function Canvas() {
         var x1 = -1 * translate[0] / scale;
         var x2 = (x1 + (widthOuter / scale));
 
-        if (d3.event.sourceEvent != null) {
-            if (x1 < 0) {
-                translate[0] = 0;
-            } else if (x2 > widthOuter) {
-                translate[0] = ((widthOuter * scale) - widthOuter) * -1;
-            }
+        // if (d3.event.sourceEvent != null) {
+        //     if (x1 < 0) {
+        //         translate[0] = 0;
+        //     } else if (x2 > widthOuter) {
+        //         translate[0] = ((widthOuter * scale) - widthOuter) * -1;
+        //     }
 
-            zoom.translate([translate[0], translate[1]]);
+        //     zoom.translate([translate[0], translate[1]]);
 
-            x1 = -1 * translate[0] / scale;
-            x2 = (x1 + (width / scale))
-        }
+        //     x1 = -1 * translate[0] / scale;
+        //     x2 = (x1 + (width / scale))
+        // }
 
-        if (zoomedToImageScale != 0 && scale > zoomedToImageScale*0.9 && !zoomedToImage && selectedImage && selectedImage.type == "image") {
+        // if (zoomedToImageScale != 0 && scale > zoomedToImageScale*0.9 && !zoomedToImage && selectedImage && selectedImage.type == "image") {
 
-            zoomedToImage = true;
-            zoom.center(null);
-            zoomedToImageScale = scale;
-            hideTheRest(selectedImage);
-            showDetail(selectedImage)
-        }
+        //     zoomedToImage = true;
+        //     zoom.center(null);
+        //     zoomedToImageScale = scale;
+        //     hideTheRest(selectedImage);
+        //     showDetail(selectedImage)
+        // }
 
-        if (zoomedToImage && zoomedToImageScale *0.8 > scale) {
-            // console.log("clear")
-            zoomedToImage = false;
-            state.lastZoomed = 0;
-            showAllImages();
-            clearBigImages();
-            detailContainer.classed("hide", true)
-        }
+        // if (zoomedToImage && zoomedToImageScale *0.85 > scale) {
+        //     // console.log("clear")
+        //     zoomedToImage = false;
+        //     state.lastZoomed = 0;
+        //     // showAllImages();
+        //     clearBigImages();
+        //     detailContainer.classed("hide", true)
+        // }
 
-        timeline.update(x1, x2, scale, translate, scale1);
+        // timeline.update(x1, x2, scale, translate, scale1);
 
         // toggle zoom overlays
         if (scale > zoomBarrier) {
@@ -631,17 +662,24 @@ function Canvas() {
             d3.select(".searchbar").classed("hide", true);
             d3.select(".infobar").classed("sneak", true);
         } else {
-            d3.select(".tagcloud").classed("hide", false);
+            d3.select(".tagcloud").classed("hide", true);
+            d3.select(".searchbar").classed("hide", true);
+            d3.select(".infobar").classed("sneak", true);
+            // d3.select(".tagcloud").classed("hide", false);
             d3.select(".searchbar").classed("hide", false);
         }
 
 
-        stage2.scale.x = d3.event.scale;
-        stage2.scale.y = d3.event.scale;
-        stage2.x = d3.event.translate[0];
-        stage2.y = d3.event.translate[1];
+        scaleTo = d3.event.scale;
+        translateTo = [ d3.event.translate[0] , d3.event.translate[1]]
+
+        // stage2.scale.x = d3.event.scale;
+        // stage2.scale.y = d3.event.scale;
+        // stage2.x = d3.event.translate[0];
+        // stage2.y = d3.event.translate[1];
 
         sleep = false
+        
     }
 
     function zoomstart(d) {
@@ -755,6 +793,7 @@ function Canvas() {
     }
 
     canvas.resetZoom = function () {
+        
         var duration = 1400;
 
         extent = d3.extent(data, function (d) {
@@ -762,12 +801,13 @@ function Canvas() {
         });
 
         var y = -extent[1]*2 -height -extent[0]/4;
-        // y = (extent[1] / -1.5) - bottomPadding
+        y = (extent[1] / -1.5) - bottomPadding
 
         vizContainer
             .call(zoom.translate(translate).event)
-            .transition().duration(duration)
-            .call(zoom.translate([-width/2, y]).scale(2).event)
+            // .transition().duration(duration)
+            .call(zoom.translate([0, y]).scale(1).event)
+            // .call(zoom.translate([-width/2, y]).scale(2).event)
     }
 
     canvas.split = function () {
@@ -783,14 +823,17 @@ function Canvas() {
     }
 
     function filterVisible() {
-        var zoomScale = scale;
-        if (zoomedToImage) return;
+        var zoomScale = scaleNow;
+        console.log(scaleNow)
+        // var translate = translateNow
+        // if (zoomedToImage) return;
 
         data.forEach(function (d, i) {
             var p = d.sprite.position;
-            var x = (p.x / scale1) + translate[0] / zoomScale;
-            var y = ((p.y / scale1) + (translate[1]) / zoomScale);
-            var padding = (width/3) / scale;
+            var x = (p.x / scale1) + translateNow[0] / zoomScale;
+            var y = ((p.y / scale1) + (translateNow[1]) / zoomScale);
+            var padding = (width/8) / scale;
+            // padding = 0
 
             if (x > (-padding) && x < ((width / zoomScale) + padding) && y + height < (height / zoomScale + padding) && y > (height * -1) - padding) {
                 d.visible = true;              
@@ -805,36 +848,38 @@ function Canvas() {
 
         console.log(visible.length)
 
-        if (visible.length < 200) {
+        if (visible.length < 300) {
             data.forEach(function (d) {
-                if (d.visible && d.loaded && d.active) {d.alpha2 = 1 }
+                if (d.visible && d.loaded && d.active) {d.alpha2 = 1; d.alpha = 0; }
                 else if (d.visible && !d.loaded && d.active) loadImagesCue.push(d);
-                else {d.alpha2 = 0}
+                else {d.alpha2 = 0; d.alpha = 1;}
             })
         } 
-        // else {
-        //     data.forEach(function (d) {
-        //         d.alpha2 = 0;
-        //         // d.alpha = 1
-        //         d.visible = true;
-        //     })
-        // }
+        else {
+            data.forEach(function (d) {
+                d.alpha2 = 0;
+                d.alpha = 1
+                // d.visible = true;
+            })
+        }
     }
 
     function loadMiddleImage(d) {
         if (d.loaded) {
             d.alpha2 = 1;
+            d.alpha = 0;
             return;
         }
 
         // console.log("load", d)
-        var url = config.loader.textures.detail.url + d.id + '.jpg'
+        var url = config.loader.textures.detail.url + d.id + '.png'
         var texture = new PIXI.Texture.fromImage(url)
         var sprite = new PIXI.Sprite(texture);
 
         var update = function () {
             sleep = false
-            d.visible = false
+            // d.visible = false
+            // d.alpha = 0;
         }
 
         sprite.on('added', update)
@@ -863,7 +908,7 @@ function Canvas() {
 
         state.lastZoomed = d.id;
         var page = d.page ? '_' + d.page : ''
-        var url = config.loader.textures.big.url + d.id + page + ".jpg";
+        var url = config.loader.textures.big.url + d.id + page + ".png";
 
         console.log(url)
 
@@ -899,32 +944,41 @@ function Canvas() {
     }
 
     function loadImages() {
-        if (zooming) return;
-        if (zoomedToImage) return;
-
-        if (loadImagesCue.length) {
-            var d = loadImagesCue.pop();
-            // console.log(d.id)
-            if (!d.loaded) {
-                loadMiddleImage(d);
-            }
-        }
-        if (loadImagesCue.length) {
-            var d = loadImagesCue.pop();
-            // console.log(d.id)
-            if (!d.loaded) {
-                loadMiddleImage(d);
-            }
-        }
-        if (loadImagesCue.length) {
-            var d = loadImagesCue.pop();
-            // console.log(d.id)
-            if (!d.loaded) {
-                loadMiddleImage(d);
+        // if (zooming) return;
+        // if (zoomedToImage) return;
+
+        for (let index = 0; index < 4; index++) {
+            if (loadImagesCue.length) {
+                var d = loadImagesCue.pop();
+                // console.log(d.id)
+                if (!d.loaded) {
+                    loadMiddleImage(d);
+                }
             }
         }
         // if (loadImagesCue.length) {
         //     var d = loadImagesCue.pop();
+        //     // console.log(d.id)
+        //     if (!d.loaded) {
+        //         loadMiddleImage(d);
+        //     }
+        // }
+        // if (loadImagesCue.length) {
+        //     var d = loadImagesCue.pop();
+        //     // console.log(d.id)
+        //     if (!d.loaded) {
+        //         loadMiddleImage(d);
+        //     }
+        // }
+        // if (loadImagesCue.length) {
+        //     var d = loadImagesCue.pop();
+        //     // console.log(d.id)
+        //     if (!d.loaded) {
+        //         loadMiddleImage(d);
+        //     }
+        // }
+        // if (loadImagesCue.length) {
+        //     var d = loadImagesCue.pop();
         //     console.log(d.id)
         //     if (!d.loaded) {
         //         loadMiddleImage(d);
diff --git a/js/viz.js b/js/viz.js
index a0128cb5827c323a1e432d835a84229a77b5a265..c94a6dbb97df52ea90f7e31512416eab79027945 100644
--- a/js/viz.js
+++ b/js/viz.js
@@ -76,7 +76,7 @@ function init() {
 				var allTextures = {}
 				LoaderSprites()
 					.progress(function (textures) {
-						console.log("textures", textures)
+						// console.log("textures", textures)
 						allTextures = { ...textures, ...allTextures }
 						// Object.keys(textures).forEach(function (id) {
 						// 	if(i++ % 1000 == 0) console.log(i)
@@ -99,6 +99,7 @@ function init() {
 							d.sprite.texture = allTextures[d.id]
 							if(i++ % 10000 == 0) console.log(i)
 						})
+						canvas.setMode("tsne")
 					})
 					.load(config.loader.textures.medium.url)
 			});
@@ -135,6 +136,7 @@ function init() {
 		})
 
 	d3.selectAll(".navi .button")
+		.hide()
 		.on("click", function () {
 			var that = this;
 			var mode = d3.select(this).attr("data");
@@ -147,4 +149,4 @@ function init() {
 		})
 }
 
-d3.select(".browserInfo").classed("show", utils.isMobile());
\ No newline at end of file
+d3.select(".browserInfo").classed("show", utils.isMobile());