diff --git a/appVideoServer/data/settings/callibration_cam0.npz b/appVideoServer/data/settings/callibration_cam0.npz
deleted file mode 100644
index 040851c..0000000
Binary files a/appVideoServer/data/settings/callibration_cam0.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/callibration_cam0_720.npz b/appVideoServer/data/settings/callibration_cam0_720.npz
deleted file mode 100644
index 8d20672..0000000
Binary files a/appVideoServer/data/settings/callibration_cam0_720.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/callibration_cam1.npz b/appVideoServer/data/settings/callibration_cam1.npz
deleted file mode 100644
index 867ef58..0000000
Binary files a/appVideoServer/data/settings/callibration_cam1.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/callibration_cam1_720.npz b/appVideoServer/data/settings/callibration_cam1_720.npz
deleted file mode 100644
index a85a40b..0000000
Binary files a/appVideoServer/data/settings/callibration_cam1_720.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/camera_intrinsics_v0.npz b/appVideoServer/data/settings/camera_intrinsics_v0.npz
deleted file mode 100644
index f894cc2..0000000
Binary files a/appVideoServer/data/settings/camera_intrinsics_v0.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/camera_intrinsics_v1.npz b/appVideoServer/data/settings/camera_intrinsics_v1.npz
deleted file mode 100644
index 9681556..0000000
Binary files a/appVideoServer/data/settings/camera_intrinsics_v1.npz and /dev/null differ
diff --git a/appVideoServer/data/settings/settings.json b/appVideoServer/data/settings/settings.json
deleted file mode 100644
index ada9ccc..0000000
--- a/appVideoServer/data/settings/settings.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "coordinateSystem":{
- "MarkersUsed":"DICT_4X4_250",
- "KnownMarkers":
- {
- "50": [0.0, 0.0, 0.0],
- "71": [0.140, 0.0, 0.0],
- "101": [0.0, -0.080, 0.0]
- }
- }
-}
diff --git a/appVideoServer/data/settings/settingsBoard.json b/appVideoServer/data/settings/settingsBoard.json
deleted file mode 100644
index 89ea18b..0000000
--- a/appVideoServer/data/settings/settingsBoard.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "coordinateSystem":{
- "MarkersUsed":"DICT_4X4_250",
- "KnownMarkers":
- {
- "50": [0.0, 0.0, 0.0],
- "71": [0.140, 0.0, 0.0],
- "101": [0.0, -0.080, 0.0]
- }
- }
-}
diff --git a/appVideoServer/data/settings/settingsMachine.json b/appVideoServer/data/settings/settingsMachine.json
deleted file mode 100644
index 46d24c7..0000000
--- a/appVideoServer/data/settings/settingsMachine.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "coordinateSystem":{
- "MarkersUsed":"DICT_4X4_250",
- "KnownMarkers":
- {
- "58": [0.0, 0.0, 0.0],
- "65": [0.161, 0.0, 0.0],
- "75": [0.0, -0.070, 0.0]
- }
- }
-}
diff --git a/appVideoServer/https/server.crt b/appVideoServer/https/server.crt
deleted file mode 100644
index 0fb61c6..0000000
--- a/appVideoServer/https/server.crt
+++ /dev/null
@@ -1,29 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFCTCCAvGgAwIBAgIUfD0V6IOHq6iL+tCtV3CMQ9w6uqQwDQYJKoZIhvcNAQEL
-BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI1MTExNTA4NDMzOFoXDTI2MTEx
-NTA4NDMzOFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEArK1NqQEZBpXDgfOTNFrIcTf0qmsE8yfpqahytAdD/wL3
-CE7YKPs5Bsq77YiPPC1Svc8Q8APETRjb3uPet+xfHtyCZX+cu8Dc45AA8sV1bAco
-JDFH5x4oi9fnUBEMoxJewIrR6iGvPLN3OFzvq0QG65LTB7HEozYOeTBx2LNEzYWT
-+iIu3Tj/iya4EWqsUKWv4LAdHxNfIyTScjYq98/thy9jbesVq2e62gV+q3Km3bqJ
-Q+7NWwXM3sHvSXVU/+yqWxwMxiMO6t8QXFVP71ti6IdOdWlSOds5tTa1X0O6wdje
-VKN+JXfI3M+Cq7fMLnOKyrm+olcQ9RHcrNHrN6LYrK/yXwW0XTdt0RDsbFE5VH8x
-X887zS1Xj0q4IPXutm/Z5uHAGCchg5BDW+w08fxo3pdCIPVy6CVrpabR5lJ4cNPE
-lzOAhCOAZYvFyATtJXOPw0CW5mVUDl2BTjPrijf/2YA0Vh+9j4SvwdPR7W2gXdPL
-zsr04LwQmFLIEUKgpPlW28K2gun6H7vDshue+jJ9iuCF3BcC9MZI1hFi1omHaJ8T
-ehX00Q5HTOhVZFdxzkGGCUbX7B7umKgbLXbItGU3Cnw2fdgi3+1zZbVSWAm/ixiQ
-do/Iaw3CrO9pAgmy813hT95qnBKxmuXBeZ+pf1XlhvOAgJw+uhdWOdjGjyJPjIMC
-AwEAAaNTMFEwHQYDVR0OBBYEFH0WYvzhiYjoWDpkmMdx0uk3I/NAMB8GA1UdIwQY
-MBaAFH0WYvzhiYjoWDpkmMdx0uk3I/NAMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
-hvcNAQELBQADggIBAHC96KCq7u7WR2t6crbg+MjFuvq8lOGvYdxea4pw8aCK4T31
-KPSVU/4NzeIGHfjAvmghY8/J47wt15rI9nxGFyP0JBD+waSKo+Ruq1hOCSR1Qf3C
-4GgUS64Fyj6uXrusszYsa8q50ZXitAYM6o4Nkd5PqQIouvwoHcAABSWBAdxxzXNO
-6t+GGElYaajZ8Zv+pVKLdiRJny0A9PSSe3pPd/loqYecr8nX3Be2i+C6lgPFpYY4
-wpswmbGjt7oQgt2UCSr4Tz1tsfeZ94as3HYUDL5W1eIAQKUdtltBRNdC2DT53MS6
-9b2lgCDUNLXKtBe6naIpDRb/jWFXzPTUwEDyXJN6ORJFdAkYIBIoQKzGg+l9NEsO
-lYyQB4bMoLwZ4a1B5R8PtUtWxtDcHAegdSIK/9fVz1/QcjYYr3/42NGF6Nr7kpGx
-2QCj0z84hJbw/QEGBsg/yFvlOLRE83LTIkjoA4hPo3HRHPuy9/frc3bFk99LnX8+
-BKWbVb7J2eyCXX3LAcUb9RU8x4UvYqpjqjA6BKpryyEsRyhgZh/sVHvjwoW/ifFG
-JAqQoYe+TCAPf7s/rsxjB6Y5NKDesFYqwT4qu02+xCmy6LjZc1lyyrzJJCAZ/bjN
-ATomtrbmCgMho7FvIT7D2c+VRUBb2NSO64egUvxgXBYho8wbQOW6xkAuf/Ft
------END CERTIFICATE-----
diff --git a/appVideoServer/https/server.key b/appVideoServer/https/server.key
deleted file mode 100644
index 1e18749..0000000
--- a/appVideoServer/https/server.key
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCsrU2pARkGlcOB
-85M0WshxN/SqawTzJ+mpqHK0B0P/AvcITtgo+zkGyrvtiI88LVK9zxDwA8RNGNve
-49637F8e3IJlf5y7wNzjkADyxXVsBygkMUfnHiiL1+dQEQyjEl7AitHqIa88s3c4
-XO+rRAbrktMHscSjNg55MHHYs0TNhZP6Ii7dOP+LJrgRaqxQpa/gsB0fE18jJNJy
-Nir3z+2HL2Nt6xWrZ7raBX6rcqbduolD7s1bBczewe9JdVT/7KpbHAzGIw7q3xBc
-VU/vW2Loh051aVI52zm1NrVfQ7rB2N5Uo34ld8jcz4Krt8wuc4rKub6iVxD1Edys
-0es3otisr/JfBbRdN23REOxsUTlUfzFfzzvNLVePSrgg9e62b9nm4cAYJyGDkENb
-7DTx/Gjel0Ig9XLoJWulptHmUnhw08SXM4CEI4Bli8XIBO0lc4/DQJbmZVQOXYFO
-M+uKN//ZgDRWH72PhK/B09HtbaBd08vOyvTgvBCYUsgRQqCk+VbbwraC6fofu8Oy
-G576Mn2K4IXcFwL0xkjWEWLWiYdonxN6FfTRDkdM6FVkV3HOQYYJRtfsHu6YqBst
-dsi0ZTcKfDZ92CLf7XNltVJYCb+LGJB2j8hrDcKs72kCCbLzXeFP3mqcErGa5cF5
-n6l/VeWG84CAnD66F1Y52MaPIk+MgwIDAQABAoICACrjqMRvh13BWRwv+cIpQlwM
-v/KMPmB+62S+eC8LFvKCNAWWP85+B74OIPtwzdLulvyaL+TNqrZTlFkaVDlutnmd
-362CMtXXo4XKQNIMBYxdgrTqoKdhMET7zXJvqanfaDV+xYDX+QSkttoDC2yIqwdc
-IppopyS6yoGDbOOcM1yw7v5T+zvral2PsmxxCHfHj5XJaJJNZ3X9MWA44BdJSAAp
-3xJwL6OxUhHRB5NiGNw99tYuvEb9e9NgbCTcxc4DZJTYtLuJ/ayM1y136zDSjBCh
-evViwY+pSf4eppIQ6pQ3X5G6QhzgUb22tQgd0NNA05pi5FzCL24Pj7ZFNZ1OD278
-mjozzNirn8plbgQ+OGCs5NHprjdwQNW+Q6sE34Yh8FBlF0JfNmk3uaKTetIwSsJF
-laMHXR5OtDoX2cWqzjHijTDiUC5mk5ph8/lhOdY3Z1Ax1w52qKEFNOIC9gZrTgFE
-2oyp/Nv0tdNUBuhMKOLvKF0xwCDP/2iWeYow0j7iclbpotK5oRKWjbIQqstKAAs7
-vRW6n5CTPUIyzE1oLglp7DbYy++xAUpLBjPYzZn5aKb680FSmJtbBF3CZDupfKus
-b3bUWeVmY6TIakSRYMNXK9BWz1fXQinCoJx/ASv0yxpMsrEr/9NFI2f+gkWlD4hu
-HX2DwIzGcpghYnUvngXxAoIBAQDTn5Ci652mxBEBkKgfX7QXp9oBdebmisJWeYca
-qxVEiXfqoyfEKW+59Y+IZIANKA3e5R7HJofshKKrXJCLRTi7wSm+4oo4Oo/6TDDa
-5Qmsxx9WkTJkBm0E/9nDI3e8q53LwiLOvXel/WZAYWXrIKsQJMgnDjFqdes5efG9
-k8jnZ8tf7TtaL7+B+ku5fLagWaLUltg3WS9GjdrS7ZMhkZDJ1ZqqVEQQYYgg756r
-ksIim7jQL2dcW8wayB0g9SV7koIoIy/06lp7RX9HrMfhIH5Xorek44ZH2nCDPwtk
-s2prjYIzneCt2+fibki/rj2riPlBXTTkf3z2SNe2tBlpx3etAoIBAQDQ4wIAKTVy
-BSddk6oVqHNf3tfjub2pp28UXij+K0TMeZHDIDf3oy2AQ+LEatsA0h8g2m93TLIR
-KxCBi/Us5DJzrvPNHEhB/XHWEcXinPSI0+guehOIqXKz6TtzA5+XuZE+r+NqhEL/
-2iVSK3va7WweeD/CC1G+HYN0zSdAaW6RzfQcDS6UmykoEu2wyRgO5TNBXj45eVh/
-/BFKv527oqetpchxhzEJ1ZzT+J1lJBtkKoE5AXb8Wsf3O5ZYwG8F8hQfLybzeIh2
-CBskuJO37xZxPSRgcNn5nd0rPPGWKEiX4cRsSTob8Pse5ifBNzxkS8v6s8yIIBt1
-S26WyWp1lFrvAoIBABoF5ihSpvlJ5Pl3S2VIRIIgLuu9Dt7Ms2ck3JtH7H6YFPny
-hEJYAhgw/Sx9h02W3lXJgQZmU5KfIM3HvTKTGY3lC/ggLXUKpofV9LAGODFZ7x2b
-D0JDlAZoW+PmKaQ2ylmzDsqze9IangdOstS+GKsMitxan3MC+yD/QN3aHXtvRRAP
-wRuvAXK/T66IioCfZSmVPxNXUTvw17bWZiBboR1gufs2D4SgKbg7HxzkGCFfWtOm
-8KPn2ep1LzfNTYWrl3vOD+ijJOtBuYwb0Bx7/W1TYhfRrsKJNwq8pu8ELRL6vMcS
-I/3dK9+pRiLkD0tXtab3CjkLAFfcz0H1VaavU6UCggEABty+TxULfXBv56IXP1jm
-WWrvurp6YZ1vh8LEI/116CXCRR/E1uzUbNdOFtfP1AoTHbgvW0L4wpmglDDt4Air
-I6PGvKFGOmzCFZ9F2fkAC5KymPxHsgCnFQP/gPrIfmqJO/75QKGRtegLu9RT4FBW
-cfXPWmeWyuEbVXX76SDNkhqq/1Trh9RFGNzuVBV3Jd4fvfEDqE21O5cjVkpPOz/P
-tGOy3w/q64DKAyiyuwThpXvD/QRwTUAKO7QIb2f6/b4DLTcWV39JNF91zNIHgE5p
-dVTl4gkzEAFAp8/7u8wc/mhbVJdfQlW7WjuDaNSQtlbLH7RSbtJnNIZC3s9FIRG7
-nwKCAQBEJnM0+kFJurE8wRWcHN/oHHyQCrMuFptV+9o1+Ncy3B5+kdo2Pqy0AXDY
-+OZucTdkVqIxb0goM1FluP0os3oVq9w5wxZH2tksIEehWPPj3BaWkMVFQMy8vV+O
-tn4xeOPK4V89voj8BuLsn2s5t6tEa9vvKuiOTPrnTalfoBYKxYANrOo24MLrCzlS
-H++cDZD7ug/cBCSNENQsZDKNMekPRJFd3SYAe8VfM8UCfRMZbX9jQZn7dsSdLf+W
-KX28dhZ8WnSBpJE4IVBzAPfiya9wN5+kKxh/AxD3cq3O6UXNA9FTbTxrDTYvHgAM
-hwXVuAeFYYyuRFN8xJ9SkIPdpr1Y
------END PRIVATE KEY-----
diff --git a/appVideoServer/package-lock.json b/appVideoServer/package-lock.json
deleted file mode 100644
index 53f363e..0000000
--- a/appVideoServer/package-lock.json
+++ /dev/null
@@ -1,1192 +0,0 @@
-{
- "name": "video-streamer",
- "version": "1.1.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "video-streamer",
- "version": "1.1.0",
- "dependencies": {
- "compression": "^1.7.4",
- "express": "^4.21.1",
- "helmet": "^7.1.0",
- "ws": "^8.18.0"
- },
- "devDependencies": {
- "nodemon": "^3.1.7"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
- "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
- "dependencies": {
- "bytes": "3.1.2",
- "compressible": "~2.0.18",
- "debug": "2.6.9",
- "negotiator": "~0.6.4",
- "on-headers": "~1.1.0",
- "safe-buffer": "5.2.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/helmet": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz",
- "integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==",
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/negotiator": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
- "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/nodemon": {
- "version": "3.1.11",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz",
- "integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==",
- "dev": true,
- "dependencies": {
- "chokidar": "^3.5.2",
- "debug": "^4",
- "ignore-by-default": "^1.0.1",
- "minimatch": "^3.1.2",
- "pstree.remy": "^1.1.8",
- "semver": "^7.5.3",
- "simple-update-notifier": "^2.0.0",
- "supports-color": "^5.5.0",
- "touch": "^3.1.0",
- "undefsafe": "^2.0.5"
- },
- "bin": {
- "nodemon": "bin/nodemon.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/nodemon"
- }
- },
- "node_modules/nodemon/node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/nodemon/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
- "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/pstree.remy": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
- "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true
- },
- "node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/simple-update-notifier": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
- "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
- "dev": true,
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/touch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
- "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
- "dev": true,
- "bin": {
- "nodetouch": "bin/nodetouch.js"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/undefsafe": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
- "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- }
- }
-}
diff --git a/appVideoServer/package.json b/appVideoServer/package.json
deleted file mode 100644
index a4116ed..0000000
--- a/appVideoServer/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "video-streamer",
- "version": "1.1.0",
- "description": "HTTPS + WSS dual-camera MJPEG streamer (modular)",
- "main": "server.js",
- "type": "commonjs",
- "scripts": {
- "start": "node server.js",
- "dev": "PORT=8443 nodemon server.js"
- },
- "dependencies": {
- "compression": "^1.7.4",
- "express": "^4.21.1",
- "helmet": "^7.1.0",
- "ws": "^8.18.0"
- },
- "devDependencies": {
- "nodemon": "^3.1.7"
- }
-}
\ No newline at end of file
diff --git a/appVideoServer/programs/driver.js b/appVideoServer/programs/driver.js
deleted file mode 100644
index 0ffdbed..0000000
--- a/appVideoServer/programs/driver.js
+++ /dev/null
@@ -1,71 +0,0 @@
-const WebSocket = require("ws");
-
-/**
- * Forwards WebSocket messages between browser clients (/robot)
- * and a target WebSocket server (behind a firewall).
- *
- * @param {WebSocket.Server} wssInput - Local WebSocket server for browser clients
- * @param {string} targetUrl - URL of target WebSocket server, e.g. "wss://internal.local:8080"
- */
-function setupCommandForwarding(wssInput, targetUrl) {
- let targetSocket;
- const clients = new Set();
-
- function connectTarget() {
- console.log(`🔌 Connecting to target server: ${targetUrl}`);
- targetSocket = new WebSocket(targetUrl);
-
- targetSocket.on("open", () => {
- console.log("✅ Connected to target server");
- });
-
- targetSocket.on("message", (msg) => {
- const data = msg.toString();
- console.log("⬅️ Message from target:", data);
- // Broadcast to all connected browsers
- for (const client of clients) {
- if (client.readyState === WebSocket.OPEN) {
- client.send(data);
- }
- }
- });
-
- targetSocket.on("close", () => {
- console.warn("⚠️ Target connection closed. Reconnecting in 5s...");
- setTimeout(connectTarget, 5000);
- });
-
- targetSocket.on("error", (err) => {
- console.error("❌ Target connection error:", err.message);
- });
- }
-
- connectTarget();
-
- // When a browser connects to /robot
- wssInput.on("connection", (ws, req) => {
- console.log("🤖 Browser connected:", req.socket.remoteAddress);
- clients.add(ws);
-
- ws.on("message", (msg) => {
- const data = msg.toString();
- console.log("➡️ From browser → target:", data);
- if (targetSocket?.readyState === WebSocket.OPEN) {
- targetSocket.send(data);
- } else {
- console.warn("⚠️ Target not connected. Message dropped.");
- }
- });
-
- ws.on("close", () => {
- clients.delete(ws);
- console.log("🔌 Browser disconnected");
- });
-
- ws.on("error", (err) => {
- console.error("❌ Browser socket error:", err.message);
- });
- });
-}
-
-module.exports = { setupCommandForwarding };
\ No newline at end of file
diff --git a/appVideoServer/programs/input.js b/appVideoServer/programs/input.js
deleted file mode 100644
index a8a3254..0000000
--- a/appVideoServer/programs/input.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// programs/input.js
-'use strict';
-
-const fs = require('fs');
-const path = require('path');
-
-function byIdCaptureCandidates() {
- const dir = '/dev/v4l/by-id';
- try {
- if (!fs.existsSync(dir)) return [];
- return fs.readdirSync(dir)
- .filter(n => n.endsWith('-index0'))
- .map(n => fs.realpathSync(path.join(dir, n)));
- } catch {
- return [];
- }
-}
-
-function naiveVideoNodes() {
- try {
- return fs.readdirSync('/dev')
- .filter(n => /^video\d+$/.test(n))
- .map(n => path.join('/dev', n))
- .sort((a, b) => Number(a.replace(/\D/g, '')) - Number(b.replace(/\D/g, '')));
- } catch {
- return ['/dev/video0', '/dev/video2'];
- }
-}
-
-function pickDevices(env = process.env) {
- const DEV0 = env.DEV0 || null;
- const DEV1 = env.DEV1 || null;
-
- if (DEV0 && DEV1) return [DEV0, DEV1];
-
- const byId = byIdCaptureCandidates();
- if (DEV0 || DEV1) {
- const pool = byId.length ? byId : naiveVideoNodes();
- const d0 = DEV0 || pool[0];
- const d1 = DEV1 || pool.find(d => d !== d0) || pool[1];
- return [d0, d1];
- }
-
- if (byId.length >= 2) return [byId[0], byId[1]];
- const naive = naiveVideoNodes();
- return [naive[0], naive[1]];
-}
-
-module.exports = { pickDevices };
\ No newline at end of file
diff --git a/appVideoServer/programs/log.js b/appVideoServer/programs/log.js
deleted file mode 100644
index bde9330..0000000
--- a/appVideoServer/programs/log.js
+++ /dev/null
@@ -1,165 +0,0 @@
-// programs/log.js
-'use strict';
-
-const fs = require('fs');
-const path = require('path');
-
-// --- configuration ---
-const LOG_DIR = path.join(__dirname, '..', 'logs');
-fs.mkdirSync(LOG_DIR, { recursive: true });
-
-function getLogFilePath(d = new Date()) {
- const yyyy = d.getFullYear();
- const mm = String(d.getMonth() + 1).padStart(2, '0');
- const dd = String(d.getDate()).padStart(2, '0');
- return path.join(LOG_DIR, `${yyyy}_${mm}_${dd}.txt`);
-}
-
-function write(obj) {
- const line = JSON.stringify(obj) + '\n';
- fs.appendFile(getLogFilePath(), line, (err) => {
- if (err) console.error('[log] write error:', err);
- });
-}
-
-// --- common extractors ---
-function commonFromReq(req) {
- try {
- const xff = req?.headers?.['x-forwarded-for'];
- const xRealIp = req?.headers?.['x-real-ip'];
- const ipFromXff = xff ? xff.split(',')[0].trim() : null;
- const ip =
- ipFromXff ||
- xRealIp ||
- req?.ip ||
- req?.socket?.remoteAddress ||
- null;
-
- const tls =
- req?.socket?.encrypted
- ? {
- protocol:
- typeof req.socket.getProtocol === 'function'
- ? req.socket.getProtocol()
- : null,
- cipher:
- typeof req.socket.getCipher === 'function'
- ? (req.socket.getCipher() || {}).name
- : null,
- }
- : null;
-
- // MAC is not available across routed networks
- const mac = null;
-
- return {
- ip,
- ips: Array.isArray(req?.ips) ? req.ips : [],
- xff: xff || null,
- remoteAddress: req?.socket?.remoteAddress || null,
- remoteFamily: req?.socket?.remoteFamily || null,
- userAgent: req?.headers?.['user-agent'] || null,
- acceptLanguage: req?.headers?.['accept-language'] || null,
- secChUa: req?.headers?.['sec-ch-ua'] || null,
- secChUaPlatform: req?.headers?.['sec-ch-ua-platform'] || null,
- secChUaMobile: req?.headers?.['sec-ch-ua-mobile'] || null,
- referer: req?.headers?.['referer'] || null,
- tls,
- mac,
- };
- } catch {
- return {};
- }
-}
-
-function commonFromSocket(socket) {
- return {
- remoteAddress: socket?.remoteAddress || null,
- remoteFamily: socket?.remoteFamily || null,
- };
-}
-
-// --- specific log functions ---
-function logHttpRequest(req) {
- write({
- ts: new Date().toISOString(),
- type: 'http',
- method: req?.method || null,
- url: (req?.originalUrl ?? req?.url) || null,
- ...commonFromReq(req),
- });
-}
-
-function logTcpConnection(socket) {
- write({
- ts: new Date().toISOString(),
- type: 'tcp',
- ...commonFromSocket(socket),
- });
-}
-
-function logHttpUpgrade(req) {
- write({
- ts: new Date().toISOString(),
- type: 'http-upgrade',
- url: req?.url || null,
- ...commonFromReq(req),
- });
-}
-
-function logWssConnected(req) {
- write({
- ts: new Date().toISOString(),
- type: 'wss',
- url: req?.url || null,
- ...commonFromReq(req),
- });
-}
-
-function logWssClosed(req, code, reason) {
- write({
- ts: new Date().toISOString(),
- type: 'wss-close',
- url: req?.url || null,
- code: typeof code === 'number' ? code : null,
- reason: reason ? reason.toString() : null,
- ...commonFromReq(req),
- });
-}
-
-function logSnapshot(python, response){
- write({
- ts: new Date().toISOString(),
- type: 'snapshot',
- command: python.toString(),
- wsResponse: response.toString()
- })
-}
-
-// --- generic hooks you requested ---
-function connected(context = {}) {
- write({
- ts: new Date().toISOString(),
- type: 'connected',
- ...context,
- });
-}
-
-function connectionLost(context = {}) {
- write({
- ts: new Date().toISOString(),
- type: 'connection-lost',
- ...context,
- });
-}
-
-module.exports = {
- logHttpRequest,
- logTcpConnection,
- logHttpUpgrade,
- logWssConnected,
- logSnapshot,
- logWssClosed,
- connected,
- connectionLost,
-};
diff --git a/appVideoServer/programs/readCamPos.py b/appVideoServer/programs/readCamPos.py
deleted file mode 100644
index 1cb1371..0000000
--- a/appVideoServer/programs/readCamPos.py
+++ /dev/null
@@ -1,369 +0,0 @@
-#!/usr/bin/env python3
-"""
-ArUco detection with multi-marker machine-frame fit + camera pose output (OpenCV >= 4.8).
-
-- Reads: webCam_1.jpg
-- Detects DICT_4X4_250 markers (ids expected: 0, 5, 10, 15)
-- Uses multiple reference markers with known machine coordinates to fit camera->machine transform
-- Reports positions/orientations of all markers **and the camera** in machine coordinates
-- Draws detected markers, per-marker axes, and the machine axes
-- Saves: webCam_1a.jpg (annotated) and marker_poses_machine.csv (poses incl. camera)
-
-
-Usage:
- python3 readCamPos.py -i snapshot_video1_1764493534200.jpg -npz camera_intrinsics_v0.npz -setting settings.json
-
-
-"""
-import faulthandler
-faulthandler.enable()
-
-import argparse
-import os
-import sys
-import csv
-import json
-import time
-from typing import Tuple, Dict, List
-import numpy as np
-import cv2
-
-
-
-# ----------------------- Configuration Defaults -----------------------
-IMAGE_PATH = "default.jpg"
-OUTPUT_IMAGE_PATH = "default.jpg"
-OUTPUT_CSV_PATH = "default.csv"
-OUTPUT_JSON_PATH = "default.json"
-
-# Marker side length in meters (25 mm)
-MARKER_LENGTH_M = 0.025
-
-# Axis lengths for visualization (in meters)
-AXIS_LENGTH_M = 0.05 # per-marker axis
-MACHINE_AXIS_X_M = 0.200 # 200 mm along +X
-MACHINE_AXIS_Y_M = -0.100 # -100 mm along Y (towards camera per description)
-MACHINE_AXIS_Z_M = 0.100 # +Z visualized as 100 mm
-
-# Known machine coordinates for reference markers (meters)
-cam_anchor_pts = {}
-
-EXPECTED_IDS = {50, 71, 101}
-
-# ----------------------- Utilities -----------------------
-
-def load_intrinsics_npz(npz_path: str) -> Tuple[np.ndarray, np.ndarray]:
- if os.path.exists(npz_path):
-
- print("NPZ from File:", npz_path)
- data = np.load(npz_path)
- for k in ('camera_matrix', 'mtx', 'K'):
- if k in data:
- camera_matrix = data[k].astype(np.float32)
- break
- else:
- raise KeyError("Camera matrix not found.")
- for k in ('dist_coeffs', 'dist', 'D'):
- if k in data:
- dist = data[k].astype(np.float32).reshape(-1, 1)
- break
- else:
- dist = np.zeros((5, 1), dtype=np.float32)
- return camera_matrix, dist
-
- camera_matrix = np.array([[1400, 0, 640],
- [0, 1400, 360],
- [0, 0, 1]], dtype=np.float32)
-
- dist_coeffs = np.zeros((5, 1), dtype=np.float32)
-
- print("[WARN] Using default approximate intrinsics.")
- return camera_matrix, dist_coeffs
-
-
-def rvec_to_R(rvec: np.ndarray) -> np.ndarray:
- R, _ = cv2.Rodrigues(rvec)
- return R
-
-
-def R_to_euler_zyx(R: np.ndarray) -> Tuple[float, float, float]:
- yaw = float(np.degrees(np.arctan2(R[1,0], R[0,0])))
- sp = np.sqrt(R[2,1]**2 + R[2,2]**2)
- pitch = float(np.degrees(np.arctan2(-R[2,0], sp)))
- roll = float(np.degrees(np.arctan2(R[2,1], R[2,2])))
- return roll, pitch, yaw
-
-
-def corners_to_image_points(corners: np.ndarray) -> np.ndarray:
- return corners.reshape(4, 2).astype(np.float32)
-
-
-def get_detector():
- dictionary = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_250)
- try:
- params = cv2.aruco.DetectorParameters()
- except Exception:
- params = cv2.aruco.DetectorParameters_create()
- try:
- detector = cv2.aruco.ArucoDetector(dictionary, params)
- return detector, None
- except Exception:
- return None, (dictionary, params)
-
-
-def detect_markers(image: np.ndarray, detector_tuple):
- detector, fallback = detector_tuple
- print(detector)
- if detector is not None:
- corners, ids, rejected = detector.detectMarkers(image)
- else:
- dictionary, params = fallback
- corners, ids, rejected = cv2.aruco.detectMarkers(image, dictionary, parameters=params)
- return corners, ids, rejected
-
-
-def rigid_transform_no_scale(A: np.ndarray, B: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
- assert A.shape == B.shape and A.shape[1] == 3, "A and B must be Nx3"
- N = A.shape[0]
- if N < 2:
- raise ValueError("Need at least 2 points; 3+ recommended.")
- centroid_A = A.mean(axis=0)
- centroid_B = B.mean(axis=0)
- AA = A - centroid_A
- BB = B - centroid_B
- H = AA.T @ BB
- U, S, Vt = np.linalg.svd(H)
- R = Vt.T @ U.T
- if np.linalg.det(R) < 0:
- Vt[-1, :] *= -1
- R = Vt.T @ U.T
- t = centroid_B - R @ centroid_A
- return R.astype(np.float32), t.astype(np.float32)
-
-def readSettings(fileSetting):
- global cam_anchor_pts
- print("Read Settings")
-
- if(fileSetting == None):
- cam_anchor_pts = {
- 50: np.array([0.0, 0.0, 0.0], dtype=np.float32),
- 71: np.array([0.140, 0.0, 0.0], dtype=np.float32),
- 101: np.array([-0.0, -0.080, 0.0], dtype=np.float32),
- #15: np.array([20,20,20]) # add if known
- }
- return
-
-
- with open(fileSetting, 'r') as f:
- settings = json.load(f)
- for marker_id, coords in settings['coordinateSystem']['KnownMarkers'].items():
- cam_anchor_pts[int(marker_id)] = np.array(coords, dtype=np.float32)
-
- #KNOWN_MACHINE_POS = {int(k): np.array(v, dtype=np.float32) for k, v in settings.items()}
-
-
-# ----------------------- Main -----------------------
-
-def main():
-
- parser = argparse.ArgumentParser(description="Detect ArUco markers in two images and compute camera poses in machine coordinates.")
- parser.add_argument('-i', '--images', action='append', required=False,
- help="Path to image. Provide this option twice: once per camera (e.g., -i2 cam1.jpg -i2 cam2.jpg)")
- parser.add_argument('-npz', '--npz', action='append', required=False, default=['camera_intrinsics_v1.npz'])
- parser.add_argument('--cam-calib', action='append', required=False,
- help="Paths to calibration YAMLs for camera 1 and camera 2 (e.g., cam1.npz cam2.npz)")
- parser.add_argument('--marker-size-mm', type=float, default=25,
- help="Marker side length in millimeters (e.g., 50)")
- parser.add_argument('--dict', default='DICT_4X4_250',
- help="ArUco dictionary name (default: DICT_4X4_250)")
- parser.add_argument('-settings', type=str, default=None,
- help="Json File with Machine Settings")
- args = parser.parse_args()
-
-
-
- print("ABC 0")
-
- readSettings(args.settings)
-
- print("ABC 0")
-
- if(args.images is None):
- image = cv2.imread(IMAGE_PATH)
- else:
- image = cv2.imread(args.images[0])
- OUTPUT_IMAGE_PATH = args.images[0].replace(".jpg","r.jpg").replace(".PNG","r.PNG")
- OUTPUT_CSV_PATH = args.images[0].replace(".jpg",".csv").replace(".PNG",".csv")
- OUTPUT_JSON_PATH = args.images[0].replace(".jpg",".json").replace(".PNG",".json")
-
-
- if image is None:
- print(f"[ERROR] Cannot read image '{IMAGE_PATH}'.")
- sys.exit(1)
-
-
- print("ABC 1")
-
- camera_matrix, dist_coeffs = load_intrinsics_npz(args.npz[0])
- print("ABC 1a")
- detector_tuple = get_detector()
- print("ABC 1b")
- corners_list, ids, rejected = detect_markers(image, detector_tuple)
-
-
- print("ABC 2")
-
- if ids is None or len(ids) == 0:
- print("[ERROR] No markers detected.")
- sys.exit(1)
-
- draw_img = image.copy()
- cv2.aruco.drawDetectedMarkers(draw_img, corners_list, ids)
-
- half = MARKER_LENGTH_M / 2.0
- obj_points = np.array([
- [-half, half, 0.0],
- [ half, half, 0.0],
- [ half, -half, 0.0],
- [-half, -half, 0.0],
- ], dtype=np.float32)
-
- poses_cam: Dict[int, Tuple[np.ndarray, np.ndarray]] = {}
- centers_cam: Dict[int, np.ndarray] = {}
- for i, marker_id in enumerate(ids.flatten()):
- img_pts = corners_to_image_points(corners_list[i])
- success, rvec, tvec = cv2.solvePnP(obj_points, img_pts, camera_matrix, dist_coeffs, flags=cv2.SOLVEPNP_IPPE_SQUARE)
- if not success:
- success, rvec, tvec = cv2.solvePnP(obj_points, img_pts, camera_matrix, dist_coeffs)
- if success:
- rvec = rvec.reshape(3,1)
- tvec = tvec.reshape(3,1)
- poses_cam[int(marker_id)] = (rvec, tvec)
- centers_cam[int(marker_id)] = tvec.flatten()
- try:
- cv2.drawFrameAxes(draw_img, camera_matrix, dist_coeffs, rvec, tvec, AXIS_LENGTH_M)
- except Exception:
- pass
- else:
- print(f"[WARN] solvePnP failed for marker {marker_id}")
-
- common_ids: List[int] = [mid for mid in cam_anchor_pts.keys() if mid in centers_cam]
- if len(common_ids) < 2:
- print(f"[ERROR] Need at least 2 reference markers; found {len(common_ids)}: {common_ids}")
- sys.exit(1)
- if len(common_ids) < 3:
- print(f"[WARN] Only {len(common_ids)} references ({common_ids}). Fit may be less stable; 3+ recommended.")
-
- A = np.stack([centers_cam[mid] for mid in common_ids], axis=0)
- B = np.stack([cam_anchor_pts[mid] for mid in common_ids], axis=0)
-
- R_cam_to_machine, t_cam_to_machine = rigid_transform_no_scale(A, B)
-
- residuals_mm = []
- for i, mid in enumerate(common_ids):
- pred = R_cam_to_machine @ A[i] + t_cam_to_machine
- err = np.linalg.norm(pred - B[i]) * 1000.0
- residuals_mm.append(err)
- rms = float(np.sqrt(np.mean(np.square(residuals_mm)))) if residuals_mm else 0.0
- print("\nReference fit residuals (mm) per marker:")
- for mid, e in zip(common_ids, residuals_mm):
- print(f" ID {mid}: {e:.2f} mm")
- print(f"RMS residual: {rms:.2f} mm")
-
- # Camera pose in machine coordinates:
- # Camera origin (0,0,0 in camera) maps to t_cam_to_machine
- cam_pos_machine = t_cam_to_machine
- cam_R_machine = R_cam_to_machine # camera basis expressed in machine frame
- cam_roll, cam_pitch, cam_yaw = R_to_euler_zyx(cam_R_machine)
-
- rows = [("id", "x_mm", "y_mm", "z_mm", "roll_deg", "pitch_deg", "yaw_deg")]
- marker_list = []
-
- print("\nMarker Positions and Orientations in Machine Coordinates:")
- print(f"{'ID':>8} {'X(mm)':>10} {'Y(mm)':>10} {'Z(mm)':>10} {'Roll':>10} {'Pitch':>10} {'Yaw':>10}")
-
- # Add camera first
- cx, cy, cz = (cam_pos_machine * 1000.0).tolist()
- print(f"{'camera':>8} {cx:10.2f} {cy:10.2f} {cz:10.2f} {cam_roll:10.2f} {cam_pitch:10.2f} {cam_yaw:10.2f}")
- rows.append(("camera", f"{cx:.3f}", f"{cy:.3f}", f"{cz:.3f}", f"{cam_roll:.3f}", f"{cam_pitch:.3f}", f"{cam_yaw:.3f}"))
- camera_pose = {
- "id": "camera",
- "position_mm": [float(x) for x in cam_pos_machine * 1000.0],
- "orientation_deg": {"roll": cam_roll, "pitch": cam_pitch, "yaw": cam_yaw}
-}
-
- # Then markers
- for marker_id in sorted(poses_cam.keys()):
- rvec, tvec = poses_cam[marker_id]
- R_marker_cam = rvec_to_R(rvec)
- pos_machine = R_cam_to_machine @ tvec.flatten() + t_cam_to_machine
- R_marker_machine = R_cam_to_machine @ R_marker_cam
- roll_deg, pitch_deg, yaw_deg = R_to_euler_zyx(R_marker_machine)
- x_mm, y_mm, z_mm = (pos_machine * 1000.0).tolist()
- print(f"{marker_id:8d} {x_mm:10.2f} {y_mm:10.2f} {z_mm:10.2f} {roll_deg:10.2f} {pitch_deg:10.2f} {yaw_deg:10.2f}")
- rows.append((marker_id, f"{x_mm:.3f}", f"{y_mm:.3f}", f"{z_mm:.3f}", f"{roll_deg:.3f}", f"{pitch_deg:.3f}", f"{yaw_deg:.3f}"))
- marker_list.append({"id": marker_id, "position_mm": [x_mm, y_mm, z_mm], "orientation_deg": {"roll": roll_deg, "pitch": pitch_deg, "yaw": yaw_deg}})
-
- # Save CSV
- try:
- with open(OUTPUT_CSV_PATH, 'w', newline='') as f:
- writer = csv.writer(f)
- writer.writerows(rows)
- print(f"\n[INFO] Saved CSV poses to '{OUTPUT_CSV_PATH}'.")
- except Exception as e:
- print(f"[WARN] Could not save CSV: {e}")
-
-
- # Save JSON
- json_data = {
- "metadata": {
- "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
- "reference_markers": common_ids,
- "rms_residual_mm": rms,
- "description": "Multi-marker machine frame fit with camera pose"
- },
- "camera": camera_pose,
- "markers": marker_list
- }
- with open(OUTPUT_JSON_PATH, 'w', encoding='utf-8') as f:
- json.dump(json_data, f, indent=4)
-
- # Warn about expected IDs
- detected_ids = set(poses_cam.keys())
- missing = EXPECTED_IDS - detected_ids
- if missing:
- print(f"[WARN] Expected markers not detected: {sorted(missing)}")
-
- # Draw machine axes using global transform (machine->camera)
- R_machine_to_cam = R_cam_to_machine.T
- t_machine_to_cam = - R_machine_to_cam @ t_cam_to_machine
- try:
- machine_axes = np.float32([
- [0.0, 0.0, 0.0],
- [MACHINE_AXIS_X_M, 0.0, 0.0],
- [0.0, MACHINE_AXIS_Y_M, 0.0],
- [0.0, 0.0, MACHINE_AXIS_Z_M],
- ])
- rvec_global, _ = cv2.Rodrigues(R_machine_to_cam)
- imgpts, _ = cv2.projectPoints(machine_axes, rvec_global, t_machine_to_cam, camera_matrix, dist_coeffs)
- origin = tuple(np.round(imgpts[0].ravel()).astype(int))
- x_end = tuple(np.round(imgpts[1].ravel()).astype(int))
- y_end = tuple(np.round(imgpts[2].ravel()).astype(int))
- z_end = tuple(np.round(imgpts[3].ravel()).astype(int))
- cv2.line(draw_img, origin, x_end, (0, 0, 255), 3)
- cv2.line(draw_img, origin, y_end, (0, 255, 0), 3)
- cv2.line(draw_img, origin, z_end, (255, 0, 0), 3)
- cv2.putText(draw_img, "X (200 mm)", x_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,0,255), 2)
- cv2.putText(draw_img, "Y (-100 mm)", y_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,255,0), 2)
- cv2.putText(draw_img, "+Z (100 mm)", z_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255,0,0), 2)
- except Exception as e:
- print(f"[WARN] Failed to draw machine axes: {e}")
-
- ok = cv2.imwrite(OUTPUT_IMAGE_PATH, draw_img)
- if ok:
- print(f"[INFO] Annotated image saved as '{OUTPUT_IMAGE_PATH}'.")
- else:
- print(f"[ERROR] Failed to save annotated image '{OUTPUT_IMAGE_PATH}'.")
-
-if __name__ == '__main__':
- main()
diff --git a/appVideoServer/programs/readTwoImages.py b/appVideoServer/programs/readTwoImages.py
deleted file mode 100644
index cda3198..0000000
--- a/appVideoServer/programs/readTwoImages.py
+++ /dev/null
@@ -1,668 +0,0 @@
-#!/usr/bin/env python3
-"""
-readCamPositionTwo.py
-
-Two-camera ArUco detection with joint optimization of both camera extrinsics
-against known machine-frame reference markers, plus triangulation of unknown
-marker positions. Outputs camera pose and marker poses in machine coordinates,
-with CSV and JSON similar to the single-camera script.
-
-Dependencies: numpy, opencv-python (cv2)
-Optional but NOT required: SciPy (we implement a simple Levenberg–Marquardt).
-
-Usage example:
- python3 readTwoImages.py -i snapshot_video0_1764531874081.jpg -i snapshot_video1_1764531874081.jpg -npz callibration_cam0.npz -npz callibration_cam1.npz -settings settings.json
- python3 readTwoImages.py -i snapshot_video0_1764524369655.jpg -i snapshot_video1_1764524369655.jpg -npz callibration_cam0.npz -npz callibration_cam1.npz -settings settings.json
-
- python3 readTwoImages.py -i snapshot_video0_1765009029764.jpg -i snapshot_video1_1765009029764.jpg -npz callibration_cam0.npz -npz callibration_cam1.npz -settings settings.json
-
-Settings JSON is expected to contain:
-{
- "coordinateSystem": {
- "KnownMarkers": {
- "50": [0.0, 0.0, 0.0],
- "71": [0.140, 0.0, 0.0],
- "101": [0.0, -0.080, 0.0]
- }
- }
-}
-
-Author: M365 Copilot (generated)
-"""
-import argparse
-import os
-import sys
-import json
-import time
-from typing import Dict, Tuple, List
-import numpy as np
-import cv2
-
-# ---------------- Configuration defaults ----------------
-AXIS_LENGTH_M = 0.05
-
-# ---------------- Utilities ----------------
-def load_intrinsics_npz(npz_path: str) -> Tuple[np.ndarray, np.ndarray]:
- print("NPZ reading of file:", npz_path)
- if os.path.exists(npz_path):
- data = np.load(npz_path)
- for k in ('camera_matrix', 'mtx', 'K'):
- if k in data:
- camera_matrix = data[k].astype(np.float32)
- break
- else:
- raise KeyError("Camera matrix not found in NPZ.")
- for k in ('dist_coeffs', 'dist', 'D'):
- if k in data:
- dist = data[k].astype(np.float32).reshape(-1,1)
- break
- else:
- dist = np.zeros((5,1), dtype=np.float32)
- print("NPZ loaded:", npz_path)
- return camera_matrix, dist
- # Fallback default intrinsics
- camera_matrix = np.array([[1400, 0, 640],
- [0, 1400, 360],
- [0, 0, 1]], dtype=np.float32)
- dist_coeffs = np.zeros((5,1), dtype=np.float32)
- print("[WARN] Using default approximate intrinsics.")
- return camera_matrix, dist_coeffs
-
-
-def get_aruco_detector(dict_name: str):
- mapping = {
- 'DICT_4X4_250': cv2.aruco.DICT_4X4_250,
- 'DICT_5X5_100': cv2.aruco.DICT_5X5_100,
- 'DICT_6X6_250': cv2.aruco.DICT_6X6_250,
- 'DICT_ARUCO_ORIGINAL': cv2.aruco.DICT_ARUCO_ORIGINAL,
- }
- if dict_name not in mapping:
- dict_id = cv2.aruco.DICT_4X4_250
- else:
- dict_id = mapping[dict_name]
- dictionary = cv2.aruco.getPredefinedDictionary(dict_id)
- try:
- params = cv2.aruco.DetectorParameters()
- except Exception:
- params = cv2.aruco.DetectorParameters_create()
- try:
- detector = cv2.aruco.ArucoDetector(dictionary, params)
- return detector, None
- except Exception:
- return None, (dictionary, params)
-
-
-def detect_markers(image: np.ndarray, detector_tuple):
- detector, fallback = detector_tuple
- if detector is not None:
- corners, ids, rejected = detector.detectMarkers(image)
- else:
- dictionary, params = fallback
- corners, ids, rejected = cv2.aruco.detectMarkers(image, dictionary, parameters=params)
- return corners, ids, rejected
-
-
-def corners_to_image_points(corners: np.ndarray) -> np.ndarray:
- return corners.reshape(4,2).astype(np.float32)
-
-
-def marker_center_from_corners(corners: np.ndarray) -> np.ndarray:
- pts = corners.reshape(4,2)
- return pts.mean(axis=0).astype(np.float32)
-
-
-def rvec_to_R(rvec: np.ndarray) -> np.ndarray:
- R, _ = cv2.Rodrigues(rvec)
- return R
-
-
-def rigid_transform_no_scale(A: np.ndarray, B: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
- """Find R,t s.t. B ≈ R A + t. A,B: Nx3."""
- assert A.shape == B.shape and A.shape[1] == 3, "A and B must be Nx3"
- N = A.shape[0]
- if N < 2:
- raise ValueError("Need at least 2 points; 3+ recommended.")
- centroid_A = A.mean(axis=0)
- centroid_B = B.mean(axis=0)
- AA = A - centroid_A
- BB = B - centroid_B
- H = AA.T @ BB
- U, S, Vt = np.linalg.svd(H)
- R = Vt.T @ U.T
- if np.linalg.det(R) < 0:
- Vt[-1, :] *= -1
- R = Vt.T @ U.T
- t = centroid_B - R @ centroid_A
- return R.astype(np.float32), t.astype(np.float32)
-
-
-def undistort_to_normalized(points_px: np.ndarray, K: np.ndarray, D: np.ndarray) -> np.ndarray:
- """points_px: Nx2 pixel. Returns Nx2 normalized coords (x,y) where projection is x=Xp/Z, y=Yp/Z.
- cv2.undistortPoints with P=None yields normalized coordinates.
- """
- pts = points_px.reshape(-1,1,2).astype(np.float32)
- und = cv2.undistortPoints(pts, K, D, P=None) # returns Nx1x2
- return und.reshape(-1,2)
-
-
-# ---------------- Joint optimization (LM, numerical Jacobian) ----------------
-
-def pack_params(omega1, t1, omega2, t2) -> np.ndarray:
- return np.hstack([omega1, t1, omega2, t2]).astype(np.float64)
-
-
-def unpack_params(theta: np.ndarray):
- omega1 = theta[0:3]
- t1 = theta[3:6]
- omega2 = theta[6:9]
- t2 = theta[9:12]
- return omega1, t1, omega2, t2
-
-
-def residuals_centers_normalized(theta: np.ndarray,
- X_mach: np.ndarray,
- obs1_norm: np.ndarray,
- obs2_norm: np.ndarray) -> np.ndarray:
- """
- Compute residuals in normalized coordinates (no intrinsics, no distortion).
- For camera j: X_cam = R_j X_mach + t_j; proj: (x/z, y/z).
- Returns stacked residuals [r1; r2] shape (4N,), where N = number of references.
- """
- omega1, t1, omega2, t2 = unpack_params(theta)
- R1 = cv2.Rodrigues(omega1)[0]
- R2 = cv2.Rodrigues(omega2)[0]
- # Camera 1 projections
- X_cam1 = (R1 @ X_mach.T + t1.reshape(3,1)).T # Nx3
- uv1 = X_cam1[:, :2] / X_cam1[:, 2:3]
- r1 = (obs1_norm - uv1).reshape(-1)
- # Camera 2 projections
- X_cam2 = (R2 @ X_mach.T + t2.reshape(3,1)).T
- uv2 = X_cam2[:, :2] / X_cam2[:, 2:3]
- r2 = (obs2_norm - uv2).reshape(-1)
- return np.hstack([r1, r2])
-
-
-def numerical_jacobian(f, theta: np.ndarray, eps: float, *args) -> np.ndarray:
- """Finite-difference Jacobian: forward differences."""
- r0 = f(theta, *args)
- m = r0.size
- n = theta.size
- J = np.zeros((m, n), dtype=np.float64)
- for k in range(n):
- th = theta.copy()
- th[k] += eps
- rk = f(th, *args)
- J[:, k] = (rk - r0) / eps
- return J, r0
-
-
-def lm_solve(theta0: np.ndarray,
- X_mach: np.ndarray,
- obs1_norm: np.ndarray,
- obs2_norm: np.ndarray,
- max_iter: int = 50,
- eps_jac: float = 1e-6,
- lambda_init: float = 1e-3) -> Tuple[np.ndarray, Dict]:
- """Simple Levenberg–Marquardt on center normalized residuals."""
- lam = lambda_init
- theta = theta0.copy()
- history = {"iters": [], "rms": []}
- for it in range(max_iter):
- J, r = numerical_jacobian(residuals_centers_normalized, theta, eps_jac,
- X_mach, obs1_norm, obs2_norm)
- rms = float(np.sqrt(np.mean(r*r))) if r.size else 0.0
- history["iters"].append(it)
- history["rms"].append(rms)
- # Normal equations with damping
- JTJ = J.T @ J
- g = J.T @ r
- H = JTJ + lam * np.eye(JTJ.shape[0])
- try:
- delta = -np.linalg.solve(H, g)
- except np.linalg.LinAlgError:
- # Fallback to least squares
- delta, *_ = np.linalg.lstsq(H, -g, rcond=None)
- theta_trial = theta + delta
- r_trial = residuals_centers_normalized(theta_trial, X_mach, obs1_norm, obs2_norm)
- rms_trial = float(np.sqrt(np.mean(r_trial*r_trial)))
- if rms_trial < rms: # improve
- theta = theta_trial
- lam *= 0.5
- else:
- lam *= 2.0
- # Convergence criteria
- if np.linalg.norm(delta) < 1e-9 or abs(rms - rms_trial) < 1e-9:
- break
- return theta, history
-
-
-# ---------------- Triangulation ----------------
-
-def build_projection_matrix(K: np.ndarray, R: np.ndarray, t: np.ndarray) -> np.ndarray:
- return K @ np.hstack([R, t.reshape(3,1)])
-
-
-def triangulate_center(P1: np.ndarray, P2: np.ndarray, u1: np.ndarray, u2: np.ndarray) -> np.ndarray:
- # u1,u2: (2,) pixel coordinates
- x1 = u1.reshape(2,1)
- x2 = u2.reshape(2,1)
- X_h = cv2.triangulatePoints(P1, P2, x1, x2) # 4x1 homogeneous in machine frame if P maps machine->pixels
- X = (X_h[:3] / X_h[3]).reshape(3)
- return X.astype(np.float32)
-
-
-# ---------------- Main ----------------
-def main():
- print("Started")
- parser = argparse.ArgumentParser(description="Two-camera ArUco joint optimization and triangulation")
- parser.add_argument('-i', '--images', action='append', required=True,
- help="Two image paths: first camera then second camera")
- parser.add_argument('-npz', '--npz', action='append', required=True,
- help="Two NPZ intrinsics paths: cam1 then cam2")
- parser.add_argument('-markerSizeMM', '--markerSizeMM', type=float, default=25.0,
- help="Marker side length in millimeters")
- parser.add_argument('--dict', default='DICT_4X4_250', help="ArUco dictionary name")
- parser.add_argument('-settings', type=str, default=None,
- help="Json settings file containing machine KnownMarkers")
- args = parser.parse_args()
-
- if len(args.images) != 2 or len(args.npz) != 2:
- print("[ERROR] Provide exactly two images and two intrinsics NPZ files.")
- sys.exit(1)
-
- img1 = cv2.imread(args.images[0])
- img2 = cv2.imread(args.images[1])
- draw1 = img1.copy()
- draw2 = img2.copy()
- h, w = draw1.shape[:2]
- #drawPNG1 = np.zeros((h, w, 4), dtype=np.uint8) # fully transparent
- drawPNG1 = np.zeros((h, w, 3), dtype=np.uint8)
- # Also prepare a matching canvas for camera2 to keep the layout tidy
- drawPNG2 = np.zeros((h, w, 3), dtype=np.uint8)
-
- if img1 is None or img2 is None:
- print("[ERROR] Cannot read one of the images.")
- sys.exit(1)
-
- K1, D1 = load_intrinsics_npz(args.npz[0])
- K2, D2 = load_intrinsics_npz(args.npz[1])
-
- # Marker 3D local geometry (square corners)
- half = (args.markerSizeMM / 1000.0) / 2.0
- obj_points = np.array([
- [-half, half, 0.0],
- [ half, half, 0.0],
- [ half, -half, 0.0],
- [-half, -half, 0.0],
- ], dtype=np.float32)
-
- # Read settings for machine known markers
- known_markers: Dict[int, np.ndarray] = {}
- if args.settings is not None and os.path.exists(args.settings):
- with open(args.settings, 'r') as f:
- settings = json.load(f)
- for marker_id, coords in settings['coordinateSystem']['KnownMarkers'].items():
- known_markers[int(marker_id)] = np.array(coords, dtype=np.float32)
- print("[INFO] Loaded KnownMarkers from settings.")
- else:
- # Fallback defaults
- known_markers = {
- 50: np.array([0.0, 0.0, 0.0], dtype=np.float32),
- 71: np.array([0.140, 0.0, 0.0], dtype=np.float32),
- 101: np.array([0.0, -0.080, 0.0], dtype=np.float32),
- }
- print("[WARN] Using default KnownMarkers; provide -settings for your machine.")
-
- # Detect markers in both images
- detector_tuple = get_aruco_detector(args.dict)
- corners1, ids1, _ = detect_markers(img1, detector_tuple)
- corners2, ids2, _ = detect_markers(img2, detector_tuple)
- if ids1 is None or ids2 is None:
- print("[ERROR] No markers detected in one or both images.")
- sys.exit(1)
-
- ids1 = ids1.flatten().tolist()
- ids2 = ids2.flatten().tolist()
-
-
-
- # Build dicts: id -> corners, center, rvec/tvec (per-camera PnP)
- def build_marker_dict(img, corners_list, ids, K, D, draw = False) -> Tuple[Dict[int,np.ndarray], Dict[int,np.ndarray], Dict[int,Tuple[np.ndarray,np.ndarray]]]:
- centers = {}
- corners_dict = {}
- poses = {}
- for i, mid in enumerate(ids):
- C = corners_list[i]
- corners_dict[int(mid)] = C
- centers[int(mid)] = marker_center_from_corners(C)
- # Pose from single marker
- img_pts = corners_to_image_points(C)
- success, rvec, tvec = cv2.solvePnP(obj_points, img_pts, K, D, flags=cv2.SOLVEPNP_IPPE_SQUARE)
- if not success:
- success, rvec, tvec = cv2.solvePnP(obj_points, img_pts, K, D)
- if success:
- poses[int(mid)] = (rvec.reshape(3,1), tvec.reshape(3,1))
- if(draw):
- cv2.drawFrameAxes(draw1, K, D, rvec, tvec, 0.02) # slim orientation axes
- cv2.drawFrameAxes(drawPNG1, K, D, rvec, tvec, 0.02) # slim orientation axes
- return centers, corners_dict, poses
-
- centers1, corners_dict1, poses1 = build_marker_dict(img1, corners1, ids1, K1, D1, draw = True)
- centers2, corners_dict2, poses2 = build_marker_dict(img2, corners2, ids2, K2, D2)
-
- # Common reference markers present in both images and known in machine frame
- common_refs = [mid for mid in known_markers.keys() if (mid in centers1 and mid in centers2)]
- if len(common_refs) < 3:
- print(f"[ERROR] Need ≥3 common reference markers in both cameras; found {len(common_refs)}: {common_refs}")
- sys.exit(1)
-
- # Initial extrinsics from rigid fits per camera using tvec centers of references
- # For camera j, A = camera-frame positions of reference markers (from PnP tvec), B = machine positions
- def init_extrinsics_from_rigid(poses_cam: Dict[int,Tuple[np.ndarray,np.ndarray]], refs: List[int]) -> Tuple[np.ndarray,np.ndarray]:
- A = []
- B = []
- for mid in refs:
- if mid in poses_cam:
- _, tvec = poses_cam[mid]
- A.append(tvec.flatten())
- B.append(known_markers[mid])
- if len(A) < 2:
- raise RuntimeError("Insufficient reference poses for rigid transform init.")
- A = np.stack(A, axis=0)
- B = np.stack(B, axis=0)
- R_cm, t_cm = rigid_transform_no_scale(A, B) # camera->machine
- # Convert to machine->camera
- R_mc = R_cm.T
- t_mc = - R_mc @ t_cm
- return R_mc.astype(np.float32), t_mc.astype(np.float32)
-
- R1_init, t1_init = init_extrinsics_from_rigid(poses1, common_refs)
- R2_init, t2_init = init_extrinsics_from_rigid(poses2, common_refs)
-
- # Observations: reference centers (pixels) -> normalized
- X_mach_refs = np.stack([known_markers[mid] for mid in common_refs], axis=0).astype(np.float32)
- obs1_px = np.stack([centers1[mid] for mid in common_refs], axis=0).astype(np.float32)
- obs2_px = np.stack([centers2[mid] for mid in common_refs], axis=0).astype(np.float32)
- obs1_norm = undistort_to_normalized(obs1_px, K1, D1)
- obs2_norm = undistort_to_normalized(obs2_px, K2, D2)
-
- # Pack initial params as Rodrigues vectors
- omega1_init = cv2.Rodrigues(R1_init)[0].reshape(3)
- omega2_init = cv2.Rodrigues(R2_init)[0].reshape(3)
- theta0 = pack_params(omega1_init, t1_init.reshape(3), omega2_init, t2_init.reshape(3))
-
- theta_opt, hist = lm_solve(theta0, X_mach_refs, obs1_norm, obs2_norm,
- max_iter=60, eps_jac=1e-6, lambda_init=1e-3)
-
- omega1, t1, omega2, t2 = unpack_params(theta_opt)
- R1_opt = cv2.Rodrigues(omega1)[0]
- R2_opt = cv2.Rodrigues(omega2)[0]
-
- # Camera pose in machine coordinates (camera->machine): R_cm = R^T, t_cm = -R^T t
- R1_cm = R1_opt.T
- t1_cm = - R1_cm @ t1
- R2_cm = R2_opt.T
- t2_cm = - R2_cm @ t2
-
- # Build projection matrices for triangulation (machine -> pixels)
- P1 = build_projection_matrix(K1, R1_opt, t1)
- P2 = build_projection_matrix(K2, R2_opt, t2)
-
- # Collect markers seen by at least one camera
- all_ids = set(ids1) | set(ids2)
- # Output structures
- rows = [("id", "x_mm", "y_mm", "z_mm", "roll_deg", "pitch_deg", "yaw_deg")]
- marker_list = []
-
- # Camera orientations in Euler (ZYX)
- def R_to_euler_zyx(R: np.ndarray) -> Tuple[float,float,float]:
- yaw = float(np.degrees(np.arctan2(R[1,0], R[0,0])))
- sp = np.sqrt(R[2,1]**2 + R[2,2]**2)
- pitch = float(np.degrees(np.arctan2(-R[2,0], sp)))
- roll = float(np.degrees(np.arctan2(R[2,1], R[2,2])))
- return roll, pitch, yaw
-
- cam1_roll, cam1_pitch, cam1_yaw = R_to_euler_zyx(R1_cm)
- cam2_roll, cam2_pitch, cam2_yaw = R_to_euler_zyx(R2_cm)
-
- # Camera rows
- c1_mm = (t1_cm * 1000.0).tolist()
- rows.append(("camera 0", f"{c1_mm[0]:.2f}", f"{c1_mm[1]:.2f}", f"{c1_mm[2]:.2f}", f"{cam1_roll:.3f}", f"{cam1_pitch:.3f}", f"{cam1_yaw:.3f}"))
- c2_mm = (t2_cm * 1000.0).tolist()
- rows.append(("camera 1", f"{c2_mm[0]:.2f}", f"{c2_mm[1]:.2f}", f"{c2_mm[2]:.2f}", f"{cam2_roll:.3f}", f"{cam2_pitch:.3f}", f"{cam2_yaw:.3f}"))
-
- # Triangulate and output markers
- def orientation_in_machine(mid: int) -> Tuple[float,float,float]:
- # Prefer camera1 orientation, else camera2
- if mid in poses1:
- Rm_cam = rvec_to_R(poses1[mid][0])
- Rm_machine = R1_cm @ Rm_cam
- elif mid in poses2:
- Rm_cam = rvec_to_R(poses2[mid][0])
- Rm_machine = R2_cm @ Rm_cam
- else:
- Rm_machine = np.eye(3, dtype=np.float32)
- return R_to_euler_zyx(Rm_machine)
-
- # Residual report for references
- # Recompute residual RMS in pixels for references (after optimization)
- refs_rms_px = []
- for j,(K,R_opt,t_opt,centers_px) in enumerate([(K1,R1_opt,t1,centers1),(K2,R2_opt,t2,centers2)]):
- errs = []
- for mid in common_refs:
- X = known_markers[mid]
- X_cam = R_opt @ X + t_opt
- x = K @ X_cam
- u_pred = x[0]/x[2]
- v_pred = x[1]/x[2]
- u_obs, v_obs = centers_px[mid]
- errs.append(np.hypot(u_obs-u_pred, v_obs-v_pred))
- refs_rms_px.append(float(np.sqrt(np.mean(np.square(errs))) if errs else 0.0))
-
- # Compute per-marker positions
- for mid in sorted(all_ids):
- # Triangulate if seen in both
- if mid in centers1 and mid in centers2:
- X_mach = triangulate_center(P1, P2, centers1[mid], centers2[mid])
- elif mid in poses1:
- # Fallback single-camera: transform tvec (camera->machine)
- X_mach = (R1_cm @ poses1[mid][1].flatten() + t1_cm)
- elif mid in poses2:
- X_mach = (R2_cm @ poses2[mid][1].flatten() + t2_cm)
- else:
- continue
- roll, pitch, yaw = orientation_in_machine(mid)
- x_mm, y_mm, z_mm = (X_mach * 1000.0).tolist()
- rows.append((mid, f"{x_mm:.2f}", f"{y_mm:.2f}", f"{z_mm:.2f}", f"{roll:.3f}", f"{pitch:.3f}", f"{yaw:.3f}"))
- marker_list.append({
- "id": int(mid),
- "position_mm": [float(x_mm), float(y_mm), float(z_mm)],
- "orientation_deg": {"roll": float(roll), "pitch": float(pitch), "yaw": float(yaw)}
- })
-
- # Save CSV & JSON
- base1 = os.path.splitext(args.images[0])[0]
- base2 = os.path.splitext(args.images[1])[0]
- out_csv = f"{base1}_two_cam.csv"
- out_json = f"{base1}_two_cam.json"
-
- try:
- import csv
- with open(out_csv, 'w', newline='') as f:
- writer = csv.writer(f)
- writer.writerows(rows)
- print(f"[INFO] Saved CSV poses to '{out_csv}'.")
- except Exception as e:
- print(f"[WARN] Could not save CSV: {e}")
-
- json_data = {
- "metadata": {
- "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
- "reference_markers": common_refs,
- "dict": args.dict,
- "marker_size_mm": args.markerSizeMM,
- "rms_refs_px_cam1": refs_rms_px[0] if refs_rms_px else None,
- "rms_refs_px_cam2": refs_rms_px[1] if refs_rms_px else None,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [float(x) for x in (t1_cm * 1000.0)],
- "orientation_deg": {"roll": cam1_roll, "pitch": cam1_pitch, "yaw": cam1_yaw},
- },
- {
- "id": "camera2",
- "position_mm": [float(x) for x in (t2_cm * 1000.0)],
- "orientation_deg": {"roll": cam2_roll, "pitch": cam2_pitch, "yaw": cam2_yaw},
- }
- ],
- "markers": marker_list
- }
-
- try:
- with open(out_json, 'w', encoding='utf-8') as f:
- json.dump(json_data, f, indent=4)
- print(f"[INFO] Saved JSON poses to '{out_json}'.")
- except Exception as e:
- print(f"[WARN] Could not save JSON: {e}")
-
- # Annotate images with machine axes using camera1 extrinsics
- try:
- R_machine_to_cam1 = R1_opt
- t_machine_to_cam1 = t1
- machine_axes = np.float32([
- [0.0, 0.0, 0.0],
- [0.200, 0.0, 0.0],
- [0.0, -0.100, 0.0],
- [0.0, 0.0, 0.100],
- ])
- rvec_global, _ = cv2.Rodrigues(R_machine_to_cam1)
- imgpts, _ = cv2.projectPoints(machine_axes, rvec_global, t_machine_to_cam1, K1, D1)
- origin = tuple(np.round(imgpts[0].ravel()).astype(int))
- x_end = tuple(np.round(imgpts[1].ravel()).astype(int))
- y_end = tuple(np.round(imgpts[2].ravel()).astype(int))
- z_end = tuple(np.round(imgpts[3].ravel()).astype(int))
-
- # Draw marker outlines only (omit default small id labels) — we draw larger IDs below
- cv2.aruco.drawDetectedMarkers(draw1, corners1)
- cv2.aruco.drawDetectedMarkers(drawPNG1, corners1)
- # Draw larger blue ID labels (keep default marker outlines as-is)
- try:
- for i, mid in enumerate(ids1):
- try:
- pts = corners1[i].reshape((4, 2))
- center = tuple(np.round(pts.mean(axis=0)).astype(int))
- except Exception:
- continue
- text = str(int(mid))
- # Offset: 5px more to the right and 5px up (y axis is downwards)
- pos = (int(center[0]) + 15, int(center[1]) - 15)
- cv2.putText(draw1, text, pos, cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,0,0), 3, lineType=cv2.LINE_AA)
- cv2.putText(drawPNG1, text, pos, cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,0,0,255), 3, lineType=cv2.LINE_AA)
- except Exception:
- pass
- cv2.line(draw1, origin, x_end, (0,0,255), 3)
- cv2.line(draw1, origin, y_end, (0,255,0), 3)
- cv2.line(draw1, origin, z_end, (255,0,0), 3)
-
- # Draw lines (RGBA colors: B,G,R,A). A=255 for fully opaque.
- cv2.line(drawPNG1, origin, x_end, (0, 0, 255, 255), 3) # Red X
- cv2.line(drawPNG1, origin, y_end, (0, 255, 0, 255), 3) # Green Y
- cv2.line(drawPNG1, origin, z_end, (255, 0, 0, 255), 3) # Blue Z
-
- cv2.putText(draw1, "X (200 mm)", x_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,0,255), 2)
- cv2.putText(draw1, "Y (-100 mm)", y_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,255,0), 2)
- cv2.putText(draw1, "+Z (100 mm)", z_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255,0,0), 2)
-
-
- # Try to draw text (might be jaggy on transparent BG in older OpenCV)
- cv2.putText(drawPNG1, "X (200 mm)", x_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255, 255), 2)
- cv2.putText(drawPNG1, "Y (-100 mm)", y_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0, 255), 2)
- cv2.putText(drawPNG1, "+Z (100 mm)", z_end, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 0, 255), 2)
-
-
- out_img1 = f"{base1}_two_cam_annotated.jpg"
- cv2.imwrite(out_img1, draw1)
- print(f"[INFO] Annotated image saved as '{out_img1}'.")
-
- # Save as transparent PNG
-
- gray = cv2.cvtColor(drawPNG1, cv2.COLOR_BGR2GRAY)
- _, alpha = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY)
-
- # 5) Merge BGR + alpha → RGBA transparent overlay
- drawPNG_1 = cv2.merge([drawPNG1[:, :, 0], drawPNG1[:, :, 1], drawPNG1[:, :, 2], alpha])
-
- out_png1 = f"{base1}_two_cam_overlay.png"
- cv2.imwrite(out_png1, drawPNG_1)
-
- except Exception as e:
- print(f"[WARN] Failed to draw machine axes: {e}")
-
- # Also annotate the second camera image and produce a transparent overlay
- try:
- machine_axes2 = np.float32([
- [0.0, 0.0, 0.0],
- [0.200, 0.0, 0.0],
- [0.0, -0.100, 0.0],
- [0.0, 0.0, 0.100],
- ])
- rvec_global2, _ = cv2.Rodrigues(R2_opt)
- imgpts2, _ = cv2.projectPoints(machine_axes2, rvec_global2, t2, K2, D2)
- origin2 = tuple(np.round(imgpts2[0].ravel()).astype(int))
- x_end2 = tuple(np.round(imgpts2[1].ravel()).astype(int))
- y_end2 = tuple(np.round(imgpts2[2].ravel()).astype(int))
- z_end2 = tuple(np.round(imgpts2[3].ravel()).astype(int))
-
- # Draw marker outlines only (omit default small id labels) — we draw larger IDs below
- cv2.aruco.drawDetectedMarkers(draw2, corners2)
- cv2.aruco.drawDetectedMarkers(drawPNG2, corners2)
- # Draw larger blue ID labels (keep default marker outlines as-is)
- try:
- for i, mid in enumerate(ids2):
- try:
- pts = corners2[i].reshape((4, 2))
- center = tuple(np.round(pts.mean(axis=0)).astype(int))
- except Exception:
- continue
- text = str(int(mid))
- # Offset: 5px more to the right and 5px up (y axis is downwards)
- pos = (int(center[0]) + 13, int(center[1]) + 3)
- cv2.putText(draw2, text, pos, cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,0,0), 3, lineType=cv2.LINE_AA)
- cv2.putText(drawPNG2, text, pos, cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,0,0,255), 3, lineType=cv2.LINE_AA)
- except Exception:
- pass
-
- cv2.line(draw2, origin2, x_end2, (0,0,255), 3)
- cv2.line(draw2, origin2, y_end2, (0,255,0), 3)
- cv2.line(draw2, origin2, z_end2, (255,0,0), 3)
-
- cv2.line(drawPNG2, origin2, x_end2, (0, 0, 255, 255), 3)
- cv2.line(drawPNG2, origin2, y_end2, (0, 255, 0, 255), 3)
- cv2.line(drawPNG2, origin2, z_end2, (255, 0, 0, 255), 3)
-
- cv2.putText(draw2, "X (200 mm)", x_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,0,255), 2)
- cv2.putText(draw2, "Y (-100 mm)", y_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0,255,0), 2)
- cv2.putText(draw2, "+Z (100 mm)", z_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255,0,0), 2)
-
- cv2.putText(drawPNG2, "X (200 mm)", x_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255, 255), 2)
- cv2.putText(drawPNG2, "Y (-100 mm)", y_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0, 255), 2)
- cv2.putText(drawPNG2, "+Z (100 mm)", z_end2, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 0, 255), 2)
-
- out_img2 = f"{base2}_two_cam_annotated.jpg"
- cv2.imwrite(out_img2, draw2)
- print(f"[INFO] Annotated image saved as '{out_img2}'.")
-
- gray2 = cv2.cvtColor(drawPNG2, cv2.COLOR_BGR2GRAY)
- _, alpha2 = cv2.threshold(gray2, 0, 255, cv2.THRESH_BINARY)
- drawPNG_2 = cv2.merge([drawPNG2[:, :, 0], drawPNG2[:, :, 1], drawPNG2[:, :, 2], alpha2])
- out_png2 = f"{base2}_two_cam_overlay.png"
- cv2.imwrite(out_png2, drawPNG_2)
- print(f"[INFO] Overlay PNG saved as '{out_png2}'.")
-
- except Exception as e:
- print(f"[WARN] Failed to draw machine axes for camera2: {e}")
-
-if __name__ == '__main__':
- main()
diff --git a/appVideoServer/programs/screenShot.js b/appVideoServer/programs/screenShot.js
deleted file mode 100644
index 1edcbd2..0000000
--- a/appVideoServer/programs/screenShot.js
+++ /dev/null
@@ -1,135 +0,0 @@
-const fs = require('fs');
-const path = require('path');
-const { exec } = require('child_process');
-const { logSnapshot } = require('./log');
-
-
-function snapshot(outDir, cam0, cam1, ws){
-
- if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
- const picDate = Date.now();
- const name0 = `snapshot_video0_${picDate}.jpg`;
- const name1 = `snapshot_video1_${picDate}.jpg`;
- cam0.snapshot(path.join(outDir, name0));
- cam1.snapshot(path.join(outDir, name1));
-
-
- strFile0 = path.join(outDir, name0);
- strFile1 = path.join(outDir, name1);
-
- const relUrl = `/snapshots/${name0}`;
- const relUrlApp = `/snapshots/${name0.replace('.jpg','_two_cam_annotated.jpg')}`;
- // The Python postprocessor writes an overlay named "_two_cam_overlay.png" and a CSV named "_two_cam.csv"
- const relOverlay = `/snapshots/${name0.replace('.jpg','_two_cam_overlay.png')}`;
- const relOverlayCSV = `/snapshots/${name0.replace('.jpg','_two_cam.csv')}`;
-
- const annotatedPath = path.join(outDir, name0.replace('.jpg','_two_cam_annotated.jpg'));
- const overlayPath = path.join(outDir, name0.replace('.jpg','_two_cam_overlay.png'));
- const csvPath = path.join(outDir, name0.replace('.jpg','_two_cam.csv'));
-
-
-
- const command = `python3 /usr/src/app/programs/readTwoImages.py -i ${strFile0} -i ${strFile1} -npz /usr/src/app/data/settings/callibration_cam0.npz -npz /usr/src/app/data/settings/callibration_cam1.npz -settings /usr/src/app/data/settings/settings.json`;
- console.log("Executing Python " + command);
-
- // Run the Python post-processing and send the snapshot response only
- // after the annotated files are present to avoid transient 404s in the browser.
- exec(command, (error, stdout, stderr) => {
- try {
- if (error) {
- console.error(`Error: ${error.message}`);
- // Capture which generated files actually exist for debugging
- const files = {
- annotated: fs.existsSync(annotatedPath),
- overlay: fs.existsSync(overlayPath),
- csv: fs.existsSync(csvPath)
- };
- // Log full details server-side for diagnosis
- const detailed = {
- type: 'snapshot',
- ok: false,
- error: error.message,
- stdout: String(stdout).slice(0, 4096),
- stderr: String(stderr).slice(0, 4096),
- files
- };
- logSnapshot(command, JSON.stringify(detailed));
-
- // Send a short, user-friendly error to the client (no large stdout/stderr)
- const shortError = String(stderr || error.message || '').includes('Corrupt JPEG')
- ? 'postprocessor failed: corrupt JPEG input'
- : 'postprocessor failed';
- try { ws.send(JSON.stringify({ type: 'snapshot', ok: false, error: shortError })); } catch (e) {}
- return;
- }
-
- if (stderr) {
- // Log stderr but don't fail outright; sometimes tools output warnings on stderr.
- if (String(stderr).trim()) console.error(`Stderr: ${stderr}`);
- }
-
- console.log(`Output:\n${stdout}`);
-
- // Wait up to ~1s (10 * 100ms) for the generated files to appear on disk.
- const waitForFiles = (paths, attempts = 10, delayMs = 100) => new Promise((resolve) => {
- let tries = 0;
- (function poll() {
- const ok = paths.every(p => fs.existsSync(p));
- if (ok || tries >= attempts) return resolve(ok);
- tries++;
- setTimeout(poll, delayMs);
- })();
- });
-
- waitForFiles([annotatedPath, overlayPath, csvPath]).then((found) => {
- if (!found) {
- const files = {
- annotated: fs.existsSync(annotatedPath),
- overlay: fs.existsSync(overlayPath),
- csv: fs.existsSync(csvPath)
- };
- // Log details server-side
- const detailed = {
- type: 'snapshot',
- ok: false,
- url: relUrl,
- urlApp: relUrlApp,
- overlay: relOverlay,
- overlayCSV: relOverlayCSV,
- files
- };
- logSnapshot(command, JSON.stringify(detailed));
- // Send a concise error to the client
- try { ws.send(JSON.stringify({ type: 'snapshot', ok: false, error: 'postprocessor incomplete (missing outputs)' })); } catch (e) {}
- return;
- }
-
- const response = JSON.stringify({
- type: 'snapshot',
- ok: found,
- url: relUrl,
- urlApp: relUrlApp,
- overlay: relOverlay,
- overlayCSV: relOverlayCSV
- });
- logSnapshot(command, response);
- try { ws.send(response); } catch (e) {}
- }).catch((waitErr) => {
- console.error('waitForFiles failed:', waitErr);
- const response = JSON.stringify({ type: 'snapshot', ok: false, error: String(waitErr) });
- logSnapshot(command, response);
- try { ws.send(response); } catch (e) {}
- });
- } catch (handlerErr) {
- console.error('snapshot handler error:', handlerErr);
- const response = JSON.stringify({ type: 'snapshot', ok: false, error: String(handlerErr) });
- logSnapshot(command, response);
- try { ws.send(response); } catch (e) {}
- }
- });
-
-
-}
-
-
-module.exports = { snapshot };
\ No newline at end of file
diff --git a/appVideoServer/programs/videoServer.js b/appVideoServer/programs/videoServer.js
deleted file mode 100644
index ed3c55d..0000000
--- a/appVideoServer/programs/videoServer.js
+++ /dev/null
@@ -1,234 +0,0 @@
-// programs/videoServer.js
-'use strict';
-
-const fs = require('fs');
-const { spawn } = require('child_process');
-const WebSocket = require('ws');
-
-class JpegFrameSplitter {
- constructor(onFrame) {
- this.onFrame = onFrame;
- this.buffer = Buffer.alloc(0);
- }
- push(chunk) {
- if (!chunk || !chunk.length) return;
- this.buffer = Buffer.concat([this.buffer, chunk]);
- let start = this.buffer.indexOf(Buffer.from([0xFF, 0xD8]));
- while (start !== -1) {
- const end = this.buffer.indexOf(Buffer.from([0xFF, 0xD9]), start + 2);
- if (end === -1) break;
- const frame = this.buffer.slice(start, end + 2);
- try { this.onFrame(frame); } catch {}
- this.buffer = this.buffer.slice(end + 2);
- start = this.buffer.indexOf(Buffer.from([0xFF, 0xD8]));
- }
- if (this.buffer.length > 8 * 1024 * 1024) {
- const nextSOI = this.buffer.indexOf(Buffer.from([0xFF, 0xD8]));
- this.buffer = nextSOI !== -1 ? this.buffer.slice(nextSOI) : Buffer.alloc(0);
- }
- }
-}
-
-class FFmpegStreamer {
- /**
- * devicePath: '/dev/videoX'
- * options: {
- * name, width, height, fps, quality,
- * input: { format, fps, size, useWallclock, threadQueueSize, channel },
- * tryFormats: [ 'mjpeg', undefined, 'yuyv422', 'rgb24' ]
- * }
- */
- constructor(devicePath, options = {}) {
- this.devicePath = devicePath;
- this.name = options.name || devicePath;
- this.opts = {
- width: options.width ?? undefined,
- height: options.height ?? undefined,
- fps: options.fps ?? 20,
- quality: options.quality ?? 5,
- input: {
- format: options.input?.format,
- fps: options.input?.fps,
- size: options.input?.size,
- useWallclock: options.input?.useWallclock ?? true,
- threadQueueSize: options.input?.threadQueueSize ?? 64,
- channel: options.input?.channel,
- },
- tryFormats: (options.tryFormats || [options.input?.format, 'yuyv422', 'mjpeg', 'rgb24'])
- .filter((v, i, a) => a.indexOf(v) === i),
- };
-
- this.proc = null;
- this.clients = new Set();
- this.startedAt = null;
- this.latestFrame = null;
- this.splitter = null;
-
- this.formatIdx = 0;
- this.currentFormat = this.opts.tryFormats[this.formatIdx];
-
- this._restarting = false;
- this._backoffMs = 500;
- this._maxBackoffMs = 8000;
- this._stderrBuf = [];
- this._stderrMaxLines = 8;
-
- this._quickFailCount = 0;
- this._quickFailLimit = 6;
- this._suspendedUntil = 0;
- }
-
- get running() { return !!this.proc; }
- _scaling() { return Number(this.opts.width) > 0 && Number(this.opts.height) > 0; }
-
- _buildFfmpegArgs() {
- const outFps = this.opts.fps;
- const quality = this.opts.quality;
- const scaling = this._scaling();
-
- const inFmt = this.currentFormat;
- const inFps = this.opts.input.fps;
- const inSize = this.opts.input.size;
- const useWallclock = this.opts.input.useWallclock;
- const tqs = this.opts.input.threadQueueSize;
- const inChannel = this.opts.input.channel;
-
- const args = [
- '-hide_banner', '-loglevel', 'error', '-nostdin',
- '-f', 'video4linux2',
- ...(tqs ? ['-thread_queue_size', String(tqs)] : []),
- ...(inFmt ? ['-input_format', String(inFmt)] : []),
- ...(inFps ? ['-framerate', String(inFps)] : []),
- ...(inSize ? ['-video_size', String(inSize)] : []),
- ...(typeof inChannel === 'number' ? ['-channel', String(inChannel)] : []),
- ...(useWallclock ? ['-use_wallclock_as_timestamps', '1'] : []),
- '-i', this.devicePath,
- '-fflags', 'nobuffer', '-flags', 'low_delay', '-an', '-sn',
- ];
-
- if (inFmt === 'mjpeg' && !scaling) {
- args.push('-vsync', 'passthrough', '-c:v', 'copy', '-f', 'mjpeg', 'pipe:1');
- return args;
- }
- if (scaling) args.push('-vf', `scale=${Number(this.opts.width)}:${Number(this.opts.height)}`);
- if (outFps) args.push('-r', String(outFps));
- args.push('-f', 'mjpeg', '-q:v', String(quality), 'pipe:1');
- return args;
- }
-
- _logStderr(d) {
- const s = d.toString().trim();
- if (!s) return;
- this._stderrBuf.push(s);
- if (this._stderrBuf.length > this._stderrMaxLines) this._stderrBuf.shift();
- }
-
- start() {
- if (this.proc) return;
- if (Date.now() < this._suspendedUntil) {
- const wait = this._suspendedUntil - Date.now();
- console.warn(`[FFmpeg] ${this.name} suspended for ${wait}ms due to repeated failures`);
- return setTimeout(() => this.start(), wait);
- }
-
- const args = this._buildFfmpegArgs();
- console.log(`[FFmpeg] Start ${this.devicePath} (${this.name}) :: ${args.join(' ')}`);
-
- this._stderrBuf = [];
- this.proc = spawn('ffmpeg', args, { stdio: ['ignore', 'pipe', 'pipe'], detached: true });
- this.startedAt = Date.now();
-
- this.splitter = new JpegFrameSplitter((frame) => {
- this.latestFrame = frame;
- this._broadcast(frame);
- });
-
- this.proc.stdout.on('data', (chunk) => this.splitter?.push(chunk));
- this.proc.stderr.on('data', (d) => this._logStderr(d));
-
- this.proc.on('exit', (code, signal) => {
- console.warn(`[FFmpeg] ${this.devicePath} exited code=${code} sig=${signal}`);
- if (this._stderrBuf.length) console.warn(`[FFmpeg] ${this.name} last errors:\n - ${this._stderrBuf.join('\n - ')}`);
-
- this.proc = null;
- const quick = (Date.now() - (this.startedAt || Date.now())) < 2000;
- this.startedAt = null;
-
- if (quick && !this._restarting) {
- this._quickFailCount++;
- this.formatIdx = (this.formatIdx + 1) % this.opts.tryFormats.length;
- this.currentFormat = this.opts.tryFormats[this.formatIdx];
- console.warn(`[FFmpeg] ${this.name}: quick failure -> trying next format: ${this.currentFormat}`);
- } else {
- this._quickFailCount = 0;
- }
-
- if (this._quickFailCount >= this._quickFailLimit) {
- this._suspendedUntil = Date.now() + 60000; // 60s pause
- this._quickFailCount = 0;
- console.error(`[FFmpeg] ${this.name}: too many quick failures; suspending restarts for 60s`);
- }
-
- const delay = this._restarting ? 300 : Math.min(this._backoffMs, this._maxBackoffMs);
- setTimeout(() => {
- if (!this._restarting) this._backoffMs = Math.min(this._backoffMs * 2, this._maxBackoffMs);
- else this._backoffMs = 500;
- this.start();
- }, delay);
- this._restarting = false;
- });
- }
-
- _killProcessGroup(signal = 'SIGTERM') {
- if (!this.proc) return;
- try {
- if (process.platform !== 'win32') process.kill(-this.proc.pid, signal);
- else this.proc.kill(signal);
- } catch {}
- }
-
- stop() {
- if (!this.proc) return;
- this._restarting = false;
- this._killProcessGroup('SIGTERM');
- }
-
- restart(newOpts = {}) {
- this._restarting = true;
- if (newOpts.input) this.opts.input = { ...this.opts.input, ...newOpts.input };
- this.opts = { ...this.opts, ...newOpts, input: this.opts.input };
- if (newOpts.input && Object.prototype.hasOwnProperty.call(newOpts.input, 'format')) {
- const idx = this.opts.tryFormats.indexOf(this.opts.input.format);
- if (idx >= 0) {
- this.formatIdx = idx;
- this.currentFormat = this.opts.tryFormats[this.formatIdx];
- }
- }
- if (this.proc) this._killProcessGroup('SIGTERM'); else { this._restarting = false; this.start(); }
- }
-
- attach(ws) {
- this.clients.add(ws);
- if (this.latestFrame && ws.readyState === WebSocket.OPEN) {
- try { ws.send(this.latestFrame, { binary: true }); } catch {}
- }
- ws.on('close', () => this.clients.delete(ws));
- }
-
- snapshot(toFile) {
- if (!this.latestFrame) throw new Error('No frame available yet');
- fs.writeFileSync(toFile, this.latestFrame);
- return toFile;
- }
-
- _broadcast(frame) {
- if (!this.clients.size) return;
- for (const ws of this.clients) {
- if (ws.readyState !== WebSocket.OPEN) continue;
- if (ws.bufferedAmount > 512 * 1024) continue; // drop if back-pressured
- try { ws.send(frame, { binary: true }); } catch {}
- }
- }
-}
-
-module.exports = { FFmpegStreamer };
\ No newline at end of file
diff --git a/appVideoServer/public/GamePad.js b/appVideoServer/public/GamePad.js
deleted file mode 100644
index e8d72a6..0000000
--- a/appVideoServer/public/GamePad.js
+++ /dev/null
@@ -1,110 +0,0 @@
-var isRunning = false;
-var gamePadId = 0;
-var gamepad = {};
-
-let lastCheckTime = 0;
-
-
-
-function checkGamePad() {
- if(isRunning == false){return;}
-
- const stepSize = "0.01";
- const stepSizeXYZ = "0.5"; // 3 ist auch ok
- const stepSizeE = "0.01";
- var gp = navigator.getGamepads()[gamePadId]
- var buttons = gp.buttons
-
- var xyzSpeed = 10; // 100 geht auch
-
- var psi = gp.axes[0];
- var z = gp.axes[1];
- var x = gp.axes[2];
- var y = gp.axes[3];
-
-
- // Dreieck zum Dreieck-Setzen
- if (buttons[3].pressed) {
- socketDriver.send(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B${-1.0*Math.PI/2} C0 F${xyzSpeed}`);
- }
- if (buttons[4].pressed) {
- //console.log("x=" + robot.x + " y=" + robot.y + " z=" + robot.z);
- }
-
-
-
- // X Button setzt eine Marke
- if(buttons[0].pressed && (Date.now() - lastCheckTime > 500)){
- lastCheckTime = Date.now()
- console.log('FPoint!');
- socketDriver.send('FPoint');
- socketDriver.send('FShow');
- }
-
- // L1 und R1 Button to forward-backward in Point-List
- if(gp.buttons[4].pressed && (Date.now() - lastCheckTime > 500)){
- lastCheckTime = Date.now()
- socketDriver.send('FMinus');
- socketDriver.send('FShow');
- }
- if(gp.buttons[5].pressed && (Date.now() - lastCheckTime > 500)){
- lastCheckTime = Date.now()
- socketDriver.send('FPlus');
- socketDriver.send('FShow');
- }
-
- if (x < -0.2) { socketDriver.send(`G91 G1 X+${stepSizeXYZ} F${xyzSpeed}`);}
- if (x > 0.2) { socketDriver.send(`G91 G1 X-${stepSizeXYZ} F${xyzSpeed}`);}
-
- if (y < -0.2) { socketDriver.send(`G91 G1 Y${stepSizeXYZ} F${xyzSpeed}`); }
- if (y > 0.2) { socketDriver.send(`G91 G1 Y-${stepSizeXYZ} F${xyzSpeed}`);}
-
- if (z < -0.2) { socketDriver.send(`G91 G1 Z${stepSizeXYZ} F${xyzSpeed}`); }
- if (z > 0.2) { socketDriver.send(`G91 G1 Z-${stepSizeXYZ} F${xyzSpeed}`); }
-
-
- // Greif-Richtung
- // LeftRight
- if(buttons[14].pressed){ socketDriver.send(`G91 G1 A${stepSize} F${xyzSpeed}`);}
- if(buttons[15].pressed){ socketDriver.send(`G91 G1 A-${stepSize} F${xyzSpeed}`);}
- // Up - Down
- if(buttons[12].pressed){ socketDriver.send(`G91 G1 B${stepSize} F${xyzSpeed}`);}
- if(buttons[13].pressed){ socketDriver.send(`G91 G1 B-${stepSize} F${xyzSpeed}`);}
- // Drehung
- if (psi < -0.2) { socketDriver.send(`G91 G1 C${stepSize} F${xyzSpeed}`); }
- if (psi > 0.2) { socketDriver.send(`G91 G1 C-${stepSize} F${xyzSpeed}`); }
-
- // Trigger-Buttons für Öffnen und Schliessen
- if(buttons[6].pressed){socketDriver.send(`G91 G1 E-${stepSizeE} F${xyzSpeed}`);}
- if(buttons[7].pressed){socketDriver.send(`G91 G1 E${stepSizeE} F${xyzSpeed}`);}
-
- if (isRunning) { setTimeout(checkGamePad, 15);}
-}
-
-function gamepadHandler(event, connecting) {
-
- gamepad = event.gamepad;
- if (typeof gamepad === `undefined`) {
- isRunning = false;
- gamePadId = 0;
- console.warn("GamePad kann nicht gefunden werden");
- return;
- }
-
- if (connecting) {
- console.log("GamePad " + event.gamepad.index + " connected");
- gamePadId = gamepad.index;
- isRunning = true;
- setTimeout(checkGamePad, 20);
- } else {
- console.log("GamePad " +gamePadId +" disconnected");
- isRunning = false;
- gamePadId = 0;
- }
-}
-
-
-window.addEventListener("gamepadconnected", function (e) { gamepadHandler(e, true); }, false);
-window.addEventListener("gamepaddisconnected", function (e) { gamepadHandler(e, false); }, false);
-
-document.addEventListener("touchstart", e => { console.log("TouchStart"); })
\ No newline at end of file
diff --git a/appVideoServer/public/KeyboardInput.js b/appVideoServer/public/KeyboardInput.js
deleted file mode 100644
index 8e26db3..0000000
--- a/appVideoServer/public/KeyboardInput.js
+++ /dev/null
@@ -1,64 +0,0 @@
-document.onkeydown = checkKey;
-
-function checkKey(e) {
-
- e = e || window.event;
-
- if(e.key == 'a' || e.key == 'A')
- {
- console.log("back to A position");
- socketDriver.send(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B-${Math.PI/2} C0 F100`);
- }
-
- // Hand-Winkel (Eulerwinkel)
- else if(e.key == 'i' || e.key == 'I'){
- socketDriver.send('G91 G1 B+0.1 F100');
- }
- else if(e.key == 'k' || e.key == 'K'){
- socketDriver.send('G91 G1 B-0.1 F100');
- }
- else if(e.key == 'l' || e.key == 'L'){
- socketDriver.send('G91 G1 A+0.1 F100');
- }
- else if(e.key == 'j' || e.key == 'J'){
- socketDriver.send('G91 G1 A-0.1 F100');
- }
- else if(e.key == 'o' || e.key == 'O'){
- socketDriver.send('G91 G1 C+0.1 F100');
- }
- else if(e.key == 'u' || e.key == 'U'){
- socketDriver.send('G91 G1 C-0.1 F100');
- }
-
- // XYZ Koordinaten
- else if(e.key == 'e' || e.key == 'E'){
- socketDriver.send('G91 G1 Z+5 F100');
- }
- else if(e.key == 'd' || e.key == 'D'){
- socketDriver.send('G91 G1 Z-5 F100');
- }
- else if(e.key == 's' || e.key == 'S'){
- socketDriver.send('G91 G1 X5 F100');
- }
- else if(e.key == 'f' || e.key == 'S'){
- socketDriver.send('G91 G1 X-5 F100');
- }
- else if(e.key == 'r' || e.key == 'R'){
- socketDriver.send('G91 G1 Y5 F100');
- }
- else if(e.key == 'w' || e.key == 'W'){
- socketDriver.send('G91 G1 Y-5 F100');
- }
-
- // File & Log-Operations
- else if(e.key == ' '){
- console.log('FPoint!')
- socketDriver.send('FPoint');
- }
- else if(e.key == 'b'){
- socketDriver.send('FMinus');
- }
- else if(e.key == 'n'){
- socketDriver.send('FPlus');
- }
-}
\ No newline at end of file
diff --git a/appVideoServer/public/WebSocket.js b/appVideoServer/public/WebSocket.js
deleted file mode 100644
index e6c1ce4..0000000
--- a/appVideoServer/public/WebSocket.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const protocolS = location.protocol === "https:" ? "wss://" : "ws://";
-const robotURL = protocolS + location.host + "/ws/robot";
-console.log("socketDriver try to connect to "+ robotURL);
-
-const socketDriver = new WebSocket(robotURL);
-
-
-
-socketDriver.onopen = () => { console.log("socketDriver WebSocket connected"); };
-
-socketDriver.onmessage = (event) => {
- if(event.data.toString().includes("position")){
- console.log("Position: " + event.data);
- }
- else if(event.data.toString().includes("XYZ__FShow__XYZ")){
- const content = event.data.toString().split("XYZ__FShow__XYZ")[1];
- document.querySelectorAll("textarea#GCodeWindow.editor-look")[0].value = content;
- }
- else{
- console.log('DATA SinceStartup: ' + (Date.now() - startTime).toString() +': ', event.data);
- }
-}
-
-socketDriver.onclose = () => {console.log("socketDriver WebSocket is closing");};
-socketDriver.onerror = (err) => { console.error("socketDriver socket error:", err); };
\ No newline at end of file
diff --git a/appVideoServer/public/app.js b/appVideoServer/public/app.js
deleted file mode 100644
index b5cdb53..0000000
--- a/appVideoServer/public/app.js
+++ /dev/null
@@ -1,72 +0,0 @@
-// /public/app.js
-// Small bootstrap moved out of index.html to satisfy CSP (`script-src 'self'`).
-(function () {
- const isSecure = location.protocol === 'https:';
- const wsProto = isSecure ? 'wss' : 'ws';
- const base = `${wsProto}://${location.host}`;
-
- // Camera 0 with control channel
- window.VideoService.attachStream({
- url: `${base}/ws/video0`,
- canvas: document.getElementById('canvas0'),
- statusEl: document.getElementById('status0'),
- control: {
- resSelect: document.getElementById('res0'),
- fpsSelect: document.getElementById('fps0'),
- qSelect: document.getElementById('q0'),
- applyBtn: document.getElementById('apply0'),
- snapshotBtn: document.getElementById('snap0'),
- startBtn: document.getElementById('start0'),
- stopBtn: document.getElementById('stop0'),
- snapshotOutEl: document.getElementById('snapshotLink'),
- }
- });
-
- // Camera 1 (no control)
- window.VideoService.attachStream({
- url: `${base}/ws/video1`,
- canvas: document.getElementById('canvas1'),
- statusEl: document.getElementById('status1'),
- });
-
- // Run an automatic snapshot shortly after the page loads so the client
- // receives the freshest annotated image/CSV on startup. This uses a
- // synthetic click on the snapshot button; the handler will no-op if the
- // WebSocket isn't open yet.
- setTimeout(() => {
- const snapBtn = document.getElementById('snap0');
- if (snapBtn) snapBtn.click();
- }, 200);
-
- // Attach handlers for the Point/Up/Down buttons (no inline JS, CSP-safe)
- const btnPoint = document.getElementById('btnPoint');
- const btnDown = document.getElementById('btnDown');
- const btnUp = document.getElementById('btnUp');
- if (btnPoint) btnPoint.addEventListener('click', () => {
- console.log('FPoint!');
- try { socketDriver.send('FPoint'); socketDriver.send('FShow'); } catch (e) { console.error(e); }
- });
- if (btnDown) btnDown.addEventListener('click', () => {
- console.log('FPlus');
- try { socketDriver.send('FPlus'); socketDriver.send('FShow'); } catch (e) { console.error(e); }
- });
- if (btnUp) btnUp.addEventListener('click', () => {
- console.log('FMinus');
- try { socketDriver.send('FMinus'); socketDriver.send('FShow'); } catch (e) { console.error(e); }
- });
-
- // Other buttons that were previously using inline onclicks.
- const btnInfo = document.getElementById('b_M114');
- const btnNull = document.getElementById('b_G28');
- const btnListFile = document.getElementById('btnListFile');
- const btnSendGCode = document.getElementById('btnSendGCode');
- if (btnInfo) btnInfo.addEventListener('click', () => { try { socketDriver.send('M114'); } catch (e) { console.error(e); } });
- if (btnNull) btnNull.addEventListener('click', () => { try { socketDriver.send('G28'); } catch (e) { console.error(e); } });
- if (btnListFile) btnListFile.addEventListener('click', () => { try { socketDriver.send('FShow'); } catch (e) { console.error(e); } });
- if (btnSendGCode) btnSendGCode.addEventListener('click', () => {
- try {
- const input = document.getElementById('GKarth');
- if (input && input.value) socketDriver.send(input.value);
- } catch (e) { console.error(e); }
- });
-})();
diff --git a/appVideoServer/public/buttonCmd.js b/appVideoServer/public/buttonCmd.js
deleted file mode 100644
index 8fd6c9d..0000000
--- a/appVideoServer/public/buttonCmd.js
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-document.getElementById("b_uparrow").addEventListener('click',() => { socketDriver.send(`G91 G1 Z10 F100`);});
-document.getElementById("b_downarw").addEventListener('click',() => { socketDriver.send(`G90 G1 Z-10 F100`);});
-document.getElementById("b_right").addEventListener('click',() => { socketDriver.send(`G90 G1 X10 F100`);});
-document.getElementById("b_left").addEventListener('click',() => { socketDriver.send(`G90 G1 X-10 F100`);});
-document.getElementById("b_forward").addEventListener('click',() => { socketDriver.send(`G90 G1 Y10 F100`);});
-document.getElementById("b_backward").addEventListener('click',() => { socketDriver.send(`G90 G1 Y-10 F100`);});
-
-document.getElementById("b_aPlus").addEventListener('click',() => { socketDriver.send(`G91 G1 A0.10 F100`);});
-document.getElementById("b_aMinus").addEventListener('click',() => { socketDriver.send(`G91 G1 A-0.10 F100`);});
-document.getElementById("b_bPlus").addEventListener('click',() => { socketDriver.send(`G91 G1 B0.10 F100`);});
-document.getElementById("b_bMinus").addEventListener('click',() => { socketDriver.send(`G91 G1 B-0.10 F100`);});
-document.getElementById("b_cPlus").addEventListener('click',() => { socketDriver.send(`G91 G1 C0.10 F100`);});
-document.getElementById("b_cMinus").addEventListener('click',() => { socketDriver.send(`G91 G1 C-0.10 F100`);});
-
-document.getElementById("b_ePlus").addEventListener('click',() => { socketDriver.send(`G91 G1 E0.10 F100`);});
-document.getElementById("b_eMinus").addEventListener('click',() => { socketDriver.send(`G91 G1 E-0.10 F100`);});
-
-
-document.getElementById("b_default").addEventListener('click',() => { socketDriver.send(`G90 G1 X0 Y300 Z0 A${Math.PI/2} B-${Math.PI/2} C0 F100`);});
-document.getElementById("b_G28").addEventListener('click',() => { socketDriver.send(`G28`);});
-document.getElementById("b_M114").addEventListener('click',() => { socketDriver.send(`M114`);});
diff --git a/appVideoServer/public/index.html b/appVideoServer/public/index.html
deleted file mode 100644
index e25c399..0000000
--- a/appVideoServer/public/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
- Dual Camera Stream (HTTPS + WSS)
-
-
-
-
-
-
-
-
- Robot Control
-
-
-
-
- Camera 0
-
-
-
-
-

-
- Connecting…
-
-
-
-
- Camera 1
-
-
-
- Connecting…
-
-
-
-
-
-
-
-
Controls
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/appVideoServer/public/indexA.css b/appVideoServer/public/indexA.css
deleted file mode 100644
index 33c015c..0000000
--- a/appVideoServer/public/indexA.css
+++ /dev/null
@@ -1,203 +0,0 @@
-:root { color-scheme: dark light; }
-/* Overlay opacity is configurable here. Set to 1 to let PNG alpha be authoritative */
-:root {
- --overlay-opacity: 1; /* default overlay alpha applied client-side */
-}
-
-body {
- font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
- margin: 0;
- padding: 1rem;
- background: #0b1020;
- color: #e7eaf6;
-
-}
-
-h1, h2 {
- margin: 0.5rem 0 0.25rem;
-}
-
-.grid {
- display: grid;
- gap: 1rem;
- /*
- grid-auto-flow: column;
- grid-auto-columns: 1280px;
- justify-content: start;
- */
- grid-template-columns: repeat(auto-fit, minmax(1280px, 1fr));
- align-items: start;
-}
-
-.panel {
- background: #141b34;
- border: 1px solid #242c4f;
- border-radius: 12px;
- padding: 1rem;
- box-shadow: 0 10px 24px rgba(0,0,0,0.25);
-}
-
-.video-wrap {
- position: relative;
- background: #000;
- border-radius: 8px;
- overflow: hidden;
- /* Keep a 16:9 box that doesn't stretch beyond the source resolution */
- width: 100%;
- max-width: 1280px;
- aspect-ratio: 16 / 9;
- margin: 0 auto;
-}
-
-/* Ensure canvas and overlay are sized identically and keep the same aspect ratio
- so overlays align correctly when the window is resized. */
-.video-wrap canvas,
-.video-wrap img,
-#overlayImg {
- position: absolute;
- inset: 0; /* top:0; right:0; bottom:0; left:0 */
- width: 100%;
- height: 100%;
- /* Use `contain` so both layers scale uniformly and show letterboxing instead
- of stretching or cropping when the container size differs from the image. */
- object-fit: contain;
- background: #000;
-}
-
-.video-wrap canvas {
- z-index: 1;
-}
-.video-wrap img,
-#overlayImg {
- z-index: 2;
- pointer-events: none; /* don't block interactions with the canvas */
- opacity: var(--overlay-opacity);
-}
-
-.status {
- font-size: 0.9rem;
- opacity: 0.85;
- margin: 0.5rem 0 0;
-}
-
-.controls {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
- gap: 0.5rem;
- margin-top: 0.75rem;
-}
-
-.controls label {
- display: grid;
- gap: 0.25rem;
- font-size: 0.9rem;
-}
-
-select, input, button {
- padding: 0.5rem 0.6rem;
- border-radius: 8px;
- border: 1px solid #2d3766;
- background: #0d1530;
- color: #e7eaf6;
-}
-
-button.primary {
- background: #355dff;
- border-color: #355dff;
-}
-
-a {
- color: #9eb8ff;
-}
-
-footer {
- margin-top: 1.25rem;
- opacity: 0.7;
- font-size: 0.9rem;
-}
-
-.muted {
- opacity: 0.8;
-}
-
-
-/* Ensure overlay uses contain and respects alpha channel from the PNG
- (the PNG's transparency is the authoritative source of which pixels
- are transparent; CSS opacity only adjusts global alpha). */
-#overlayImg {
- position: absolute;
- inset: 0; /* shorthand for top:0; right:0; bottom:0; left:0; */
- width: 100%;
- height: 100%;
- pointer-events: none;
- opacity: var(--overlay-opacity);
- object-fit: contain; /* preserve aspect ratio and don't distort */
- background: transparent;
-}
-
-/* CSV table styles */
-.csv-table {
- width: 440px; /* 4 columns * 200px each */
- border-collapse: collapse;
- margin-top: 0.5rem;
- table-layout: fixed; /* use fixed layout so column widths are respected */
-}
-.csv-table th, .csv-table td {
- border: 1px solid rgba(255,255,255,0.06);
- padding: 0.35rem 0.5rem;
- text-align: center;
- font-size: 0.9rem;
- width: 110px; /* fixed column width */
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-.csv-table th {
- background: rgba(255,255,255,0.02);
- font-weight: 600;
-}
-.csv-table tr:nth-child(even) td {
- background: rgba(255,255,255,0.01);
-}
-
-/* Right-align CSV numeric data and use tabular digits for stable column alignment */
-.csv-table td { text-align: right; font-variant-numeric: tabular-nums; }
-
-#GCodeWindow {
- width: 100%;
- height: 200px;
-}
-
-/* Layout: place the buttons and GCode window side-by-side in their panel.
- - `#divButtons` gets a fixed ~300px width
- - `#divGCodeWindow` uses the remaining width
- - On small screens they stack vertically for usability */
-/* Use floats for a predictable two-column layout inside the panel. */
-#divButtons {
- float: left;
- width: 300px;
- box-sizing: border-box;
- margin-right: 1rem;
-}
-#divGCodeWindow {
- display: block;
- margin-left: 320px; /* 300px left column + 1rem gap */
- box-sizing: border-box;
-}
-
-/* Clear floats inside panels so subsequent content flows correctly */
-.panel::after {
- content: "";
- display: table;
- clear: both;
-}
-@media (max-width: 800px) {
- #divButtons, #divGCodeWindow {
- display: block;
- float: none;
- width: 100%;
- margin-left: 0;
- margin-right: 0;
- }
-}
-
diff --git a/appVideoServer/public/readCSV.js b/appVideoServer/public/readCSV.js
deleted file mode 100644
index d5c821b..0000000
--- a/appVideoServer/public/readCSV.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// public/readCSV.js
-// Fetch a CSV file and render a small table into the given container.
-// Usage: window.readCSV.renderCSV(containerOrId, csvUrl)
-
-(function () {
- async function renderCSV(container, csvUrl) {
- console.log("readCSV should start");
- console.log('readCSV.renderCSV', container, csvUrl);
-
- const el = (typeof container === 'string') ? document.getElementById(container) : container;
- if (!el) return;
- if (!csvUrl) {
- el.innerHTML = 'No CSV URL provided';
- return;
- }
- el.innerHTML = 'Loading CSV…';
- try {
- const res = await fetch(csvUrl, { cache: 'no-store' });
- if (!res.ok) {
- el.innerHTML = `CSV not found (HTTP ${res.status})`;
- return;
- }
- const text = await res.text();
- const lines = text.trim().split(/\r?\n/).filter(Boolean);
- if (!lines.length) {
- el.innerHTML = 'CSV is empty';
- return;
- }
- const headers = lines[0].split(',').map(h => h.trim());
- // Look for id,x,y,z columns (case-insensitive)
- const lower = headers.map(h => h.toLowerCase());
- const ids = {
- id: lower.indexOf('id'),
- x: lower.indexOf('x_mm'),
- y: lower.indexOf('y_mm'),
- z: lower.indexOf('z_mm')
- };
- // If any of these are missing, show a helpful message
- if (ids.id === -1 || ids.x === -1 || ids.y === -1 || ids.z === -1) {
- el.innerHTML = `CSV does not contain required columns: id, x, y, z ${csvUrl}`;
- return;
- }
-
- // Build table
- const table = document.createElement('table');
- table.className = 'csv-table';
- const thead = table.createTHead();
- const thr = thead.insertRow();
- ['id', 'x [mm]', 'y [mm]', 'z [mm]'].forEach(h => {
- const th = document.createElement('th');
- th.textContent = h;
- thr.appendChild(th);
- });
- const tbody = table.createTBody();
-
- for (let i = 1; i < lines.length; i++) {
- const row = lines[i].split(',').map(c => c.trim());
- // Skip if row doesn't have enough columns
- if (row.length < headers.length) continue;
- const tr = tbody.insertRow();
- ['id', 'x', 'y', 'z'].forEach(k => {
- const td = tr.insertCell();
- td.textContent = row[ids[k]] ?? '';
- });
- }
-
- el.innerHTML = ''; // clear
- el.appendChild(table);
- } catch (err) {
- console.error('readCSV error', err);
- el.innerHTML = `Error loading CSV`;
- }
- }
-
- window.readCSV = { renderCSV };
-})();
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765974554630.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765974554630.jpg
deleted file mode 100644
index b35b56b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765974554630.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.csv
deleted file mode 100644
index f7dea01..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,461.226,163.150,208.814,-115.601,2.852,108.987
-camera2,368.003,-324.025,849.279,-147.633,-3.697,60.975
-20,-27.787,-370.901,-104.452,-0.238,-4.375,143.811
-25,-67.077,-165.677,-12.623,-2.256,0.110,87.366
-50,0.002,-0.008,-0.007,-0.557,-0.254,0.228
-71,140.418,0.009,0.093,0.905,-2.137,1.508
-76,-204.436,-90.385,-94.522,-52.679,39.273,-87.214
-101,0.016,-80.028,-0.025,1.056,-2.213,0.260
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.json
deleted file mode 100644
index 3d31956..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:29:14",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.01816248951344627,
- "rms_refs_px_cam2": 0.49688754115479944,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 461.2260243096291,
- 163.15047116357306,
- 208.81423321244827
- ],
- "orientation_deg": {
- "roll": -115.60069066047194,
- "pitch": 2.8518474088280343,
- "yaw": 108.98699397077662
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 368.0032092105987,
- -324.02483230064206,
- 849.2788823044326
- ],
- "orientation_deg": {
- "roll": -147.6328488975886,
- "pitch": -3.697144586874371,
- "yaw": 60.97510432458154
- }
- }
- ],
- "markers": [
- {
- "id": 20,
- "position_mm": [
- -27.78722965547953,
- -370.90144636184993,
- -104.45169497289619
- ],
- "orientation_deg": {
- "roll": -0.23809413256188228,
- "pitch": -4.374834208590023,
- "yaw": 143.81085305206332
- }
- },
- {
- "id": 25,
- "position_mm": [
- -67.07681274414062,
- -165.6768341064453,
- -12.623200416564941
- ],
- "orientation_deg": {
- "roll": -2.2561967939168364,
- "pitch": 0.10968211192904707,
- "yaw": 87.36599578819637
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.0022646484430879354,
- -0.007531278766691685,
- -0.006839004810899496
- ],
- "orientation_deg": {
- "roll": -0.5572651387919108,
- "pitch": -0.2540478856154707,
- "yaw": 0.22792865561204573
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.41845703125,
- 0.009271804243326187,
- 0.092652328312397
- ],
- "orientation_deg": {
- "roll": 0.9053221063108222,
- "pitch": -2.1366085994661774,
- "yaw": 1.5077277441713781
- }
- },
- {
- "id": 76,
- "position_mm": [
- -204.43634100254326,
- -90.3850951365776,
- -94.52184634518557
- ],
- "orientation_deg": {
- "roll": -52.67872835725091,
- "pitch": 39.27299014262584,
- "yaw": -87.21449748201128
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.01583130471408367,
- -80.02842712402344,
- -0.02530261129140854
- ],
- "orientation_deg": {
- "roll": 1.0558520137504372,
- "pitch": -2.2130377151018776,
- "yaw": 0.2601617066921372
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_annotated.jpg
deleted file mode 100644
index 8ee083c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_overlay.png
deleted file mode 100644
index 2f63349..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765974554630_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975245635.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975245635.jpg
deleted file mode 100644
index 95abf3f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975245635.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.csv
deleted file mode 100644
index c891594..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,744.393,-11.882,212.666,-115.660,2.222,96.551
-camera2,527.995,-443.448,881.443,-149.405,-0.614,30.363
-25,146.987,-219.644,-14.453,-1.475,-0.713,75.762
-50,-1.518,0.089,-0.276,-0.596,-1.297,0.062
-71,139.840,0.042,-0.031,0.036,-1.975,-0.196
-101,-2.288,-80.358,-0.673,0.487,-1.568,-0.808
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.json
deleted file mode 100644
index d66e42f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:40:45",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.45907110184149624,
- "rms_refs_px_cam2": 1.8220535514255254,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 744.3932024096008,
- -11.882499535240939,
- 212.66641344590275
- ],
- "orientation_deg": {
- "roll": -115.66036055568036,
- "pitch": 2.2216915445453633,
- "yaw": 96.55059294849401
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 527.9947219168113,
- -443.4476403624862,
- 881.4430227800225
- ],
- "orientation_deg": {
- "roll": -149.4054202299282,
- "pitch": -0.6136995548592902,
- "yaw": 30.363222205495898
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 146.98660278320312,
- -219.6441650390625,
- -14.453299522399902
- ],
- "orientation_deg": {
- "roll": -1.4751980332876062,
- "pitch": -0.7130443690892287,
- "yaw": 75.76221922077491
- }
- },
- {
- "id": 50,
- "position_mm": [
- -1.5184317827224731,
- 0.08936363458633423,
- -0.27635297179222107
- ],
- "orientation_deg": {
- "roll": -0.5960699180502376,
- "pitch": -1.296579669039671,
- "yaw": 0.06174649369085999
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.83982849121094,
- 0.04223456606268883,
- -0.03088134340941906
- ],
- "orientation_deg": {
- "roll": 0.03560029736445153,
- "pitch": -1.9746336879120467,
- "yaw": -0.1957084044000817
- }
- },
- {
- "id": 101,
- "position_mm": [
- -2.2875027656555176,
- -80.35816192626953,
- -0.673177182674408
- ],
- "orientation_deg": {
- "roll": 0.4866379194238045,
- "pitch": -1.5677675033219693,
- "yaw": -0.8081315765533771
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_annotated.jpg
deleted file mode 100644
index fdbf341..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_overlay.png
deleted file mode 100644
index 0d50ffa..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975245635_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975263688.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975263688.jpg
deleted file mode 100644
index 7b0448f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975263688.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975271097.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975271097.jpg
deleted file mode 100644
index 5ad7ed8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975271097.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975298025.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975298025.jpg
deleted file mode 100644
index 8512766..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975298025.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975307378.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975307378.jpg
deleted file mode 100644
index 939e942..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975307378.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975311865.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975311865.jpg
deleted file mode 100644
index 00b9b5e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975311865.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975406077.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975406077.jpg
deleted file mode 100644
index b29883c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975406077.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.csv
deleted file mode 100644
index 1bd04e5..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,498.210,88.623,206.052,-119.838,2.196,102.110
-camera2,334.074,-396.876,854.525,-147.250,-0.513,39.282
-25,-93.825,-211.994,-12.439,-1.046,-0.406,84.805
-50,-0.004,0.003,0.012,-0.106,-0.397,-0.042
-71,140.045,-0.037,-0.014,0.502,-1.471,0.890
-76,-347.458,-82.554,-72.496,-4.794,0.320,-131.339
-101,-0.044,-80.081,-0.025,1.333,-0.936,-0.171
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.json
deleted file mode 100644
index bbc306b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:43:26",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.0689596563850227,
- "rms_refs_px_cam2": 0.15658089852267823,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 498.210011232767,
- 88.62307649604217,
- 206.05227415389444
- ],
- "orientation_deg": {
- "roll": -119.83827305973767,
- "pitch": 2.1955471129077124,
- "yaw": 102.10968938445795
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 334.0739312137807,
- -396.87615758651145,
- 854.5248655333136
- ],
- "orientation_deg": {
- "roll": -147.24989987242014,
- "pitch": -0.5126818772143938,
- "yaw": 39.28200265150137
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -93.8246078491211,
- -211.99365234375,
- -12.43923568725586
- ],
- "orientation_deg": {
- "roll": -1.0455208006289969,
- "pitch": -0.405997221444331,
- "yaw": 84.80479451113972
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.004142458084970713,
- 0.0031922683119773865,
- 0.011907931417226791
- ],
- "orientation_deg": {
- "roll": -0.10642453044301076,
- "pitch": -0.3968296567842359,
- "yaw": -0.04171026817406525
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0451202392578,
- -0.037084344774484634,
- -0.014320459216833115
- ],
- "orientation_deg": {
- "roll": 0.5023078026002353,
- "pitch": -1.4710306891384899,
- "yaw": 0.8898461679228588
- }
- },
- {
- "id": 76,
- "position_mm": [
- -347.4584356767253,
- -82.55446010770595,
- -72.49557614124402
- ],
- "orientation_deg": {
- "roll": -4.793917356113556,
- "pitch": 0.3203544844260641,
- "yaw": -131.3390863237459
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.043663639575242996,
- -80.08061218261719,
- -0.024777762591838837
- ],
- "orientation_deg": {
- "roll": 1.3330315657696694,
- "pitch": -0.9363310058749773,
- "yaw": -0.17089002041329374
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_annotated.jpg
deleted file mode 100644
index 48d6464..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_overlay.png
deleted file mode 100644
index 61392c3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975406077_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975550136.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975550136.jpg
deleted file mode 100644
index 2aa7ec3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975550136.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.csv
deleted file mode 100644
index 7cb46d7..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,499.822,88.859,207.627,-119.927,2.190,102.072
-camera2,324.617,-392.143,862.639,-147.982,-0.790,39.250
-25,-93.860,-212.481,-12.595,-1.949,-0.269,83.807
-50,-0.004,0.003,0.012,-0.258,-0.650,0.428
-71,140.046,-0.037,-0.013,0.306,-2.118,0.609
-76,-340.361,-86.238,-67.321,-4.926,2.286,-131.705
-101,-0.043,-80.081,-0.024,1.357,-1.022,-0.205
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.json
deleted file mode 100644
index f601256..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:45:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.06868263740095656,
- "rms_refs_px_cam2": 0.15630357297595754,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 499.822142506545,
- 88.85939416980528,
- 207.62721199733437
- ],
- "orientation_deg": {
- "roll": -119.92745477596469,
- "pitch": 2.190488293707874,
- "yaw": 102.07241332921645
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 324.6169326616307,
- -392.1429491628629,
- 862.638817313126
- ],
- "orientation_deg": {
- "roll": -147.98179815319492,
- "pitch": -0.7895678131424055,
- "yaw": 39.24991008226242
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -93.85962677001953,
- -212.4806365966797,
- -12.594773292541504
- ],
- "orientation_deg": {
- "roll": -1.9485429121680113,
- "pitch": -0.2687673923849189,
- "yaw": 83.80737730916069
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.003994773142039776,
- 0.003109264886006713,
- 0.012178612872958183
- ],
- "orientation_deg": {
- "roll": -0.25790734082294964,
- "pitch": -0.6498026480254269,
- "yaw": 0.428441829560328
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.04592895507812,
- -0.03738624230027199,
- -0.01319770235568285
- ],
- "orientation_deg": {
- "roll": 0.3055486706690755,
- "pitch": -2.1177898361268723,
- "yaw": 0.6091614832951404
- }
- },
- {
- "id": 76,
- "position_mm": [
- -340.36073770675137,
- -86.23836578004335,
- -67.32056820469123
- ],
- "orientation_deg": {
- "roll": -4.926387915431779,
- "pitch": 2.2860961549797616,
- "yaw": -131.70545931002823
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.04275330901145935,
- -80.08077239990234,
- -0.023683607578277588
- ],
- "orientation_deg": {
- "roll": 1.356930847634746,
- "pitch": -1.0223328395484648,
- "yaw": -0.20516192462359795
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_annotated.jpg
deleted file mode 100644
index 0657be2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_overlay.png
deleted file mode 100644
index f20088e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975550136_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975572393.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975572393.jpg
deleted file mode 100644
index c72fba1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975572393.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975586723.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975586723.jpg
deleted file mode 100644
index 31935bb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975586723.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975609404.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975609404.jpg
deleted file mode 100644
index 26ab22d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975609404.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975626213.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975626213.jpg
deleted file mode 100644
index b81969f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975626213.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975638033.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975638033.jpg
deleted file mode 100644
index d8febd3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975638033.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975818850.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975818850.jpg
deleted file mode 100644
index 0616881..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975818850.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975871414.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975871414.jpg
deleted file mode 100644
index 367beaa..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975871414.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.csv
deleted file mode 100644
index db13164..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,395.016,274.958,206.045,-119.984,2.814,119.358
-camera2,359.471,-267.295,863.813,-147.768,-2.538,55.530
-25,-78.352,-188.494,-11.881,-1.886,0.748,102.089
-50,0.003,-0.035,-0.029,-0.393,-0.996,1.561
-71,140.373,-0.216,-0.009,0.798,-1.562,1.944
-76,-459.707,-170.694,-97.767,-2.463,3.181,-112.929
-101,0.061,-80.295,0.055,0.729,-1.048,0.758
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.json
deleted file mode 100644
index c1e1904..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:51:11",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.6323697652065153,
- "rms_refs_px_cam2": 0.6489014675423443,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 395.01563676863606,
- 274.9583596464833,
- 206.04475397752364
- ],
- "orientation_deg": {
- "roll": -119.98431855701496,
- "pitch": 2.8142321507417067,
- "yaw": 119.35809543020302
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 359.47129678000016,
- -267.2947756235871,
- 863.8126650240622
- ],
- "orientation_deg": {
- "roll": -147.76809010492943,
- "pitch": -2.5376982238056183,
- "yaw": 55.52992636638746
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -78.35247802734375,
- -188.4938201904297,
- -11.880936622619629
- ],
- "orientation_deg": {
- "roll": -1.885989573087267,
- "pitch": 0.7475050867613423,
- "yaw": 102.08882951321951
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.002867116592824459,
- -0.034943774342536926,
- -0.02899026684463024
- ],
- "orientation_deg": {
- "roll": -0.39255711964707385,
- "pitch": -0.9959750123875623,
- "yaw": 1.5614975288119828
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.3726043701172,
- -0.21625664830207825,
- -0.00919211097061634
- ],
- "orientation_deg": {
- "roll": 0.7984134246053606,
- "pitch": -1.562078718233375,
- "yaw": 1.9439997964972604
- }
- },
- {
- "id": 76,
- "position_mm": [
- -459.70712987851766,
- -170.69410468938494,
- -97.76705043570367
- ],
- "orientation_deg": {
- "roll": -2.4626449410414946,
- "pitch": 3.1808466940482707,
- "yaw": -112.9286987372601
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.06145252659916878,
- -80.29531860351562,
- 0.055326566100120544
- ],
- "orientation_deg": {
- "roll": 0.7289847565857819,
- "pitch": -1.0475664492494143,
- "yaw": 0.7580539936823688
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_annotated.jpg
deleted file mode 100644
index f39af98..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_overlay.png
deleted file mode 100644
index 47bf35b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975871414_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975946434.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975946434.jpg
deleted file mode 100644
index 39c076b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975946434.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975953050.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975953050.jpg
deleted file mode 100644
index 31bcf7f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975953050.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975975116.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975975116.jpg
deleted file mode 100644
index ca22a0f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975975116.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975977082.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975977082.jpg
deleted file mode 100644
index d750392..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975977082.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.csv
deleted file mode 100644
index c5845d9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,536.560,19.088,206.377,-106.622,2.737,89.850
-camera2,265.697,-417.719,863.004,-147.946,-0.838,27.172
-25,-105.950,-153.015,-13.182,-0.890,-0.149,73.247
-50,-0.040,-0.018,-0.033,-0.879,-1.449,-0.958
-71,140.010,-0.012,-0.131,0.402,-1.339,-0.189
-76,-426.751,36.837,-80.533,-2.174,0.185,-140.318
-101,-0.154,-80.157,-0.149,1.401,-1.417,-0.671
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.json
deleted file mode 100644
index 212c355..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:52:57",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.24427057867694885,
- "rms_refs_px_cam2": 0.27827582635161247,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 536.5599698999005,
- 19.08812610913911,
- 206.37737338942568
- ],
- "orientation_deg": {
- "roll": -106.62238029916044,
- "pitch": 2.73698636164054,
- "yaw": 89.84958179049634
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 265.696908061668,
- -417.71859377662963,
- 863.0037755691174
- ],
- "orientation_deg": {
- "roll": -147.94607328148066,
- "pitch": -0.8376675719210364,
- "yaw": 27.17235921730388
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -105.95045471191406,
- -153.015380859375,
- -13.182010650634766
- ],
- "orientation_deg": {
- "roll": -0.8902363626829162,
- "pitch": -0.14934531032116036,
- "yaw": 73.24720041399077
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.040261898189783096,
- -0.018160216510295868,
- -0.032540079206228256
- ],
- "orientation_deg": {
- "roll": -0.8788475817184255,
- "pitch": -1.4493986331576718,
- "yaw": -0.9580865386218039
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0104522705078,
- -0.011823506094515324,
- -0.13130724430084229
- ],
- "orientation_deg": {
- "roll": 0.40245628021742036,
- "pitch": -1.339452511723197,
- "yaw": -0.18891338256930315
- }
- },
- {
- "id": 76,
- "position_mm": [
- -426.75066384529714,
- 36.836556193528715,
- -80.53298420815302
- ],
- "orientation_deg": {
- "roll": -2.1735863467636007,
- "pitch": 0.18540893221631718,
- "yaw": -140.3178431469828
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.15381859242916107,
- -80.15699005126953,
- -0.14876669645309448
- ],
- "orientation_deg": {
- "roll": 1.401434331782987,
- "pitch": -1.417352777188989,
- "yaw": -0.6705647440036173
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_annotated.jpg
deleted file mode 100644
index fe99833..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_overlay.png
deleted file mode 100644
index 92929d4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975977082_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975992301.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975992301.jpg
deleted file mode 100644
index 81f6a71..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975992301.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.csv
deleted file mode 100644
index 0824910..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,536.132,19.475,207.265,-106.720,2.751,89.881
-camera2,268.384,-412.214,863.776,-148.162,-0.584,27.306
-25,-106.039,-153.152,-13.340,148.790,18.375,132.294
-50,-0.040,-0.018,-0.032,-0.891,-1.547,-0.922
-71,140.010,-0.012,-0.133,0.607,-1.246,0.187
-76,-427.186,35.671,-80.653,-2.018,-0.109,-140.186
-101,-0.155,-80.158,-0.149,1.389,-1.515,-0.634
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.json
deleted file mode 100644
index c827be7..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:53:12",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.246809770178914,
- "rms_refs_px_cam2": 0.27880768692475444,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 536.1318738587609,
- 19.474736168499103,
- 207.26462795091985
- ],
- "orientation_deg": {
- "roll": -106.7203897853097,
- "pitch": 2.7507012808548144,
- "yaw": 89.88105336644603
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 268.3843515238169,
- -412.2144214770623,
- 863.7760290780072
- ],
- "orientation_deg": {
- "roll": -148.1621979629559,
- "pitch": -0.5838459897877972,
- "yaw": 27.306333846282612
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.03853607177734,
- -153.15234375,
- -13.33987045288086
- ],
- "orientation_deg": {
- "roll": 148.7903066118052,
- "pitch": 18.37471840944555,
- "yaw": 132.29369679166456
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.04027938097715378,
- -0.018168868497014046,
- -0.03249623626470566
- ],
- "orientation_deg": {
- "roll": -0.8911896876960713,
- "pitch": -1.5474788147950507,
- "yaw": -0.9216004257713646
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00997924804688,
- -0.011874680407345295,
- -0.13304609060287476
- ],
- "orientation_deg": {
- "roll": 0.6066041335238053,
- "pitch": -1.2456305272454657,
- "yaw": 0.1873499158076866
- }
- },
- {
- "id": 76,
- "position_mm": [
- -427.1856256100377,
- 35.67064810704457,
- -80.65343499481803
- ],
- "orientation_deg": {
- "roll": -2.0175816127635513,
- "pitch": -0.10919350640776791,
- "yaw": -140.1864457356773
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.15468710660934448,
- -80.15770721435547,
- -0.1492648720741272
- ],
- "orientation_deg": {
- "roll": 1.3886002098868537,
- "pitch": -1.5153698095294952,
- "yaw": -0.6340729479437016
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_annotated.jpg
deleted file mode 100644
index 5828cb9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_overlay.png
deleted file mode 100644
index 0fa31a8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765975992301_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976004900.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976004900.jpg
deleted file mode 100644
index a073859..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976004900.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.csv
deleted file mode 100644
index 2d8be69..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,536.611,18.820,206.461,-106.626,2.661,89.850
-camera2,268.384,-412.214,863.776,-148.162,-0.584,27.306
-25,-105.905,-153.052,-13.330,148.800,18.245,132.261
-50,-0.040,-0.018,-0.032,-0.803,-1.452,-0.960
-71,140.010,-0.012,-0.132,1.207,-1.367,-0.158
-76,-427.186,35.671,-80.653,-2.018,-0.109,-140.186
-101,-0.155,-80.158,-0.149,0.999,-1.889,-0.671
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.json
deleted file mode 100644
index 26bf7f2..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:53:25",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.2441583102735186,
- "rms_refs_px_cam2": 0.27880768692475444,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 536.6112531658491,
- 18.81997611440784,
- 206.46065124784747
- ],
- "orientation_deg": {
- "roll": -106.6257561255132,
- "pitch": 2.6610643225108683,
- "yaw": 89.84975075090361
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 268.3843515238169,
- -412.2144214770623,
- 863.7760290780072
- ],
- "orientation_deg": {
- "roll": -148.1621979629559,
- "pitch": -0.5838459897877972,
- "yaw": 27.306333846282612
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -105.90450286865234,
- -153.0524444580078,
- -13.329595565795898
- ],
- "orientation_deg": {
- "roll": 148.80013975261303,
- "pitch": 18.24478302172668,
- "yaw": 132.26101573505235
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.04021511226892471,
- -0.018157418817281723,
- -0.032385922968387604
- ],
- "orientation_deg": {
- "roll": -0.8028611672479457,
- "pitch": -1.4516990130367182,
- "yaw": -0.9596821440114531
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.010009765625,
- -0.011915921233594418,
- -0.13167670369148254
- ],
- "orientation_deg": {
- "roll": 1.20741490711664,
- "pitch": -1.3669496548399305,
- "yaw": -0.1576632529292416
- }
- },
- {
- "id": 76,
- "position_mm": [
- -427.1856256100377,
- 35.67064810704457,
- -80.65343499481803
- ],
- "orientation_deg": {
- "roll": -2.0175816127635513,
- "pitch": -0.10919350640776791,
- "yaw": -140.1864457356773
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.15451067686080933,
- -80.15750122070312,
- -0.14881648123264313
- ],
- "orientation_deg": {
- "roll": 0.9986347088612523,
- "pitch": -1.8894700986904136,
- "yaw": -0.6714546601080824
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_annotated.jpg
deleted file mode 100644
index 1bc1654..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_overlay.png
deleted file mode 100644
index d299efa..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976004900_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976061325.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976061325.jpg
deleted file mode 100644
index 7931420..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976061325.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976068034.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976068034.jpg
deleted file mode 100644
index 7c0de3e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976068034.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.csv
deleted file mode 100644
index e85438d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,536.485,18.839,206.779,-106.660,2.662,89.850
-camera2,270.078,-416.213,861.643,-147.875,-0.599,27.290
-25,-106.002,-152.845,-13.395,-1.656,-0.260,74.773
-50,-0.040,-0.018,-0.033,-0.803,-1.486,-0.958
-71,140.010,-0.012,-0.132,0.125,-0.986,-0.226
-76,-427.338,36.154,-79.282,-2.295,-0.032,-140.199
-101,-0.155,-80.157,-0.149,0.998,-1.924,-0.670
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.json
deleted file mode 100644
index bde66f3..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:54:28",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.24499340599673408,
- "rms_refs_px_cam2": 0.27883589939730147,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 536.4845116439085,
- 18.839229807721747,
- 206.77874626303299
- ],
- "orientation_deg": {
- "roll": -106.65991480567813,
- "pitch": 2.6616683186812895,
- "yaw": 89.84996530221618
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 270.0780494525769,
- -416.21266285199596,
- 861.643153883761
- ],
- "orientation_deg": {
- "roll": -147.87452698748913,
- "pitch": -0.598847887585048,
- "yaw": 27.289970873393735
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.00161743164062,
- -152.84478759765625,
- -13.39499282836914
- ],
- "orientation_deg": {
- "roll": -1.6559759933266671,
- "pitch": -0.2604845235747343,
- "yaw": 74.7725286291638
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.040440429002046585,
- -0.018118301406502724,
- -0.03263949975371361
- ],
- "orientation_deg": {
- "roll": -0.8029835843019023,
- "pitch": -1.4858259759073,
- "yaw": -0.9578783681599231
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0098114013672,
- -0.011588250286877155,
- -0.13215307891368866
- ],
- "orientation_deg": {
- "roll": 0.12497030142085656,
- "pitch": -0.9856255500173754,
- "yaw": -0.2263123773485252
- }
- },
- {
- "id": 76,
- "position_mm": [
- -427.3379087741667,
- 36.154104540318976,
- -79.28241714985451
- ],
- "orientation_deg": {
- "roll": -2.2951599547424033,
- "pitch": -0.03224401177592252,
- "yaw": -140.19949710822343
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.1550489366054535,
- -80.1570816040039,
- -0.14949001371860504
- ],
- "orientation_deg": {
- "roll": 0.9983404931317552,
- "pitch": -1.9235960141180923,
- "yaw": -0.6696442337381485
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_annotated.jpg
deleted file mode 100644
index 212670b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_overlay.png
deleted file mode 100644
index 56737b5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976068034_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976069357.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976069357.jpg
deleted file mode 100644
index 3eff617..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976069357.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976152890.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976152890.jpg
deleted file mode 100644
index e512d93..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976152890.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976162193.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976162193.jpg
deleted file mode 100644
index 0ca9087..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976162193.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976193421.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976193421.jpg
deleted file mode 100644
index 72126ca..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976193421.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.csv
deleted file mode 100644
index 92808da..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.143,-126.269,207.847,-108.968,2.548,85.122
-camera2,270.078,-416.213,861.643,-147.875,-0.599,27.290
-25,-106.269,-152.549,-13.850,-1.588,-0.375,72.807
-50,-0.060,0.071,-0.102,-0.330,-0.119,-0.470
-71,139.927,0.527,-0.717,0.185,-1.331,-0.473
-76,-427.338,36.154,-79.282,-2.295,-0.032,-140.199
-101,-0.131,-80.113,-0.116,2.341,-2.488,-1.552
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.json
deleted file mode 100644
index 6c5af4d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:56:33",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6352803769089361,
- "rms_refs_px_cam2": 0.27883589939730147,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.1434070874974,
- -126.26880184835102,
- 207.84717134607124
- ],
- "orientation_deg": {
- "roll": -108.96805282221369,
- "pitch": 2.5480630503117383,
- "yaw": 85.1220631505837
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 270.0780494525769,
- -416.21266285199596,
- 861.643153883761
- ],
- "orientation_deg": {
- "roll": -147.87452698748913,
- "pitch": -0.598847887585048,
- "yaw": 27.289970873393735
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.2688980102539,
- -152.54945373535156,
- -13.849575996398926
- ],
- "orientation_deg": {
- "roll": -1.5884234657772047,
- "pitch": -0.3745665819559331,
- "yaw": 72.80694636666057
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.0595768541097641,
- 0.07062801718711853,
- -0.10162462294101715
- ],
- "orientation_deg": {
- "roll": -0.32981134855001165,
- "pitch": -0.11945304564632257,
- "yaw": -0.4700373514560054
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9272918701172,
- 0.5273333787918091,
- -0.7168083786964417
- ],
- "orientation_deg": {
- "roll": 0.18548532711350751,
- "pitch": -1.3314171147799696,
- "yaw": -0.4728166142447713
- }
- },
- {
- "id": 76,
- "position_mm": [
- -427.3379087741667,
- 36.154104540318976,
- -79.28241714985451
- ],
- "orientation_deg": {
- "roll": -2.2951599547424033,
- "pitch": -0.03224401177592252,
- "yaw": -140.19949710822343
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13059137761592865,
- -80.11270904541016,
- -0.1164691299200058
- ],
- "orientation_deg": {
- "roll": 2.3411360398909618,
- "pitch": -2.4881518135413483,
- "yaw": -1.55157097952814
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_annotated.jpg
deleted file mode 100644
index 778e330..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_overlay.png
deleted file mode 100644
index 66d6dde..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976193421_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976371308.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976371308.jpg
deleted file mode 100644
index 6289e69..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976371308.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.csv
deleted file mode 100644
index 035d6ea..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.045,-125.440,208.438,-109.022,2.699,85.139
-camera2,266.610,-418.486,860.306,-147.821,-0.848,27.232
-25,-140.292,-125.449,-97.313,2.157,-0.941,71.251
-50,-0.060,0.071,-0.102,-0.757,-0.797,-0.990
-71,139.929,0.526,-0.716,-0.325,-1.431,0.182
-76,-433.531,41.246,-90.204,-2.749,1.515,-141.240
-101,-0.131,-80.112,-0.117,1.895,-2.234,-2.024
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.json
deleted file mode 100644
index 8a79439..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:59:31",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6293581246511548,
- "rms_refs_px_cam2": 0.2788366800146409,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.04506476827214,
- -125.43959602101629,
- 208.43800067135305
- ],
- "orientation_deg": {
- "roll": -109.02184112523827,
- "pitch": 2.698848284001251,
- "yaw": 85.13910561624756
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 266.6103702868428,
- -418.48644100540105,
- 860.3060088273107
- ],
- "orientation_deg": {
- "roll": -147.82070047743667,
- "pitch": -0.8481476074566079,
- "yaw": 27.231785358346894
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -140.29239613974138,
- -125.4489603029717,
- -97.31344559021105
- ],
- "orientation_deg": {
- "roll": 2.1567827057244413,
- "pitch": -0.9412219288956468,
- "yaw": 71.25097767397922
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05961627885699272,
- 0.07056063413619995,
- -0.10187845677137375
- ],
- "orientation_deg": {
- "roll": -0.7565047680938701,
- "pitch": -0.7966906440544459,
- "yaw": -0.9895245611569333
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9290313720703,
- 0.5259146094322205,
- -0.7162161469459534
- ],
- "orientation_deg": {
- "roll": -0.32549591394932065,
- "pitch": -1.4313243306475538,
- "yaw": 0.18202150530705868
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.53071815447515,
- 41.246156509784306,
- -90.20381677655665
- ],
- "orientation_deg": {
- "roll": -2.749193832463117,
- "pitch": 1.5148995579585318,
- "yaw": -141.24013438395986
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13099518418312073,
- -80.1122055053711,
- -0.11726970225572586
- ],
- "orientation_deg": {
- "roll": 1.8945374923981935,
- "pitch": -2.233677355990763,
- "yaw": -2.0235970532528627
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_annotated.jpg
deleted file mode 100644
index 1fbe63c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_overlay.png
deleted file mode 100644
index 5e80109..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976371308_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976374401.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976374401.jpg
deleted file mode 100644
index 4a98c11..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976374401.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.csv
deleted file mode 100644
index 8845f32..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,503.865,-126.022,208.384,-109.022,2.675,85.081
-camera2,266.610,-418.486,860.306,-147.821,-0.848,27.232
-25,-140.292,-125.449,-97.313,2.157,-0.941,71.251
-50,-0.059,0.071,-0.102,-0.733,-0.798,-1.047
-71,139.929,0.528,-0.718,0.055,-1.375,-0.508
-76,-427.113,37.241,-81.727,-2.294,0.223,-140.257
-101,-0.131,-80.112,-0.117,1.918,-2.235,-2.082
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.json
deleted file mode 100644
index bf5558a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 12:59:34",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6351827813311057,
- "rms_refs_px_cam2": 0.2788366800146409,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 503.86535377102757,
- -126.0217865863354,
- 208.3841414025093
- ],
- "orientation_deg": {
- "roll": -109.02178853785225,
- "pitch": 2.6749295016696792,
- "yaw": 85.08147015056912
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 266.6103702868428,
- -418.48644100540105,
- 860.3060088273107
- ],
- "orientation_deg": {
- "roll": -147.82070047743667,
- "pitch": -0.8481476074566079,
- "yaw": 27.231785358346894
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -140.29239613974138,
- -125.4489603029717,
- -97.31344559021105
- ],
- "orientation_deg": {
- "roll": 2.1567827057244413,
- "pitch": -0.9412219288956468,
- "yaw": 71.25097767397922
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05949229747056961,
- 0.07056579738855362,
- -0.10178429633378983
- ],
- "orientation_deg": {
- "roll": -0.7326347017887312,
- "pitch": -0.7982530830682991,
- "yaw": -1.0474947170476723
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9291534423828,
- 0.5281545519828796,
- -0.7181304693222046
- ],
- "orientation_deg": {
- "roll": 0.054832054132430294,
- "pitch": -1.3751877946904352,
- "yaw": -0.5078755386026013
- }
- },
- {
- "id": 76,
- "position_mm": [
- -427.1134884927447,
- 37.24098158486472,
- -81.7265624325304
- ],
- "orientation_deg": {
- "roll": -2.2936996824272757,
- "pitch": 0.22279528833380796,
- "yaw": -140.257000521589
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13077759742736816,
- -80.11217498779297,
- -0.11710629612207413
- ],
- "orientation_deg": {
- "roll": 1.9184477394460142,
- "pitch": -2.2348086743383244,
- "yaw": -2.0821671254702734
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_annotated.jpg
deleted file mode 100644
index fe3b79f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_overlay.png
deleted file mode 100644
index 730fc96..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976374401_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976443318.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976443318.jpg
deleted file mode 100644
index eba17c1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976443318.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.csv
deleted file mode 100644
index e8b5dcb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.045,-125.440,208.438,-109.022,2.699,85.139
-camera2,270.026,-416.227,861.637,-147.885,-0.610,27.284
-25,-146.564,-122.019,-110.046,2.948,-3.094,70.681
-50,-0.060,0.070,-0.102,-0.757,-0.797,-0.990
-71,139.926,0.525,-0.717,-0.325,-1.431,0.182
-76,-433.546,40.124,-87.968,-2.734,1.269,-141.188
-101,-0.131,-80.113,-0.117,1.895,-2.234,-2.024
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.json
deleted file mode 100644
index 619bcea..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:00:43",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6293581246511548,
- "rms_refs_px_cam2": 0.27874697491884515,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.04506476827214,
- -125.43959602101629,
- 208.43800067135305
- ],
- "orientation_deg": {
- "roll": -109.02184112523827,
- "pitch": 2.698848284001251,
- "yaw": 85.13910561624756
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 270.0255615833945,
- -416.2266954181255,
- 861.6372832306015
- ],
- "orientation_deg": {
- "roll": -147.88471453889258,
- "pitch": -0.6104471798882228,
- "yaw": 27.284260513873207
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -146.56390653875772,
- -122.01936830680177,
- -110.04647490641418
- ],
- "orientation_deg": {
- "roll": 2.9478733960652317,
- "pitch": -3.094005209248501,
- "yaw": 70.68106227703957
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05994195118546486,
- 0.07033900171518326,
- -0.10183054953813553
- ],
- "orientation_deg": {
- "roll": -0.7565047680938701,
- "pitch": -0.7966906440544459,
- "yaw": -0.9895245611569333
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.92623901367188,
- 0.5254115462303162,
- -0.7173581123352051
- ],
- "orientation_deg": {
- "roll": -0.32549591394932065,
- "pitch": -1.4313243306475538,
- "yaw": 0.18202150530705868
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.54618946861825,
- 40.12437978999722,
- -87.96843536493381
- ],
- "orientation_deg": {
- "roll": -2.7339747255490496,
- "pitch": 1.2692023064376108,
- "yaw": -141.18810429430917
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.1314823478460312,
- -80.11257934570312,
- -0.11714237183332443
- ],
- "orientation_deg": {
- "roll": 1.8945374923981935,
- "pitch": -2.233677355990763,
- "yaw": -2.0235970532528627
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_annotated.jpg
deleted file mode 100644
index 8f803ab..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_overlay.png
deleted file mode 100644
index 5e80109..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976443318_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976445845.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976445845.jpg
deleted file mode 100644
index 3029e2a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976445845.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.csv
deleted file mode 100644
index ff1f946..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.346,-126.088,208.972,-109.059,2.680,85.086
-camera2,264.187,-418.808,860.711,-147.871,-0.997,27.225
-25,-146.381,-120.960,-112.426,2.692,-3.384,70.637
-50,-0.059,0.071,-0.102,-0.740,-0.835,-1.041
-71,139.932,0.527,-0.717,-0.104,-1.611,-0.287
-76,-433.323,41.407,-91.498,-2.671,1.651,-141.245
-101,-0.130,-80.112,-0.117,1.765,-2.090,-1.611
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.json
deleted file mode 100644
index 73f1b24..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:00:46",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6322619128484837,
- "rms_refs_px_cam2": 0.27891317247078307,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.3455544730708,
- -126.08836092695347,
- 208.97212985670578
- ],
- "orientation_deg": {
- "roll": -109.05897102015024,
- "pitch": 2.6798363329030015,
- "yaw": 85.08587585610263
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 264.18741185869976,
- -418.8076518770778,
- 860.7107237997933
- ],
- "orientation_deg": {
- "roll": -147.87053756474188,
- "pitch": -0.9967164816589582,
- "yaw": 27.225288127020352
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -146.38069430769912,
- -120.96003565972013,
- -112.42579787439388
- ],
- "orientation_deg": {
- "roll": 2.6923433615306704,
- "pitch": -3.3843807163200768,
- "yaw": 70.63672737874518
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05914720147848129,
- 0.07060958445072174,
- -0.10182428359985352
- ],
- "orientation_deg": {
- "roll": -0.7400391639105726,
- "pitch": -0.8349788551011907,
- "yaw": -1.041246608486316
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.931640625,
- 0.5272786021232605,
- -0.7172355651855469
- ],
- "orientation_deg": {
- "roll": -0.10435540248426062,
- "pitch": -1.6112172635894972,
- "yaw": -0.28703867176603404
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.3229711848545,
- 41.40696043873204,
- -91.49844947506591
- ],
- "orientation_deg": {
- "roll": -2.670645648451487,
- "pitch": 1.650511846955434,
- "yaw": -141.24526443651283
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13022156059741974,
- -80.1122055053711,
- -0.11703384667634964
- ],
- "orientation_deg": {
- "roll": 1.764660977086649,
- "pitch": -2.090428969194846,
- "yaw": -1.6105724321001378
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_annotated.jpg
deleted file mode 100644
index 13bd5c5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_overlay.png
deleted file mode 100644
index edb387c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976445845_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976495904.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976495904.jpg
deleted file mode 100644
index d1663e4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976495904.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.csv
deleted file mode 100644
index d479aa3..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.274,-125.421,208.038,-108.984,2.641,85.170
-camera2,263.878,-413.788,865.140,-148.233,-0.840,27.182
-25,-147.036,-121.390,-112.171,6.442,-4.982,69.632
-50,-0.058,0.070,-0.101,-0.696,-0.763,-0.962
-71,139.935,0.519,-0.709,-0.489,-1.163,-0.158
-76,-426.418,36.499,-82.012,-1.893,0.125,-140.312
-101,-0.130,-80.113,-0.116,2.376,-2.677,-1.947
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.json
deleted file mode 100644
index 01177bf..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:01:36",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6245055926073846,
- "rms_refs_px_cam2": 0.278832396834227,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.27431986771165,
- -125.42139468012584,
- 208.03784733754605
- ],
- "orientation_deg": {
- "roll": -108.98423816059554,
- "pitch": 2.6405808944061833,
- "yaw": 85.16958065172916
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 263.87845253528576,
- -413.78822478509414,
- 865.1404125791126
- ],
- "orientation_deg": {
- "roll": -148.23340567731228,
- "pitch": -0.839630205401846,
- "yaw": 27.182039752587464
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -147.03627839622246,
- -121.38963611944858,
- -112.1706024225141
- ],
- "orientation_deg": {
- "roll": 6.441739640710501,
- "pitch": -4.982096863310886,
- "yaw": 69.63247132329899
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.0584297850728035,
- 0.06957601755857468,
- -0.10077428072690964
- ],
- "orientation_deg": {
- "roll": -0.6958293982162046,
- "pitch": -0.7631468591028222,
- "yaw": -0.961626910653193
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9346160888672,
- 0.5189080834388733,
- -0.7089385390281677
- ],
- "orientation_deg": {
- "roll": -0.48924402278605317,
- "pitch": -1.1630519362635283,
- "yaw": -0.15756567408554
- }
- },
- {
- "id": 76,
- "position_mm": [
- -426.41843705188467,
- 36.498682396519875,
- -82.01192295215198
- ],
- "orientation_deg": {
- "roll": -1.8926776139424322,
- "pitch": 0.1251018751932863,
- "yaw": -140.31160702344877
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.12956561148166656,
- -80.11343383789062,
- -0.1155543327331543
- ],
- "orientation_deg": {
- "roll": 2.3760695955706534,
- "pitch": -2.677028882500984,
- "yaw": -1.9465300125030265
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_annotated.jpg
deleted file mode 100644
index 38a02f7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_overlay.png
deleted file mode 100644
index 4523a76..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976495904_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976505906.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976505906.jpg
deleted file mode 100644
index aa4c324..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976505906.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.csv
deleted file mode 100644
index 4973d05..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.093,-126.283,208.024,-109.008,2.479,85.137
-camera2,268.334,-422.390,858.173,-147.536,-0.859,27.216
-25,-105.842,-152.605,-14.023,-1.696,-0.813,71.878
-50,-0.060,0.071,-0.102,-0.536,-0.798,-0.995
-71,139.927,0.530,-0.716,-0.105,-1.437,0.174
-76,-433.706,41.753,-88.786,-3.026,1.582,-141.259
-101,-0.132,-80.112,-0.118,2.445,-2.695,-1.892
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.json
deleted file mode 100644
index b8fae37..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:01:46",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6293576251279118,
- "rms_refs_px_cam2": 0.27886544119492895,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.0934068087054,
- -126.28329367515842,
- 208.02402256836555
- ],
- "orientation_deg": {
- "roll": -109.00776467635264,
- "pitch": 2.478792361767782,
- "yaw": 85.13693715572468
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 268.33380839431544,
- -422.3900515679469,
- 858.1728097516028
- ],
- "orientation_deg": {
- "roll": -147.53642587072537,
- "pitch": -0.8590190959122861,
- "yaw": 27.215904801377054
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -105.84246063232422,
- -152.60511779785156,
- -14.022727966308594
- ],
- "orientation_deg": {
- "roll": -1.695780640310634,
- "pitch": -0.8133892330228661,
- "yaw": 71.87820185031751
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.0600588396191597,
- 0.07106141000986099,
- -0.10189452022314072
- ],
- "orientation_deg": {
- "roll": -0.5359801899167488,
- "pitch": -0.797510975145324,
- "yaw": -0.9953966789912412
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9269561767578,
- 0.5298624038696289,
- -0.7156455516815186
- ],
- "orientation_deg": {
- "roll": -0.1049863696464444,
- "pitch": -1.4366481715488217,
- "yaw": 0.17369894227031907
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.7064606498042,
- 41.75268192381465,
- -88.7862797018979
- ],
- "orientation_deg": {
- "roll": -3.0256330394548976,
- "pitch": 1.5823494941617136,
- "yaw": -141.2592508812439
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.1315535604953766,
- -80.11157989501953,
- -0.11791004240512848
- ],
- "orientation_deg": {
- "roll": 2.4453678950040403,
- "pitch": -2.6951584653517657,
- "yaw": -1.8924720116134814
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_annotated.jpg
deleted file mode 100644
index 9de5577..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_overlay.png
deleted file mode 100644
index 45ea68a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976505906_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976510318.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976510318.jpg
deleted file mode 100644
index c523f25..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976510318.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.csv
deleted file mode 100644
index 607d193..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.078,-126.003,208.163,-109.013,2.552,85.138
-camera2,260.431,-416.119,863.749,-148.165,-1.081,27.129
-25,-143.584,-123.068,-105.850,3.274,-6.022,69.919
-50,-0.058,0.070,-0.101,-0.609,-0.797,-0.993
-71,139.937,0.522,-0.709,-0.178,-1.435,0.176
-76,-432.776,41.597,-92.797,-2.365,1.674,-141.338
-101,-0.129,-80.113,-0.116,1.964,-2.216,-1.956
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.json
deleted file mode 100644
index 9d51127..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:01:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6293577922273652,
- "rms_refs_px_cam2": 0.27892097550272943,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.0778399424594,
- -126.00273760845553,
- 208.16315581839478
- ],
- "orientation_deg": {
- "roll": -109.01250970216289,
- "pitch": 2.552126010706852,
- "yaw": 85.1376339307348
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 260.43120263663246,
- -416.11905379058913,
- 863.7487098088126
- ],
- "orientation_deg": {
- "roll": -148.16547775040436,
- "pitch": -1.0808411388268302,
- "yaw": 27.129188303530235
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -143.58404128053297,
- -123.06792952254081,
- -105.84975515838468
- ],
- "orientation_deg": {
- "roll": 3.2743133514710934,
- "pitch": -6.022051857685719,
- "yaw": 69.91887753713497
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05797994136810303,
- 0.06982465088367462,
- -0.10064714401960373
- ],
- "orientation_deg": {
- "roll": -0.6094736910337024,
- "pitch": -0.7972933232165795,
- "yaw": -0.993468852064801
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.93748474121094,
- 0.5216041803359985,
- -0.70941561460495
- ],
- "orientation_deg": {
- "roll": -0.1784760762614983,
- "pitch": -1.4349306860423678,
- "yaw": 0.17644537614751823
- }
- },
- {
- "id": 76,
- "position_mm": [
- -432.7764352647697,
- 41.59703501512746,
- -92.79699548440735
- ],
- "orientation_deg": {
- "roll": -2.3647606734140236,
- "pitch": 1.6739890438703076,
- "yaw": -141.3378382456698
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.12891621887683868,
- -80.11300659179688,
- -0.11559303104877472
- ],
- "orientation_deg": {
- "roll": 1.9636589833194162,
- "pitch": -2.216295898160902,
- "yaw": -1.9564332368842674
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_annotated.jpg
deleted file mode 100644
index a5decc8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_overlay.png
deleted file mode 100644
index c51d507..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976510318_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976511638.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976511638.jpg
deleted file mode 100644
index 34d4cf7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976511638.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.csv
deleted file mode 100644
index 5d5b787..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.011,-125.157,208.755,-109.055,2.708,85.166
-camera2,273.476,-413.962,862.924,-147.947,-0.371,27.337
-25,-106.542,-152.744,-13.748,-1.794,-0.601,71.910
-50,-0.060,0.070,-0.102,-0.768,-0.829,-0.961
-71,139.923,0.525,-0.719,0.280,-1.966,-0.218
-76,-433.557,39.017,-85.725,-2.721,1.022,-141.136
-101,-0.132,-80.113,-0.117,1.884,-2.266,-1.995
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.json
deleted file mode 100644
index 304b2fb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:01:51",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6284211334949419,
- "rms_refs_px_cam2": 0.27866067351114204,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.0113743473861,
- -125.15683693861426,
- 208.7551517328191
- ],
- "orientation_deg": {
- "roll": -109.05487493690511,
- "pitch": 2.707669529585417,
- "yaw": 85.16552378291799
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 273.47559086571636,
- -413.9621299990215,
- 862.9242149620329
- ],
- "orientation_deg": {
- "roll": -147.9468491115545,
- "pitch": -0.3712618496328017,
- "yaw": 27.33677639445699
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.54240417480469,
- -152.74412536621094,
- -13.74763011932373
- ],
- "orientation_deg": {
- "roll": -1.7940821621841627,
- "pitch": -0.6014036602220213,
- "yaw": 71.9101336252395
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.06037868559360504,
- 0.0701504647731781,
- -0.10190878808498383
- ],
- "orientation_deg": {
- "roll": -0.7675353317647795,
- "pitch": -0.8290166541894428,
- "yaw": -0.9613919269264777
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9230499267578,
- 0.5247005820274353,
- -0.7192102670669556
- ],
- "orientation_deg": {
- "roll": 0.2799212197935416,
- "pitch": -1.9663937843565766,
- "yaw": -0.21822701810262546
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.5569901085664,
- 39.01660298096121,
- -85.72520944091289
- ],
- "orientation_deg": {
- "roll": -2.7208914298636153,
- "pitch": 1.0224252117493264,
- "yaw": -141.13585909118484
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13216792047023773,
- -80.11292266845703,
- -0.11724794656038284
- ],
- "orientation_deg": {
- "roll": 1.8840850921846892,
- "pitch": -2.266197126799241,
- "yaw": -1.99521055619918
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_annotated.jpg
deleted file mode 100644
index 1352406..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_overlay.png
deleted file mode 100644
index 284810e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976511638_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976533542.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976533542.jpg
deleted file mode 100644
index f76c613..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976533542.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.csv
deleted file mode 100644
index 1410ddd..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,503.988,-126.013,208.094,-108.989,2.678,85.084
-camera2,280.549,-414.508,861.028,-147.697,-0.050,27.490
-25,-106.900,-152.633,-13.859,-1.504,-0.469,72.140
-50,-0.061,0.070,-0.102,-0.734,-0.765,-1.047
-71,139.916,0.529,-0.723,0.393,-1.715,-0.488
-76,-434.311,37.774,-82.071,-3.030,0.757,-140.986
-101,-0.133,-80.113,-0.118,1.917,-2.202,-2.081
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.json
deleted file mode 100644
index e3761d6..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:02:13",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6332172308004111,
- "rms_refs_px_cam2": 0.2786520819950864,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 503.9883219285542,
- -126.01305611443264,
- 208.09392140616941
- ],
- "orientation_deg": {
- "roll": -108.98878546582125,
- "pitch": 2.6781244733335727,
- "yaw": 85.0838760297254
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 280.54886904363997,
- -414.5083584371921,
- 861.0282102053575
- ],
- "orientation_deg": {
- "roll": -147.69705090343567,
- "pitch": -0.049874072849571516,
- "yaw": 27.490128789338254
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.89995574951172,
- -152.63323974609375,
- -13.859172821044922
- ],
- "orientation_deg": {
- "roll": -1.5037226825597365,
- "pitch": -0.4690935157225362,
- "yaw": 72.14040717369096
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.06123243644833565,
- 0.07045385986566544,
- -0.10214414447546005
- ],
- "orientation_deg": {
- "roll": -0.7335972780465582,
- "pitch": -0.7651455449860776,
- "yaw": -1.0466168574175132
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91624450683594,
- 0.5293574333190918,
- -0.7232520580291748
- ],
- "orientation_deg": {
- "roll": 0.3928871432917858,
- "pitch": -1.7147211038645238,
- "yaw": -0.4875704163213823
- }
- },
- {
- "id": 76,
- "position_mm": [
- -434.310973157048,
- 37.77409686495808,
- -82.07121199042233
- ],
- "orientation_deg": {
- "roll": -3.0299024639926673,
- "pitch": 0.7574278024347812,
- "yaw": -140.9863880953474
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13290373980998993,
- -80.11270141601562,
- -0.11753848195075989
- ],
- "orientation_deg": {
- "roll": 1.9168864153543101,
- "pitch": -2.2017239138320623,
- "yaw": -2.0812419648747005
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_annotated.jpg
deleted file mode 100644
index 336fa08..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_overlay.png
deleted file mode 100644
index 47b2bd8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976533542_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976536997.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976536997.jpg
deleted file mode 100644
index e7f1a64..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976536997.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.csv
deleted file mode 100644
index ee19e76..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.062,-125.722,208.301,-109.017,2.625,85.138
-camera2,271.043,-414.254,863.388,-148.000,-0.519,27.331
-25,-146.258,-122.815,-108.825,2.927,-2.949,70.727
-50,-0.060,0.070,-0.101,-0.683,-0.797,-0.992
-71,139.927,0.524,-0.716,-0.252,-1.433,0.179
-76,-433.357,39.158,-87.012,-2.640,1.157,-141.141
-101,-0.131,-80.113,-0.117,2.390,-2.711,-1.977
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.json
deleted file mode 100644
index 12e936c..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:02:17",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6293579558138553,
- "rms_refs_px_cam2": 0.2787365015806279,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.06172890850587,
- -125.72150619863379,
- 208.3011536231886
- ],
- "orientation_deg": {
- "roll": -109.01720217435452,
- "pitch": 2.6254780277150043,
- "yaw": 85.13835656757807
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 271.04295022439686,
- -414.25352630880263,
- 863.3875996437604
- ],
- "orientation_deg": {
- "roll": -147.99953462931296,
- "pitch": -0.5192878339749551,
- "yaw": 27.33050908689374
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -146.25763720348112,
- -122.81457523005956,
- -108.8251443737368
- ],
- "orientation_deg": {
- "roll": 2.927049412752695,
- "pitch": -2.9488847003261287,
- "yaw": 70.72727650692146
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05969664826989174,
- 0.06999973207712173,
- -0.10139262676239014
- ],
- "orientation_deg": {
- "roll": -0.6829819495112311,
- "pitch": -0.7970202003488717,
- "yaw": -0.9915115784903589
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9265899658203,
- 0.524118185043335,
- -0.7160006165504456
- ],
- "orientation_deg": {
- "roll": -0.25197933078780654,
- "pitch": -1.4331563911968832,
- "yaw": 0.1792194664992506
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.35668011734464,
- 39.15824148432595,
- -87.0120337276309
- ],
- "orientation_deg": {
- "roll": -2.6396732473236817,
- "pitch": 1.1569364831977949,
- "yaw": -141.14099128341329
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.1311531513929367,
- -80.11304473876953,
- -0.11656071990728378
- ],
- "orientation_deg": {
- "roll": 2.389511191091972,
- "pitch": -2.7106763519928343,
- "yaw": -1.9768715126950103
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_annotated.jpg
deleted file mode 100644
index 1a52ca3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_overlay.png
deleted file mode 100644
index 2d9144c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976536997_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976569915.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976569915.jpg
deleted file mode 100644
index 6d9b763..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976569915.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.csv
deleted file mode 100644
index 3357811..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,504.347,-124.848,208.201,-108.989,2.726,85.199
-camera2,271.710,-420.176,859.501,-147.599,-0.625,27.268
-25,-146.814,-121.470,-109.976,3.146,-3.300,70.657
-50,-0.061,0.071,-0.103,-0.781,-0.762,-0.931
-71,139.923,0.526,-0.716,0.068,-0.982,0.236
-76,-433.712,40.636,-86.571,-3.011,1.340,-141.208
-101,-0.133,-80.112,-0.118,1.869,-2.199,-1.964
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.json
deleted file mode 100644
index 73a76b5..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:02:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6216126871304202,
- "rms_refs_px_cam2": 0.27877574550922213,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 504.3467177651968,
- -124.84839969748379,
- 208.20052635157322
- ],
- "orientation_deg": {
- "roll": -108.98881539719824,
- "pitch": 2.7258915071953442,
- "yaw": 85.19916483251545
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 271.7103984732562,
- -420.1762310785873,
- 859.5007485322551
- ],
- "orientation_deg": {
- "roll": -147.59946157702038,
- "pitch": -0.624503409956644,
- "yaw": 27.268090703738505
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -146.81402334074255,
- -121.4697456929491,
- -109.97633012271702
- ],
- "orientation_deg": {
- "roll": 3.1457948756796936,
- "pitch": -3.3001758973110524,
- "yaw": 70.65692830937577
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.06081688031554222,
- 0.07085692137479782,
- -0.1025189533829689
- ],
- "orientation_deg": {
- "roll": -0.7812616513834034,
- "pitch": -0.7619515845530636,
- "yaw": -0.9306914661403207
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.92327880859375,
- 0.5257957577705383,
- -0.7162370681762695
- ],
- "orientation_deg": {
- "roll": 0.06801858674436598,
- "pitch": -0.9818994185879205,
- "yaw": 0.23606813123376177
- }
- },
- {
- "id": 76,
- "position_mm": [
- -433.71232450894894,
- 40.636401855403456,
- -86.57061914576603
- ],
- "orientation_deg": {
- "roll": -3.0107221692955366,
- "pitch": 1.3399691183257774,
- "yaw": -141.20750081197778
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.13263513147830963,
- -80.11198425292969,
- -0.11833488196134567
- ],
- "orientation_deg": {
- "roll": 1.8691411868116445,
- "pitch": -2.199390557025395,
- "yaw": -1.964118452243027
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_annotated.jpg
deleted file mode 100644
index 85449fe..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_overlay.png
deleted file mode 100644
index 6121c5b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976569915_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976630411.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976630411.jpg
deleted file mode 100644
index b517184..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976630411.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.csv
deleted file mode 100644
index 95b52a6..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,503.955,-125.731,208.411,-109.022,2.687,85.110
-camera2,262.893,-415.781,863.358,-148.116,-0.930,27.136
-25,-106.055,-152.575,-13.570,-1.538,-0.468,72.169
-50,-0.059,0.070,-0.101,-0.745,-0.797,-1.019
-71,139.934,0.523,-0.714,-0.108,-1.574,-0.264
-76,-432.990,41.430,-91.485,-2.443,1.536,-141.333
-101,-0.130,-80.113,-0.116,1.906,-2.234,-2.053
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.json
deleted file mode 100644
index 1fc70bc..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:03:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.632261773350004,
- "rms_refs_px_cam2": 0.27884448522024036,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 503.9553274562514,
- -125.73077129018331,
- 208.41117557782678
- ],
- "orientation_deg": {
- "roll": -109.02182298272318,
- "pitch": 2.686887498233234,
- "yaw": 85.11028451099297
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 262.89332824060756,
- -415.78070335239164,
- 863.3583110986948
- ],
- "orientation_deg": {
- "roll": -148.11604663154188,
- "pitch": -0.9299671848346116,
- "yaw": 27.135841989364135
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.05467987060547,
- -152.57540893554688,
- -13.570466041564941
- ],
- "orientation_deg": {
- "roll": -1.5378494336152493,
- "pitch": -0.4679445530157586,
- "yaw": 72.16864091716799
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.05859305337071419,
- 0.0699530839920044,
- -0.10119388997554779
- ],
- "orientation_deg": {
- "roll": -0.7445688954340823,
- "pitch": -0.7974800989114033,
- "yaw": -1.018512562475088
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9341278076172,
- 0.5233048796653748,
- -0.7138124704360962
- ],
- "orientation_deg": {
- "roll": -0.1083922281096603,
- "pitch": -1.5736621355347988,
- "yaw": -0.26425697130920717
- }
- },
- {
- "id": 76,
- "position_mm": [
- -432.9899622166887,
- 41.430193108568936,
- -91.4846999408362
- ],
- "orientation_deg": {
- "roll": -2.4433800510271833,
- "pitch": 1.53604167231849,
- "yaw": -141.33251926842
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.12975601851940155,
- -80.11288452148438,
- -0.11611907184123993
- ],
- "orientation_deg": {
- "roll": 1.906493601978138,
- "pitch": -2.234251265268926,
- "yaw": -2.052885061880487
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_annotated.jpg
deleted file mode 100644
index 124d424..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_overlay.png
deleted file mode 100644
index ec18356..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976630411_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976649818.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976649818.jpg
deleted file mode 100644
index b611045..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976649818.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.csv
deleted file mode 100644
index 96b5c36..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,503.922,-125.448,208.728,-109.055,2.696,85.137
-camera2,262.893,-415.781,863.358,-148.116,-0.930,27.136
-25,-106.131,-152.533,-13.606,-1.572,-0.467,72.197
-50,-0.059,0.070,-0.101,-0.756,-0.830,-0.990
-71,139.934,0.523,-0.715,0.083,-1.839,0.162
-76,-432.990,41.430,-91.485,-2.443,1.536,-141.333
-101,-0.130,-80.113,-0.116,1.896,-2.267,-2.025
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.json
deleted file mode 100644
index 826de85..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:04:10",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.6313243928150438,
- "rms_refs_px_cam2": 0.27884448476230234,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 503.92187994434846,
- -125.44822895222019,
- 208.72843167100618
- ],
- "orientation_deg": {
- "roll": -109.0548662748313,
- "pitch": 2.6956873080866326,
- "yaw": 85.13669720523785
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 262.89332830346603,
- -415.7807033077657,
- 863.3583111024947
- ],
- "orientation_deg": {
- "roll": -148.11604663223085,
- "pitch": -0.9299671806877696,
- "yaw": 27.135841991108922
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -106.1310806274414,
- -152.53330993652344,
- -13.606334686279297
- ],
- "orientation_deg": {
- "roll": -1.5719897714946716,
- "pitch": -0.46675988979777105,
- "yaw": 72.19688361857689
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.058696914464235306,
- 0.06998306512832642,
- -0.10131727159023285
- ],
- "orientation_deg": {
- "roll": -0.7555786377867904,
- "pitch": -0.8298173617693388,
- "yaw": -0.9903919926466094
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.93373107910156,
- 0.5230897665023804,
- -0.7145028114318848
- ],
- "orientation_deg": {
- "roll": 0.0830396884628772,
- "pitch": -1.8392009859383351,
- "yaw": 0.16166387639387395
- }
- },
- {
- "id": 76,
- "position_mm": [
- -432.9899622239293,
- 41.43019309040302,
- -91.4846999160156
- ],
- "orientation_deg": {
- "roll": -2.443380051181272,
- "pitch": 1.5360416681176448,
- "yaw": -141.3325192666905
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.12994331121444702,
- -80.11286926269531,
- -0.11634586751461029
- ],
- "orientation_deg": {
- "roll": 1.896062405523817,
- "pitch": -2.266781965881273,
- "yaw": -2.0245112136453645
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_annotated.jpg
deleted file mode 100644
index 278ca26..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_overlay.png
deleted file mode 100644
index a9018e7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976649818_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976679114.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976679114.jpg
deleted file mode 100644
index 6f362f6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976679114.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976686196.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976686196.jpg
deleted file mode 100644
index 87b2b4a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976686196.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.csv
deleted file mode 100644
index 97d2155..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,666.482,181.711,214.938,-109.414,2.531,113.021
-camera2,556.096,-198.618,894.975,-149.783,-2.111,54.390
-25,176.405,-131.289,-15.920,-1.973,-0.595,69.607
-50,-0.591,-0.235,-0.261,0.445,-1.264,1.277
-71,139.891,-0.116,-0.103,-0.198,-1.428,0.546
-76,-250.151,-81.718,-90.003,-79.497,21.921,-89.986
-101,-1.415,-80.936,-0.662,1.056,-0.959,0.546
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.json
deleted file mode 100644
index 633c6cf..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:04:46",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.0993891231747583,
- "rms_refs_px_cam2": 1.361054038151648,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 666.4815661094116,
- 181.71116771645234,
- 214.93828431909753
- ],
- "orientation_deg": {
- "roll": -109.41391326061476,
- "pitch": 2.5308411146160994,
- "yaw": 113.0213137521841
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 556.0961354808068,
- -198.61767177335702,
- 894.9751222958868
- ],
- "orientation_deg": {
- "roll": -149.78326937626036,
- "pitch": -2.1108914774322316,
- "yaw": 54.38960505742331
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 176.40476989746094,
- -131.28948974609375,
- -15.920320510864258
- ],
- "orientation_deg": {
- "roll": -1.97335779553217,
- "pitch": -0.5948595663864729,
- "yaw": 69.60731785479211
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.5905055999755859,
- -0.235235795378685,
- -0.26055318117141724
- ],
- "orientation_deg": {
- "roll": 0.4454764160921107,
- "pitch": -1.2635575663968608,
- "yaw": 1.277202953673086
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.89149475097656,
- -0.11590918898582458,
- -0.10313072055578232
- ],
- "orientation_deg": {
- "roll": -0.19798653592932233,
- "pitch": -1.4282857239320974,
- "yaw": 0.5456653879304562
- }
- },
- {
- "id": 76,
- "position_mm": [
- -250.1508858241932,
- -81.71834726866415,
- -90.00309065047895
- ],
- "orientation_deg": {
- "roll": -79.4967644284469,
- "pitch": 21.920882237477716,
- "yaw": -89.98558293825445
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.4146373271942139,
- -80.93620300292969,
- -0.6616266369819641
- ],
- "orientation_deg": {
- "roll": 1.055935135700186,
- "pitch": -0.9593757495981492,
- "yaw": 0.5461186707866093
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_annotated.jpg
deleted file mode 100644
index b980dbe..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_overlay.png
deleted file mode 100644
index f31001a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976686196_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976698396.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976698396.jpg
deleted file mode 100644
index a3df8d2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976698396.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.csv
deleted file mode 100644
index adfca8c..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,398.621,-418.715,879.797,-149.071,-0.346,22.334
-25,85.631,-165.209,-15.569,0.046,-0.067,32.565
-50,-0.881,0.026,-0.355,-0.435,-0.734,-0.219
-71,139.917,0.032,-0.084,-0.854,-1.688,0.420
-76,-255.171,107.894,-84.112,-81.217,20.892,-122.654
-101,-1.554,-80.259,-0.666,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.json
deleted file mode 100644
index 4af6ee3..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:04:58",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1047218084009319,
- "rms_refs_px_cam2": 1.4996788508428351,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.46706493398216,
- 205.9099946362136
- ],
- "orientation_deg": {
- "roll": -108.87869927249052,
- "pitch": 2.5018378536570323,
- "yaw": 80.26418393527955
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 398.62070698691923,
- -418.71540144962506,
- 879.796668182724
- ],
- "orientation_deg": {
- "roll": -149.071078025882,
- "pitch": -0.34567269297701614,
- "yaw": 22.33394637896775
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.63091278076172,
- -165.2091827392578,
- -15.56919002532959
- ],
- "orientation_deg": {
- "roll": 0.04614386037654547,
- "pitch": -0.06744280728791145,
- "yaw": 32.56489296449069
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8813304901123047,
- 0.026284625753760338,
- -0.35532423853874207
- ],
- "orientation_deg": {
- "roll": -0.4352064147948927,
- "pitch": -0.7339874186860661,
- "yaw": -0.2187468052744248
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91677856445312,
- 0.03194146975874901,
- -0.08386741578578949
- ],
- "orientation_deg": {
- "roll": -0.8540009699523268,
- "pitch": -1.687690658466286,
- "yaw": 0.41964522999376647
- }
- },
- {
- "id": 76,
- "position_mm": [
- -255.17104771846866,
- 107.8940495967653,
- -84.11236225517172
- ],
- "orientation_deg": {
- "roll": -81.21691653905542,
- "pitch": 20.892140936369337,
- "yaw": -122.65386488988948
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5537110567092896,
- -80.25931549072266,
- -0.6656734347343445
- ],
- "orientation_deg": {
- "roll": 0.8918130679867812,
- "pitch": -0.5991361653788677,
- "yaw": -1.3253533967175322
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_annotated.jpg
deleted file mode 100644
index 2309cc7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_overlay.png
deleted file mode 100644
index b72c0b6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765976698396_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765977934726.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765977934726.jpg
deleted file mode 100644
index 2113572..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765977934726.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.csv
deleted file mode 100644
index 2d0613b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.953,-161.991,206.488,-108.921,2.533,80.383
-camera2,389.333,-428.117,880.200,-148.864,-0.932,21.985
-25,85.059,-165.541,-15.963,-0.005,-0.078,32.686
-50,-0.879,0.029,-0.357,-0.473,-0.770,-0.098
-71,139.917,0.033,-0.084,0.143,-1.745,-0.398
-76,-273.097,126.270,-114.544,-77.036,28.184,-125.289
-101,-1.541,-80.252,-0.665,0.855,-0.636,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.json
deleted file mode 100644
index b3cac14..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:25:35",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10363352848252134,
- "rms_refs_px_cam2": 1.4912826388568254,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.9526950599894,
- -161.99081939560324,
- 206.48768461778934
- ],
- "orientation_deg": {
- "roll": -108.9208311627796,
- "pitch": 2.5330904927971045,
- "yaw": 80.38299323886413
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 389.3332290835119,
- -428.1171474492448,
- 880.2001321224058
- ],
- "orientation_deg": {
- "roll": -148.86395256133093,
- "pitch": -0.9321056859637223,
- "yaw": 21.985352767667194
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.05927276611328,
- -165.54110717773438,
- -15.962555885314941
- ],
- "orientation_deg": {
- "roll": -0.005299820632561677,
- "pitch": -0.07753987647758409,
- "yaw": 32.68561795245102
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8791269659996033,
- 0.029027190059423447,
- -0.3568425476551056
- ],
- "orientation_deg": {
- "roll": -0.47299232664358193,
- "pitch": -0.7703311916667298,
- "yaw": -0.09759087823246036
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9174041748047,
- 0.03268476575613022,
- -0.083976149559021
- ],
- "orientation_deg": {
- "roll": 0.14307512950326273,
- "pitch": -1.745117555374437,
- "yaw": -0.3980525510268973
- }
- },
- {
- "id": 76,
- "position_mm": [
- -273.0970739641448,
- 126.26991428975887,
- -114.54418689056212
- ],
- "orientation_deg": {
- "roll": -77.03649701468808,
- "pitch": 28.184287332783338,
- "yaw": -125.28892406117707
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5409455299377441,
- -80.25204467773438,
- -0.6652438044548035
- ],
- "orientation_deg": {
- "roll": 0.8547372329466377,
- "pitch": -0.6362028772592411,
- "yaw": -1.2042938125419977
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_annotated.jpg
deleted file mode 100644
index 28c123f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_overlay.png
deleted file mode 100644
index 464a713..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765977934726_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978354760.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978354760.jpg
deleted file mode 100644
index 385fdf2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978354760.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.csv
deleted file mode 100644
index 3a4763c..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,392.983,-426.458,880.180,-148.877,-0.693,22.043
-25,85.080,-165.810,-15.859,-1.622,0.341,34.321
-50,-0.877,0.029,-0.355,-0.473,-0.727,-0.098
-71,139.917,0.033,-0.084,-0.416,-1.205,-0.342
-76,-268.204,121.014,-104.362,-1.993,1.126,-101.258
-101,-1.540,-80.252,-0.662,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.json
deleted file mode 100644
index ee6b32f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:32:35",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058826038,
- "rms_refs_px_cam2": 1.4852899199298324,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752434,
- 205.98860705019186
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.5403854998735294,
- "yaw": 80.384970419323
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 392.98349454623514,
- -426.45849139079894,
- 880.1798850727823
- ],
- "orientation_deg": {
- "roll": -148.87664066407604,
- "pitch": -0.6930399020546993,
- "yaw": 22.043057337569802
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.0802001953125,
- -165.80984497070312,
- -15.85876750946045
- ],
- "orientation_deg": {
- "roll": -1.6220526544821876,
- "pitch": 0.3405555368169938,
- "yaw": 34.32062830280033
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8769957423210144,
- 0.028586216270923615,
- -0.35472431778907776
- ],
- "orientation_deg": {
- "roll": -0.4730902775008555,
- "pitch": -0.7268008659703239,
- "yaw": -0.09751368982894933
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9174346923828,
- 0.03257105499505997,
- -0.08356358855962753
- ],
- "orientation_deg": {
- "roll": -0.41609041234852523,
- "pitch": -1.2046252614391746,
- "yaw": -0.34177017054524156
- }
- },
- {
- "id": 76,
- "position_mm": [
- -268.20418540662547,
- 121.01368373108845,
- -104.36187382568518
- ],
- "orientation_deg": {
- "roll": -1.9930136063778485,
- "pitch": 1.126030111945969,
- "yaw": -101.25848096688556
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5395259857177734,
- -80.25227355957031,
- -0.6622897386550903
- ],
- "orientation_deg": {
- "roll": 0.8537984955837707,
- "pitch": -0.5926825633642847,
- "yaw": -1.204207836951622
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_annotated.jpg
deleted file mode 100644
index 8729b0f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_overlay.png
deleted file mode 100644
index fc31907..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978354760_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978364728.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978364728.jpg
deleted file mode 100644
index 26acb20..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978364728.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.csv
deleted file mode 100644
index 326380e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,394.503,-422.168,881.087,-149.085,-0.526,22.084
-25,85.108,-165.520,-15.939,-0.229,-0.175,32.838
-50,-0.879,0.028,-0.355,-0.473,-0.727,-0.098
-71,139.917,0.032,-0.083,-0.416,-1.205,-0.342
-76,-273.943,124.917,-113.676,-77.075,27.723,-125.212
-101,-1.543,-80.255,-0.662,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.json
deleted file mode 100644
index 2a25e4c..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:32:45",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4886137378685818,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 394.50315874149305,
- -422.1679009187397,
- 881.0871258250953
- ],
- "orientation_deg": {
- "roll": -149.08450891422558,
- "pitch": -0.526036544386297,
- "yaw": 22.083559659867177
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.1084976196289,
- -165.5200653076172,
- -15.939337730407715
- ],
- "orientation_deg": {
- "roll": -0.2286088518520129,
- "pitch": -0.17518163211099821,
- "yaw": 32.837999850067234
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8794412016868591,
- 0.027748126536607742,
- -0.3545858860015869
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91734313964844,
- 0.03223132714629173,
- -0.08325827866792679
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -273.94280351626605,
- 124.91694386877994,
- -113.67583537375414
- ],
- "orientation_deg": {
- "roll": -77.07488817860515,
- "pitch": 27.723441189164376,
- "yaw": -125.21152003093003
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5434532165527344,
- -80.25487518310547,
- -0.6616359353065491
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_annotated.jpg
deleted file mode 100644
index 1c2dafd..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_overlay.png
deleted file mode 100644
index 69c772a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978364728_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978420185.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978420185.jpg
deleted file mode 100644
index 3eafcb7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978420185.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.csv
deleted file mode 100644
index 3cae79a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,399.930,-427.541,875.567,-148.565,-0.419,22.248
-25,85.812,-165.698,-15.592,-0.068,-0.436,32.063
-50,-0.882,0.031,-0.357,-0.435,-0.734,-0.219
-71,139.916,0.034,-0.084,-0.854,-1.688,0.420
-76,-275.245,125.191,-111.500,-77.635,27.913,-125.305
-101,-1.554,-80.249,-0.669,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.json
deleted file mode 100644
index 0912e7f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:33:40",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10472180840108743,
- "rms_refs_px_cam2": 1.4897811522451436,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.4670649339818,
- 205.9099946362141
- ],
- "orientation_deg": {
- "roll": -108.87869927249056,
- "pitch": 2.5018378536570647,
- "yaw": 80.26418393527958
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 399.9299778767819,
- -427.541471678453,
- 875.5665112187837
- ],
- "orientation_deg": {
- "roll": -148.56472235386858,
- "pitch": -0.41866790947472887,
- "yaw": 22.24786893119825
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.81160736083984,
- -165.6979522705078,
- -15.591692924499512
- ],
- "orientation_deg": {
- "roll": -0.06837624625466492,
- "pitch": -0.43622642542972256,
- "yaw": 32.063317092577606
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8819465041160583,
- 0.03136468306183815,
- -0.35683512687683105
- ],
- "orientation_deg": {
- "roll": -0.4352064147949305,
- "pitch": -0.7339874186860947,
- "yaw": -0.21874680527440576
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9163360595703,
- 0.03365320712327957,
- -0.08447983860969543
- ],
- "orientation_deg": {
- "roll": -0.8540009699523651,
- "pitch": -1.6876906584663214,
- "yaw": 0.4196452299937873
- }
- },
- {
- "id": 76,
- "position_mm": [
- -275.2453447107583,
- 125.19095362163618,
- -111.50001674105015
- ],
- "orientation_deg": {
- "roll": -77.6354799205662,
- "pitch": 27.912821417594703,
- "yaw": -125.30453700394301
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5538606643676758,
- -80.24870300292969,
- -0.6686796545982361
- ],
- "orientation_deg": {
- "roll": 0.8918130679867433,
- "pitch": -0.5991361653788996,
- "yaw": -1.3253533967175124
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_annotated.jpg
deleted file mode 100644
index 80cad3f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_overlay.png
deleted file mode 100644
index e337ddc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978420185_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978422903.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978422903.jpg
deleted file mode 100644
index df008e4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978422903.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.csv
deleted file mode 100644
index 1c59962..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,400.029,-424.197,877.739,-148.796,-0.298,22.187
-25,85.491,-165.556,-15.761,0.046,-0.067,32.565
-50,-0.882,0.031,-0.356,-0.435,-0.734,-0.219
-71,139.917,0.033,-0.084,-0.854,-1.688,0.420
-76,-274.970,124.783,-111.539,-77.488,27.687,-125.298
-101,-1.552,-80.250,-0.666,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.json
deleted file mode 100644
index 847550d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:33:43",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10472180840108743,
- "rms_refs_px_cam2": 1.4878937891673878,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.4670649339818,
- 205.9099946362141
- ],
- "orientation_deg": {
- "roll": -108.87869927249056,
- "pitch": 2.5018378536570647,
- "yaw": 80.26418393527958
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 400.02932028411874,
- -424.19729752883944,
- 877.7390908263537
- ],
- "orientation_deg": {
- "roll": -148.79611737981867,
- "pitch": -0.2978436661361828,
- "yaw": 22.18731859916674
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.49146270751953,
- -165.55581665039062,
- -15.76115894317627
- ],
- "orientation_deg": {
- "roll": 0.04614386037649777,
- "pitch": -0.06744280728791623,
- "yaw": 32.564892964490724
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8819009065628052,
- 0.030530910938978195,
- -0.3558298647403717
- ],
- "orientation_deg": {
- "roll": -0.4352064147949305,
- "pitch": -0.7339874186860947,
- "yaw": -0.21874680527440576
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9165496826172,
- 0.03337714448571205,
- -0.08404399454593658
- ],
- "orientation_deg": {
- "roll": -0.8540009699523651,
- "pitch": -1.6876906584663214,
- "yaw": 0.4196452299937873
- }
- },
- {
- "id": 76,
- "position_mm": [
- -274.970060165044,
- 124.78318550988638,
- -111.53915439275708
- ],
- "orientation_deg": {
- "roll": -77.48816970973628,
- "pitch": 27.686635929646595,
- "yaw": -125.29783112227334
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5516290664672852,
- -80.2503433227539,
- -0.6656925678253174
- ],
- "orientation_deg": {
- "roll": 0.8918130679867433,
- "pitch": -0.5991361653788996,
- "yaw": -1.3253533967175124
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_annotated.jpg
deleted file mode 100644
index 1e8f105..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_overlay.png
deleted file mode 100644
index b72c0b6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978422903_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978427264.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978427264.jpg
deleted file mode 100644
index d1ae1c3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978427264.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.csv
deleted file mode 100644
index 3075d72..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.290,-161.497,206.014,-108.878,2.553,80.425
-camera2,389.333,-428.117,880.200,-148.864,-0.932,21.985
-25,85.285,-165.663,-15.860,-1.261,0.237,33.528
-50,-0.879,0.028,-0.356,-0.486,-0.724,-0.057
-71,139.917,0.032,-0.084,-0.592,-1.368,0.005
-76,-273.097,126.270,-114.544,-77.036,28.184,-125.289
-101,-1.541,-80.253,-0.664,0.841,-0.590,-1.164
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.json
deleted file mode 100644
index dcfcb7b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:33:47",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10314231132724402,
- "rms_refs_px_cam2": 1.4912826388390292,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.2896277448373,
- -161.49680135448872,
- 206.0141381748754
- ],
- "orientation_deg": {
- "roll": -108.87756174705868,
- "pitch": 2.5532384478781482,
- "yaw": 80.42524903597868
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 389.3332290883851,
- -428.1171474456579,
- 880.2001321214082
- ],
- "orientation_deg": {
- "roll": -148.86395256138124,
- "pitch": -0.9321056856587137,
- "yaw": 21.985352767811538
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.2854995727539,
- -165.66329956054688,
- -15.859580039978027
- ],
- "orientation_deg": {
- "roll": -1.2609175134770405,
- "pitch": 0.23708474112498523,
- "yaw": 33.52830062889529
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8788771629333496,
- 0.028428908437490463,
- -0.3560209572315216
- ],
- "orientation_deg": {
- "roll": -0.48571569455719926,
- "pitch": -0.7243677316503169,
- "yaw": -0.05708907740516809
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91744995117188,
- 0.03237084671854973,
- -0.08365382999181747
- ],
- "orientation_deg": {
- "roll": -0.5923462530765837,
- "pitch": -1.3683553550730023,
- "yaw": 0.004526389837570288
- }
- },
- {
- "id": 76,
- "position_mm": [
- -273.0970739652437,
- 126.26991428889394,
- -114.54418689006386
- ],
- "orientation_deg": {
- "roll": -77.03649701482715,
- "pitch": 28.184287332499547,
- "yaw": -125.28892406109924
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5405128002166748,
- -80.25296783447266,
- -0.6637934446334839
- ],
- "orientation_deg": {
- "roll": 0.841128775746463,
- "pitch": -0.5904937171094051,
- "yaw": -1.1638122918819924
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_annotated.jpg
deleted file mode 100644
index e93cef4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_overlay.png
deleted file mode 100644
index 7ef6da0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978427264_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978512243.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978512243.jpg
deleted file mode 100644
index 398b2a7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978512243.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.csv
deleted file mode 100644
index 2f97f5b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,396.557,-428.160,878.175,-148.672,-0.600,22.147
-25,85.667,-165.820,-15.643,-1.224,0.201,33.367
-50,-0.882,0.031,-0.357,-0.435,-0.734,-0.219
-71,139.916,0.033,-0.085,-0.854,-1.688,0.420
-76,-240.260,97.045,-61.741,-85.044,21.778,-126.019
-101,-1.550,-80.250,-0.667,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.json
deleted file mode 100644
index 178d483..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:35:12",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1047218084009319,
- "rms_refs_px_cam2": 1.4905742859153104,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.46706493398216,
- 205.9099946362136
- ],
- "orientation_deg": {
- "roll": -108.87869927249052,
- "pitch": 2.5018378536570323,
- "yaw": 80.26418393527955
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 396.55697205594964,
- -428.15997298840966,
- 878.1748125905327
- ],
- "orientation_deg": {
- "roll": -148.67236913999432,
- "pitch": -0.600050223662007,
- "yaw": 22.146597355169206
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.6673355102539,
- -165.81951904296875,
- -15.643328666687012
- ],
- "orientation_deg": {
- "roll": -1.2241649302408877,
- "pitch": 0.20113227309760437,
- "yaw": 33.36742624017477
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8821107149124146,
- 0.030719362199306488,
- -0.35711562633514404
- ],
- "orientation_deg": {
- "roll": -0.4352064147948927,
- "pitch": -0.7339874186860661,
- "yaw": -0.2187468052744248
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91639709472656,
- 0.033435896039009094,
- -0.08452612161636353
- ],
- "orientation_deg": {
- "roll": -0.8540009699523268,
- "pitch": -1.687690658466286,
- "yaw": 0.41964522999376647
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.25967077291233,
- 97.04547037328337,
- -61.74097971273574
- ],
- "orientation_deg": {
- "roll": -85.04413351410004,
- "pitch": 21.7775275895944,
- "yaw": -126.01855594151559
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5502642393112183,
- -80.2496337890625,
- -0.6674761176109314
- ],
- "orientation_deg": {
- "roll": 0.8918130679867812,
- "pitch": -0.5991361653788677,
- "yaw": -1.3253533967175322
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_annotated.jpg
deleted file mode 100644
index 06d108c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_overlay.png
deleted file mode 100644
index 87a14da..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978512243_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978528964.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978528964.jpg
deleted file mode 100644
index 766affe..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978528964.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.csv
deleted file mode 100644
index 280cdcf..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,396.557,-428.160,878.175,-148.672,-0.600,22.147
-25,85.597,-165.684,-15.769,-0.097,-0.410,32.184
-50,-0.883,0.030,-0.357,-0.473,-0.727,-0.098
-71,139.916,0.033,-0.084,-0.416,-1.205,-0.342
-76,-251.164,106.267,-78.101,-84.260,21.193,-124.672
-101,-1.551,-80.251,-0.668,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.json
deleted file mode 100644
index c7cf3d7..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:35:29",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4905742859153104,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 396.55697205594964,
- -428.15997298840966,
- 878.1748125905327
- ],
- "orientation_deg": {
- "roll": -148.67236913999432,
- "pitch": -0.600050223662007,
- "yaw": 22.146597355169206
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.5965347290039,
- -165.68418884277344,
- -15.768712043762207
- ],
- "orientation_deg": {
- "roll": -0.09656434453923476,
- "pitch": -0.4099191103099073,
- "yaw": 32.18427542523384
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8827373385429382,
- 0.029821297153830528,
- -0.3572579026222229
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91622924804688,
- 0.03283580392599106,
- -0.0842922031879425
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -251.1638502188519,
- 106.26687337937778,
- -78.10058240905737
- ],
- "orientation_deg": {
- "roll": -84.25994072415034,
- "pitch": 21.192993708019305,
- "yaw": -124.67195941109712
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5514910221099854,
- -80.25122833251953,
- -0.6678730845451355
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_annotated.jpg
deleted file mode 100644
index 5db8fa0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_overlay.png
deleted file mode 100644
index d47e87c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978528964_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978536535.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978536535.jpg
deleted file mode 100644
index 1f33a3c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978536535.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.csv
deleted file mode 100644
index 427bfdf..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,402.987,-424.677,872.728,-148.563,-0.190,22.324
-25,86.063,-165.415,-15.433,-0.201,-0.202,32.717
-50,-0.885,0.032,-0.358,-0.435,-0.734,-0.219
-71,139.916,0.034,-0.084,-0.854,-1.688,0.420
-76,-276.576,125.692,-112.647,-77.776,27.721,-125.294
-101,-1.563,-80.250,-0.671,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.json
deleted file mode 100644
index d4b6fb3..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:35:36",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10472180840108743,
- "rms_refs_px_cam2": 1.4965149767482901,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.4670649339818,
- 205.9099946362141
- ],
- "orientation_deg": {
- "roll": -108.87869927249056,
- "pitch": 2.5018378536570647,
- "yaw": 80.26418393527958
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 402.98741113770006,
- -424.6766911166422,
- 872.7281296568589
- ],
- "orientation_deg": {
- "roll": -148.56290936086853,
- "pitch": -0.1899021452396405,
- "yaw": 22.323936594136764
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.06256866455078,
- -165.414794921875,
- -15.43289852142334
- ],
- "orientation_deg": {
- "roll": -0.20072338343339066,
- "pitch": -0.20180886363998096,
- "yaw": 32.71715791760586
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8854264616966248,
- 0.03174865245819092,
- -0.35751163959503174
- ],
- "orientation_deg": {
- "roll": -0.4352064147949305,
- "pitch": -0.7339874186860947,
- "yaw": -0.21874680527440576
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91615295410156,
- 0.03367307782173157,
- -0.08436405658721924
- ],
- "orientation_deg": {
- "roll": -0.8540009699523651,
- "pitch": -1.6876906584663214,
- "yaw": 0.4196452299937873
- }
- },
- {
- "id": 76,
- "position_mm": [
- -276.5756647194486,
- 125.69190905013905,
- -112.64672830838185
- ],
- "orientation_deg": {
- "roll": -77.77586101402827,
- "pitch": 27.720671587001178,
- "yaw": -125.29396798918707
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5631128549575806,
- -80.24964904785156,
- -0.6712360978126526
- ],
- "orientation_deg": {
- "roll": 0.8918130679867433,
- "pitch": -0.5991361653788996,
- "yaw": -1.3253533967175124
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_annotated.jpg
deleted file mode 100644
index 1ef76f1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_overlay.png
deleted file mode 100644
index 292ef79..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978536535_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978552974.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978552974.jpg
deleted file mode 100644
index ed228e3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978552974.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.csv
deleted file mode 100644
index a7c5fd4..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,396.557,-428.160,878.175,-148.672,-0.600,22.147
-25,85.570,-165.626,-15.808,-0.229,-0.175,32.838
-50,-0.883,0.030,-0.357,-0.473,-0.727,-0.098
-71,139.916,0.033,-0.084,-0.416,-1.205,-0.342
-76,-251.164,106.267,-78.101,-84.260,21.193,-124.672
-101,-1.551,-80.251,-0.668,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.json
deleted file mode 100644
index 7f3ed55..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:35:53",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4905742859153104,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 396.55697205594964,
- -428.15997298840966,
- 878.1748125905327
- ],
- "orientation_deg": {
- "roll": -148.67236913999432,
- "pitch": -0.600050223662007,
- "yaw": 22.146597355169206
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.5704574584961,
- -165.6255340576172,
- -15.807857513427734
- ],
- "orientation_deg": {
- "roll": -0.2286088518520129,
- "pitch": -0.17518163211099821,
- "yaw": 32.837999850067234
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8827373385429382,
- 0.029821297153830528,
- -0.3572579026222229
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91622924804688,
- 0.03283580392599106,
- -0.0842922031879425
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -251.1638502188519,
- 106.26687337937778,
- -78.10058240905737
- ],
- "orientation_deg": {
- "roll": -84.25994072415034,
- "pitch": 21.192993708019305,
- "yaw": -124.67195941109712
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5514910221099854,
- -80.25122833251953,
- -0.6678730845451355
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_annotated.jpg
deleted file mode 100644
index b7f3e30..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_overlay.png
deleted file mode 100644
index 69c772a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765978552974_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979039260.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979039260.jpg
deleted file mode 100644
index f40f89d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979039260.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.csv
deleted file mode 100644
index 0d17ced..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,403.206,-426.949,873.141,-148.462,-0.260,22.338
-25,86.086,-165.485,-15.553,0.157,-0.276,32.019
-50,-0.887,0.031,-0.359,-0.473,-0.727,-0.098
-71,139.915,0.033,-0.085,-0.416,-1.205,-0.342
-76,-261.387,113.191,-90.574,-80.370,22.242,-123.097
-101,-1.566,-80.250,-0.673,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.json
deleted file mode 100644
index b35e0f1..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:43:59",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4958014268965474,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 403.2058313170833,
- -426.9488725969016,
- 873.1408461291827
- ],
- "orientation_deg": {
- "roll": -148.46207522684398,
- "pitch": -0.25987066280574933,
- "yaw": 22.33762537862971
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.08554077148438,
- -165.48483276367188,
- -15.553363800048828
- ],
- "orientation_deg": {
- "roll": 0.15728110118853308,
- "pitch": -0.2756500646898289,
- "yaw": 32.019429992171816
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8872020244598389,
- 0.03128548711538315,
- -0.35859349370002747
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91546630859375,
- 0.0331987589597702,
- -0.08455745130777359
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -261.3866144836756,
- 113.19096808114149,
- -90.57359380357033
- ],
- "orientation_deg": {
- "roll": -80.37001568832487,
- "pitch": 22.241891169942825,
- "yaw": -123.09655191704742
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5657693147659302,
- -80.25023651123047,
- -0.673183262348175
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_annotated.jpg
deleted file mode 100644
index f8e0ae7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_overlay.png
deleted file mode 100644
index ca5c9b7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979039260_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979096358.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979096358.jpg
deleted file mode 100644
index b8c7ff1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979096358.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.csv
deleted file mode 100644
index f63530b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,400.822,-418.886,878.434,-149.019,-0.205,22.336
-25,85.619,-165.500,-15.631,-0.226,-0.156,32.867
-50,-0.882,0.027,-0.355,-0.473,-0.727,-0.098
-71,139.917,0.032,-0.083,-0.416,-1.205,-0.342
-76,-244.243,98.785,-67.543,-82.126,21.474,-124.098
-101,-1.556,-80.258,-0.666,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.json
deleted file mode 100644
index bcc4990..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:44:56",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4946536535115844,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 400.82219327120487,
- -418.8856350199214,
- 878.4340406596931
- ],
- "orientation_deg": {
- "roll": -149.0187968194168,
- "pitch": -0.20456338861245066,
- "yaw": 22.33601560353088
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.6185302734375,
- -165.50035095214844,
- -15.631163597106934
- ],
- "orientation_deg": {
- "roll": -0.22552596082693432,
- "pitch": -0.1555341972251732,
- "yaw": 32.86746639452312
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8823607563972473,
- 0.027041854336857796,
- -0.3551765978336334
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91661071777344,
- 0.0319083146750927,
- -0.0834699422121048
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -244.2430572570355,
- 98.78546515947274,
- -67.54270395023897
- ],
- "orientation_deg": {
- "roll": -82.12590732984967,
- "pitch": 21.47371722533385,
- "yaw": -124.09834355740088
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.555521845817566,
- -80.25770568847656,
- -0.6655595302581787
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_annotated.jpg
deleted file mode 100644
index 4a91b33..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_overlay.png
deleted file mode 100644
index cd0c867..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979096358_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979173960.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979173960.jpg
deleted file mode 100644
index 73e1d27..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979173960.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.csv
deleted file mode 100644
index d63681b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.152,-162.344,205.771,-108.865,2.451,80.384
-camera2,400.638,-416.585,877.989,-149.120,-0.132,22.323
-25,85.084,-165.201,-16.080,-2.740,-0.018,35.872
-50,-0.881,0.027,-0.354,-0.383,-0.728,-0.100
-71,139.917,0.032,-0.083,-0.326,-1.206,-0.345
-76,-250.088,103.263,-76.296,-80.800,22.447,-124.407
-101,-1.553,-80.259,-0.663,1.483,-1.196,-1.125
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.json
deleted file mode 100644
index 1c0fb52..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:46:14",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353518758385725,
- "rms_refs_px_cam2": 1.4953678927523888,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1518541849574,
- -162.34393649614083,
- 205.77062739813692
- ],
- "orientation_deg": {
- "roll": -108.86458750904792,
- "pitch": 2.4510552445839373,
- "yaw": 80.38410468824381
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 400.63838379752104,
- -416.5849303296082,
- 877.9893149286722
- ],
- "orientation_deg": {
- "roll": -149.12019727514823,
- "pitch": -0.13249473857069546,
- "yaw": 22.32275408036658
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.08399200439453,
- -165.20066833496094,
- -16.08040428161621
- ],
- "orientation_deg": {
- "roll": -2.740047025811349,
- "pitch": -0.01847313520853178,
- "yaw": 35.87154351446472
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.880856990814209,
- 0.026666248217225075,
- -0.3537614941596985
- ],
- "orientation_deg": {
- "roll": -0.38278747059529616,
- "pitch": -0.7284787654137109,
- "yaw": -0.10010477791418171
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91725158691406,
- 0.031759146600961685,
- -0.08283130824565887
- ],
- "orientation_deg": {
- "roll": -0.32576856300809315,
- "pitch": -1.2059176162435097,
- "yaw": -0.3451143363345687
- }
- },
- {
- "id": 76,
- "position_mm": [
- -250.08847920037314,
- 103.26304471152159,
- -76.29561185691746
- ],
- "orientation_deg": {
- "roll": -80.79951323405994,
- "pitch": 22.44684447161427,
- "yaw": -124.40701894743988
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5534437894821167,
- -80.25852966308594,
- -0.6631629467010498
- ],
- "orientation_deg": {
- "roll": 1.4827116171797827,
- "pitch": -1.1964807147242504,
- "yaw": -1.125133701560211
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_annotated.jpg
deleted file mode 100644
index 8ce5378..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_overlay.png
deleted file mode 100644
index 2207f05..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979173960_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979387494.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979387494.jpg
deleted file mode 100644
index 0cb094b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979387494.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.csv
deleted file mode 100644
index f8eaceb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.929,-162.483,205.963,-108.878,2.528,80.345
-camera2,405.972,-421.956,872.460,-148.609,-0.030,22.488
-25,86.426,-165.413,-15.145,-0.741,0.380,32.815
-50,-0.884,0.030,-0.357,-0.460,-0.729,-0.138
-71,139.916,0.033,-0.084,-0.215,-1.373,-0.977
-76,-262.664,112.680,-91.527,-80.380,21.969,-122.950
-101,-1.565,-80.253,-0.671,0.866,-0.595,-1.245
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.json
deleted file mode 100644
index 5a24ba4..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:49:47",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1039263543054746,
- "rms_refs_px_cam2": 1.4957526441206537,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.9291582161287,
- -162.48263822555913,
- 205.96274419767525
- ],
- "orientation_deg": {
- "roll": -108.87816846142353,
- "pitch": 2.5275341250845176,
- "yaw": 80.34469940091888
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 405.9717408389173,
- -421.95573056025347,
- 872.4604195005218
- ],
- "orientation_deg": {
- "roll": -148.60881898727635,
- "pitch": -0.029978265649823206,
- "yaw": 22.488220616803055
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.42604064941406,
- -165.41339111328125,
- -15.145471572875977
- ],
- "orientation_deg": {
- "roll": -0.7406379814249779,
- "pitch": 0.37985089540133943,
- "yaw": 32.81478991375663
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8843511343002319,
- 0.029944177716970444,
- -0.35656803846359253
- ],
- "orientation_deg": {
- "roll": -0.46046337865993414,
- "pitch": -0.7292156934030202,
- "yaw": -0.1379321354402208
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.916015625,
- 0.032910484820604324,
- -0.08406136929988861
- ],
- "orientation_deg": {
- "roll": -0.21456699848946073,
- "pitch": -1.3728894168113193,
- "yaw": -0.9772634345536703
- }
- },
- {
- "id": 76,
- "position_mm": [
- -262.6636726143039,
- 112.67967237631038,
- -91.52679931575169
- ],
- "orientation_deg": {
- "roll": -80.38035613015047,
- "pitch": 21.96932503799784,
- "yaw": -122.95021912829023
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5652594566345215,
- -80.25299835205078,
- -0.6711070537567139
- ],
- "orientation_deg": {
- "roll": 0.8664693403908715,
- "pitch": -0.5948530840944998,
- "yaw": -1.244597155909977
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_annotated.jpg
deleted file mode 100644
index d661fbe..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_overlay.png
deleted file mode 100644
index 71ad92a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979387494_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979423620.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979423620.jpg
deleted file mode 100644
index 7fcb135..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979423620.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.csv
deleted file mode 100644
index 79d5cb2..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.152,-162.344,205.771,-108.865,2.451,80.384
-camera2,409.575,-420.357,872.429,-148.628,0.189,22.536
-25,86.472,-165.385,-15.413,-0.675,0.338,32.854
-50,-0.888,0.030,-0.357,-0.383,-0.728,-0.100
-71,139.915,0.033,-0.084,-0.326,-1.206,-0.345
-76,-245.733,98.509,-65.821,-82.709,21.360,-124.111
-101,-1.571,-80.253,-0.672,1.483,-1.196,-1.125
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.json
deleted file mode 100644
index 5bd0843..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:50:23",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353518758385848,
- "rms_refs_px_cam2": 1.4957602781180475,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1518541849575,
- -162.34393649614074,
- 205.7706273981369
- ],
- "orientation_deg": {
- "roll": -108.86458750904792,
- "pitch": 2.451055244583937,
- "yaw": 80.38410468824381
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 409.5751459779732,
- -420.3569905095055,
- 872.4292309300839
- ],
- "orientation_deg": {
- "roll": -148.62835287531212,
- "pitch": 0.1892058498204359,
- "yaw": 22.53585146314528
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.47209167480469,
- -165.38522338867188,
- -15.413246154785156
- ],
- "orientation_deg": {
- "roll": -0.6750622433486004,
- "pitch": 0.33822031662755686,
- "yaw": 32.85401626136167
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8875361084938049,
- 0.030060553923249245,
- -0.35676196217536926
- ],
- "orientation_deg": {
- "roll": -0.38278747059529405,
- "pitch": -0.7284787654137013,
- "yaw": -0.10010477791416736
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91543579101562,
- 0.03272334486246109,
- -0.08389882743358612
- ],
- "orientation_deg": {
- "roll": -0.3257685630080919,
- "pitch": -1.2059176162434997,
- "yaw": -0.34511433633455274
- }
- },
- {
- "id": 76,
- "position_mm": [
- -245.7331194474962,
- 98.50887259054191,
- -65.8211834675414
- ],
- "orientation_deg": {
- "roll": -82.70901362583129,
- "pitch": 21.36047320114761,
- "yaw": -124.11138099270572
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5713545083999634,
- -80.25341033935547,
- -0.671654462814331
- ],
- "orientation_deg": {
- "roll": 1.482711617179783,
- "pitch": -1.196480714724244,
- "yaw": -1.1251337015601963
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_annotated.jpg
deleted file mode 100644
index 26a2184..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_overlay.png
deleted file mode 100644
index 1c96b2a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979423620_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979473565.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979473565.jpg
deleted file mode 100644
index 847592f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979473565.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.csv
deleted file mode 100644
index 4d9bdaa..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,406.328,-420.900,875.010,-148.738,0.023,22.441
-25,86.026,-165.529,-15.379,-0.750,0.389,32.855
-50,-0.886,0.029,-0.357,-0.473,-0.727,-0.098
-71,139.916,0.033,-0.084,-0.416,-1.205,-0.342
-76,-256.064,107.541,-82.170,-81.723,20.808,-122.751
-101,-1.565,-80.254,-0.670,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.json
deleted file mode 100644
index 5fd7f4e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:51:13",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4931384551535318,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 406.32802383728773,
- -420.8995292628549,
- 875.0104299148135
- ],
- "orientation_deg": {
- "roll": -148.7376119236304,
- "pitch": 0.02272775185817831,
- "yaw": 22.44147822120346
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.02629852294922,
- -165.5294189453125,
- -15.378560066223145
- ],
- "orientation_deg": {
- "roll": -0.7499192939937913,
- "pitch": 0.38874501362400343,
- "yaw": 32.85498567276838
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8856806755065918,
- 0.029255174100399017,
- -0.35655614733695984
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91567993164062,
- 0.03256473317742348,
- -0.08397412300109863
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -256.0635423094547,
- 107.54071962221478,
- -82.16970079111996
- ],
- "orientation_deg": {
- "roll": -81.72321829912345,
- "pitch": 20.807739165992363,
- "yaw": -122.75126002176101
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5648744106292725,
- -80.25413513183594,
- -0.6698047518730164
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_annotated.jpg
deleted file mode 100644
index 7c73692..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_overlay.png
deleted file mode 100644
index dcba85d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979473565_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979612483.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979612483.jpg
deleted file mode 100644
index 1f4ac5d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979612483.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.csv
deleted file mode 100644
index 4cd70ff..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,401.022,-424.419,873.903,-148.630,-0.309,22.332
-25,85.877,-165.446,-15.511,-0.338,-0.537,32.341
-50,-0.884,0.030,-0.357,-0.473,-0.727,-0.098
-71,139.916,0.033,-0.084,-0.416,-1.205,-0.342
-76,-244.864,99.861,-67.865,-82.413,21.776,-124.206
-101,-1.560,-80.253,-0.670,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.json
deleted file mode 100644
index 678e315..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:53:32",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058826038,
- "rms_refs_px_cam2": 1.496524980382731,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752434,
- 205.98860705019186
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.5403854998735294,
- "yaw": 80.384970419323
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 401.02191385584763,
- -424.4185395095302,
- 873.9029754041527
- ],
- "orientation_deg": {
- "roll": -148.6298142495902,
- "pitch": -0.3091031560162798,
- "yaw": 22.33187057128552
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.87738037109375,
- -165.44627380371094,
- -15.511290550231934
- ],
- "orientation_deg": {
- "roll": -0.33803267118888586,
- "pitch": -0.5373961790446242,
- "yaw": 32.34116421486173
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8837301731109619,
- 0.0297453161329031,
- -0.35697343945503235
- ],
- "orientation_deg": {
- "roll": -0.4730902775008555,
- "pitch": -0.7268008659703239,
- "yaw": -0.09751368982894933
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91635131835938,
- 0.03276587277650833,
- -0.08401913940906525
- ],
- "orientation_deg": {
- "roll": -0.41609041234852523,
- "pitch": -1.2046252614391746,
- "yaw": -0.34177017054524156
- }
- },
- {
- "id": 76,
- "position_mm": [
- -244.8635774424489,
- 99.86128495454888,
- -67.86511947541108
- ],
- "orientation_deg": {
- "roll": -82.41268366759759,
- "pitch": 21.775647148414738,
- "yaw": -124.20642976264583
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5600517988204956,
- -80.25281524658203,
- -0.6702276468276978
- ],
- "orientation_deg": {
- "roll": 0.8537984955837707,
- "pitch": -0.5926825633642847,
- "yaw": -1.204207836951622
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_annotated.jpg
deleted file mode 100644
index 12861a7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_overlay.png
deleted file mode 100644
index 4f24036..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979612483_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979663973.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979663973.jpg
deleted file mode 100644
index b0261b2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979663973.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.csv
deleted file mode 100644
index 2dbef07..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.608,-163.821,205.689,-108.865,2.413,80.263
-camera2,404.298,-423.836,871.372,-148.523,-0.141,22.427
-25,86.218,-165.411,-15.422,-0.647,0.312,32.733
-50,-0.885,0.031,-0.357,-0.345,-0.735,-0.221
-71,139.916,0.034,-0.084,-1.098,-1.699,1.264
-76,-237.803,93.253,-55.775,-86.656,20.461,-125.666
-101,-1.565,-80.251,-0.672,1.521,-1.203,-1.247
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.json
deleted file mode 100644
index 029df1a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:54:24",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1047223195358695,
- "rms_refs_px_cam2": 1.4991458300325986,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.6076336095916,
- -163.82067788294125,
- 205.68927903010368
- ],
- "orientation_deg": {
- "roll": -108.86520788773284,
- "pitch": 2.4125843097402044,
- "yaw": 80.26332383883566
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 404.2977300285423,
- -423.8360285852627,
- 871.3724070693338
- ],
- "orientation_deg": {
- "roll": -148.5233912315892,
- "pitch": -0.1409518328601045,
- "yaw": 22.42671719085975
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.21788787841797,
- -165.41070556640625,
- -15.422182083129883
- ],
- "orientation_deg": {
- "roll": -0.6471029475009771,
- "pitch": 0.311787383636167,
- "yaw": 32.73342033005578
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.884934663772583,
- 0.03142569214105606,
- -0.357009619474411
- ],
- "orientation_deg": {
- "roll": -0.3449452453435258,
- "pitch": -0.7354498985579441,
- "yaw": -0.22134273272600405
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91627502441406,
- 0.03351694718003273,
- -0.08416899293661118
- ],
- "orientation_deg": {
- "roll": -1.0980338179244093,
- "pitch": -1.6990368166487229,
- "yaw": 1.2643371640968073
- }
- },
- {
- "id": 76,
- "position_mm": [
- -237.80264027701247,
- 93.25291361681987,
- -55.774932431734925
- ],
- "orientation_deg": {
- "roll": -86.65645567769572,
- "pitch": 20.460980982857503,
- "yaw": -125.66644467230789
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5652331113815308,
- -80.25052642822266,
- -0.6716192960739136
- ],
- "orientation_deg": {
- "roll": 1.5206777456243747,
- "pitch": -1.202773718175469,
- "yaw": -1.2466830836453262
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_annotated.jpg
deleted file mode 100644
index 48170d9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_overlay.png
deleted file mode 100644
index 69fb4ac..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979663973_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979986834.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979986834.jpg
deleted file mode 100644
index a008bcc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979986834.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.csv
deleted file mode 100644
index e8ee438..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,400.822,-418.886,878.434,-149.019,-0.205,22.336
-25,85.592,-165.442,-15.670,0.034,-0.013,32.707
-50,-0.882,0.027,-0.355,-0.473,-0.727,-0.098
-71,139.917,0.032,-0.083,-0.416,-1.205,-0.342
-76,-244.243,98.785,-67.543,-82.126,21.474,-124.098
-101,-1.556,-80.258,-0.666,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.json
deleted file mode 100644
index b4867cc..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 13:59:47",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.494653661488378,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 400.8221911027453,
- -418.8856366356949,
- 878.4340411846117
- ],
- "orientation_deg": {
- "roll": -149.01879679885857,
- "pitch": -0.20456352602768232,
- "yaw": 22.33601553926593
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.59249114990234,
- -165.44204711914062,
- -15.66993236541748
- ],
- "orientation_deg": {
- "roll": 0.0337043726490696,
- "pitch": -0.013382636070021754,
- "yaw": 32.70703072633354
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8823606967926025,
- 0.027041858062148094,
- -0.35517656803131104
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91661071777344,
- 0.031908322125673294,
- -0.0834699496626854
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -244.24305687595626,
- 98.78546544257871,
- -67.5427041247284
- ],
- "orientation_deg": {
- "roll": -82.12590726661455,
- "pitch": 21.473717351201895,
- "yaw": -124.09834359844368
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.555521845817566,
- -80.25770568847656,
- -0.6655595302581787
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_annotated.jpg
deleted file mode 100644
index e48085a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_overlay.png
deleted file mode 100644
index e3a64e6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765979986834_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980180276.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980180276.jpg
deleted file mode 100644
index 7e96d92..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980180276.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.csv
deleted file mode 100644
index ba35e81..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,408.897,-413.631,873.964,-148.988,0.309,22.567
-25,85.869,-165.277,-15.498,-0.097,-0.410,32.184
-50,-0.887,0.027,-0.356,-0.473,-0.727,-0.098
-71,139.916,0.032,-0.083,-0.416,-1.205,-0.342
-76,-263.300,111.994,-92.498,-80.252,21.476,-122.823
-101,-1.570,-80.259,-0.669,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.json
deleted file mode 100644
index 80cf48e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:03:00",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.500628359074336,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 408.8972366445136,
- -413.63074962130264,
- 873.9643461160174
- ],
- "orientation_deg": {
- "roll": -148.98751257429856,
- "pitch": 0.30859978760395573,
- "yaw": 22.567030041185536
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.86893463134766,
- -165.27664184570312,
- -15.498498916625977
- ],
- "orientation_deg": {
- "roll": -0.09656434453923476,
- "pitch": -0.4099191103099073,
- "yaw": 32.18427542523384
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8867223858833313,
- 0.02736051380634308,
- -0.35550299286842346
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9160614013672,
- 0.031885869801044464,
- -0.08331634849309921
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -263.3002496865243,
- 111.9935938940051,
- -92.4979020408222
- ],
- "orientation_deg": {
- "roll": -80.25163651874392,
- "pitch": 21.475620994729574,
- "yaw": -122.82284790570084
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5704842805862427,
- -80.25934600830078,
- -0.6691275835037231
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_annotated.jpg
deleted file mode 100644
index f681ae8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_overlay.png
deleted file mode 100644
index d47e87c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980180276_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980184630.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980184630.jpg
deleted file mode 100644
index eda70bb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980184630.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.csv
deleted file mode 100644
index fd1a871..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,402.732,-419.209,877.279,-148.941,-0.090,22.325
-25,85.450,-165.500,-15.640,-0.616,0.135,32.170
-50,-0.884,0.028,-0.356,-0.473,-0.727,-0.098
-71,139.916,0.032,-0.084,-0.416,-1.205,-0.342
-76,-261.321,112.526,-91.468,-80.049,21.830,-122.990
-101,-1.560,-80.257,-0.667,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.json
deleted file mode 100644
index 79f7edb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:03:04",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4954419209235128,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 402.73165716993907,
- -419.2088887828551,
- 877.2792517072108
- ],
- "orientation_deg": {
- "roll": -148.94105516518,
- "pitch": -0.08951276809341838,
- "yaw": 22.325420314117824
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.44984436035156,
- -165.49989318847656,
- -15.639813423156738
- ],
- "orientation_deg": {
- "roll": -0.6160596729147897,
- "pitch": 0.13464455253681978,
- "yaw": 32.17036267136837
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8844965100288391,
- 0.02785586379468441,
- -0.3559194505214691
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91622924804688,
- 0.032118868082761765,
- -0.0836484432220459
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -261.3212349761901,
- 112.52610727989287,
- -91.4680520993838
- ],
- "orientation_deg": {
- "roll": -80.04923725970639,
- "pitch": 21.829547281227175,
- "yaw": -122.98986521550958
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5600095987319946,
- -80.25669860839844,
- -0.6673087477684021
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_annotated.jpg
deleted file mode 100644
index d96657d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_overlay.png
deleted file mode 100644
index 0fcc9ac..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980184630_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980205019.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980205019.jpg
deleted file mode 100644
index 1087f1e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980205019.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.csv
deleted file mode 100644
index 25e71b1..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,401.061,-421.122,876.085,-148.851,-0.192,22.269
-25,85.247,-165.416,-15.846,-0.113,0.219,33.381
-50,-0.883,0.029,-0.356,-0.473,-0.727,-0.098
-71,139.917,0.032,-0.084,-0.416,-1.205,-0.342
-76,-245.007,99.620,-67.679,-82.383,21.588,-124.323
-101,-1.558,-80.255,-0.668,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.json
deleted file mode 100644
index 0aa161b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:03:25",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058826038,
- "rms_refs_px_cam2": 1.4954242361356227,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752434,
- 205.98860705019186
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.5403854998735294,
- "yaw": 80.384970419323
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 401.0610144503407,
- -421.12186937469176,
- 876.0847826329002
- ],
- "orientation_deg": {
- "roll": -148.8511244532498,
- "pitch": -0.19194439640315938,
- "yaw": 22.269239060062407
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.24683380126953,
- -165.41636657714844,
- -15.845930099487305
- ],
- "orientation_deg": {
- "roll": -0.11265912897392334,
- "pitch": 0.21889798296835722,
- "yaw": 33.38082509944973
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8834935426712036,
- 0.028622059151530266,
- -0.35601556301116943
- ],
- "orientation_deg": {
- "roll": -0.4730902775008555,
- "pitch": -0.7268008659703239,
- "yaw": -0.09751368982894933
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91651916503906,
- 0.032394640147686005,
- -0.08364447951316833
- ],
- "orientation_deg": {
- "roll": -0.41609041234852523,
- "pitch": -1.2046252614391746,
- "yaw": -0.34177017054524156
- }
- },
- {
- "id": 76,
- "position_mm": [
- -245.00698067946692,
- 99.61996819003804,
- -67.67878163466511
- ],
- "orientation_deg": {
- "roll": -82.38334294169644,
- "pitch": 21.588004490455535,
- "yaw": -124.32287778076376
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5579978227615356,
- -80.2550277709961,
- -0.6675418615341187
- ],
- "orientation_deg": {
- "roll": 0.8537984955837707,
- "pitch": -0.5926825633642847,
- "yaw": -1.204207836951622
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_annotated.jpg
deleted file mode 100644
index 00f5733..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_overlay.png
deleted file mode 100644
index 527c3b8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980205019_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980305410.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980305410.jpg
deleted file mode 100644
index 7320bcb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980305410.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.csv
deleted file mode 100644
index 577859e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.003,-162.440,205.263,-108.845,2.523,80.342
-camera2,394.838,-429.991,874.466,-148.515,-0.649,21.992
-25,85.141,-165.601,-15.803,-0.582,0.147,32.126
-50,-0.888,0.032,-0.359,-0.620,-0.846,0.259
-71,139.916,0.034,-0.085,-0.869,-1.651,0.496
-76,-261.395,116.752,-93.989,-1.167,2.831,-107.910
-101,-1.560,-80.249,-0.672,0.876,-0.563,-1.249
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.json
deleted file mode 100644
index d39cfd2..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:05:05",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10473996800442288,
- "rms_refs_px_cam2": 1.503084159168468,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.0026360469576,
- -162.43953807250716,
- 205.26288566001492
- ],
- "orientation_deg": {
- "roll": -108.84533976387718,
- "pitch": 2.523176293370596,
- "yaw": 80.34164617141832
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 394.83765384655715,
- -429.99139302129794,
- 874.466294164263
- ],
- "orientation_deg": {
- "roll": -148.51486619243008,
- "pitch": -0.6488387085210512,
- "yaw": 21.99198155220545
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.14118194580078,
- -165.60081481933594,
- -15.803156852722168
- ],
- "orientation_deg": {
- "roll": -0.5815698009764485,
- "pitch": 0.14741326129708182,
- "yaw": 32.125686154219366
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8880972862243652,
- 0.03191085159778595,
- -0.3593723177909851
- ],
- "orientation_deg": {
- "roll": -0.6197498557015815,
- "pitch": -0.845900151908839,
- "yaw": 0.25901480554753487
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91607666015625,
- 0.033720713108778,
- -0.0847693383693695
- ],
- "orientation_deg": {
- "roll": -0.8691355668545409,
- "pitch": -1.6511231101031163,
- "yaw": 0.49608597870582244
- }
- },
- {
- "id": 76,
- "position_mm": [
- -261.3952057443599,
- 116.75202975005882,
- -93.98911851024161
- ],
- "orientation_deg": {
- "roll": -1.1670468297815346,
- "pitch": 2.830518970818272,
- "yaw": -107.91001016746046
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5601330995559692,
- -80.2494888305664,
- -0.6717017292976379
- ],
- "orientation_deg": {
- "roll": 0.8755774604772073,
- "pitch": -0.563046286217224,
- "yaw": -1.2491888990528872
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_annotated.jpg
deleted file mode 100644
index ac1839c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_overlay.png
deleted file mode 100644
index c6c943e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980305410_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980351368.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980351368.jpg
deleted file mode 100644
index b0c8a32..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980351368.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.csv
deleted file mode 100644
index cac1498..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,655.971,-159.947,204.691,-108.811,2.583,80.539
-camera2,396.492,-428.105,875.628,-148.604,-0.539,22.054
-25,84.972,-165.426,-16.101,0.413,-0.070,32.014
-50,-0.887,0.029,-0.358,-0.834,-0.945,0.843
-71,139.916,0.033,-0.084,-0.447,-1.132,-0.190
-76,-243.854,100.973,-67.398,-82.400,22.014,-124.543
-101,-1.560,-80.254,-0.669,0.822,-0.520,-1.053
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.json
deleted file mode 100644
index fd89a2e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:05:51",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10357045066767606,
- "rms_refs_px_cam2": 1.4996786332597782,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 655.9706058815526,
- -159.94687863649887,
- 204.69149712189545
- ],
- "orientation_deg": {
- "roll": -108.81097413996349,
- "pitch": 2.582625442076755,
- "yaw": 80.5393139437445
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 396.49223792062105,
- -428.1049596869546,
- 875.6278859451019
- ],
- "orientation_deg": {
- "roll": -148.60353092055422,
- "pitch": -0.5394377874434967,
- "yaw": 22.053625589432347
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 84.97183227539062,
- -165.42626953125,
- -16.10089111328125
- ],
- "orientation_deg": {
- "roll": 0.41266621248270846,
- "pitch": -0.0704016338136236,
- "yaw": 32.01379540707346
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8872646689414978,
- 0.029469069093465805,
- -0.3578740358352661
- ],
- "orientation_deg": {
- "roll": -0.8336233253611195,
- "pitch": -0.9454183502199326,
- "yaw": 0.8430878647084477
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91583251953125,
- 0.03273714333772659,
- -0.08428692072629929
- ],
- "orientation_deg": {
- "roll": -0.44701651399244463,
- "pitch": -1.131859394225994,
- "yaw": -0.1897860041735158
- }
- },
- {
- "id": 76,
- "position_mm": [
- -243.85375723306478,
- 100.973430353139,
- -67.39843640416233
- ],
- "orientation_deg": {
- "roll": -82.39989606375987,
- "pitch": 22.014402565146668,
- "yaw": -124.54305864585757
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5598984956741333,
- -80.25361633300781,
- -0.6694598197937012
- ],
- "orientation_deg": {
- "roll": 0.821785355395858,
- "pitch": -0.520390425616541,
- "yaw": -1.0525432487634143
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_annotated.jpg
deleted file mode 100644
index c4ce044..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_overlay.png
deleted file mode 100644
index 72ff510..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980351368_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980403972.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980403972.jpg
deleted file mode 100644
index c288ff8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980403972.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.csv
deleted file mode 100644
index c27a26e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.290,-161.497,206.014,-108.878,2.553,80.425
-camera2,388.057,-431.266,879.383,-148.719,-0.996,21.799
-25,84.466,-165.836,-16.139,-0.759,0.398,32.895
-50,-0.884,0.030,-0.359,-0.486,-0.724,-0.057
-71,139.917,0.033,-0.084,-0.592,-1.368,0.005
-76,-242.224,101.692,-68.228,-82.024,22.331,-124.657
-101,-1.547,-80.251,-0.668,0.841,-0.590,-1.164
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.json
deleted file mode 100644
index 8bed7da..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:06:44",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10314231132713693,
- "rms_refs_px_cam2": 1.497849971915959,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.2896277448374,
- -161.49680135448878,
- 206.0141381748751
- ],
- "orientation_deg": {
- "roll": -108.87756174705864,
- "pitch": 2.553238447878135,
- "yaw": 80.42524903597865
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 388.0572725302585,
- -431.2656769092566,
- 879.3830895013897
- ],
- "orientation_deg": {
- "roll": -148.71899357878215,
- "pitch": -0.9957260295457998,
- "yaw": 21.799475153526892
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 84.46559143066406,
- -165.83641052246094,
- -16.139022827148438
- ],
- "orientation_deg": {
- "roll": -0.7591894552173374,
- "pitch": 0.39765365518219603,
- "yaw": 32.895186786143796
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8844746947288513,
- 0.029942471534013748,
- -0.35882073640823364
- ],
- "orientation_deg": {
- "roll": -0.48571569455718167,
- "pitch": -0.7243677316502912,
- "yaw": -0.057089077405168075
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9166717529297,
- 0.0327073372900486,
- -0.08427225798368454
- ],
- "orientation_deg": {
- "roll": -0.5923462530765657,
- "pitch": -1.3683553550729735,
- "yaw": 0.004526389837570287
- }
- },
- {
- "id": 76,
- "position_mm": [
- -242.2238543823723,
- 101.69211032927922,
- -68.22826492610324
- ],
- "orientation_deg": {
- "roll": -82.02413924867868,
- "pitch": 22.33133467435325,
- "yaw": -124.65694341183115
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5474358797073364,
- -80.25127410888672,
- -0.6679258346557617
- ],
- "orientation_deg": {
- "roll": 0.8411287757464803,
- "pitch": -0.5904937171093764,
- "yaw": -1.1638122918819904
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_annotated.jpg
deleted file mode 100644
index 41d382e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_overlay.png
deleted file mode 100644
index d545724..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980403972_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980539344.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980539344.jpg
deleted file mode 100644
index c9249f7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980539344.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.csv
deleted file mode 100644
index 4d33012..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.566,-163.467,205.910,-108.879,2.502,80.264
-camera2,400.212,-412.004,879.967,-149.394,-0.081,22.371
-25,85.380,-165.398,-15.637,0.062,-0.040,32.586
-50,-0.881,0.026,-0.353,-0.435,-0.734,-0.219
-71,139.918,0.032,-0.083,-0.854,-1.688,0.420
-76,-233.681,89.826,-53.375,-82.623,21.728,-125.231
-101,-1.552,-80.261,-0.661,0.892,-0.599,-1.325
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.json
deleted file mode 100644
index c370ee4..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:08:59",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1047218084009319,
- "rms_refs_px_cam2": 1.498728837463055,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.5662013501304,
- -163.46706493398216,
- 205.9099946362136
- ],
- "orientation_deg": {
- "roll": -108.87869927249052,
- "pitch": 2.5018378536570323,
- "yaw": 80.26418393527955
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 400.21163421534334,
- -412.0039290920886,
- 879.9672133234423
- ],
- "orientation_deg": {
- "roll": -149.3935486757726,
- "pitch": -0.08080503873011964,
- "yaw": 22.371351447634357
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.38034057617188,
- -165.3982391357422,
- -15.636764526367188
- ],
- "orientation_deg": {
- "roll": 0.06165046768857214,
- "pitch": -0.039946075849681274,
- "yaw": 32.586267527497014
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8806939125061035,
- 0.0255422405898571,
- -0.35317686200141907
- ],
- "orientation_deg": {
- "roll": -0.4352064147948927,
- "pitch": -0.7339874186860661,
- "yaw": -0.2187468052744248
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9176025390625,
- 0.03172346577048302,
- -0.08282002061605453
- ],
- "orientation_deg": {
- "roll": -0.8540009699523268,
- "pitch": -1.687690658466286,
- "yaw": 0.41964522999376647
- }
- },
- {
- "id": 76,
- "position_mm": [
- -233.68108757123196,
- 89.8256008134266,
- -53.37456435112764
- ],
- "orientation_deg": {
- "roll": -82.62281175614116,
- "pitch": 21.72833387716138,
- "yaw": -125.23144131994759
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5524524450302124,
- -80.26133728027344,
- -0.6613253355026245
- ],
- "orientation_deg": {
- "roll": 0.8918130679867812,
- "pitch": -0.5991361653788677,
- "yaw": -1.3253533967175322
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_annotated.jpg
deleted file mode 100644
index f61b7fb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_overlay.png
deleted file mode 100644
index 3b8a012..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980539344_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980569984.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980569984.jpg
deleted file mode 100644
index 05aba47..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980569984.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.csv
deleted file mode 100644
index cc7e939..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,406.022,-418.671,874.703,-148.832,0.079,22.420
-25,85.800,-165.418,-15.473,-0.500,0.537,32.698
-50,-0.887,0.029,-0.357,-0.473,-0.727,-0.098
-71,139.916,0.032,-0.084,-0.416,-1.205,-0.342
-76,-245.297,99.120,-66.913,-82.462,21.340,-124.137
-101,-1.567,-80.256,-0.670,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.json
deleted file mode 100644
index 9088c0b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:09:30",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.4980626386405396,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 406.02226089483696,
- -418.6712552660541,
- 874.702961748364
- ],
- "orientation_deg": {
- "roll": -148.8316709719182,
- "pitch": 0.07911041389364122,
- "yaw": 22.41989560557773
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.79994201660156,
- -165.41830444335938,
- -15.473142623901367
- ],
- "orientation_deg": {
- "roll": -0.4998197265414741,
- "pitch": 0.5373012621566272,
- "yaw": 32.69800637401363
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8867393732070923,
- 0.028607768937945366,
- -0.3566032350063324
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9158477783203,
- 0.032305534929037094,
- -0.08378536999225616
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -245.29719972871422,
- 99.11987244897152,
- -66.91259409991245
- ],
- "orientation_deg": {
- "roll": -82.46169506498732,
- "pitch": 21.340471538342243,
- "yaw": -124.13681893807534
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5671815872192383,
- -80.25617980957031,
- -0.6699967980384827
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_annotated.jpg
deleted file mode 100644
index 14684fb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_overlay.png
deleted file mode 100644
index 12e9c5b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980569984_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980901068.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980901068.jpg
deleted file mode 100644
index 03b6bf5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980901068.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.csv
deleted file mode 100644
index f6fe0e7..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.374,-163.961,205.883,-108.880,2.486,80.214
-camera2,403.135,-415.019,875.566,-149.037,-0.068,22.509
-25,85.911,-165.238,-15.388,0.073,-0.051,32.536
-50,-0.887,0.027,-0.357,-0.249,-0.913,-0.964
-71,139.916,0.032,-0.084,-0.838,-1.691,0.369
-76,-246.053,99.134,-69.303,0.855,1.361,-106.652
-101,-1.569,-80.261,-0.670,1.120,-0.468,-1.870
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.json
deleted file mode 100644
index cd2d14e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:15:01",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10470444154512791,
- "rms_refs_px_cam2": 1.5117158748544892,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.3742058152818,
- -163.96146853159263,
- 205.88282738680553
- ],
- "orientation_deg": {
- "roll": -108.87954389968016,
- "pitch": 2.485936522198699,
- "yaw": 80.21420245249449
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 403.1352081976637,
- -415.01910782595536,
- 875.5658512547625
- ],
- "orientation_deg": {
- "roll": -149.03738895089663,
- "pitch": -0.06763857015437422,
- "yaw": 22.50909781133314
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.91093444824219,
- -165.2383270263672,
- -15.387611389160156
- ],
- "orientation_deg": {
- "roll": 0.07283931518706545,
- "pitch": -0.05127630788240295,
- "yaw": 32.53631388975194
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.887089729309082,
- 0.02691514417529106,
- -0.35678625106811523
- ],
- "orientation_deg": {
- "roll": -0.2489849258628278,
- "pitch": -0.9129397394588651,
- "yaw": -0.9639371995105751
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91641235351562,
- 0.031903062015771866,
- -0.08380557596683502
- ],
- "orientation_deg": {
- "roll": -0.8384907924978738,
- "pitch": -1.6913249253490417,
- "yaw": 0.36924320962655793
- }
- },
- {
- "id": 76,
- "position_mm": [
- -246.05295786036697,
- 99.13392592804621,
- -69.3028493990564
- ],
- "orientation_deg": {
- "roll": 0.8547595646452077,
- "pitch": 1.360885695684419,
- "yaw": -106.65170294205193
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5687179565429688,
- -80.26070404052734,
- -0.670390784740448
- ],
- "orientation_deg": {
- "roll": 1.1197133546107012,
- "pitch": -0.46754437523895953,
- "yaw": -1.8704866577937547
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_annotated.jpg
deleted file mode 100644
index 67cf0eb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_overlay.png
deleted file mode 100644
index a765d85..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765980901068_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981040869.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981040869.jpg
deleted file mode 100644
index 6d75787..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981040869.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.csv
deleted file mode 100644
index 0dbe025..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,391.850,-423.184,880.046,-148.999,-0.745,22.114
-25,84.906,-165.458,-15.890,-0.226,-0.156,32.867
-50,-0.883,0.026,-0.357,-0.473,-0.727,-0.098
-71,139.917,0.032,-0.084,-0.416,-1.205,-0.342
-76,-266.497,119.614,-103.512,-2.377,2.212,-106.753
-101,-1.551,-80.259,-0.667,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.json
deleted file mode 100644
index 49781d9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:17:21",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.5038758118993447,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 391.8502566523764,
- -423.1840730268623,
- 880.0464063751618
- ],
- "orientation_deg": {
- "roll": -148.99922962278575,
- "pitch": -0.7447827472768946,
- "yaw": 22.114486683205133
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 84.9063491821289,
- -165.45848083496094,
- -15.889650344848633
- ],
- "orientation_deg": {
- "roll": -0.22552596082693432,
- "pitch": -0.1555341972251732,
- "yaw": 32.86746639452312
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8825950026512146,
- 0.026391368359327316,
- -0.356945276260376
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9169464111328,
- 0.031658366322517395,
- -0.08387154340744019
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -266.49737709603215,
- 119.61353903543277,
- -103.51213931223569
- ],
- "orientation_deg": {
- "roll": -2.3770366629355357,
- "pitch": 2.212173477457601,
- "yaw": -106.7532985815327
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5509835481643677,
- -80.25885772705078,
- -0.6668829917907715
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_annotated.jpg
deleted file mode 100644
index 94626a6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_overlay.png
deleted file mode 100644
index cd0c867..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981040869_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981169256.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981169256.jpg
deleted file mode 100644
index e47b6b2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981169256.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.csv
deleted file mode 100644
index 9c8b941..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.110,-161.990,205.989,-108.878,2.540,80.385
-camera2,381.230,-426.132,884.885,-149.189,-1.332,21.870
-25,84.496,-165.612,-16.108,-0.226,-0.156,32.867
-50,-0.877,0.025,-0.356,-0.473,-0.727,-0.098
-71,139.918,0.031,-0.084,-0.416,-1.205,-0.342
-76,-258.657,115.821,-97.107,-0.209,2.751,-107.997
-101,-1.534,-80.259,-0.662,0.854,-0.593,-1.204
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.json
deleted file mode 100644
index cb2c292..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:19:29",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10353467058818223,
- "rms_refs_px_cam2": 1.501241552277118,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.1097075975559,
- -161.98988993752445,
- 205.98860705019194
- ],
- "orientation_deg": {
- "roll": -108.8778742476637,
- "pitch": 2.540385499873529,
- "yaw": 80.38497041932298
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 381.22991511324875,
- -426.1319388603484,
- 884.8850726106757
- ],
- "orientation_deg": {
- "roll": -149.18943954134048,
- "pitch": -1.331864410931766,
- "yaw": 21.86954303963799
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 84.49616241455078,
- -165.61181640625,
- -16.10823631286621
- ],
- "orientation_deg": {
- "roll": -0.22552596082693432,
- "pitch": -0.1555341972251732,
- "yaw": 32.86746639452312
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8774264454841614,
- 0.02505979873239994,
- -0.3559706509113312
- ],
- "orientation_deg": {
- "roll": -0.47309027750085625,
- "pitch": -0.7268008659703271,
- "yaw": -0.09751368982895726
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.91806030273438,
- 0.03135458379983902,
- -0.08362948894500732
- ],
- "orientation_deg": {
- "roll": -0.4160904123485259,
- "pitch": -1.2046252614391775,
- "yaw": -0.34177017054524955
- }
- },
- {
- "id": 76,
- "position_mm": [
- -258.65659453329346,
- 115.82064580196216,
- -97.10702177672937
- ],
- "orientation_deg": {
- "roll": -0.20930229120339292,
- "pitch": 2.7509450189520197,
- "yaw": -107.99747641403283
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.533939242362976,
- -80.2593994140625,
- -0.6616575717926025
- ],
- "orientation_deg": {
- "roll": 0.8537984955837697,
- "pitch": -0.5926825633642909,
- "yaw": -1.2042078369516316
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_annotated.jpg
deleted file mode 100644
index 7c06974..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_overlay.png
deleted file mode 100644
index cd0c867..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981169256_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981186514.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981186514.jpg
deleted file mode 100644
index 1281395..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981186514.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.csv
deleted file mode 100644
index 384fe8a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,656.375,-160.969,205.837,-108.888,2.551,80.451
-camera2,383.908,-430.861,881.724,-148.850,-1.255,21.808
-25,84.481,-165.428,-16.129,-0.386,0.275,32.075
-50,-0.882,0.028,-0.359,-0.486,-0.735,-0.031
-71,139.917,0.032,-0.084,-0.054,-1.874,-0.007
-76,-258.848,116.583,-95.335,-0.486,2.962,-108.065
-101,-1.543,-80.255,-0.667,1.054,-0.467,-1.633
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.json
deleted file mode 100644
index 8ece677..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:19:46",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10323081018486917,
- "rms_refs_px_cam2": 1.5012882871732212,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 656.3753878404416,
- -160.9692413612105,
- 205.8365912335906
- ],
- "orientation_deg": {
- "roll": -108.88790489585088,
- "pitch": 2.5513109119441495,
- "yaw": 80.45054610598149
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 383.9078901230887,
- -430.86113128631496,
- 881.7243312499074
- ],
- "orientation_deg": {
- "roll": -148.85023977421008,
- "pitch": -1.2547944881189836,
- "yaw": 21.80826207467175
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 84.48094940185547,
- -165.4276123046875,
- -16.129226684570312
- ],
- "orientation_deg": {
- "roll": -0.3860930018816559,
- "pitch": 0.2750031723448617,
- "yaw": 32.07495113396037
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.8824436664581299,
- 0.027733569964766502,
- -0.35865268111228943
- ],
- "orientation_deg": {
- "roll": -0.4855232781357615,
- "pitch": -0.7348771065631313,
- "yaw": -0.031333868253007366
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.9169921875,
- 0.03204387426376343,
- -0.08434148132801056
- ],
- "orientation_deg": {
- "roll": -0.05388393616219064,
- "pitch": -1.8740209577044467,
- "yaw": -0.006980379882228693
- }
- },
- {
- "id": 76,
- "position_mm": [
- -258.84849820034503,
- 116.58296531967771,
- -95.33503698204349
- ],
- "orientation_deg": {
- "roll": -0.4861854394318444,
- "pitch": 2.961809456083783,
- "yaw": -108.06489913783622
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.5429656505584717,
- -80.25506591796875,
- -0.6671175956726074
- ],
- "orientation_deg": {
- "roll": 1.0538093472619159,
- "pitch": -0.46681453697329856,
- "yaw": -1.633238224121325
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_annotated.jpg
deleted file mode 100644
index 0e913da..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_overlay.png
deleted file mode 100644
index e183032..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765981186514_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982285131.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982285131.jpg
deleted file mode 100644
index e84d6ae..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982285131.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.csv
deleted file mode 100644
index aa58118..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.858,-162.525,206.666,-108.911,2.532,80.348
-camera2,331.292,-396.049,843.941,-139.098,-1.505,53.406
-25,80.384,-165.594,-17.670,154.835,34.225,140.233
-50,0.587,-0.233,0.145,-0.299,-0.937,-0.828
-71,143.656,-1.309,1.345,-0.577,-1.405,-0.072
-76,-270.542,121.240,-106.623,-8.213,2.395,-105.153
-101,0.817,-80.370,0.154,0.857,-0.627,-1.240
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.json
deleted file mode 100644
index b932057..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:38:05",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10312388094003495,
- "rms_refs_px_cam2": 3.4091090732358307,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.8582387612205,
- -162.52469757845313,
- 206.6660099218064
- ],
- "orientation_deg": {
- "roll": -108.91110630232083,
- "pitch": 2.531933243475713,
- "yaw": 80.34782599321466
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 331.29224268591304,
- -396.04936848472653,
- 843.9408091515312
- ],
- "orientation_deg": {
- "roll": -139.09834237920896,
- "pitch": -1.504781149312902,
- "yaw": 53.405566525591986
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 80.38442374195742,
- -165.59439173168775,
- -17.66955581053034
- ],
- "orientation_deg": {
- "roll": 154.83500288376072,
- "pitch": 34.22483428834232,
- "yaw": 140.23289425895962
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.5868974328041077,
- -0.23316505551338196,
- 0.14529231190681458
- ],
- "orientation_deg": {
- "roll": -0.2992803779536093,
- "pitch": -0.9370437101860315,
- "yaw": -0.8281200665590198
- }
- },
- {
- "id": 71,
- "position_mm": [
- 143.65597534179688,
- -1.3087575435638428,
- 1.3447026014328003
- ],
- "orientation_deg": {
- "roll": -0.5769106839185317,
- "pitch": -1.40494520613725,
- "yaw": -0.07178208083644935
- }
- },
- {
- "id": 76,
- "position_mm": [
- -270.5423503466479,
- 121.24013357730806,
- -106.62331780105715
- ],
- "orientation_deg": {
- "roll": -8.212632655345013,
- "pitch": 2.3951400271898007,
- "yaw": -105.15321148451883
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.8168091177940369,
- -80.36953735351562,
- 0.15403491258621216
- ],
- "orientation_deg": {
- "roll": 0.8573035303257104,
- "pitch": -0.62676135153798,
- "yaw": -1.2399190473190551
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_annotated.jpg
deleted file mode 100644
index dc5197c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_overlay.png
deleted file mode 100644
index 61d4e4d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982285131_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982297163.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982297163.jpg
deleted file mode 100644
index eea6206..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982297163.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.csv
deleted file mode 100644
index 3e27522..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.858,-162.525,206.666,-108.911,2.532,80.348
-camera2,237.830,-380.302,858.613,-147.768,-1.530,25.791
-25,86.601,-165.481,-15.184,-0.242,-0.186,32.832
-50,-0.048,-0.052,-0.044,-0.299,-0.937,-0.828
-71,140.106,-0.072,-0.024,-0.577,-1.405,-0.072
-76,-243.537,105.119,-80.246,-65.911,26.492,-121.570
-101,-0.164,-80.272,-0.155,0.857,-0.627,-1.240
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.json
deleted file mode 100644
index 9d6a0bb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:38:17",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10312388094014413,
- "rms_refs_px_cam2": 0.6236131242428091,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.8582387612204,
- -162.5246975784529,
- 206.66600992180682
- ],
- "orientation_deg": {
- "roll": -108.91110630232086,
- "pitch": 2.531933243475726,
- "yaw": 80.34782599321468
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 237.8304925556231,
- -380.30215719153216,
- 858.6125067692692
- ],
- "orientation_deg": {
- "roll": -147.767683914076,
- "pitch": -1.5295486666100127,
- "yaw": 25.7913524137018
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.60076904296875,
- -165.48101806640625,
- -15.183961868286133
- ],
- "orientation_deg": {
- "roll": -0.24171481214180635,
- "pitch": -0.1857264330462992,
- "yaw": 32.83184069414053
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.04816434904932976,
- -0.052262961864471436,
- -0.04368116706609726
- ],
- "orientation_deg": {
- "roll": -0.2992803779536264,
- "pitch": -0.9370437101860569,
- "yaw": -0.8281200665590154
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.10589599609375,
- -0.07167062163352966,
- -0.023675216361880302
- ],
- "orientation_deg": {
- "roll": -0.5769106839185499,
- "pitch": -1.4049452061372787,
- "yaw": -0.0717820808364446
- }
- },
- {
- "id": 76,
- "position_mm": [
- -243.5369981575593,
- 105.1194008963044,
- -80.2459803542237
- ],
- "orientation_deg": {
- "roll": -65.91147625752627,
- "pitch": 26.492286114261592,
- "yaw": -121.57038090901865
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.16432878375053406,
- -80.27195739746094,
- -0.1551155000925064
- ],
- "orientation_deg": {
- "roll": 0.8573035303256928,
- "pitch": -0.6267613515380054,
- "yaw": -1.2399190473190507
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_annotated.jpg
deleted file mode 100644
index 2274202..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_overlay.png
deleted file mode 100644
index e39dc60..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982297163_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982335864.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982335864.jpg
deleted file mode 100644
index bb8ee46..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982335864.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.csv
deleted file mode 100644
index 006211e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,657.858,-162.525,206.666,-108.911,2.532,80.348
-camera2,233.953,-377.362,861.443,-148.075,-1.628,25.702
-25,86.298,-165.558,-15.216,-0.766,0.359,32.819
-50,-0.048,-0.053,-0.043,-0.299,-0.937,-0.828
-71,140.106,-0.072,-0.023,-0.577,-1.405,-0.072
-76,-242.943,105.042,-81.245,-65.564,26.409,-121.513
-101,-0.163,-80.273,-0.153,0.857,-0.627,-1.240
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.json
deleted file mode 100644
index c10f4f9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:38:56",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.10312388094014413,
- "rms_refs_px_cam2": 0.6238313205076397,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 657.8582387612204,
- -162.5246975784529,
- 206.66600992180682
- ],
- "orientation_deg": {
- "roll": -108.91110630232086,
- "pitch": 2.531933243475726,
- "yaw": 80.34782599321468
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 233.9533008967407,
- -377.362257399947,
- 861.4425770036903
- ],
- "orientation_deg": {
- "roll": -148.07463767208142,
- "pitch": -1.628053516366978,
- "yaw": 25.70201454421239
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.29761505126953,
- -165.55772399902344,
- -15.216022491455078
- ],
- "orientation_deg": {
- "roll": -0.7661017999648585,
- "pitch": 0.3585492304115554,
- "yaw": 32.81920622966542
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.04786188527941704,
- -0.05254834145307541,
- -0.043247636407613754
- ],
- "orientation_deg": {
- "roll": -0.2992803779536264,
- "pitch": -0.9370437101860569,
- "yaw": -0.8281200665590154
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.10617065429688,
- -0.07203495502471924,
- -0.023113617673516273
- ],
- "orientation_deg": {
- "roll": -0.5769106839185499,
- "pitch": -1.4049452061372787,
- "yaw": -0.0717820808364446
- }
- },
- {
- "id": 76,
- "position_mm": [
- -242.94284547833678,
- 105.04171052069422,
- -81.24532804376716
- ],
- "orientation_deg": {
- "roll": -65.56365928955863,
- "pitch": 26.40935014731267,
- "yaw": -121.51324758469043
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.1629466414451599,
- -80.27310943603516,
- -0.15339645743370056
- ],
- "orientation_deg": {
- "roll": 0.8573035303256928,
- "pitch": -0.6267613515380054,
- "yaw": -1.2399190473190507
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_annotated.jpg
deleted file mode 100644
index 701cfbf..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_overlay.png
deleted file mode 100644
index 50592e4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982335864_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982346945.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982346945.jpg
deleted file mode 100644
index 8557c93..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982346945.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982356361.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982356361.jpg
deleted file mode 100644
index 775af0b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982356361.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.csv
deleted file mode 100644
index 734cb1d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera1,669.411,-155.709,208.255,-109.122,2.489,78.064
-camera2,247.384,-362.314,874.109,-148.772,-2.716,18.514
-25,85.788,-166.436,-15.350,154.928,34.024,139.968
-50,-0.444,-0.158,-0.228,-0.470,-1.001,0.014
-71,140.003,-0.108,-0.049,-0.595,-2.094,-0.325
-76,-244.073,104.729,-85.617,-2.152,6.215,-106.262
-101,-0.993,-80.602,-0.548,174.994,33.674,165.792
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.json
deleted file mode 100644
index 370759e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:39:16",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028160531041196205,
- "rms_refs_px_cam2": 1.713305518018814,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 669.4110681377601,
- -155.70903220395354,
- 208.2551352622202
- ],
- "orientation_deg": {
- "roll": -109.12181990698049,
- "pitch": 2.4888060494924478,
- "yaw": 78.06379631236706
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 247.38402127252985,
- -362.31401292454984,
- 874.1087327481491
- ],
- "orientation_deg": {
- "roll": -148.77161390243043,
- "pitch": -2.716120289443854,
- "yaw": 18.514334322146507
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.78807830810547,
- -166.43634033203125,
- -15.350037574768066
- ],
- "orientation_deg": {
- "roll": 154.9279560734194,
- "pitch": 34.02352822218062,
- "yaw": 139.96834030876997
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.443737655878067,
- -0.15799662470817566,
- -0.22829534113407135
- ],
- "orientation_deg": {
- "roll": -0.47048705505750094,
- "pitch": -1.001304361044609,
- "yaw": 0.0144415812186396
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00320434570312,
- -0.10813112556934357,
- -0.04866231605410576
- ],
- "orientation_deg": {
- "roll": -0.5952003155123011,
- "pitch": -2.093577792492869,
- "yaw": -0.3251166278212067
- }
- },
- {
- "id": 76,
- "position_mm": [
- -244.07298520422864,
- 104.72931400814711,
- -85.6171447553673
- ],
- "orientation_deg": {
- "roll": -2.1523075775492013,
- "pitch": 6.215309328191616,
- "yaw": -106.26221889629241
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9927346706390381,
- -80.60174560546875,
- -0.54754638671875
- ],
- "orientation_deg": {
- "roll": 174.99406591247197,
- "pitch": 33.67428953267793,
- "yaw": 165.79231039496798
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_annotated.jpg
deleted file mode 100644
index 1ac7602..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_overlay.png
deleted file mode 100644
index f5155c0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982356361_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982577214.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982577214.jpg
deleted file mode 100644
index 27ffc3f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982577214.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.csv
deleted file mode 100644
index 5af1dc0..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,669.63,-156.89,209.65,-109.217,2.535,77.944
-camera 1,247.37,-359.85,873.90,-148.905,-2.660,18.504
-25,85.767,-166.787,-14.960,0.375,-0.714,30.279
-50,-0.444,-0.158,-0.228,-0.352,-1.265,-0.827
-71,140.003,-0.108,-0.048,-0.342,-1.517,0.137
-76,-249.057,109.914,-96.879,-63.064,25.580,-119.376
-101,-0.993,-80.602,-0.547,1.529,-1.247,-1.254
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.json
deleted file mode 100644
index f71294d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:42:57",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02828368083708748,
- "rms_refs_px_cam2": 1.7158242441351332,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 669.6257402092933,
- -156.8878132999455,
- 209.65210465373272
- ],
- "orientation_deg": {
- "roll": -109.21688451048371,
- "pitch": 2.5347008301028904,
- "yaw": 77.9443739125323
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 247.36776211434957,
- -359.84872623725937,
- 873.8973548327978
- ],
- "orientation_deg": {
- "roll": -148.90542514807717,
- "pitch": -2.659869251191552,
- "yaw": 18.503880824316436
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.76654815673828,
- -166.78660583496094,
- -14.960233688354492
- ],
- "orientation_deg": {
- "roll": 0.374821497294804,
- "pitch": -0.7139376423891195,
- "yaw": 30.278816278757827
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4440278112888336,
- -0.1576424390077591,
- -0.22830656170845032
- ],
- "orientation_deg": {
- "roll": -0.3521922301993774,
- "pitch": -1.265298828085867,
- "yaw": -0.8273074422842888
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0033416748047,
- -0.1077849343419075,
- -0.048079777508974075
- ],
- "orientation_deg": {
- "roll": -0.3419157773389505,
- "pitch": -1.5165235774214962,
- "yaw": 0.13748015583606715
- }
- },
- {
- "id": 76,
- "position_mm": [
- -249.05719846465985,
- 109.91382372589092,
- -96.87904295735417
- ],
- "orientation_deg": {
- "roll": -63.063569524222395,
- "pitch": 25.579651031190995,
- "yaw": -119.37591627524188
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9932578802108765,
- -80.6019287109375,
- -0.5472890734672546
- ],
- "orientation_deg": {
- "roll": 1.5288210573419594,
- "pitch": -1.2470274620618738,
- "yaw": -1.2544770090389683
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_annotated.jpg
deleted file mode 100644
index d051fd8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_overlay.png
deleted file mode 100644
index 1908808..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982577214_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982614665.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982614665.jpg
deleted file mode 100644
index 051dfc7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982614665.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.csv
deleted file mode 100644
index 6088278..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.04,-155.86,208.25,-109.150,2.548,78.007
-camera 1,248.92,-354.94,875.25,-149.168,-2.477,18.552
-25,85.64,-166.41,-15.08,0.294,-0.412,30.983
-50,-0.44,-0.16,-0.23,-0.830,-0.950,1.016
-71,140.00,-0.11,-0.05,-0.163,-1.291,-0.122
-76,-239.84,100.47,-78.73,-66.435,24.986,-117.547
-101,-0.99,-80.61,-0.54,1.286,-1.301,-0.664
-128,57.20,-110.14,344.08,10.048,-6.891,21.335
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.json
deleted file mode 100644
index c8c428b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:43:35",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028400930233849448,
- "rms_refs_px_cam2": 1.717865125038411,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.041884645862,
- -155.85789645278658,
- 208.25031945527604
- ],
- "orientation_deg": {
- "roll": -109.15041691608675,
- "pitch": 2.5482091810235223,
- "yaw": 78.00668092145145
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 248.91865792649648,
- -354.9433643207238,
- 875.2505470149903
- ],
- "orientation_deg": {
- "roll": -149.16770206333888,
- "pitch": -2.477388125174754,
- "yaw": 18.552316659967406
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.64376831054688,
- -166.4104461669922,
- -15.076796531677246
- ],
- "orientation_deg": {
- "roll": 0.29437640678931765,
- "pitch": -0.41238042775186573,
- "yaw": 30.98331457951088
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.443421870470047,
- -0.15912683308124542,
- -0.22590044140815735
- ],
- "orientation_deg": {
- "roll": -0.8298134847365337,
- "pitch": -0.9503872672016913,
- "yaw": 1.0164862255490184
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00369262695312,
- -0.10814773291349411,
- -0.04711497202515602
- ],
- "orientation_deg": {
- "roll": -0.16340456498223793,
- "pitch": -1.29086548810585,
- "yaw": -0.12151754343635246
- }
- },
- {
- "id": 76,
- "position_mm": [
- -239.83633300278618,
- 100.47100921057617,
- -78.73376400200283
- ],
- "orientation_deg": {
- "roll": -66.43489120479188,
- "pitch": 24.985520190072375,
- "yaw": -117.54700128308383
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9931367635726929,
- -80.60655212402344,
- -0.5419047474861145
- ],
- "orientation_deg": {
- "roll": 1.285582741797992,
- "pitch": -1.3011452936655432,
- "yaw": -0.664253985921389
- }
- },
- {
- "id": 128,
- "position_mm": [
- 57.19769397951702,
- -110.14373451833941,
- 344.0838373759899
- ],
- "orientation_deg": {
- "roll": 10.047561302244189,
- "pitch": -6.8907814678227055,
- "yaw": 21.334791935979464
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_annotated.jpg
deleted file mode 100644
index 6caf2fc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_overlay.png
deleted file mode 100644
index 70146c9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982614665_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982810098.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982810098.jpg
deleted file mode 100644
index a443805..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982810098.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.csv
deleted file mode 100644
index 08032c9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.88,-155.06,206.67,-109.040,2.409,78.115
-camera 1,243.15,-362.51,872.92,-148.807,-2.953,18.442
-25,85.59,-166.27,-15.71,0.472,-0.409,31.116
-50,-0.44,-0.16,-0.23,-0.376,-0.938,0.060
-71,140.00,-0.11,-0.05,-0.501,-2.030,-0.281
-76,-240.35,102.71,-81.80,-64.164,26.899,-120.963
-101,-0.99,-80.60,-0.55,0.368,-1.373,-1.173
-128,51.51,-108.83,333.74,11.861,-9.087,20.920
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.json
deleted file mode 100644
index 22c8111..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:46:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02820072803355657,
- "rms_refs_px_cam2": 1.7188143396438864,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.8824265410371,
- -155.05791470695195,
- 206.67253443532093
- ],
- "orientation_deg": {
- "roll": -109.04013684175638,
- "pitch": 2.4094256982158786,
- "yaw": 78.11482280592192
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 243.1456978533168,
- -362.51407940486723,
- 872.9182498432617
- ],
- "orientation_deg": {
- "roll": -148.8074275406204,
- "pitch": -2.9533673692617586,
- "yaw": 18.441702098851053
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.59168243408203,
- -166.26568603515625,
- -15.714176177978516
- ],
- "orientation_deg": {
- "roll": 0.47164858711455854,
- "pitch": -0.4089869812302783,
- "yaw": 31.115786276645597
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4436292350292206,
- -0.15811839699745178,
- -0.22791147232055664
- ],
- "orientation_deg": {
- "roll": -0.3759178758509323,
- "pitch": -0.9378976507591612,
- "yaw": 0.06037728989130563
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00326538085938,
- -0.10792146623134613,
- -0.0487079843878746
- ],
- "orientation_deg": {
- "roll": -0.5009621113617212,
- "pitch": -2.029610352583838,
- "yaw": -0.2809707376870065
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.34880875114334,
- 102.70765341415999,
- -81.80364856684996
- ],
- "orientation_deg": {
- "roll": -64.16358692813562,
- "pitch": 26.898761469977902,
- "yaw": -120.96255905624004
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.992073655128479,
- -80.60246276855469,
- -0.5464606285095215
- ],
- "orientation_deg": {
- "roll": 0.3675112364123164,
- "pitch": -1.3732569193255735,
- "yaw": -1.1732351833441987
- }
- },
- {
- "id": 128,
- "position_mm": [
- 51.507748415450195,
- -108.82808211353124,
- 333.74447835592105
- ],
- "orientation_deg": {
- "roll": 11.860635800993276,
- "pitch": -9.087007482769364,
- "yaw": 20.92002888099015
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_annotated.jpg
deleted file mode 100644
index d7e357f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_overlay.png
deleted file mode 100644
index 9e5ef47..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982810098_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982917583.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982917583.jpg
deleted file mode 100644
index d6b3446..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982917583.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.csv
deleted file mode 100644
index 33fac05..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.88,-155.06,206.67,-109.040,2.409,78.115
-camera 1,248.35,-362.23,871.69,-148.719,-2.627,18.443
-25,85.59,-166.32,-15.73,-0.028,-0.635,31.466
-50,-0.45,-0.16,-0.23,-0.670,-0.874,1.117
-71,140.00,-0.11,-0.05,-0.501,-2.030,-0.281
-76,-240.81,102.61,-80.32,-64.476,26.707,-121.098
-101,-1.00,-80.60,-0.55,0.368,-1.373,-1.173
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.json
deleted file mode 100644
index a9d815d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:48:37",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028200728033638052,
- "rms_refs_px_cam2": 1.7186398901566229,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.8824265410373,
- -155.05791470695172,
- 206.67253443532138
- ],
- "orientation_deg": {
- "roll": -109.04013684175641,
- "pitch": 2.4094256982159132,
- "yaw": 78.11482280592195
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 248.35261552968075,
- -362.2262016300951,
- 871.6943970167135
- ],
- "orientation_deg": {
- "roll": -148.71943147381037,
- "pitch": -2.6265487535027896,
- "yaw": 18.443056551676264
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.59269714355469,
- -166.32138061523438,
- -15.730451583862305
- ],
- "orientation_deg": {
- "roll": -0.02794610568217826,
- "pitch": -0.6350560385889537,
- "yaw": 31.46566969274582
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.44648274779319763,
- -0.15719729661941528,
- -0.22855515778064728
- ],
- "orientation_deg": {
- "roll": -0.6697742005346724,
- "pitch": -0.8742707815216154,
- "yaw": 1.1173102651199007
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0025177001953,
- -0.10695965588092804,
- -0.04864918068051338
- ],
- "orientation_deg": {
- "roll": -0.5009621113617622,
- "pitch": -2.02961035258386,
- "yaw": -0.2809707376869922
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.8091067688117,
- 102.61470008859396,
- -80.32232943034067
- ],
- "orientation_deg": {
- "roll": -64.47636823823511,
- "pitch": 26.70746067131459,
- "yaw": -121.09796310433192
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.998935878276825,
- -80.60102844238281,
- -0.5484001040458679
- ],
- "orientation_deg": {
- "roll": 0.36751123641227545,
- "pitch": -1.3732569193255961,
- "yaw": -1.1732351833441845
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_annotated.jpg
deleted file mode 100644
index b669a2f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_overlay.png
deleted file mode 100644
index b5f57fd..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982917583_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982930836.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982930836.jpg
deleted file mode 100644
index b039f10..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982930836.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.csv
deleted file mode 100644
index 364d80e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.31,-155.72,207.36,-109.101,2.464,78.032
-camera 1,244.63,-360.04,874.58,-148.951,-2.840,18.497
-25,85.75,-166.12,-15.33,154.913,33.993,139.927
-50,-0.44,-0.16,-0.23,-0.442,-0.986,-0.019
-71,140.00,-0.11,-0.05,-0.071,-1.260,-0.101
-76,-236.24,98.16,-72.83,-65.722,26.482,-119.916
-101,-0.99,-80.60,-0.55,0.886,-2.045,-1.199
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.json
deleted file mode 100644
index 28268f9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:48:51",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028425336484044744,
- "rms_refs_px_cam2": 1.7188474889058696,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.3105155462462,
- -155.71679762227694,
- 207.3599191391916
- ],
- "orientation_deg": {
- "roll": -109.10117828836869,
- "pitch": 2.4636585871972327,
- "yaw": 78.03175058534644
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 244.62699800271483,
- -360.0393166521015,
- 874.5811200344878
- ],
- "orientation_deg": {
- "roll": -148.95092330537156,
- "pitch": -2.8402626266018096,
- "yaw": 18.4968971890818
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.75117492675781,
- -166.11581420898438,
- -15.3258695602417
- ],
- "orientation_deg": {
- "roll": 154.91291323880768,
- "pitch": 33.99349192100868,
- "yaw": 139.9269890626268
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4435438811779022,
- -0.15879465639591217,
- -0.2274884432554245
- ],
- "orientation_deg": {
- "roll": -0.44161021992337984,
- "pitch": -0.9863358880793744,
- "yaw": -0.01899682213679084
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00352478027344,
- -0.1083608865737915,
- -0.04822985827922821
- ],
- "orientation_deg": {
- "roll": -0.07052079112691668,
- "pitch": -1.2601166712788052,
- "yaw": -0.10066829724302497
- }
- },
- {
- "id": 76,
- "position_mm": [
- -236.24015724104,
- 98.1622527280998,
- -72.83367400167162
- ],
- "orientation_deg": {
- "roll": -65.7220501213767,
- "pitch": 26.48206327479471,
- "yaw": -119.91619359671647
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9918742775917053,
- -80.60435485839844,
- -0.545185923576355
- ],
- "orientation_deg": {
- "roll": 0.8860436957389345,
- "pitch": -2.04480810992197,
- "yaw": -1.1989209820876388
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_annotated.jpg
deleted file mode 100644
index 589ed20..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_overlay.png
deleted file mode 100644
index 7b55ded..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765982930836_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983044369.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983044369.jpg
deleted file mode 100644
index 9c72d31..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983044369.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.csv
deleted file mode 100644
index 3ef7c1f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.90,-156.75,208.76,-109.178,2.447,77.960
-camera 1,247.26,-359.90,873.96,-148.906,-2.676,18.498
-25,85.82,-166.59,-15.34,-0.150,-0.710,31.318
-50,-0.44,-0.16,-0.23,-1.742,-0.686,1.838
-71,140.00,-0.11,-0.05,-0.565,-2.157,-0.428
-76,-240.52,101.87,-80.26,-64.282,26.624,-120.965
-101,-0.99,-80.60,-0.55,0.305,-1.502,-1.321
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.json
deleted file mode 100644
index f7bf5ca..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:50:44",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028197296873898308,
- "rms_refs_px_cam2": 1.7187607339405568,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.8960396574817,
- -156.7548341914854,
- 208.76126278964352
- ],
- "orientation_deg": {
- "roll": -109.1780978089365,
- "pitch": 2.446748193640794,
- "yaw": 77.9595692594307
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 247.25500139925649,
- -359.8970653985967,
- 873.9604521957694
- ],
- "orientation_deg": {
- "roll": -148.90620669359643,
- "pitch": -2.675732123354708,
- "yaw": 18.497513991243796
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.82437133789062,
- -166.58567810058594,
- -15.344846725463867
- ],
- "orientation_deg": {
- "roll": -0.1497189761084762,
- "pitch": -0.7096579626139773,
- "yaw": 31.31768987846559
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.44497746229171753,
- -0.15805305540561676,
- -0.22833649814128876
- ],
- "orientation_deg": {
- "roll": -1.741741295058746,
- "pitch": -0.686176394309579,
- "yaw": 1.8381904534027762
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00323486328125,
- -0.10800918191671371,
- -0.04803669825196266
- ],
- "orientation_deg": {
- "roll": -0.5652996892186938,
- "pitch": -2.157118140174134,
- "yaw": -0.428029382730114
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.5178990757798,
- 101.86860444706602,
- -80.2628789074864
- ],
- "orientation_deg": {
- "roll": -64.28186346113972,
- "pitch": 26.623694041567024,
- "yaw": -120.96485451987267
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9949064254760742,
- -80.60292053222656,
- -0.5471529364585876
- ],
- "orientation_deg": {
- "roll": 0.30519125262200725,
- "pitch": -1.5017508899466334,
- "yaw": -1.3210805570761701
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_annotated.jpg
deleted file mode 100644
index 1f42337..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_overlay.png
deleted file mode 100644
index bffc01a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983044369_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983168563.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983168563.jpg
deleted file mode 100644
index f82c7cf..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983168563.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.csv
deleted file mode 100644
index ab1da4f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.17,-152.77,206.90,-109.091,2.617,78.244
-camera 1,247.15,-360.02,873.97,-148.892,-2.683,18.495
-25,85.73,-166.18,-15.26,0.045,-0.411,31.416
-50,-0.45,-0.16,-0.23,-1.168,-0.308,0.110
-71,140.00,-0.11,-0.05,-0.715,-2.037,-0.142
-76,-234.44,96.35,-68.73,-64.463,28.103,-123.911
-101,-1.00,-80.61,-0.55,0.508,-0.932,-0.532
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.json
deleted file mode 100644
index af8c59e..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:52:48",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02818420679284156,
- "rms_refs_px_cam2": 1.7211608992221252,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.1693433794841,
- -152.7747635295629,
- 206.90405673205674
- ],
- "orientation_deg": {
- "roll": -109.09086905713993,
- "pitch": 2.6174193001935455,
- "yaw": 78.24374154793622
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 247.1523407382409,
- -360.01780861467074,
- 873.9738072572695
- ],
- "orientation_deg": {
- "roll": -148.8923316321762,
- "pitch": -2.683334502482194,
- "yaw": 18.494535488588696
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.726318359375,
- -166.17922973632812,
- -15.264066696166992
- ],
- "orientation_deg": {
- "roll": 0.04466407768260123,
- "pitch": -0.41116683659611986,
- "yaw": 31.4162610039604
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4466259181499481,
- -0.15915727615356445,
- -0.22871114313602448
- ],
- "orientation_deg": {
- "roll": -1.1684013051803115,
- "pitch": -0.3081655962243212,
- "yaw": 0.10987215187171864
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0024871826172,
- -0.10800617933273315,
- -0.04886769875884056
- ],
- "orientation_deg": {
- "roll": -0.7150348582255963,
- "pitch": -2.037401642530865,
- "yaw": -0.14223106018917261
- }
- },
- {
- "id": 76,
- "position_mm": [
- -234.44402426045556,
- 96.3548727011057,
- -68.72828333876724
- ],
- "orientation_deg": {
- "roll": -64.46331130788438,
- "pitch": 28.10260581656289,
- "yaw": -123.91075493578425
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.9997990131378174,
- -80.6060562133789,
- -0.548721194267273
- ],
- "orientation_deg": {
- "roll": 0.5077588194635522,
- "pitch": -0.9316110212589096,
- "yaw": -0.532379040723357
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_annotated.jpg
deleted file mode 100644
index 91ac822..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_overlay.png
deleted file mode 100644
index 6676dcc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983168563_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983229717.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983229717.jpg
deleted file mode 100644
index 4f4439d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983229717.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.csv
deleted file mode 100644
index 9aba21d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.57,-153.50,206.18,-108.993,2.464,78.260
-camera 1,247.86,-371.82,868.31,-148.133,-2.825,18.344
-25,85.54,-166.19,-15.96,-0.435,-0.737,31.885
-50,-0.45,-0.16,-0.23,-0.357,-0.865,0.101
-71,140.00,-0.11,-0.05,-0.183,-1.274,0.435
-76,-239.79,102.80,-76.64,-67.034,25.943,-117.960
-101,-1.01,-80.60,-0.56,0.346,-1.312,-1.072
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.json
deleted file mode 100644
index 0bc432b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:53:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02803541351834978,
- "rms_refs_px_cam2": 1.7192758374871324,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.5672227939564,
- -153.5046162735614,
- 206.18308769750794
- ],
- "orientation_deg": {
- "roll": -108.99344522279885,
- "pitch": 2.4639889039392027,
- "yaw": 78.25997654981533
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 247.8563979355745,
- -371.8194951831652,
- 868.3060573585508
- ],
- "orientation_deg": {
- "roll": -148.13331665730658,
- "pitch": -2.8247957467840585,
- "yaw": 18.343838689233685
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.54365539550781,
- -166.18804931640625,
- -15.958940505981445
- ],
- "orientation_deg": {
- "roll": -0.4347973576405217,
- "pitch": -0.7370621561657256,
- "yaw": 31.885364875290794
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4502018392086029,
- -0.15551365911960602,
- -0.2330283373594284
- ],
- "orientation_deg": {
- "roll": -0.3567108484284237,
- "pitch": -0.8647982967859644,
- "yaw": 0.10068700169698892
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0011444091797,
- -0.10625644773244858,
- -0.05114489421248436
- ],
- "orientation_deg": {
- "roll": -0.18348516505284243,
- "pitch": -1.2742612472562562,
- "yaw": 0.43495375533225905
- }
- },
- {
- "id": 76,
- "position_mm": [
- -239.78544099856651,
- 102.80027148463262,
- -76.6416779794139
- ],
- "orientation_deg": {
- "roll": -67.03385375868896,
- "pitch": 25.9429396836321,
- "yaw": -117.96025201934512
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0061451196670532,
- -80.59558868408203,
- -0.5591506958007812
- ],
- "orientation_deg": {
- "roll": 0.3455116612965378,
- "pitch": -1.3124734804104838,
- "yaw": -1.0716668989077738
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_annotated.jpg
deleted file mode 100644
index 9c4b19b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_overlay.png
deleted file mode 100644
index 6ca36c3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983229717_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983272872.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983272872.jpg
deleted file mode 100644
index c0ddfbb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983272872.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.csv
deleted file mode 100644
index da9033a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.96,-153.28,207.60,-109.124,2.613,78.218
-camera 1,250.74,-364.71,871.35,-148.529,-2.544,18.445
-25,85.77,-166.39,-15.22,0.026,-0.438,31.392
-50,-0.45,-0.16,-0.23,-1.489,-0.283,1.183
-71,140.00,-0.11,-0.05,-0.717,-2.070,-0.166
-76,-240.81,102.60,-78.22,-64.699,26.768,-121.188
-101,-1.01,-80.60,-0.56,0.854,-0.504,-1.002
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.json
deleted file mode 100644
index 64b411a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:54:33",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02816581971389295,
- "rms_refs_px_cam2": 1.721350192992551,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.961754353751,
- -153.27503821427678,
- 207.59576299383545
- ],
- "orientation_deg": {
- "roll": -109.12351403920687,
- "pitch": 2.612535224391062,
- "yaw": 78.21794416348459
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 250.73833380398108,
- -364.71450393448197,
- 871.3465772229941
- ],
- "orientation_deg": {
- "roll": -148.52860745828627,
- "pitch": -2.543720190908679,
- "yaw": 18.444715810299137
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.77005004882812,
- -166.39451599121094,
- -15.224959373474121
- ],
- "orientation_deg": {
- "roll": 0.025912765178763293,
- "pitch": -0.4382913338064064,
- "yaw": 31.39209201885989
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.45035842061042786,
- -0.15727153420448303,
- -0.23177272081375122
- ],
- "orientation_deg": {
- "roll": -1.4885162572985562,
- "pitch": -0.28329993043916407,
- "yaw": 1.183416593850456
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00146484375,
- -0.10700147598981857,
- -0.049946196377277374
- ],
- "orientation_deg": {
- "roll": -0.7168175410860705,
- "pitch": -2.0703281799368605,
- "yaw": -0.16647515639488097
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.8116191680248,
- 102.60459334571914,
- -78.22364501339918
- ],
- "orientation_deg": {
- "roll": -64.69901550027167,
- "pitch": 26.76798048350779,
- "yaw": -121.18786763456227
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0076037645339966,
- -80.60137939453125,
- -0.5561686158180237
- ],
- "orientation_deg": {
- "roll": 0.8536642721160439,
- "pitch": -0.5038253800188582,
- "yaw": -1.001919865596246
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_annotated.jpg
deleted file mode 100644
index ec29394..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_overlay.png
deleted file mode 100644
index 39a842f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983272872_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983284896.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983284896.jpg
deleted file mode 100644
index 259fa31..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983284896.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983289679.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983289679.jpg
deleted file mode 100644
index 25d34a1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983289679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.csv
deleted file mode 100644
index 6fd1985..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.16,-156.60,207.85,-109.117,2.369,78.005
-camera 1,254.37,-359.04,871.66,-148.771,-2.254,18.606
-25,85.88,-166.27,-15.30,0.060,-0.829,33.070
-50,-0.45,-0.16,-0.23,-0.352,-1.022,-0.047
-71,140.00,-0.11,-0.05,0.019,-1.295,-0.129
-76,-241.68,101.66,-78.80,-64.703,26.391,-121.039
-101,-1.00,-80.60,-0.55,0.184,-1.572,-0.785
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.json
deleted file mode 100644
index a00e334..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:54:50",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02841600625549589,
- "rms_refs_px_cam2": 1.7205881560483913,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.1564305295875,
- -156.5961731202692,
- 207.85229684685248
- ],
- "orientation_deg": {
- "roll": -109.11711490756946,
- "pitch": 2.3685608193842413,
- "yaw": 78.00451340200736
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 254.37318761446315,
- -359.03839203023114,
- 871.6643232939423
- ],
- "orientation_deg": {
- "roll": -148.7705354991614,
- "pitch": -2.254278173806264,
- "yaw": 18.605632964055125
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.87989807128906,
- -166.27001953125,
- -15.304390907287598
- ],
- "orientation_deg": {
- "roll": 0.059869686797500786,
- "pitch": -0.8294122174997887,
- "yaw": 33.06965448902152
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.44613268971443176,
- -0.15766236186027527,
- -0.22784166038036346
- ],
- "orientation_deg": {
- "roll": -0.3518557052785968,
- "pitch": -1.02160216710634,
- "yaw": -0.04713482123561387
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0032958984375,
- -0.10765816271305084,
- -0.04779952019453049
- ],
- "orientation_deg": {
- "roll": 0.019292585607727383,
- "pitch": -1.2952546578713062,
- "yaw": -0.12923630389561233
- }
- },
- {
- "id": 76,
- "position_mm": [
- -241.67510111852408,
- 101.65607597934529,
- -78.80335332535515
- ],
- "orientation_deg": {
- "roll": -64.70266467778715,
- "pitch": 26.390896231367144,
- "yaw": -121.03870999097859
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.000353217124939,
- -80.6032943725586,
- -0.5476805567741394
- ],
- "orientation_deg": {
- "roll": 0.18404662741157019,
- "pitch": -1.57180183457683,
- "yaw": -0.7850990063989828
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_annotated.jpg
deleted file mode 100644
index 4779c60..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_overlay.png
deleted file mode 100644
index 5e657c9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983289679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983300286.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983300286.jpg
deleted file mode 100644
index eaaec02..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983300286.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.csv
deleted file mode 100644
index 3090068..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.92,-156.75,208.04,-109.134,2.445,77.964
-camera 1,250.83,-362.23,871.07,-148.660,-2.472,18.440
-25,85.67,-166.59,-15.23,0.122,-0.571,31.152
-50,-0.45,-0.16,-0.23,-0.430,-1.023,-0.085
-71,140.00,-0.11,-0.05,0.128,-1.476,-0.786
-76,-241.07,102.73,-79.48,-64.639,26.628,-121.171
-101,-1.00,-80.60,-0.55,0.803,-0.674,-0.762
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.json
deleted file mode 100644
index b6771b5..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:55:00",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02850954489474135,
- "rms_refs_px_cam2": 1.7209535863565424,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.9191868209715,
- -156.7453691637325,
- 208.0377833648449
- ],
- "orientation_deg": {
- "roll": -109.13430384754392,
- "pitch": 2.4450553465618627,
- "yaw": 77.96406965629879
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 250.82762984728558,
- -362.2279209900859,
- 871.0693542614655
- ],
- "orientation_deg": {
- "roll": -148.660266510794,
- "pitch": -2.472409212397597,
- "yaw": 18.440413699019743
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.67264556884766,
- -166.59120178222656,
- -15.230868339538574
- ],
- "orientation_deg": {
- "roll": 0.12199164063858535,
- "pitch": -0.5708453315208712,
- "yaw": 31.151591251827583
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4477851986885071,
- -0.15659864246845245,
- -0.22972334921360016
- ],
- "orientation_deg": {
- "roll": -0.4302609266674103,
- "pitch": -1.022565766091668,
- "yaw": -0.08545815237709921
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00254821777344,
- -0.10683971643447876,
- -0.04863251745700836
- ],
- "orientation_deg": {
- "roll": 0.12786948702582587,
- "pitch": -1.4758741798264594,
- "yaw": -0.7863426727456919
- }
- },
- {
- "id": 76,
- "position_mm": [
- -241.07219496365616,
- 102.73445235572531,
- -79.47609737734595
- ],
- "orientation_deg": {
- "roll": -64.63856833195261,
- "pitch": 26.628445951456357,
- "yaw": -121.1707727515409
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0017588138580322,
- -80.60014343261719,
- -0.5511054396629333
- ],
- "orientation_deg": {
- "roll": 0.8025300719859428,
- "pitch": -0.6742314744569283,
- "yaw": -0.7623910484293689
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_annotated.jpg
deleted file mode 100644
index 67d2429..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_overlay.png
deleted file mode 100644
index 1f9f9ef..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983300286_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983308213.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983308213.jpg
deleted file mode 100644
index 9c3515d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983308213.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.csv
deleted file mode 100644
index b463455..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.62,-155.20,207.56,-109.089,2.494,78.090
-camera 1,254.37,-359.04,871.66,-148.771,-2.254,18.606
-25,85.88,-166.24,-15.26,154.935,34.016,140.014
-50,-0.45,-0.16,-0.23,-0.469,-0.968,0.039
-71,140.00,-0.11,-0.05,-0.594,-2.061,-0.301
-76,-241.68,101.66,-78.80,-64.703,26.391,-121.039
-101,-1.00,-80.60,-0.55,0.763,-0.620,-0.638
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.json
deleted file mode 100644
index 344438b..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:55:08",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02817892157092051,
- "rms_refs_px_cam2": 1.7205881560483913,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.6174664090123,
- -155.19924293833685,
- 207.5607349216386
- ],
- "orientation_deg": {
- "roll": -109.08916320392417,
- "pitch": 2.4939936318382974,
- "yaw": 78.0898854927539
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 254.37318761446315,
- -359.03839203023114,
- 871.6643232939423
- ],
- "orientation_deg": {
- "roll": -148.7705354991614,
- "pitch": -2.254278173806264,
- "yaw": 18.605632964055125
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.88031005859375,
- -166.239990234375,
- -15.26122760772705
- ],
- "orientation_deg": {
- "roll": 154.9351065862485,
- "pitch": 34.015525456617965,
- "yaw": 140.01430140511917
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.44678908586502075,
- -0.15793786942958832,
- -0.22800377011299133
- ],
- "orientation_deg": {
- "roll": -0.4688065720873715,
- "pitch": -0.9683114390511262,
- "yaw": 0.03908231038636571
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00291442871094,
- -0.1075807586312294,
- -0.0480477511882782
- ],
- "orientation_deg": {
- "roll": -0.5937146697536041,
- "pitch": -2.0605754918690535,
- "yaw": -0.3005008612757036
- }
- },
- {
- "id": 76,
- "position_mm": [
- -241.67510111852408,
- 101.65607597934529,
- -78.80335332535515
- ],
- "orientation_deg": {
- "roll": -64.70266467778715,
- "pitch": 26.390896231367144,
- "yaw": -121.03870999097859
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.002105474472046,
- -80.60404205322266,
- -0.5482209324836731
- ],
- "orientation_deg": {
- "roll": 0.7633493423486187,
- "pitch": -0.6204363377703108,
- "yaw": -0.6380775730644446
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_annotated.jpg
deleted file mode 100644
index 7869b27..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_overlay.png
deleted file mode 100644
index 53fb674..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983308213_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983318221.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983318221.jpg
deleted file mode 100644
index 3a98c7b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983318221.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.csv
deleted file mode 100644
index f623787..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.05,-153.65,206.70,-109.065,2.515,78.202
-camera 1,249.26,-367.11,869.71,-148.389,-2.655,18.390
-25,85.58,-166.22,-15.46,0.137,-0.463,31.372
-50,-0.45,-0.16,-0.23,-0.801,-1.204,0.911
-71,140.00,-0.11,-0.05,-0.290,-1.373,0.387
-76,-240.88,103.39,-79.02,-64.737,26.943,-121.253
-101,-1.01,-80.60,-0.56,0.748,-0.593,-0.527
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.json
deleted file mode 100644
index 5821092..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:55:18",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028314644300649356,
- "rms_refs_px_cam2": 1.7213157206320782,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.0502644259649,
- -153.6529163276419,
- 206.69782379546655
- ],
- "orientation_deg": {
- "roll": -109.0653145162892,
- "pitch": 2.5146778026792513,
- "yaw": 78.20152139315742
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 249.25804931933303,
- -367.11332338289066,
- 869.7129496914637
- ],
- "orientation_deg": {
- "roll": -148.38927562752295,
- "pitch": -2.654868519615817,
- "yaw": 18.39038777051004
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.57723999023438,
- -166.2179412841797,
- -15.464427947998047
- ],
- "orientation_deg": {
- "roll": 0.1370634678558588,
- "pitch": -0.4628426593183752,
- "yaw": 31.37219200629401
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4497600495815277,
- -0.1563960313796997,
- -0.23189467191696167
- ],
- "orientation_deg": {
- "roll": -0.8010329104916979,
- "pitch": -1.2037479140044816,
- "yaw": 0.911387667258679
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00157165527344,
- -0.10658437758684158,
- -0.050248824059963226
- ],
- "orientation_deg": {
- "roll": -0.29035648880849374,
- "pitch": -1.372742014727434,
- "yaw": 0.3866511333683544
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.88052996762303,
- 103.38645435240213,
- -79.01579665980007
- ],
- "orientation_deg": {
- "roll": -64.73721097066182,
- "pitch": 26.942812402489505,
- "yaw": -121.25313132917003
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0061888694763184,
- -80.59893798828125,
- -0.5566652417182922
- ],
- "orientation_deg": {
- "roll": 0.747720272016331,
- "pitch": -0.593027060714692,
- "yaw": -0.5273182403883392
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_annotated.jpg
deleted file mode 100644
index 1df7297..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_overlay.png
deleted file mode 100644
index ac5efaf..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983318221_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983328113.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983328113.jpg
deleted file mode 100644
index 16b9eb8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983328113.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.csv
deleted file mode 100644
index 984ffb8..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.49,-155.20,207.37,-109.100,2.480,78.083
-camera 1,249.26,-367.11,869.71,-148.389,-2.655,18.390
-25,85.61,-166.36,-15.38,0.139,-0.512,31.255
-50,-0.45,-0.16,-0.23,-0.620,-1.115,0.420
-71,140.00,-0.11,-0.05,-0.086,-1.255,-0.049
-76,-240.88,103.39,-79.02,-64.737,26.943,-121.253
-101,-1.00,-80.60,-0.56,0.775,-0.634,-0.645
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.json
deleted file mode 100644
index c83a0cb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:55:28",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028412008384277574,
- "rms_refs_px_cam2": 1.7213157206320782,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.4876707215351,
- -155.19534330718096,
- 207.36773654057316
- ],
- "orientation_deg": {
- "roll": -109.09983576455463,
- "pitch": 2.479996652092934,
- "yaw": 78.08296694741996
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 249.25804931933303,
- -367.11332338289066,
- 869.7129496914637
- ],
- "orientation_deg": {
- "roll": -148.38927562752295,
- "pitch": -2.654868519615817,
- "yaw": 18.39038777051004
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.6149673461914,
- -166.357177734375,
- -15.38212776184082
- ],
- "orientation_deg": {
- "roll": 0.1387604088512323,
- "pitch": -0.5117237063068634,
- "yaw": 31.255127321756472
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4492000341415405,
- -0.15609584748744965,
- -0.23187202215194702
- ],
- "orientation_deg": {
- "roll": -0.6197580034085601,
- "pitch": -1.1153672897861162,
- "yaw": 0.42040252896301905
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0018768310547,
- -0.10668907314538956,
- -0.05000776797533035
- ],
- "orientation_deg": {
- "roll": -0.08623757945053535,
- "pitch": -1.2554440951382706,
- "yaw": -0.04916484208117761
- }
- },
- {
- "id": 76,
- "position_mm": [
- -240.88052996762303,
- 103.38645435240213,
- -79.01579665980007
- ],
- "orientation_deg": {
- "roll": -64.73721097066182,
- "pitch": 26.942812402489505,
- "yaw": -121.25313132917003
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0045270919799805,
- -80.59809875488281,
- -0.5563613176345825
- ],
- "orientation_deg": {
- "roll": 0.774992807126804,
- "pitch": -0.6336291572284581,
- "yaw": -0.6446604290198735
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_annotated.jpg
deleted file mode 100644
index bdb592a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_overlay.png
deleted file mode 100644
index 6855288..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983328113_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983393320.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983393320.jpg
deleted file mode 100644
index a5c9ae1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983393320.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.csv
deleted file mode 100644
index 67e2cec..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,667.92,-156.75,208.04,-109.134,2.445,77.964
-camera 1,251.80,-367.00,869.08,-148.345,-2.495,18.391
-25,85.65,-166.52,-15.31,0.141,-0.561,31.138
-50,-0.45,-0.16,-0.23,-0.430,-1.023,-0.085
-71,140.00,-0.11,-0.05,0.128,-1.476,-0.786
-76,-241.10,103.35,-78.29,-64.891,26.850,-121.320
-101,-1.01,-80.60,-0.56,0.803,-0.674,-0.762
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.json
deleted file mode 100644
index e7d7096..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:56:33",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02850954489474135,
- "rms_refs_px_cam2": 1.7212295339523151,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 667.9191868209715,
- -156.7453691637325,
- 208.0377833648449
- ],
- "orientation_deg": {
- "roll": -109.13430384754392,
- "pitch": 2.4450553465618627,
- "yaw": 77.96406965629879
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 251.79711690056877,
- -366.9968938993937,
- 869.0818247521999
- ],
- "orientation_deg": {
- "roll": -148.3447109400195,
- "pitch": -2.4951902654936386,
- "yaw": 18.39072872555171
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.65408325195312,
- -166.52464294433594,
- -15.307549476623535
- ],
- "orientation_deg": {
- "roll": 0.14068156335267307,
- "pitch": -0.5607447202079343,
- "yaw": 31.137693004956972
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.45007169246673584,
- -0.1553199291229248,
- -0.2321808636188507
- ],
- "orientation_deg": {
- "roll": -0.4302609266674103,
- "pitch": -1.022565766091668,
- "yaw": -0.08545815237709921
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00184631347656,
- -0.10631442815065384,
- -0.04974232241511345
- ],
- "orientation_deg": {
- "roll": 0.12786948702582587,
- "pitch": -1.4758741798264594,
- "yaw": -0.7863426727456919
- }
- },
- {
- "id": 76,
- "position_mm": [
- -241.1003078405271,
- 103.34823686938516,
- -78.29333248664861
- ],
- "orientation_deg": {
- "roll": -64.89112971275607,
- "pitch": 26.84987998698546,
- "yaw": -121.3204176709653
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0063066482543945,
- -80.59651184082031,
- -0.5570535659790039
- ],
- "orientation_deg": {
- "roll": 0.8025300719859428,
- "pitch": -0.6742314744569283,
- "yaw": -0.7623910484293689
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_annotated.jpg
deleted file mode 100644
index f9ab924..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_overlay.png
deleted file mode 100644
index 4197ba7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983393320_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983489899.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983489899.jpg
deleted file mode 100644
index aa0d76d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983489899.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.csv
deleted file mode 100644
index a4365e9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,669.01,-155.84,208.95,-109.182,2.560,78.032
-camera 1,244.79,-367.98,871.22,-148.458,-2.903,18.285
-25,85.43,-166.76,-15.12,0.025,-0.517,31.209
-50,-0.45,-0.16,-0.23,-0.999,-1.110,1.407
-71,140.00,-0.11,-0.05,-0.181,-1.319,-0.095
-76,-243.56,107.07,-86.74,-65.067,25.936,-118.822
-101,-1.00,-80.60,-0.56,0.917,-1.241,0.489
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.json
deleted file mode 100644
index 48348e9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:58:10",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028372511897889127,
- "rms_refs_px_cam2": 1.718869117780858,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 669.0114894977039,
- -155.8444142197801,
- 208.95427024334495
- ],
- "orientation_deg": {
- "roll": -109.18179965468835,
- "pitch": 2.559500739889684,
- "yaw": 78.03180172521961
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 244.78721598986957,
- -367.984994205282,
- 871.2188186099534
- ],
- "orientation_deg": {
- "roll": -148.4578249767481,
- "pitch": -2.9033152261009123,
- "yaw": 18.285037554350684
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.42964172363281,
- -166.7587127685547,
- -15.121360778808594
- ],
- "orientation_deg": {
- "roll": 0.024748297470326114,
- "pitch": -0.5170415562318312,
- "yaw": 31.208589089664912
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.44849956035614014,
- -0.1559777408838272,
- -0.23266029357910156
- ],
- "orientation_deg": {
- "roll": -0.9992948289458112,
- "pitch": -1.1097574418243432,
- "yaw": 1.4066593192437848
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00177001953125,
- -0.10670822113752365,
- -0.050302259624004364
- ],
- "orientation_deg": {
- "roll": -0.18090931185998668,
- "pitch": -1.3192232549669394,
- "yaw": -0.09459969760593934
- }
- },
- {
- "id": 76,
- "position_mm": [
- -243.55795160239808,
- 107.06947978457465,
- -86.73999444361668
- ],
- "orientation_deg": {
- "roll": -65.06746811162343,
- "pitch": 25.9364885798087,
- "yaw": -118.82214511070238
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0007325410842896,
- -80.59693908691406,
- -0.556881844997406
- ],
- "orientation_deg": {
- "roll": 0.9167454154930219,
- "pitch": -1.2414936174334168,
- "yaw": 0.4890097521958377
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_annotated.jpg
deleted file mode 100644
index eaadba0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_overlay.png
deleted file mode 100644
index 25476a1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983489899_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983500713.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983500713.jpg
deleted file mode 100644
index 9a72c3d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983500713.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.csv
deleted file mode 100644
index 031d34c..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.56,-154.83,207.76,-109.106,2.584,78.091
-camera 1,248.25,-362.35,871.71,-148.706,-2.634,18.440
-25,85.65,-166.41,-15.16,0.059,-0.445,31.264
-50,-0.45,-0.16,-0.23,-0.854,-0.899,1.099
-71,140.00,-0.11,-0.05,-0.685,-2.059,-0.295
-76,-244.24,106.14,-87.36,-65.070,25.571,-118.680
-101,-1.00,-80.60,-0.55,1.259,-1.250,-0.581
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.json
deleted file mode 100644
index 16f78f0..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:58:21",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02816991749156176,
- "rms_refs_px_cam2": 1.7210397981360237,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.5588615190105,
- -154.83025551492867,
- 207.75692118682656
- ],
- "orientation_deg": {
- "roll": -109.10564257558977,
- "pitch": 2.583855980722102,
- "yaw": 78.09097382796138
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 248.25130087009154,
- -362.3455884345748,
- 871.707723611574
- ],
- "orientation_deg": {
- "roll": -148.7056001768513,
- "pitch": -2.634052785705389,
- "yaw": 18.440094364360625
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 85.65282440185547,
- -166.4070281982422,
- -15.156118392944336
- ],
- "orientation_deg": {
- "roll": 0.059044344380885794,
- "pitch": -0.4448940271416676,
- "yaw": 31.264056191835802
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4472808241844177,
- -0.1574333757162094,
- -0.22968439757823944
- ],
- "orientation_deg": {
- "roll": -0.8544798245730169,
- "pitch": -0.898781573420967,
- "yaw": 1.0991725757234925
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.0023956298828,
- -0.10722088813781738,
- -0.048988062888383865
- ],
- "orientation_deg": {
- "roll": -0.6851106345097696,
- "pitch": -2.0586145716918165,
- "yaw": -0.2953978431844419
- }
- },
- {
- "id": 76,
- "position_mm": [
- -244.24294072737604,
- 106.13560015266188,
- -87.36351535283637
- ],
- "orientation_deg": {
- "roll": -65.06958989868546,
- "pitch": 25.57077311534565,
- "yaw": -118.67997877403438
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.000770926475525,
- -80.60189056396484,
- -0.5510175228118896
- ],
- "orientation_deg": {
- "roll": 1.2594102113740222,
- "pitch": -1.2502851352308513,
- "yaw": -0.5813829657039165
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_annotated.jpg
deleted file mode 100644
index 3cacb87..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_overlay.png
deleted file mode 100644
index 208f546..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983500713_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983532340.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983532340.jpg
deleted file mode 100644
index 96c4250..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983532340.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.csv
deleted file mode 100644
index c8850d5..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,670.15,-155.85,209.15,-109.171,2.574,78.039
-camera 1,257.68,-351.57,874.48,-149.181,-1.941,18.711
-25,86.14,-166.68,-14.87,0.022,-0.500,31.215
-50,-0.45,-0.16,-0.23,-0.859,-0.965,1.050
-71,140.00,-0.11,-0.05,-0.319,-2.139,-1.275
-76,-253.26,110.55,-100.22,-61.506,26.082,-119.456
-101,-1.00,-80.61,-0.54,1.271,-1.312,-0.659
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.json
deleted file mode 100644
index 08dea5a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 14:58:52",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.028139097922207954,
- "rms_refs_px_cam2": 1.720261241863754,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 670.1472058890698,
- -155.84854088631806,
- 209.15085733668926
- ],
- "orientation_deg": {
- "roll": -109.17118547004056,
- "pitch": 2.5737139667805247,
- "yaw": 78.03872367220995
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 257.68139070839555,
- -351.5660782965805,
- 874.4818955116442
- ],
- "orientation_deg": {
- "roll": -149.1810179861491,
- "pitch": -1.941318668936377,
- "yaw": 18.71132314397387
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 86.13714599609375,
- -166.67730712890625,
- -14.866710662841797
- ],
- "orientation_deg": {
- "roll": 0.02163865780692443,
- "pitch": -0.499583557628368,
- "yaw": 31.21506331281654
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.4462606608867645,
- -0.15937520563602448,
- -0.22578805685043335
- ],
- "orientation_deg": {
- "roll": -0.8593386068998002,
- "pitch": -0.9648605675045906,
- "yaw": 1.0499504145112195
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.00335693359375,
- -0.1080385223031044,
- -0.046485960483551025
- ],
- "orientation_deg": {
- "roll": -0.31916089027434813,
- "pitch": -2.1386031153067053,
- "yaw": -1.2751686091374819
- }
- },
- {
- "id": 76,
- "position_mm": [
- -253.25516868987452,
- 110.54822256686909,
- -100.21726653957819
- ],
- "orientation_deg": {
- "roll": -61.50635977168335,
- "pitch": 26.082454313977728,
- "yaw": -119.45569748351704
- }
- },
- {
- "id": 101,
- "position_mm": [
- -1.0014339685440063,
- -80.6087875366211,
- -0.5425388216972351
- ],
- "orientation_deg": {
- "roll": 1.2713880105880608,
- "pitch": -1.312227900835384,
- "yaw": -0.6585811642716696
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_annotated.jpg
deleted file mode 100644
index 0fa8be4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_overlay.png
deleted file mode 100644
index 0d82ee1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983532340_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983824183.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983824183.jpg
deleted file mode 100644
index 69ef7b6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983824183.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.csv
deleted file mode 100644
index 27967fd..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,668.38,-155.35,207.75,-109.116,2.570,78.049
-camera 1,271.59,-402.27,852.76,-147.519,0.915,32.786
-25,87.44,-165.28,-14.13,0.302,-0.355,31.055
-50,0.01,-0.01,-0.00,-1.480,-0.296,1.070
-71,140.16,-0.09,0.03,-1.040,-1.406,-0.645
-76,-254.99,113.56,-92.24,-67.766,26.522,-122.937
-101,0.00,-80.07,-0.04,0.683,-0.632,-0.677
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.json
deleted file mode 100644
index 9bfefd9..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:03:44",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.02824258371670517,
- "rms_refs_px_cam2": 0.23574290313476617,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 668.3822449668897,
- -155.35275515738925,
- 207.74629822953895
- ],
- "orientation_deg": {
- "roll": -109.11627229595526,
- "pitch": 2.5703902229488462,
- "yaw": 78.04917855310059
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 271.5895341626382,
- -402.2681603381549,
- 852.7587123359191
- ],
- "orientation_deg": {
- "roll": -147.51949079086936,
- "pitch": 0.9150001131346506,
- "yaw": 32.78626680715808
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 87.43780517578125,
- -165.28060913085938,
- -14.126185417175293
- ],
- "orientation_deg": {
- "roll": 0.3020506004090831,
- "pitch": -0.3548293903765205,
- "yaw": 31.054580069044444
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.005559829995036125,
- -0.008458945900201797,
- -0.002258898224681616
- ],
- "orientation_deg": {
- "roll": -1.4797534807542387,
- "pitch": -0.2958236275790131,
- "yaw": 1.07023133722009
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.15623474121094,
- -0.09364519268274307,
- 0.02749498561024666
- ],
- "orientation_deg": {
- "roll": -1.0401738716839446,
- "pitch": -1.4055297761584484,
- "yaw": -0.6453590418186615
- }
- },
- {
- "id": 76,
- "position_mm": [
- -254.9899708500236,
- 113.56356883330443,
- -92.23669032198589
- ],
- "orientation_deg": {
- "roll": -67.7660392651273,
- "pitch": 26.521515605181428,
- "yaw": -122.937434938833
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.0036676933523267508,
- -80.07380676269531,
- -0.037211641669273376
- ],
- "orientation_deg": {
- "roll": 0.6831276538045602,
- "pitch": -0.632062038846384,
- "yaw": -0.6767099991536859
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_annotated.jpg
deleted file mode 100644
index c2d169a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_overlay.png
deleted file mode 100644
index 5e522c7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983824183_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983927709.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983927709.jpg
deleted file mode 100644
index 200a54f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983927709.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.csv
deleted file mode 100644
index 8d92117..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,569.04,-124.16,206.60,-108.979,2.574,80.635
-camera 1,205.62,-388.72,848.54,-146.660,1.977,35.803
-25,-8.60,-162.27,-13.90,-0.436,-0.952,22.496
-50,0.07,-0.05,0.00,-0.400,-0.863,-1.670
-71,141.49,-0.56,0.57,-0.183,-1.575,-0.177
-76,-366.15,97.07,-76.39,-72.814,25.389,-121.978
-101,0.20,-80.16,0.01,1.572,-1.233,-0.290
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.json
deleted file mode 100644
index 849448f..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:05:27",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.14351129243903124,
- "rms_refs_px_cam2": 1.4967904182185592,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 569.0369036620683,
- -124.15687882282275,
- 206.59804729112454
- ],
- "orientation_deg": {
- "roll": -108.97853395167728,
- "pitch": 2.5741691809094522,
- "yaw": 80.6346986686427
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 205.6168889140773,
- -388.72123464610684,
- 848.535861076145
- ],
- "orientation_deg": {
- "roll": -146.66017587506124,
- "pitch": 1.9771463988423426,
- "yaw": 35.80258880806752
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -8.600593566894531,
- -162.27052307128906,
- -13.895493507385254
- ],
- "orientation_deg": {
- "roll": -0.4358599906819304,
- "pitch": -0.9516676064549121,
- "yaw": 22.49627494712634
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.07024721801280975,
- -0.051604799926280975,
- 0.004460922442376614
- ],
- "orientation_deg": {
- "roll": -0.399807808002315,
- "pitch": -0.8625894508999102,
- "yaw": -1.6696659149637045
- }
- },
- {
- "id": 71,
- "position_mm": [
- 141.49057006835938,
- -0.5644364953041077,
- 0.5693132281303406
- ],
- "orientation_deg": {
- "roll": -0.18310930318846133,
- "pitch": -1.5754285720279326,
- "yaw": -0.1770805392881687
- }
- },
- {
- "id": 76,
- "position_mm": [
- -366.1483340424483,
- 97.06872352618345,
- -76.39438634981121
- ],
- "orientation_deg": {
- "roll": -72.81395701026862,
- "pitch": 25.388883717413396,
- "yaw": -121.97763864630427
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.2028406858444214,
- -80.1559066772461,
- 0.013326609507203102
- ],
- "orientation_deg": {
- "roll": 1.572451295209905,
- "pitch": -1.2330248953503353,
- "yaw": -0.2903351303518448
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_annotated.jpg
deleted file mode 100644
index f548917..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_overlay.png
deleted file mode 100644
index 012516c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983927709_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983937679.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983937679.jpg
deleted file mode 100644
index e597910..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983937679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.csv
deleted file mode 100644
index 8583018..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,568.67,-122.71,206.13,-108.953,2.685,80.727
-camera 1,183.06,-398.22,846.81,-146.946,0.583,35.304
-25,-8.65,-162.33,-13.72,-0.765,-0.979,22.899
-50,0.07,-0.05,0.00,-0.506,-0.822,-1.577
-71,141.47,-0.56,0.55,0.338,-1.153,0.809
-76,-363.39,101.75,-85.83,-71.929,26.569,-122.082
-101,0.20,-80.15,0.01,2.154,-1.930,-0.760
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.json
deleted file mode 100644
index 9bcd0ea..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:05:37",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1426233260567534,
- "rms_refs_px_cam2": 1.4962449115500238,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 568.6660827834017,
- -122.71355933549371,
- 206.1301147308091
- ],
- "orientation_deg": {
- "roll": -108.95263515849281,
- "pitch": 2.684802907744183,
- "yaw": 80.72734449615342
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 183.0638267708623,
- -398.2198069942088,
- 846.8116762974388
- ],
- "orientation_deg": {
- "roll": -146.94565942804326,
- "pitch": 0.5827392822238056,
- "yaw": 35.304344771099785
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -8.652523040771484,
- -162.3345184326172,
- -13.717430114746094
- ],
- "orientation_deg": {
- "roll": -0.7653830961973885,
- "pitch": -0.9791888371941537,
- "yaw": 22.89890144207381
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.06726425141096115,
- -0.050072021782398224,
- 0.0028339396230876446
- ],
- "orientation_deg": {
- "roll": -0.5059919670261163,
- "pitch": -0.8221355410056834,
- "yaw": -1.5766471853459731
- }
- },
- {
- "id": 71,
- "position_mm": [
- 141.4706573486328,
- -0.5578001737594604,
- 0.5536985397338867
- ],
- "orientation_deg": {
- "roll": 0.338470776474935,
- "pitch": -1.1528801915075981,
- "yaw": 0.8092114841801258
- }
- },
- {
- "id": 76,
- "position_mm": [
- -363.3887116445976,
- 101.74959882154056,
- -85.83162784115228
- ],
- "orientation_deg": {
- "roll": -71.92894776334019,
- "pitch": 26.5691021007591,
- "yaw": -122.08180760832083
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.19694916903972626,
- -80.15333557128906,
- 0.009608895517885685
- ],
- "orientation_deg": {
- "roll": 2.15391133557436,
- "pitch": -1.9301550166146246,
- "yaw": -0.7596463712663445
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_annotated.jpg
deleted file mode 100644
index 25d2f98..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_overlay.png
deleted file mode 100644
index 0d31a71..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765983937679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984026346.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984026346.jpg
deleted file mode 100644
index d3a5467..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984026346.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.csv
deleted file mode 100644
index ecfd138..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,568.13,-122.28,205.77,-108.943,2.621,80.792
-camera 1,127.62,-391.84,870.32,-145.616,0.865,9.369
-25,-30.79,-164.09,-22.51,-0.457,-0.897,22.652
-50,-0.12,-0.17,-0.13,-0.601,-0.968,-1.153
-71,140.20,-0.24,-0.07,0.021,-0.707,0.825
-76,-348.28,93.33,-75.00,-65.016,28.754,-118.071
-101,-0.34,-80.63,-0.39,1.666,-1.390,-0.665
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.json
deleted file mode 100644
index cca6529..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:07:06",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.14295403278145988,
- "rms_refs_px_cam2": 1.499254903688206,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 568.1319651930938,
- -122.2764169862242,
- 205.76880215637294
- ],
- "orientation_deg": {
- "roll": -108.94300664030993,
- "pitch": 2.6211805608075998,
- "yaw": 80.79156592531527
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 127.61774983085807,
- -391.8365019326236,
- 870.3226662047891
- ],
- "orientation_deg": {
- "roll": -145.61620198521257,
- "pitch": 0.8654171756003077,
- "yaw": 9.36855381166504
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -30.794242788755312,
- -164.08564407171932,
- -22.507806892526126
- ],
- "orientation_deg": {
- "roll": -0.45705684450102557,
- "pitch": -0.8967087378316065,
- "yaw": 22.65187391201557
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.11672215163707733,
- -0.17282313108444214,
- -0.1321684867143631
- ],
- "orientation_deg": {
- "roll": -0.6005742836564054,
- "pitch": -0.9678794992233604,
- "yaw": -1.1531996932804556
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.2037811279297,
- -0.2381918728351593,
- -0.07032565027475357
- ],
- "orientation_deg": {
- "roll": 0.020662959547576784,
- "pitch": -0.7074080623535008,
- "yaw": 0.8247514024400335
- }
- },
- {
- "id": 76,
- "position_mm": [
- -348.27662665557614,
- 93.3320149212496,
- -74.99925696164189
- ],
- "orientation_deg": {
- "roll": -65.01593054299546,
- "pitch": 28.75392040343224,
- "yaw": -118.07143690372222
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.34317511320114136,
- -80.63220977783203,
- -0.38714420795440674
- ],
- "orientation_deg": {
- "roll": 1.6656829120101884,
- "pitch": -1.3895397385295991,
- "yaw": -0.664901758600084
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_annotated.jpg
deleted file mode 100644
index 1a47401..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_overlay.png
deleted file mode 100644
index f9a17c3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984026346_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984423916.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984423916.jpg
deleted file mode 100644
index df56865..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984423916.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.csv
deleted file mode 100644
index c4cd5cd..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,568.04,-122.58,206.01,-108.959,2.536,80.790
-camera 1,132.64,-392.62,870.39,-145.560,1.126,9.504
-25,-24.51,-163.72,-20.23,-0.643,-1.064,22.959
-50,-0.12,-0.17,-0.13,0.002,-0.144,-0.946
-71,140.20,-0.24,-0.07,-0.435,-1.128,-0.138
-76,-349.14,92.63,-72.31,-4.310,2.877,-101.531
-101,-0.34,-80.63,-0.39,1.747,-1.418,-0.668
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.json
deleted file mode 100644
index c8101a6..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:13:44",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.14361824755575056,
- "rms_refs_px_cam2": 1.486453367088356,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 568.0408592256763,
- -122.58323391244227,
- 206.01102886231138
- ],
- "orientation_deg": {
- "roll": -108.95949055167597,
- "pitch": 2.536048318450639,
- "yaw": 80.78951073231676
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 132.63954458622973,
- -392.6162448971413,
- 870.3858886172936
- ],
- "orientation_deg": {
- "roll": -145.5597664462692,
- "pitch": 1.1262006893128027,
- "yaw": 9.503725357162974
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -24.508275929153058,
- -163.72288140193217,
- -20.234776382783092
- ],
- "orientation_deg": {
- "roll": -0.6430942373664048,
- "pitch": -1.0641889498725823,
- "yaw": 22.959199385113983
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.1161637157201767,
- -0.17121200263500214,
- -0.13140764832496643
- ],
- "orientation_deg": {
- "roll": 0.002045073654830497,
- "pitch": -0.14406190540627298,
- "yaw": -0.9455955196608398
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.20233154296875,
- -0.23567268252372742,
- -0.07045937329530716
- ],
- "orientation_deg": {
- "roll": -0.43458385330571747,
- "pitch": -1.1282670073236487,
- "yaw": -0.13780159395422265
- }
- },
- {
- "id": 76,
- "position_mm": [
- -349.1350705883248,
- 92.62634207436537,
- -72.31244230502043
- ],
- "orientation_deg": {
- "roll": -4.309808634762109,
- "pitch": 2.877486626782406,
- "yaw": -101.53111308074207
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.34242501854896545,
- -80.62696075439453,
- -0.3858640491962433
- ],
- "orientation_deg": {
- "roll": 1.7474489465290335,
- "pitch": -1.4184706472884612,
- "yaw": -0.6682187749972931
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_annotated.jpg
deleted file mode 100644
index e7b5422..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_overlay.png
deleted file mode 100644
index 07da245..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984423916_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984522116.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984522116.jpg
deleted file mode 100644
index 244411c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984522116.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.csv
deleted file mode 100644
index 52ae109..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,569.01,-123.77,206.98,-109.015,2.581,80.668
-camera 1,120.40,-392.76,870.50,-145.668,0.443,9.251
-25,-26.34,-163.98,-20.84,-0.830,-0.854,23.432
-50,-0.11,-0.17,-0.13,-0.411,-0.898,-1.635
-71,140.20,-0.24,-0.07,0.135,-2.203,0.065
-76,-346.29,92.82,-74.42,-1.809,3.289,-102.686
-101,-0.34,-80.63,-0.38,1.560,-1.268,-0.255
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.json
deleted file mode 100644
index d9b506a..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:15:22",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.14339092733501874,
- "rms_refs_px_cam2": 1.48538169022083,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 569.012719401906,
- -123.77271520246221,
- 206.9812752358997
- ],
- "orientation_deg": {
- "roll": -109.01502307430951,
- "pitch": 2.580942589907844,
- "yaw": 80.66774265521296
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 120.40166190455439,
- -392.75847840963587,
- 870.5027888540226
- ],
- "orientation_deg": {
- "roll": -145.6684514677628,
- "pitch": 0.44289990861819467,
- "yaw": 9.251001739339477
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- -26.336108950195445,
- -163.98192508377795,
- -20.840991125461866
- ],
- "orientation_deg": {
- "roll": -0.8297087552681847,
- "pitch": -0.8542300937930276,
- "yaw": 23.43220281964389
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.11482050269842148,
- -0.17075540125370026,
- -0.13083070516586304
- ],
- "orientation_deg": {
- "roll": -0.41140347871644806,
- "pitch": -0.89780613003504,
- "yaw": -1.6348028220161026
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.20272827148438,
- -0.23590612411499023,
- -0.0701788142323494
- ],
- "orientation_deg": {
- "roll": 0.13549488829959241,
- "pitch": -2.202767033002062,
- "yaw": 0.06475162796274316
- }
- },
- {
- "id": 76,
- "position_mm": [
- -346.2908856007315,
- 92.82124440625405,
- -74.41925658912074
- ],
- "orientation_deg": {
- "roll": -1.8086145091611459,
- "pitch": 3.288748502073137,
- "yaw": -102.68595633699232
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.33675965666770935,
- -80.62589263916016,
- -0.38277938961982727
- ],
- "orientation_deg": {
- "roll": 1.560009641162778,
- "pitch": -1.267952267228136,
- "yaw": -0.25537864781745906
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_annotated.jpg
deleted file mode 100644
index 5a53508..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_overlay.png
deleted file mode 100644
index 6d6cf18..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765984522116_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985043290.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765985043290.jpg
deleted file mode 100644
index 5b57efb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985043290.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985202679.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765985202679.jpg
deleted file mode 100644
index 6d2333a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985202679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.csv
deleted file mode 100644
index 78f77fb..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,571.29,-110.36,206.44,-108.964,2.644,83.110
-camera 1,139.29,-397.63,870.83,-145.763,0.912,8.220
-0,-341.00,185.33,-60.26,0.117,-2.140,4.963
-3,-322.40,233.53,77.50,-1.434,-1.655,6.453
-50,-0.18,-0.15,-0.16,-0.658,-0.354,-0.208
-71,140.11,-0.15,-0.11,-0.712,-0.647,0.564
-76,-336.83,57.13,-77.49,-0.473,3.635,-61.160
-101,-0.48,-80.60,-0.44,0.546,-0.702,-2.288
-132,105.31,-65.22,-39.52,4.580,-45.739,96.607
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.json
deleted file mode 100644
index 1998137..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:26:42",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.18028734939645003,
- "rms_refs_px_cam2": 1.4415145252690627,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 571.290416992725,
- -110.36192462531064,
- 206.437149872754
- ],
- "orientation_deg": {
- "roll": -108.96395656619337,
- "pitch": 2.643524246286837,
- "yaw": 83.10971497308797
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 139.2924792441294,
- -397.63478966342853,
- 870.8337055042575
- ],
- "orientation_deg": {
- "roll": -145.76304980411376,
- "pitch": 0.9119025160659772,
- "yaw": 8.219774625822726
- }
- }
- ],
- "markers": [
- {
- "id": 0,
- "position_mm": [
- -340.9952462476045,
- 185.32755700096033,
- -60.26218322521248
- ],
- "orientation_deg": {
- "roll": 0.11654709841778052,
- "pitch": -2.139693260253249,
- "yaw": 4.9626287362815935
- }
- },
- {
- "id": 3,
- "position_mm": [
- -322.39981841486224,
- 233.52979482548702,
- 77.49787418750442
- ],
- "orientation_deg": {
- "roll": -1.4344781069045305,
- "pitch": -1.6545813355210608,
- "yaw": 6.452604194084495
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.17872831225395203,
- -0.15418027341365814,
- -0.1590033918619156
- ],
- "orientation_deg": {
- "roll": -0.6583963547154522,
- "pitch": -0.35368403748155,
- "yaw": -0.2081142969109439
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.10931396484375,
- -0.14529067277908325,
- -0.11451113969087601
- ],
- "orientation_deg": {
- "roll": -0.7123747969451659,
- "pitch": -0.6472720914240855,
- "yaw": 0.5640886871638274
- }
- },
- {
- "id": 76,
- "position_mm": [
- -336.82850321335326,
- 57.13358900333693,
- -77.48627874402858
- ],
- "orientation_deg": {
- "roll": -0.4726008509317322,
- "pitch": 3.634862167552307,
- "yaw": -61.160257866844695
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.48486119508743286,
- -80.5984878540039,
- -0.43585479259490967
- ],
- "orientation_deg": {
- "roll": 0.5462511553513129,
- "pitch": -0.7024753667827299,
- "yaw": -2.2880926399137183
- }
- },
- {
- "id": 132,
- "position_mm": [
- 105.30974017015257,
- -65.2201071095458,
- -39.52231897707848
- ],
- "orientation_deg": {
- "roll": 4.580115383838799,
- "pitch": -45.73890004078482,
- "yaw": 96.60668849554743
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_annotated.jpg
deleted file mode 100644
index 241233e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_overlay.png
deleted file mode 100644
index 56b9a1f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985202679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985564964.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765985564964.jpg
deleted file mode 100644
index 91dc8c0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985564964.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.csv
deleted file mode 100644
index 673ab37..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,572.61,-111.34,207.19,-108.989,2.559,83.069
-camera 1,142.37,-387.44,877.11,-146.431,1.112,8.413
-0,-332.01,174.56,-82.96,69.660,31.208,27.825
-3,-236.31,232.09,55.41,0.306,-0.846,7.134
-50,-0.18,-0.16,-0.16,-0.577,-0.389,-0.248
-71,140.11,-0.15,-0.11,-0.236,-1.113,0.554
-76,-332.30,49.87,-67.06,-35.539,59.060,-82.606
-101,-0.48,-80.61,-0.43,2.248,-0.233,-2.388
-132,105.60,-66.13,-37.12,4.837,-45.066,96.629
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.json
deleted file mode 100644
index a1c9282..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 15:32:45",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1799119039626923,
- "rms_refs_px_cam2": 1.4444582411296125,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 572.6101595416368,
- -111.34094806668504,
- 207.18517812794173
- ],
- "orientation_deg": {
- "roll": -108.98942106374847,
- "pitch": 2.5589208798866228,
- "yaw": 83.06932731475982
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 142.3733585703294,
- -387.44110369919247,
- 877.1095330177003
- ],
- "orientation_deg": {
- "roll": -146.4308679647237,
- "pitch": 1.112031204244544,
- "yaw": 8.413293434404276
- }
- }
- ],
- "markers": [
- {
- "id": 0,
- "position_mm": [
- -332.01092053918296,
- 174.557452319959,
- -82.96293507775887
- ],
- "orientation_deg": {
- "roll": 69.65953657652382,
- "pitch": 31.20782249992858,
- "yaw": 27.82511642004071
- }
- },
- {
- "id": 3,
- "position_mm": [
- -236.3115017420563,
- 232.0876572467484,
- 55.407077740552864
- ],
- "orientation_deg": {
- "roll": 0.30556479642041523,
- "pitch": -0.8457673929630987,
- "yaw": 7.134241686047903
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.17593957483768463,
- -0.15684159100055695,
- -0.15517771244049072
- ],
- "orientation_deg": {
- "roll": -0.5773262396720339,
- "pitch": -0.38879453558544863,
- "yaw": -0.24787154432286249
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.1126708984375,
- -0.14905698597431183,
- -0.11005648225545883
- ],
- "orientation_deg": {
- "roll": -0.2363559765071988,
- "pitch": -1.1129466233370549,
- "yaw": 0.5541171521437226
- }
- },
- {
- "id": 76,
- "position_mm": [
- -332.3030512616984,
- 49.871539470219716,
- -67.06288383772785
- ],
- "orientation_deg": {
- "roll": -35.53881068721189,
- "pitch": 59.06015335191057,
- "yaw": -82.60602528241853
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.47918304800987244,
- -80.60713195800781,
- -0.42628371715545654
- ],
- "orientation_deg": {
- "roll": 2.2478735860076093,
- "pitch": -0.23346639653237852,
- "yaw": -2.387976493918997
- }
- },
- {
- "id": 132,
- "position_mm": [
- 105.60410544005322,
- -66.13412082362002,
- -37.118164999303424
- ],
- "orientation_deg": {
- "roll": 4.836829347098161,
- "pitch": -45.065545622550026,
- "yaw": 96.62920462158365
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_annotated.jpg
deleted file mode 100644
index a952a07..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_overlay.png
deleted file mode 100644
index d0cde15..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765985564964_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1765986934521.jpg b/appVideoServer/public/snapshots/snapshot_video0_1765986934521.jpg
deleted file mode 100644
index 018847c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1765986934521.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766001304045.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766001304045.jpg
deleted file mode 100644
index 14d8c87..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766001304045.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.csv
deleted file mode 100644
index 15388a4..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,571.32,-110.68,206.32,-108.957,2.560,83.099
-camera 1,311.68,-327.79,875.88,-146.506,-2.869,38.903
-0,-317.68,147.18,-41.19,80.783,46.068,48.363
-2,-155.07,288.65,73.61,-0.639,-2.045,4.153
-3,-259.43,231.82,44.33,3.127,-3.422,6.183
-5,-698.36,252.31,-98.52,3.016,-0.024,8.298
-6,-256.70,403.82,86.68,101.618,30.677,46.417
-50,-0.00,-0.12,-0.05,-0.402,-0.535,-0.798
-71,140.36,-0.24,0.02,-0.092,-0.814,-0.665
-76,-351.33,54.76,-86.13,-60.985,54.283,-89.375
-101,-0.08,-80.45,-0.18,2.511,-2.413,-0.593
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.json
deleted file mode 100644
index fb1e948..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam.json
+++ /dev/null
@@ -1,162 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-17 19:55:04",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.17973134219001713,
- "rms_refs_px_cam2": 1.0213580783912273,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 571.3213276253481,
- -110.67781840096202,
- 206.3244083576825
- ],
- "orientation_deg": {
- "roll": -108.95737113598457,
- "pitch": 2.559864080405289,
- "yaw": 83.09909122314785
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 311.6776715653086,
- -327.7939002062464,
- 875.8793977407586
- ],
- "orientation_deg": {
- "roll": -146.50623027061204,
- "pitch": -2.869426548648885,
- "yaw": 38.90302939731788
- }
- }
- ],
- "markers": [
- {
- "id": 0,
- "position_mm": [
- -317.68056426341474,
- 147.1791999141276,
- -41.1911213669337
- ],
- "orientation_deg": {
- "roll": 80.78260453268514,
- "pitch": 46.06758686683451,
- "yaw": 48.3633304972413
- }
- },
- {
- "id": 2,
- "position_mm": [
- -155.067574118687,
- 288.64703294370327,
- 73.61204346544758
- ],
- "orientation_deg": {
- "roll": -0.6390225287267141,
- "pitch": -2.045376235299828,
- "yaw": 4.153410421999245
- }
- },
- {
- "id": 3,
- "position_mm": [
- -259.42908650222296,
- 231.81924104514522,
- 44.333084301336754
- ],
- "orientation_deg": {
- "roll": 3.127204128590182,
- "pitch": -3.421750223080671,
- "yaw": 6.18331233987481
- }
- },
- {
- "id": 5,
- "position_mm": [
- -698.3558624107734,
- 252.3140755214493,
- -98.52431455543143
- ],
- "orientation_deg": {
- "roll": 3.015934545514524,
- "pitch": -0.02415539109337906,
- "yaw": 8.297791388996595
- }
- },
- {
- "id": 6,
- "position_mm": [
- -256.6979073592588,
- 403.81535238014015,
- 86.67955685168383
- ],
- "orientation_deg": {
- "roll": 101.61778960150203,
- "pitch": 30.677494935195288,
- "yaw": 46.416506505276345
- }
- },
- {
- "id": 50,
- "position_mm": [
- -0.0014862639363855124,
- -0.11665172129869461,
- -0.04720449820160866
- ],
- "orientation_deg": {
- "roll": -0.40171100419350686,
- "pitch": -0.5352939557154193,
- "yaw": -0.7975993422857763
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.35922241210938,
- -0.23577377200126648,
- 0.022585570812225342
- ],
- "orientation_deg": {
- "roll": -0.09240348932546262,
- "pitch": -0.8138684472910421,
- "yaw": -0.6646988157283719
- }
- },
- {
- "id": 76,
- "position_mm": [
- -351.32682947964634,
- 54.761155014794674,
- -86.12827540385248
- ],
- "orientation_deg": {
- "roll": -60.98540082912284,
- "pitch": 54.28330320875033,
- "yaw": -89.37452160539597
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.07929059863090515,
- -80.45175170898438,
- -0.17939308285713196
- ],
- "orientation_deg": {
- "roll": 2.5113912677746004,
- "pitch": -2.4129946698392395,
- "yaw": -0.5929881051862044
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_annotated.jpg
deleted file mode 100644
index 28259ed..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_overlay.png
deleted file mode 100644
index 2c845d6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766001304045_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766140800391.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766140800391.jpg
deleted file mode 100644
index 5222023..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766140800391.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.csv
deleted file mode 100644
index 8fd96b5..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,548.32,-152.74,205.92,-108.982,2.760,77.269
-camera 1,257.07,-339.94,866.04,-145.133,-3.405,36.867
-50,0.11,-0.20,-0.01,-0.648,-0.351,-0.520
-71,140.85,-0.58,0.23,-0.387,-1.025,0.278
-76,41.31,114.47,-63.17,3.464,4.638,-56.601
-101,0.20,-80.63,-0.10,0.842,-1.185,-1.134
-132,167.90,103.13,-66.81,33.180,-50.128,69.282
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.json
deleted file mode 100644
index 1d3db9d..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-19 10:40:00",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.21699357374063,
- "rms_refs_px_cam2": 1.6068504921603164,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 548.3166713622935,
- -152.73793888034038,
- 205.9241167607473
- ],
- "orientation_deg": {
- "roll": -108.98151681176743,
- "pitch": 2.760150453090405,
- "yaw": 77.26931532266194
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 257.07483943769716,
- -339.941244159234,
- 866.0388369512659
- ],
- "orientation_deg": {
- "roll": -145.13299579073035,
- "pitch": -3.4047957168623837,
- "yaw": 36.867242655870896
- }
- }
- ],
- "markers": [
- {
- "id": 50,
- "position_mm": [
- 0.10929243266582489,
- -0.20275987684726715,
- -0.014005294069647789
- ],
- "orientation_deg": {
- "roll": -0.6477093887082062,
- "pitch": -0.3510980086225599,
- "yaw": -0.520063967107545
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.851806640625,
- -0.5847612619400024,
- 0.23345375061035156
- ],
- "orientation_deg": {
- "roll": -0.3874741376268988,
- "pitch": -1.0248699551873108,
- "yaw": 0.27828161360873177
- }
- },
- {
- "id": 76,
- "position_mm": [
- 41.31191312223098,
- 114.47001076268131,
- -63.17296612742573
- ],
- "orientation_deg": {
- "roll": 3.4643468721084862,
- "pitch": 4.637649149061208,
- "yaw": -56.60078642529136
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.20057077705860138,
- -80.63484191894531,
- -0.10195142030715942
- ],
- "orientation_deg": {
- "roll": 0.8415740667033459,
- "pitch": -1.1849887066378546,
- "yaw": -1.1336845340742117
- }
- },
- {
- "id": 132,
- "position_mm": [
- 167.90299657260343,
- 103.13298824720995,
- -66.81064358038446
- ],
- "orientation_deg": {
- "roll": 33.17968075835013,
- "pitch": -50.128195673492534,
- "yaw": 69.28156896967248
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_annotated.jpg
deleted file mode 100644
index 77a3496..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_overlay.png
deleted file mode 100644
index 923a942..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766140800391_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766153425223.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766153425223.jpg
deleted file mode 100644
index a7c0a5e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766153425223.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.csv
deleted file mode 100644
index b92bd93..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,548.48,-154.25,206.09,-108.981,2.718,77.132
-camera 1,279.73,-321.17,864.86,-145.168,-1.669,37.320
-50,0.12,-0.21,-0.01,-0.438,-0.544,-1.254
-71,140.87,-0.59,0.26,-0.014,-0.640,0.179
-76,41.85,107.24,-53.29,7.336,53.370,-51.881
-101,0.22,-80.65,-0.08,0.434,-1.444,-0.425
-132,166.94,95.07,-54.88,36.483,-50.367,66.273
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.json
deleted file mode 100644
index b795b27..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-19 14:10:25",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.21782029860802826,
- "rms_refs_px_cam2": 1.6125835128034123,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 548.482036445665,
- -154.24748997961535,
- 206.09488929833768
- ],
- "orientation_deg": {
- "roll": -108.98087172318827,
- "pitch": 2.717578988842748,
- "yaw": 77.13249577659853
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 279.7276890303734,
- -321.17391644659,
- 864.8617040136696
- ],
- "orientation_deg": {
- "roll": -145.16797421513468,
- "pitch": -1.6687484095783436,
- "yaw": 37.31979625195847
- }
- }
- ],
- "markers": [
- {
- "id": 50,
- "position_mm": [
- 0.11613879352807999,
- -0.2061414271593094,
- -0.005414761137217283
- ],
- "orientation_deg": {
- "roll": -0.43761686725368676,
- "pitch": -0.5441712549766012,
- "yaw": -1.2540489407415614
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.86651611328125,
- -0.5887600183486938,
- 0.2555651068687439
- ],
- "orientation_deg": {
- "roll": -0.013924763681254624,
- "pitch": -0.6403205376906418,
- "yaw": 0.17863287641529105
- }
- },
- {
- "id": 76,
- "position_mm": [
- 41.85047216858795,
- 107.23893472991297,
- -53.29297623164575
- ],
- "orientation_deg": {
- "roll": 7.336149856697958,
- "pitch": 53.37024408605556,
- "yaw": -51.88073262144033
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.22036156058311462,
- -80.64705657958984,
- -0.07745099812746048
- ],
- "orientation_deg": {
- "roll": 0.4340113889350541,
- "pitch": -1.4443555183511319,
- "yaw": -0.42511308441778006
- }
- },
- {
- "id": 132,
- "position_mm": [
- 166.93851488034102,
- 95.06512411229295,
- -54.881707286849604
- ],
- "orientation_deg": {
- "roll": 36.48348306997345,
- "pitch": -50.36663205576951,
- "yaw": 66.2725590180938
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_annotated.jpg
deleted file mode 100644
index d055435..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_overlay.png
deleted file mode 100644
index 99fd71b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766153425223_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766162159752.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766162159752.jpg
deleted file mode 100644
index 89aa9c9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766162159752.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.csv
deleted file mode 100644
index 6907077..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,552.75,-152.39,207.51,-109.106,2.607,78.917
-camera 1,537.17,-398.06,591.20,-133.077,-1.828,53.536
-50,-0.01,0.01,-0.01,-0.747,-0.831,-1.361
-71,139.86,0.17,-0.22,0.184,-1.079,-0.157
-101,-0.09,-80.02,-0.05,1.389,-1.615,-0.935
-132,143.84,110.03,-56.62,100.606,-36.456,31.544
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.json
deleted file mode 100644
index 7c2fed4..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-19 16:36:00",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.30742605937193207,
- "rms_refs_px_cam2": 0.08891640185021116,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 552.7484176597131,
- -152.38838000119364,
- 207.51357891504173
- ],
- "orientation_deg": {
- "roll": -109.10628135823755,
- "pitch": 2.60690775728556,
- "yaw": 78.91698543996296
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 537.1745482120374,
- -398.056612343999,
- 591.1974034915366
- ],
- "orientation_deg": {
- "roll": -133.07702887860844,
- "pitch": -1.8276042282267837,
- "yaw": 53.53593372982741
- }
- }
- ],
- "markers": [
- {
- "id": 50,
- "position_mm": [
- -0.013732826337218285,
- 0.01329843420535326,
- -0.014085437171161175
- ],
- "orientation_deg": {
- "roll": -0.7473059441069548,
- "pitch": -0.8312904488681926,
- "yaw": -1.3614978777032232
- }
- },
- {
- "id": 71,
- "position_mm": [
- 139.85699462890625,
- 0.1695723831653595,
- -0.2202814817428589
- ],
- "orientation_deg": {
- "roll": 0.18426539916260973,
- "pitch": -1.079119081330257,
- "yaw": -0.1569508417816471
- }
- },
- {
- "id": 101,
- "position_mm": [
- -0.08536335825920105,
- -80.01598358154297,
- -0.05290792137384415
- ],
- "orientation_deg": {
- "roll": 1.3890485194368585,
- "pitch": -1.6150460242013673,
- "yaw": -0.9352674408966456
- }
- },
- {
- "id": 132,
- "position_mm": [
- 143.8401742221435,
- 110.03296467081225,
- -56.62137505744403
- ],
- "orientation_deg": {
- "roll": 100.60563976973981,
- "pitch": -36.455861411581324,
- "yaw": 31.54357868116066
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_annotated.jpg
deleted file mode 100644
index 81a3362..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_overlay.png
deleted file mode 100644
index c804831..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766162159752_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766264271874.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766264271874.jpg
deleted file mode 100644
index 86a2fa5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766264271874.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.csv
deleted file mode 100644
index 0b461e2..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,537.71,-399.86,595.47,-133.072,-0.159,57.695
-camera 1,551.80,-155.99,203.31,-109.684,2.075,77.622
-50,0.01,-0.01,0.01,0.848,-2.004,-2.393
-71,140.20,-0.02,0.04,0.844,-3.020,-1.387
-76,19.71,112.07,-56.51,-127.162,73.313,-175.254
-101,0.01,-80.01,0.00,1.105,0.847,-0.951
-132,119.05,145.10,-104.13,99.161,-35.367,33.507
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.json
deleted file mode 100644
index 65fcce0..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-20 20:57:52",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.17277868713923025,
- "rms_refs_px_cam2": 0.1332332421847206,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 537.711992507364,
- -399.86352814138337,
- 595.4654753839357
- ],
- "orientation_deg": {
- "roll": -133.0720718202858,
- "pitch": -0.1588835348307048,
- "yaw": 57.69478231130987
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 551.8042735652496,
- -155.98895236659922,
- 203.31364825255645
- ],
- "orientation_deg": {
- "roll": -109.68431276670836,
- "pitch": 2.0754037012043596,
- "yaw": 77.62184147462736
- }
- }
- ],
- "markers": [
- {
- "id": 50,
- "position_mm": [
- 0.01477504801005125,
- -0.014204374514520168,
- 0.006489738821983337
- ],
- "orientation_deg": {
- "roll": 0.8484500897107282,
- "pitch": -2.0040808253585176,
- "yaw": -2.393104002385181
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.1990203857422,
- -0.016169482842087746,
- 0.04245743528008461
- ],
- "orientation_deg": {
- "roll": 0.8437782538854284,
- "pitch": -3.0201670176655746,
- "yaw": -1.3873703838917586
- }
- },
- {
- "id": 76,
- "position_mm": [
- 19.707166504227438,
- 112.07208408533309,
- -56.511149746867
- ],
- "orientation_deg": {
- "roll": -127.16150231687106,
- "pitch": 73.31252581577519,
- "yaw": -175.25388937274045
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.010714665055274963,
- -80.01448822021484,
- 0.004165054298937321
- ],
- "orientation_deg": {
- "roll": 1.105201394125856,
- "pitch": 0.8471486477000554,
- "yaw": -0.9507419318282913
- }
- },
- {
- "id": 132,
- "position_mm": [
- 119.05258011793646,
- 145.09956381735012,
- -104.12533215415488
- ],
- "orientation_deg": {
- "roll": 99.16111857805454,
- "pitch": -35.3673288214619,
- "yaw": 33.50748424508551
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_annotated.jpg
deleted file mode 100644
index e202fd1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_overlay.png
deleted file mode 100644
index 802e7bb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766264271874_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766265213895.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766265213895.jpg
deleted file mode 100644
index 6855744..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766265213895.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.csv
deleted file mode 100644
index e33e9ef..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,538.36,-397.67,598.05,-133.214,-0.160,57.745
-camera 1,552.41,-152.80,203.03,-109.686,2.132,77.779
-25,122.60,-109.80,-36.98,19.082,-4.066,20.680
-50,0.01,-0.01,0.01,103.842,55.883,66.364
-71,140.19,-0.02,0.04,0.213,0.145,-0.199
-76,19.32,115.71,-59.04,-2.907,-2.770,-59.446
-101,0.01,-80.02,0.00,92.058,60.003,61.777
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.json
deleted file mode 100644
index 6d42064..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-20 21:13:34",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 0.1652752668793435,
- "rms_refs_px_cam2": 0.12594444814989847,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 538.3638641376389,
- -397.66514489062075,
- 598.0546044056346
- ],
- "orientation_deg": {
- "roll": -133.2138637755646,
- "pitch": -0.15953351500901095,
- "yaw": 57.74541414423216
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 552.4108181379967,
- -152.79828344087093,
- 203.02927612526983
- ],
- "orientation_deg": {
- "roll": -109.68623415663612,
- "pitch": 2.132192749711759,
- "yaw": 77.77886007952844
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 122.6041436640939,
- -109.80002050024484,
- -36.983352793288795
- ],
- "orientation_deg": {
- "roll": 19.08208025581592,
- "pitch": -4.065574209144571,
- "yaw": 20.680181268591383
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.01372603327035904,
- -0.01326100341975689,
- 0.005988363642245531
- ],
- "orientation_deg": {
- "roll": 103.8421962711634,
- "pitch": 55.88327927809685,
- "yaw": 66.36421847070669
- }
- },
- {
- "id": 71,
- "position_mm": [
- 140.19342041015625,
- -0.01813233084976673,
- 0.043524760752916336
- ],
- "orientation_deg": {
- "roll": 0.213030841197055,
- "pitch": 0.14549701521385908,
- "yaw": -0.1989049342226733
- }
- },
- {
- "id": 76,
- "position_mm": [
- 19.31950005182692,
- 115.70728915674233,
- -59.03566385723635
- ],
- "orientation_deg": {
- "roll": -2.90693318726632,
- "pitch": -2.7699963238791323,
- "yaw": -59.446257122562265
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.011935349553823471,
- -80.01568603515625,
- 0.0048261648043990135
- ],
- "orientation_deg": {
- "roll": 92.05778645662274,
- "pitch": 60.00282987542181,
- "yaw": 61.77731355876742
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_annotated.jpg
deleted file mode 100644
index 1d237b8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_overlay.png
deleted file mode 100644
index 2b3f0cc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766265213895_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766399752172.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766399752172.jpg
deleted file mode 100644
index 6edc581..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766399752172.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.csv b/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.csv
deleted file mode 100644
index eecf480..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,x_mm,y_mm,z_mm,roll_deg,pitch_deg,yaw_deg
-camera 0,529.14,-367.73,599.26,-133.061,-0.957,67.977
-camera 1,554.01,-154.67,205.64,-109.848,2.234,77.623
-25,121.80,-110.90,-38.44,18.286,-2.799,21.383
-50,0.15,-0.01,0.08,-0.359,1.492,-1.037
-71,141.40,-0.26,0.74,-0.346,-0.355,0.399
-76,14.59,118.74,-66.86,-101.753,74.869,-145.423
-101,0.03,-80.01,0.01,1.392,-1.124,-1.184
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.json b/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.json
deleted file mode 100644
index 5865519..0000000
--- a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "metadata": {
- "timestamp": "2025-12-22 10:35:52",
- "reference_markers": [
- 50,
- 71,
- 101
- ],
- "dict": "DICT_4X4_250",
- "marker_size_mm": 25.0,
- "rms_refs_px_cam1": 1.0925027535199345,
- "rms_refs_px_cam2": 0.12690815956974966,
- "description": "Two-camera joint optimization with triangulation"
- },
- "cameras": [
- {
- "id": "camera1",
- "position_mm": [
- 529.1428506422849,
- -367.7260845899638,
- 599.257449109653
- ],
- "orientation_deg": {
- "roll": -133.06071674228517,
- "pitch": -0.9566664912072801,
- "yaw": 67.97683172425367
- }
- },
- {
- "id": "camera2",
- "position_mm": [
- 554.005148438832,
- -154.66779323704438,
- 205.64422548868947
- ],
- "orientation_deg": {
- "roll": -109.84793578175285,
- "pitch": 2.2342848831327466,
- "yaw": 77.62347503841197
- }
- }
- ],
- "markers": [
- {
- "id": 25,
- "position_mm": [
- 121.80202178408861,
- -110.8959125126377,
- -38.43581051382117
- ],
- "orientation_deg": {
- "roll": 18.28565135520694,
- "pitch": -2.7991422921113576,
- "yaw": 21.383293625221604
- }
- },
- {
- "id": 50,
- "position_mm": [
- 0.15028835833072662,
- -0.012044982053339481,
- 0.07587198913097382
- ],
- "orientation_deg": {
- "roll": -0.35945177873336015,
- "pitch": 1.492246963653603,
- "yaw": -1.0370119078615614
- }
- },
- {
- "id": 71,
- "position_mm": [
- 141.40170288085938,
- -0.26344606280326843,
- 0.7420166730880737
- ],
- "orientation_deg": {
- "roll": -0.3456604182282569,
- "pitch": -0.35506485100331653,
- "yaw": 0.39942180487304996
- }
- },
- {
- "id": 76,
- "position_mm": [
- 14.587374511456419,
- 118.74356087826587,
- -66.86334731956211
- ],
- "orientation_deg": {
- "roll": -101.75279713242942,
- "pitch": 74.86860873627442,
- "yaw": -145.42314962671264
- }
- },
- {
- "id": 101,
- "position_mm": [
- 0.034710921347141266,
- -80.01493072509766,
- 0.01429597195237875
- ],
- "orientation_deg": {
- "roll": 1.3921364687046074,
- "pitch": -1.123541347228469,
- "yaw": -1.1835484502839635
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_annotated.jpg
deleted file mode 100644
index 02ff60c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_overlay.png
deleted file mode 100644
index 55526ae..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video0_1766399752172_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765974554630.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765974554630.jpg
deleted file mode 100644
index 1e99fce..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765974554630.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975245635.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975245635.jpg
deleted file mode 100644
index 5c68c9c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975245635.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975263688.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975263688.jpg
deleted file mode 100644
index f278754..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975263688.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975271097.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975271097.jpg
deleted file mode 100644
index 10f90cd..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975271097.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975298025.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975298025.jpg
deleted file mode 100644
index e45a37a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975298025.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975307378.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975307378.jpg
deleted file mode 100644
index d9e57eb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975307378.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975311865.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975311865.jpg
deleted file mode 100644
index 6d11f16..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975311865.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975406077.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975406077.jpg
deleted file mode 100644
index f935305..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975406077.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975550136.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975550136.jpg
deleted file mode 100644
index 51851ff..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975550136.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975572393.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975572393.jpg
deleted file mode 100644
index d4fc1d5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975572393.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975586723.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975586723.jpg
deleted file mode 100644
index 9d1c9bb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975586723.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975609404.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975609404.jpg
deleted file mode 100644
index 481d8ce..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975609404.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975626213.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975626213.jpg
deleted file mode 100644
index f5d94c3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975626213.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975638033.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975638033.jpg
deleted file mode 100644
index 400496c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975638033.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975818850.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975818850.jpg
deleted file mode 100644
index fdd834e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975818850.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975871414.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975871414.jpg
deleted file mode 100644
index c52bc85..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975871414.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975946434.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975946434.jpg
deleted file mode 100644
index 6499e5a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975946434.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975953050.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975953050.jpg
deleted file mode 100644
index f0f8523..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975953050.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975975116.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975975116.jpg
deleted file mode 100644
index 901b750..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975975116.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975977082.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975977082.jpg
deleted file mode 100644
index 8fb4cb5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975977082.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765975992301.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765975992301.jpg
deleted file mode 100644
index fb3cecd..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765975992301.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976004900.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976004900.jpg
deleted file mode 100644
index 81a7d21..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976004900.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976061325.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976061325.jpg
deleted file mode 100644
index 353fd70..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976061325.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976068034.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976068034.jpg
deleted file mode 100644
index 47522e5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976068034.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976069357.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976069357.jpg
deleted file mode 100644
index 2f9ddc2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976069357.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976152890.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976152890.jpg
deleted file mode 100644
index 674aea5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976152890.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976162193.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976162193.jpg
deleted file mode 100644
index f2e5dd4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976162193.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976193421.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976193421.jpg
deleted file mode 100644
index c483ef0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976193421.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976371308.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976371308.jpg
deleted file mode 100644
index b69fca7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976371308.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976374401.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976374401.jpg
deleted file mode 100644
index 433766e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976374401.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976443318.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976443318.jpg
deleted file mode 100644
index 6ed11f1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976443318.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976445845.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976445845.jpg
deleted file mode 100644
index a3842b1..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976445845.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976495904.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976495904.jpg
deleted file mode 100644
index 6565c85..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976495904.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976505906.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976505906.jpg
deleted file mode 100644
index b31156d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976505906.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976510318.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976510318.jpg
deleted file mode 100644
index 1c2742c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976510318.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976511638.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976511638.jpg
deleted file mode 100644
index ae024c7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976511638.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976533542.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976533542.jpg
deleted file mode 100644
index ed4cbf3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976533542.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976536997.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976536997.jpg
deleted file mode 100644
index db5dc4e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976536997.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976569915.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976569915.jpg
deleted file mode 100644
index ee95272..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976569915.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976630411.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976630411.jpg
deleted file mode 100644
index c85811c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976630411.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976649818.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976649818.jpg
deleted file mode 100644
index c3a18c2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976649818.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976679114.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976679114.jpg
deleted file mode 100644
index 912ba1b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976679114.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976686196.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976686196.jpg
deleted file mode 100644
index 5db08ce..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976686196.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765976698396.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765976698396.jpg
deleted file mode 100644
index a680152..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765976698396.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765977934726.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765977934726.jpg
deleted file mode 100644
index e2006f6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765977934726.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978354760.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978354760.jpg
deleted file mode 100644
index a0eea14..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978354760.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978364728.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978364728.jpg
deleted file mode 100644
index 71c2a9c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978364728.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978420185.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978420185.jpg
deleted file mode 100644
index f001ced..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978420185.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978422903.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978422903.jpg
deleted file mode 100644
index 783e930..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978422903.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978427264.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978427264.jpg
deleted file mode 100644
index 6cd63fe..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978427264.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978512243.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978512243.jpg
deleted file mode 100644
index 29bc252..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978512243.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978528964.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978528964.jpg
deleted file mode 100644
index 561ae68..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978528964.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978536535.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978536535.jpg
deleted file mode 100644
index 5a9f453..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978536535.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765978552974.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765978552974.jpg
deleted file mode 100644
index c9c4e73..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765978552974.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979039260.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979039260.jpg
deleted file mode 100644
index 038637b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979039260.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979096358.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979096358.jpg
deleted file mode 100644
index a9f6b16..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979096358.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979173960.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979173960.jpg
deleted file mode 100644
index 56bf456..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979173960.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979387494.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979387494.jpg
deleted file mode 100644
index ea4f661..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979387494.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979423620.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979423620.jpg
deleted file mode 100644
index 67bb44c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979423620.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979473565.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979473565.jpg
deleted file mode 100644
index 3c8bd6d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979473565.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979612483.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979612483.jpg
deleted file mode 100644
index 100643f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979612483.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979663973.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979663973.jpg
deleted file mode 100644
index 4464c3d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979663973.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765979986834.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765979986834.jpg
deleted file mode 100644
index 355f853..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765979986834.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980180276.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980180276.jpg
deleted file mode 100644
index 0d50af8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980180276.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980184630.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980184630.jpg
deleted file mode 100644
index d0a7cb7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980184630.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980205019.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980205019.jpg
deleted file mode 100644
index b2c9ae9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980205019.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980305410.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980305410.jpg
deleted file mode 100644
index 3253a00..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980305410.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980351368.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980351368.jpg
deleted file mode 100644
index bf3e345..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980351368.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980403972.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980403972.jpg
deleted file mode 100644
index 73f2f46..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980403972.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980539344.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980539344.jpg
deleted file mode 100644
index e043478..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980539344.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980569984.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980569984.jpg
deleted file mode 100644
index 96f6b88..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980569984.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765980901068.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765980901068.jpg
deleted file mode 100644
index 0f2ad54..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765980901068.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765981040869.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765981040869.jpg
deleted file mode 100644
index 49b2ccb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765981040869.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765981169256.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765981169256.jpg
deleted file mode 100644
index 6b4a7f6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765981169256.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765981186514.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765981186514.jpg
deleted file mode 100644
index 6a02987..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765981186514.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982285131.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982285131.jpg
deleted file mode 100644
index 206d9ef..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982285131.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982297163.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982297163.jpg
deleted file mode 100644
index 139b8e4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982297163.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982335864.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982335864.jpg
deleted file mode 100644
index 239a920..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982335864.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_annotated.jpg
deleted file mode 100644
index fa8f39b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_overlay.png
deleted file mode 100644
index c06687a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982335864_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982346945.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982346945.jpg
deleted file mode 100644
index 7eef204..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982346945.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982356361.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982356361.jpg
deleted file mode 100644
index 88184c5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982356361.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_annotated.jpg
deleted file mode 100644
index 29fe1d7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_overlay.png
deleted file mode 100644
index 7c28a2e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982356361_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982577214.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982577214.jpg
deleted file mode 100644
index bb5359a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982577214.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_annotated.jpg
deleted file mode 100644
index ea7a82b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_overlay.png
deleted file mode 100644
index fc46d2b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982577214_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982614665.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982614665.jpg
deleted file mode 100644
index e9f0107..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982614665.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_annotated.jpg
deleted file mode 100644
index dc0196b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_overlay.png
deleted file mode 100644
index af8a376..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982614665_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982810098.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982810098.jpg
deleted file mode 100644
index a98c952..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982810098.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_annotated.jpg
deleted file mode 100644
index 0a7dbe4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_overlay.png
deleted file mode 100644
index 34497fb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982810098_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982917583.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982917583.jpg
deleted file mode 100644
index 1c409d2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982917583.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_annotated.jpg
deleted file mode 100644
index a510aa7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_overlay.png
deleted file mode 100644
index 5b5bb73..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982917583_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982930836.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982930836.jpg
deleted file mode 100644
index 4d03b05..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982930836.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_annotated.jpg
deleted file mode 100644
index c757df6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_overlay.png
deleted file mode 100644
index 512f3d0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765982930836_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983044369.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983044369.jpg
deleted file mode 100644
index d565b8e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983044369.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_annotated.jpg
deleted file mode 100644
index 7a7521f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_overlay.png
deleted file mode 100644
index bd78412..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983044369_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983168563.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983168563.jpg
deleted file mode 100644
index 495d6cb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983168563.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_annotated.jpg
deleted file mode 100644
index 52eb471..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_overlay.png
deleted file mode 100644
index 193f45d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983168563_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983229717.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983229717.jpg
deleted file mode 100644
index b97b3d8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983229717.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_annotated.jpg
deleted file mode 100644
index 0d5784d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_overlay.png
deleted file mode 100644
index be911ae..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983229717_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983272872.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983272872.jpg
deleted file mode 100644
index abcfc2b..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983272872.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_annotated.jpg
deleted file mode 100644
index 8c60b59..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_overlay.png
deleted file mode 100644
index a2a959e..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983272872_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983284896.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983284896.jpg
deleted file mode 100644
index f051630..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983284896.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983289679.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983289679.jpg
deleted file mode 100644
index 254cf81..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983289679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_annotated.jpg
deleted file mode 100644
index 46d8d6a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_overlay.png
deleted file mode 100644
index aaa31f2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983289679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983300286.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983300286.jpg
deleted file mode 100644
index cae0a27..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983300286.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_annotated.jpg
deleted file mode 100644
index 60ab40c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_overlay.png
deleted file mode 100644
index 68d404a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983300286_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983308213.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983308213.jpg
deleted file mode 100644
index 70adaac..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983308213.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_annotated.jpg
deleted file mode 100644
index ce52711..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_overlay.png
deleted file mode 100644
index aaa31f2..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983308213_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983318221.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983318221.jpg
deleted file mode 100644
index 2cb7449..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983318221.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_annotated.jpg
deleted file mode 100644
index 758ed9a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_overlay.png
deleted file mode 100644
index 8a3de15..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983318221_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983328113.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983328113.jpg
deleted file mode 100644
index bdc0ce5..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983328113.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_annotated.jpg
deleted file mode 100644
index be3fb5c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_overlay.png
deleted file mode 100644
index 8a3de15..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983328113_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983393320.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983393320.jpg
deleted file mode 100644
index 8f1a4b8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983393320.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_annotated.jpg
deleted file mode 100644
index 29b7d8c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_overlay.png
deleted file mode 100644
index 05cd5e8..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983393320_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983489899.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983489899.jpg
deleted file mode 100644
index 196cee4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983489899.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_annotated.jpg
deleted file mode 100644
index dee6245..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_overlay.png
deleted file mode 100644
index b5946be..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983489899_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983500713.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983500713.jpg
deleted file mode 100644
index 0d8700f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983500713.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_annotated.jpg
deleted file mode 100644
index a9e1192..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_overlay.png
deleted file mode 100644
index f5ea5dc..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983500713_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983532340.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983532340.jpg
deleted file mode 100644
index 1421e32..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983532340.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_annotated.jpg
deleted file mode 100644
index e45d95c..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_overlay.png
deleted file mode 100644
index c5bd48a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983532340_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983824183.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983824183.jpg
deleted file mode 100644
index 24f99f0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983824183.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_annotated.jpg
deleted file mode 100644
index 74f9980..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_overlay.png
deleted file mode 100644
index 6f3bdcb..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983824183_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983927709.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983927709.jpg
deleted file mode 100644
index 0b0ed63..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983927709.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_annotated.jpg
deleted file mode 100644
index 683a5f6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_overlay.png
deleted file mode 100644
index 0c39830..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983927709_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983937679.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983937679.jpg
deleted file mode 100644
index ca3c14f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983937679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_annotated.jpg
deleted file mode 100644
index 1a7397d..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_overlay.png
deleted file mode 100644
index b36d8db..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765983937679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984026346.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984026346.jpg
deleted file mode 100644
index c1bea12..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984026346.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_annotated.jpg
deleted file mode 100644
index fdb8b93..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_overlay.png
deleted file mode 100644
index f209f0f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984026346_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984423916.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984423916.jpg
deleted file mode 100644
index 5314006..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984423916.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_annotated.jpg
deleted file mode 100644
index 694caff..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_overlay.png
deleted file mode 100644
index 9fdeeed..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984423916_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984522116.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984522116.jpg
deleted file mode 100644
index a0b71f6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984522116.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_annotated.jpg
deleted file mode 100644
index 3584a87..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_overlay.png
deleted file mode 100644
index 670df04..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765984522116_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985202679.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765985202679.jpg
deleted file mode 100644
index c9cbea4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985202679.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_annotated.jpg
deleted file mode 100644
index a3f4176..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_overlay.png
deleted file mode 100644
index 82041b9..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985202679_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985564964.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765985564964.jpg
deleted file mode 100644
index ab8057a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985564964.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_annotated.jpg
deleted file mode 100644
index baac548..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_overlay.png
deleted file mode 100644
index b13166f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765985564964_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1765986934521.jpg b/appVideoServer/public/snapshots/snapshot_video1_1765986934521.jpg
deleted file mode 100644
index 38fcf18..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1765986934521.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766001304045.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766001304045.jpg
deleted file mode 100644
index 216d9a4..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766001304045.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_annotated.jpg
deleted file mode 100644
index 8a5e3ed..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_overlay.png
deleted file mode 100644
index 684a180..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766001304045_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766140800391.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766140800391.jpg
deleted file mode 100644
index 70f9268..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766140800391.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_annotated.jpg
deleted file mode 100644
index 0014334..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_overlay.png
deleted file mode 100644
index ad5be41..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766140800391_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766153425223.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766153425223.jpg
deleted file mode 100644
index dc946d6..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766153425223.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_annotated.jpg
deleted file mode 100644
index b8e94e3..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_overlay.png
deleted file mode 100644
index 9c41853..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766153425223_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766162159752.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766162159752.jpg
deleted file mode 100644
index 633cb63..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766162159752.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_annotated.jpg
deleted file mode 100644
index e9f456f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_overlay.png
deleted file mode 100644
index 63d0558..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766162159752_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766264271874.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766264271874.jpg
deleted file mode 100644
index 9f55c1f..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766264271874.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_annotated.jpg
deleted file mode 100644
index a6e7f68..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_overlay.png
deleted file mode 100644
index 33c34e7..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766264271874_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766265213895.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766265213895.jpg
deleted file mode 100644
index 052fc85..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766265213895.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_annotated.jpg
deleted file mode 100644
index a902354..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_overlay.png
deleted file mode 100644
index c325575..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766265213895_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766399752172.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766399752172.jpg
deleted file mode 100644
index e21c8ad..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766399752172.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_annotated.jpg b/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_annotated.jpg
deleted file mode 100644
index 1b0473a..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_annotated.jpg and /dev/null differ
diff --git a/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_overlay.png b/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_overlay.png
deleted file mode 100644
index 3c4b8e0..0000000
Binary files a/appVideoServer/public/snapshots/snapshot_video1_1766399752172_two_cam_overlay.png and /dev/null differ
diff --git a/appVideoServer/public/videoService.js b/appVideoServer/public/videoService.js
deleted file mode 100644
index e42569f..0000000
--- a/appVideoServer/public/videoService.js
+++ /dev/null
@@ -1,221 +0,0 @@
-// /public/videoService.js
-// Client-side helper for consuming binary JPEG frames over WebSocket,
-// decoding with createImageBitmap, and drawing to a canvas with RAF.
-// For /ws/video0, supports sending control messages as JSON text.
-
-(function () {
- class FrameRenderer {
- constructor(canvas) {
- this.canvas = canvas;
- this.ctx = canvas.getContext('2d', { alpha: false, desynchronized: true, willReadFrequently: false });
- this.queue = [];
- this.maxQueue = 2; // keep at most 2 pending frames to limit latency
- this._rafId = null;
- this._running = false;
- this._lastDraw = 0;
- }
- enqueue(bitmap) {
- if (this.queue.length >= this.maxQueue) {
- // drop older frame to keep latency low
- const old = this.queue.shift();
- if (old && 'close' in old) try { old.close(); } catch {}
- }
- this.queue.push(bitmap);
- if (!this._running) this.start();
- }
- start() {
- if (this._running) return;
- this._running = true;
- const loop = (ts) => {
- if (!this._running) return;
- const frame = this.queue.shift();
- if (frame) {
- const w = this.canvas.width, h = this.canvas.height;
- this.ctx.drawImage(frame, 0, 0, w, h);
- if ('close' in frame) try { frame.close(); } catch {}
- this._lastDraw = ts;
- }
- this._rafId = requestAnimationFrame(loop);
- };
- this._rafId = requestAnimationFrame(loop);
- }
- stop() {
- this._running = false;
- if (this._rafId) cancelAnimationFrame(this._rafId);
- this._rafId = null;
- // cleanup queued frames
- while (this.queue.length) {
- const f = this.queue.shift();
- if (f && 'close' in f) try { f.close(); } catch {}
- }
- // Clear canvas
- this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
- }
- }
-
- function prettyStatus(el, state, extra = '') {
- const color = {
- connecting: '#9eb8ff',
- open: '#8cffbf',
- closed: '#ff9e9e',
- error: '#ffb167'
- }[state] || '#e7eaf6';
- el.innerHTML = `${state.toUpperCase()}${extra ? ' — ' + extra : ''}`;
- }
-
- async function blobToBitmap(blob) {
- // createImageBitmap is widely supported; fallback to
if needed
- return createImageBitmap(blob);
- }
-
- function parseWH(value) {
- if (!value) return null;
- const [w, h] = String(value).split('x').map(Number);
- if (!w || !h) return null;
- return { width: w, height: h };
- }
-
- function attachStream({ url, canvas, statusEl, control }) {
- const renderer = new FrameRenderer(canvas);
- let ws;
- let reconnectDelay = 1000;
- let closedOnPurpose = false;
-
- function connect() {
- prettyStatus(statusEl, 'connecting', url);
- ws = new WebSocket(url);
- ws.binaryType = 'blob';
-
- ws.onopen = () => {
- reconnectDelay = 1000;
- prettyStatus(statusEl, 'open', 'streaming…');
- // On connection, fetch the latest snapshot metadata so the UI can show
- // the freshest overlay and CSV (prevents showing an old image cached in index.html).
- if (control?.snapshotOutEl) {
- fetch('/snapshots/latest', { cache: 'no-store' })
- .then(r => r.ok ? r.json() : Promise.reject(new Error('no snapshot')))
- .then((j) => {
- if (!j?.ok) return;
- const overlayPNG = (j.overlay ? `${j.overlay}?_t=${Date.now()}` : null);
- const overlayCSV = (j.overlayCSV ? `${j.overlayCSV}?_t=${Date.now()}` : null);
- if (overlayPNG) {
- document.getElementById('overlayImg').src = overlayPNG;
- }
- if (window.readCSV && overlayCSV) {
- window.readCSV.renderCSV('csvTable', overlayCSV);
- }
- // Show links to the latest snapshot in the snapshot output box (non-intrusive)
- control.snapshotOutEl.innerHTML = `Latest snapshot: ${j.url}`;
- }).catch(() => {
- // ignore — no latest snapshot yet
- });
- }
- };
-
- ws.onmessage = async (evt) => {
- if (typeof evt.data === 'string') {
- // Control/meta message
- try {
- const msg = JSON.parse(evt.data);
- if (msg.type === 'error') {
- console.warn('Server error:', msg.error);
- prettyStatus(statusEl, 'error', msg.error);
- }
- if (msg.type === 'snapshot' && control?.snapshotOutEl) {
- if (msg.ok && msg.url && msg.urlApp) {
- // Use overlay URL and CSV provided by the server (fallback to expected names)
- const overlayPNG = msg.overlay || msg.urlApp.replace('_annotated.jpg','_two_cam_overlay.png');
- // Prefer server-provided overlayCSV. If not present, derive from the original jpg name
- const overlayCSV = msg.overlayCSV || msg.url.replace('.jpg','_two_cam.csv');
-
- control.snapshotOutEl.innerHTML =
- `Snapshot: ${msg.url} ` +
- ` Recognized: ${msg.urlApp} ` +
- ` Overlay: PNG Overlay`;
- // Update overlay immediately — server now ensures files are ready before responding
- document.getElementById('overlayImg').src = overlayPNG;
- // Render CSV values into the csvTable container (if available)
- if (window.readCSV) {
- window.readCSV.renderCSV('csvTable', overlayCSV);
- }
- } else {
- control.snapshotOutEl.textContent = 'Snapshot failed';
- }
- }
- } catch {
- // ignore non-JSON text frames
- }
- return;
- }
- // Binary JPEG frame
- const blob = evt.data; // Blob of image/jpeg
- try {
- const bmp = await blobToBitmap(blob);
- renderer.enqueue(bmp);
- } catch (err) {
- console.warn('Bitmap decode failed:', err);
- }
- };
-
- ws.onerror = () => {
- prettyStatus(statusEl, 'error', 'network error');
- };
-
- ws.onclose = () => {
- renderer.stop();
- prettyStatus(statusEl, 'closed', closedOnPurpose ? 'by client' : 'retrying…');
- if (!closedOnPurpose) {
- setTimeout(connect, reconnectDelay);
- reconnectDelay = Math.min(reconnectDelay * 2, 10000);
- }
- };
- }
-
- connect();
-
- // Attach controls if provided (video0)
- if (control) {
- const { resSelect, fpsSelect, qSelect, applyBtn, snapshotBtn, startBtn, stopBtn, snapshotOutEl } = control;
-
- applyBtn?.addEventListener('click', () => {
- if (!ws || ws.readyState !== WebSocket.OPEN) return;
- const wh = parseWH(resSelect?.value);
- const fps = Number(fpsSelect?.value || 15);
- const q = Number(qSelect?.value || 5);
- ws.send(JSON.stringify({
- type: 'control',
- action: 'setParams',
- params: {
- ...(wh || {}),
- fps,
- quality: q
- }
- }));
- });
-
- snapshotBtn?.addEventListener('click', () => {
- if (!ws || ws.readyState !== WebSocket.OPEN) return;
- snapshotOutEl.textContent = 'Taking snapshot…';
- ws.send(JSON.stringify({ type: 'control', action: 'snapshot' }));
- });
-
- startBtn?.addEventListener('click', () => {
- if (!ws || ws.readyState !== WebSocket.OPEN) return;
- ws.send(JSON.stringify({ type: 'control', action: 'start' }));
- });
-
- stopBtn?.addEventListener('click', () => {
- if (!ws || ws.readyState !== WebSocket.OPEN) return;
- ws.send(JSON.stringify({ type: 'control', action: 'stop' }));
- });
- }
-
- return {
- close: () => { closedOnPurpose = true; ws?.close(); renderer.stop(); }
- };
- }
-
- window.VideoService = {
- attachStream
- };
-})();
\ No newline at end of file
diff --git a/appVideoServer/server.js b/appVideoServer/server.js
deleted file mode 100644
index d799f5d..0000000
--- a/appVideoServer/server.js
+++ /dev/null
@@ -1,283 +0,0 @@
-// server.js
-'use strict';
-
-const fs = require('fs');
-const path = require('path');
-const https = require('https');
-const express = require('express');
-const helmet = require('helmet');
-const compression = require('compression');
-const WebSocket = require('ws');
-
-const { FFmpegStreamer } = require('./programs/videoServer');
-const { pickDevices } = require('./programs/input');
-const driverWS = require("./programs/driver");
-const screenShot = require("./programs/screenShot")
-
-const {logHttpRequest, logTcpConnection, logHttpUpgrade, logWssConnected,
- logWssClosed, connected, connectionLost} = require('./programs/log');
-
-
-
-const PORT = Number(process.env.PORT || 8443);
-const HOST = process.env.HOST || '0.0.0.0';
-
-// --- TLS ---
-const TLS_DIR = path.resolve(__dirname, 'https');
-const serverOptions = {
- key: fs.readFileSync(path.join(TLS_DIR, 'server.key')),
- cert: fs.readFileSync(path.join(TLS_DIR, 'server.crt')),
- ...(fs.existsSync(path.join(TLS_DIR, 'dhparam.pem'))
- ? { dhparam: fs.readFileSync(path.join(TLS_DIR, 'dhparam.pem')) }
- : {}),
- requestCert: false,
- rejectUnauthorized: false, // dev-friendly for self-signed
-};
-
-// --- Express + CSP ---
-const app = express();
-app.disable('x-powered-by');
-app.use(compression());
-app.use(
- helmet({
- contentSecurityPolicy: {
- useDefaults: true,
- directives: {
- "default-src": ["'self'"],
- "script-src": ["'self'"], // no inline JS
- "style-src": ["'self'", "'unsafe-inline'"],
- "img-src": ["'self'", "data:"],
- "connect-src": ["'self'"], // same-origin WSS
- "object-src": ["'none'"],
- "base-uri": ["'self'"],
- "frame-ancestors": ["'self'"]
- }
- },
- })
-);
-app.use(express.static(path.join(__dirname, 'public'), { etag: true, maxAge: '1h' }));
-app.get('/health', (_req, res) => res.status(200).send('ok'));
-
-// --- HTTPS server ---
-const server = https.createServer(serverOptions, app);
-
-// Track sockets so shutdown is clean
-const activeHttpSockets = new Set();
-server.on('connection', (socket) => {
- activeHttpSockets.add(socket);
- socket.on('close', () => activeHttpSockets.delete(socket));
-});
-
-// --- WebSocket server ---
-const wss = new WebSocket.Server({ noServer: true, perMessageDeflate: false });
-
-// Heartbeat
-function installHeartbeat(ws) {
- ws.isAlive = true;
- ws.on('pong', () => { ws.isAlive = true; });
-}
-const pingInterval = setInterval(() => {
- wss.clients.forEach((ws) => {
- if (!ws.isAlive) return ws.terminate();
- ws.isAlive = false;
- try { ws.ping(); } catch {}
- });
-}, 30000);
-
-// Upgrade routing
-server.on('upgrade', (request, socket, head) => {
- try { socket.setNoDelay(true); } catch {}
- const { url } = request;
- if (!url || !url.startsWith('/ws/')) return socket.destroy();
-
-
- if (url === '/ws/robot') {
- console.log('Robot requested');
- wssInput.handleUpgrade(request, socket, head, (ws) => {
- ws.upgradePath = url;
- wssInput.emit('connection', ws, request);
- });
- return;
- }
-
- wss.handleUpgrade(request, socket, head, (ws) => {
- ws.upgradePath = url;
- wss.emit('connection', ws, request);
- });
-});
-
-// --- Streams ---
-const [DEV0, DEV1] = pickDevices(process.env);
-console.log(`[DEV] Using devices: ${DEV0} (video0), ${DEV1} (video1)`);
-
-// Cam0: MJPEG pass-through if available (lowest latency)
-const cam0 = new FFmpegStreamer(DEV0, {
- name: 'video0',
- fps: 30,
- quality: 8, // 5 wäre besser
- input: {
- format: 'mjpeg',
- fps: 30,
- //size: '640x480',
- //size: '1280x720',
- size: '1280x960',
- useWallclock: true,
- threadQueueSize: 64,
- channel: 0,
- },
- tryFormats: ['mjpeg', 'yuyv422', 'rgb24'],
-});
-
-
-
-// Cam1: your working timing on /dev/video2; let driver pick format first
-const cam1 = new FFmpegStreamer(DEV1, {
- name: 'video1',
- fps: 30,
- quality: 8, // 5 wäre besser
- input: {
- format: 'mjpeg', // driver decides
- fps: 30,
- //size: '640x480',
- //size: '1280x720',
- size: '1280x960',
- useWallclock: true,
- threadQueueSize: 64,
- channel: 0,
- },
- tryFormats: ['mjpeg', 'yuyv422', 'rgb24'],
-});
-
-cam0.start();
-cam1.start();
-
-
-const wssInput = new WebSocket.Server({ noServer: true });
-
-
-// WS connections
-wss.on('connection', (ws, req) => {
- logWssConnected(req);
- installHeartbeat(ws);
- const pathName = ws.upgradePath || req.url || '';
- const controlEnabled = pathName === '/ws/video0';
-
- if (pathName === '/ws/video0') cam0.attach(ws);
- else if (pathName === '/ws/video1') cam1.attach(ws);
- else return ws.close(1008, 'Unknown WS path');
-
- // If the streamer isn't running when a client connects, try to start it.
- // This makes the system more resilient to transient ffmpeg failures.
- try {
- if (pathName === '/ws/video0' && !cam0.running) {
- console.log('[WS] client connected to /ws/video0 — starting cam0');
- cam0.start();
- }
- if (pathName === '/ws/video1' && !cam1.running) {
- console.log('[WS] client connected to /ws/video1 — starting cam1');
- cam1.start();
- }
- } catch (err) { console.warn('[WS] failed to start streamer:', err?.message || err); }
-
- ws.on('message', (data, isBinary) => {
- if (isBinary || !controlEnabled) return;
- let msg;
- try { msg = JSON.parse(data.toString()); }
- catch { return ws.send(JSON.stringify({ type: 'error', error: 'Invalid JSON' })); }
- handleControlMessage(ws, msg);
- });
-
- ws.send(JSON.stringify({
- type: 'hello',
- path: pathName,
- control: controlEnabled,
- camera: pathName.endsWith('video0') ? 'video0' : 'video1',
- }));
-
- ws.on('close', (code, reason) => { logWssClosed(req, code, reason); });
-
-});
-
-wss.on("upgrade", (req, socket, head) => {
- if (req.url === "/ws/robot") {
- console.log("Robot requested");
- wssInput.handleUpgrade(req, socket, head, (ws) => { wssInput.emit("connection", ws, req); });
- }
-});
-
-
-const targetServer = process.env.TARGET_SERVER || 'wss://localhost:2095';
-
-process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
-driverWS.setupCommandForwarding(wssInput, targetServer);
-
-
-// Control channel (video0 only)
-function handleControlMessage(ws, msg) {
- if (msg?.type !== 'control') {
- ws.send(JSON.stringify({ type: 'error', error: 'Unsupported message type' }));
- return;
- }
- try {
- switch (msg.action) {
- case 'snapshot': {
-
- const outDir = path.join(__dirname, 'public', 'snapshots');
- screenShot.snapshot(outDir, cam0, cam1, ws);
- break;
- }
- case 'setParams': {
- const p = msg.params || {};
- cam0.restart({
- ...(Number(p.width) ? { width: Number(p.width) } : { width: undefined }),
- ...(Number(p.height) ? { height: Number(p.height) } : { height: undefined }),
- ...(Number(p.fps) ? { fps: Number(p.fps) } : {}),
- ...(Number(p.quality) ? { quality: Number(p.quality) } : {}),
- ...(p.input ? { input: { ...cam0.opts.input, ...p.input } } : {}),
- });
- ws.send(JSON.stringify({ type: 'ack', action: 'setParams', params: { ...cam0.opts } }));
- break;
- }
- case 'start': cam0.start(); ws.send(JSON.stringify({ type: 'ack', action: 'start' })); break;
- case 'stop': cam0.stop(); ws.send(JSON.stringify({ type: 'ack', action: 'stop' })); break;
- default:
- ws.send(JSON.stringify({ type: 'error', error: `Unknown action: ${msg.action}` }));
- }
- } catch (err) {
- ws.send(JSON.stringify({ type: 'error', error: err.message }));
- }
-}
-
-// Start
-server.listen(PORT, HOST, () => {
- console.log(`HTTPS server listening on https://${HOST}:${PORT}`);
- console.log(`Open https://localhost:${PORT} (accept the self-signed certificate in dev)`);
-});
-
-
-
-// Graceful shutdown
-let shuttingDown = false;
-async function shutdown(code = 0) {
- if (shuttingDown) return;
- shuttingDown = true;
- console.log('\nShutting down…');
-
- try { clearInterval(pingInterval); } catch {}
-
- try { cam0.stop(); } catch {}
- try { cam1.stop(); } catch {}
-
- try { wss.clients.forEach(ws => { try { ws.terminate(); } catch {} }); } catch {}
- try { await new Promise(res => wss.close(() => res())); } catch {}
-
- try { for (const s of activeHttpSockets) { try { s.destroy(); } catch {} } } catch {}
- try { await new Promise(res => server.close(() => res())); } catch {}
-
- setTimeout(() => { console.warn('Force exiting…'); process.exit(code); }, 1500).unref();
- process.exit(code);
-}
-process.once('SIGINT', () => shutdown(0));
-process.once('SIGTERM', () => shutdown(0));
-process.once('uncaughtException', (e) => { console.error(e); shutdown(1); });
-process.once('unhandledRejection', (r) => { console.error(r); shutdown(1); });
\ No newline at end of file
diff --git a/gitFetch.sh b/gitFetch.sh
new file mode 100755
index 0000000..0680a2a
--- /dev/null
+++ b/gitFetch.sh
@@ -0,0 +1,5 @@
+
+cd ~/workspace/appVideoServer
+git fetch origin
+git status
+git branch -vv
\ No newline at end of file