diff --git a/README.md b/README.md
new file mode 100644
index 0000000..92abba9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+
+# Theory
+
+## Links
+
+* https://fulldataalchemist.medium.com/building-your-own-real-time-object-detection-app-roboflow-yolov8-and-streamlit-part-1-f577cf0aa6e5
\ No newline at end of file
diff --git a/dodgeballtracker/logic.py b/dodgeballtracker/logic.py
index be19298..3262fa4 100644
--- a/dodgeballtracker/logic.py
+++ b/dodgeballtracker/logic.py
@@ -124,7 +124,6 @@ class DodgeballTracker:
json.dump({"points": self.points}, file_, indent=4)
def _get_tracker(self):
-
return DeepOCSORT(
model_weights=Path('lmbn_n_cuhk03_d.pt'), # which ReID model to use
device=torch.device("mps"),
diff --git a/frontend/animation-experiments.html b/frontend/animation-experiments.html
new file mode 100644
index 0000000..7b45fc1
--- /dev/null
+++ b/frontend/animation-experiments.html
@@ -0,0 +1,72 @@
+
+
+
+
+ Animation
+
+
+
+
+
+
+
+
+ Hello, world!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/animation.js b/frontend/animation.js
new file mode 100644
index 0000000..39012ac
--- /dev/null
+++ b/frontend/animation.js
@@ -0,0 +1,66 @@
+import anime from "https://esm.sh/animejs@3.2.2";
+
+
+const second = 1000;
+
+const canvasWidth = Number.parseFloat(document.querySelector("svg").getAttribute("width"));
+const canvasHeight = Number.parseFloat(document.querySelector("svg").getAttribute("height"));
+
+function gaussianRandom(mean=0, stdev=1) {
+ const u = 1 - Math.random(); // Converting [0,1) to (0,1]
+ const v = Math.random();
+ const z = Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
+ // Transform to the desired mean and standard deviation:
+ return z * stdev + mean;
+}
+
+function* brownian(n){
+ let x = 0;
+ for(let i = 0; i < n; i ++){
+ x += gaussianRandom(0, 10);
+ console.log(x);
+ yield x;
+ }
+}
+
+function* pseudoBrownian(n, limit){
+ let x = 0;
+ for(let i = 0; i < n; i ++){
+ let delta = gaussianRandom(0, 10);
+ if(Math.abs(x + delta) > limit){
+ delta = -1 * delta
+ }
+ x += delta;
+ yield x;
+ }
+}
+
+function* keyFrames(duration, framePerSeconds){
+ const deltaX = canvasWidth / (duration * framePerSeconds);
+ const limit = 0.75 * (canvasHeight / 2);
+ for(const deltaY of pseudoBrownian(duration * framePerSeconds, limit)){
+ yield {translateX: `+=${deltaX}`, translateY: deltaY};
+ }
+}
+
+const duration = 60;
+const timeline = anime.timeline({
+ duration: duration * second,
+ autoplay: false,
+ easing: 'linear'});
+
+for(let i = 1; i <= 12; i++){
+ timeline.add({
+ targets: `#rect-${i}`,
+ keyframes: Array.from(keyFrames(duration, 30)),
+ }, 0)
+}
+
+
+document.querySelector('#play').onclick = timeline.play;
+document.querySelector('#pause').onclick = timeline.pause;
+document.querySelector('#seek').onclick = function(){
+ const seekVal = Number.parseFloat(second * document.querySelector('#seek-value').value);
+ timeline.pause();
+ timeline.seek(seekVal);
+}
diff --git a/frontend/index.html b/frontend/index.html
index 3d3580d..15b27cc 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -26,62 +26,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-