Commit ·
d69fda9
1
Parent(s): e011d03
Deploy Next.js static export Edge AI
Browse files- 404.html +1 -1
- 404/index.html +1 -1
- README.md +4 -3
- _next/static/RggAqs6xEVVo2BkpTWJHZ/_buildManifest.js +1 -0
- _next/static/RggAqs6xEVVo2BkpTWJHZ/_ssgManifest.js +1 -0
- _next/static/chunks/app/page-765dad79341e2c72.js +1 -0
- index.html +1 -1
- index.txt +2 -2
404.html
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[9275,[],\"\"]\n5:I[1343,[],\"\"]\nb:I[6130,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[9275,[],\"\"]\n5:I[1343,[],\"\"]\nb:I[6130,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"RggAqs6xEVVo2BkpTWJHZ\",\"assetPrefix\":\"/spaces/abdullahsamsudii/EdgePostureGuard\",\"initialCanonicalUrl\":\"/_not-found/\",\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],null],null]},[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-[#060810] text-slate-100 antialiased\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"PostureGuard — Edge AI Posture Detection\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device.\"}]]\n3:null\n"])</script></body></html>
|
404/index.html
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[9275,[],\"\"]\n5:I[1343,[],\"\"]\nb:I[6130,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[9275,[],\"\"]\n5:I[1343,[],\"\"]\nb:I[6130,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"RggAqs6xEVVo2BkpTWJHZ\",\"assetPrefix\":\"/spaces/abdullahsamsudii/EdgePostureGuard\",\"initialCanonicalUrl\":\"/_not-found/\",\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],null],null]},[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-[#060810] text-slate-100 antialiased\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"PostureGuard — Edge AI Posture Detection\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device.\"}]]\n3:null\n"])</script></body></html>
|
README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
| 1 |
---
|
| 2 |
title: EdgePosturGuard
|
| 3 |
emoji: 📚
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
license: mit
|
| 9 |
---
|
| 10 |
|
| 11 |
-
|
|
|
|
|
|
| 1 |
---
|
| 2 |
title: EdgePosturGuard
|
| 3 |
emoji: 📚
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: blue
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
license: mit
|
| 9 |
---
|
| 10 |
|
| 11 |
+
permissions:
|
| 12 |
+
- camera
|
_next/static/RggAqs6xEVVo2BkpTWJHZ/_buildManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-1be831200e60c5c0.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
_next/static/RggAqs6xEVVo2BkpTWJHZ/_ssgManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
_next/static/chunks/app/page-765dad79341e2c72.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{5349:function(e,t,s){Promise.resolve().then(s.bind(s,4193))},4193:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return O}});var a=s(7437),n=s(2265),r=s(7004);let l=!1;var o=s(3909),i=s(5369),c=s(8295),d=s(5231),u=s(7561),x=s(4142),f=s(2842),h=s(9542),m=s(5475),p=s(2893),g=s(6991);let b="posture_guard_analytics";function j(){return"session_".concat(Date.now(),"_").concat(Math.random().toString(36).slice(2,8))}function w(e,t,s){if("good"===e)return"Great posture — keep it up!";let a=[];return t<140&&a.push("neck angle ".concat(t.toFixed(0),"\xb0 — bring your chin back")),s>15&&a.push("spine tilt ".concat(s.toFixed(0),"\xb0 — sit upright")),"Slouch detected: ".concat(a.join("; "),".")}function y(){try{let e=localStorage.getItem(b);return e?JSON.parse(e):[]}catch(e){return[]}}function N(e){return e>=80?"#00ffa3":e>=50?"#f0b429":"#ff5e3a"}function v(e){let{score:t}=e,s=2*Math.PI*52,n=s-t/100*s,r=N(t);return(0,a.jsxs)("div",{className:"relative flex items-center justify-center",children:[(0,a.jsxs)("svg",{width:"140",height:"140",className:"rotate-[-90deg]",children:[(0,a.jsx)("circle",{cx:70,cy:70,r:52,fill:"none",stroke:"#1a1d2e",strokeWidth:7}),(0,a.jsx)("circle",{cx:70,cy:70,r:52,fill:"none",stroke:r,strokeWidth:7,strokeDasharray:s,strokeDashoffset:n,strokeLinecap:"round",style:{transition:"stroke-dashoffset 0.6s ease, stroke 0.4s ease"}})]}),(0,a.jsxs)("div",{className:"absolute flex flex-col items-center",children:[(0,a.jsx)("span",{className:"text-3xl font-bold font-mono tabular-nums",style:{color:r,lineHeight:1},children:t}),(0,a.jsx)("span",{className:"text-[10px] text-slate-500 tracking-widest uppercase mt-0.5",children:"Score"})]})]})}function k(e){let{active:t,payload:s,label:n}=e;return t&&(null==s?void 0:s.length)?(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#1e2337] rounded-lg px-3 py-2 text-xs font-mono shadow-xl",children:[(0,a.jsx)("p",{className:"text-slate-400 mb-1",children:n}),s.map(e=>(0,a.jsxs)("p",{style:{color:e.color},children:[e.name,": ",e.value,"\xb0"]},e.dataKey))]}):null}function S(e){let{points:t}=e,s=t.filter(e=>"good"===e.status).length,n=t.length-s;if(0===t.length)return(0,a.jsx)("div",{className:"flex items-center justify-center h-20 text-slate-600 text-xs font-mono",children:"No session data yet"});let r=[{name:"Good",value:s,color:"#00ffa3"},{name:"Slouch",value:n,color:"#ff5e3a"}];return(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(o.u,{width:80,height:80,children:(0,a.jsx)(i.b,{data:r,dataKey:"value",cx:35,cy:35,innerRadius:22,outerRadius:36,strokeWidth:0,children:r.map((e,t)=>(0,a.jsx)(c.b,{fill:e.color},t))})}),(0,a.jsx)("div",{className:"flex flex-col gap-1.5 text-xs font-mono",children:r.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:e.color}}),(0,a.jsx)("span",{className:"text-slate-400",children:e.name}),(0,a.jsxs)("span",{style:{color:e.color},className:"ml-auto pl-4 tabular-nums",children:[t.length>0?Math.round(e.value/t.length*100):0,"%"]})]},e.name))})]})}function A(e){let{analyticsPoints:t,postureScore:s,sessionId:r,neckAngle:l,spineAngle:o}=e,i=(0,n.useMemo)(()=>t.filter(e=>e.sessionId===r),[t,r]),c=(0,n.useMemo)(()=>i.map(e=>({time:new Date(e.time).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",hour12:!1}),neckAngle:e.neckAngle,spineAngle:e.spineAngle,status:e.status})),[i]),b=(0,n.useMemo)(()=>0===i.length?null:Math.round(i.reduce((e,t)=>e+t.neckAngle,0)/i.length),[i]),j=N(s);return(0,a.jsxs)("div",{className:"flex flex-col gap-4 h-full",children:[(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#1e2337] rounded-xl p-4 flex flex-col items-center gap-1",children:[(0,a.jsx)(v,{score:s}),(0,a.jsx)("p",{className:"text-[10px] text-slate-500 tracking-widest uppercase",children:"Session Score"})]}),(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#1e2337] rounded-xl p-4 flex flex-col justify-around gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[10px] font-mono tracking-widest text-slate-500 uppercase mb-1",children:"Neck Angle"}),(0,a.jsx)("p",{className:"text-2xl font-bold font-mono tabular-nums",style:{color:null!==l&&l>=140?"#00ffa3":"#ff5e3a"},children:null!==l?"".concat(l.toFixed(1),"\xb0"):"—"}),(0,a.jsxs)("p",{className:"text-[10px] text-slate-600 font-mono mt-0.5",children:["target ≥ ",140,"\xb0"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[10px] font-mono tracking-widest text-slate-500 uppercase mb-1",children:"Spine Tilt"}),(0,a.jsx)("p",{className:"text-2xl font-bold font-mono tabular-nums",style:{color:null!==o&&o<=15?"#00ffa3":"#ff0059"},children:null!==o?"".concat(o.toFixed(1),"\xb0"):"—"}),(0,a.jsx)("p",{className:"text-[10px] text-slate-600 font-mono mt-0.5",children:"target ≤ 15\xb0"})]})]})]}),(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#1e2337] rounded-xl p-4",children:[(0,a.jsx)("p",{className:"text-[10px] font-mono tracking-widest text-slate-500 uppercase mb-3",children:"Session Breakdown"}),(0,a.jsx)(S,{points:i})]}),(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#1e2337] rounded-xl p-4 flex-1 min-h-0",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between mb-3",children:[(0,a.jsx)("p",{className:"text-[10px] font-mono tracking-widest text-slate-500 uppercase",children:"Neck Angle History"}),null!==b&&(0,a.jsxs)("span",{className:"text-xs font-mono",style:{color:j},children:["avg ",b,"\xb0"]})]}),c.length<2?(0,a.jsx)("div",{className:"flex items-center justify-center h-[120px] text-slate-600 text-xs font-mono",children:"Logging begins after 60 s of active detection"}):(0,a.jsx)(d.h,{width:"100%",height:140,children:(0,a.jsxs)(u.T,{data:c,margin:{top:4,right:4,bottom:0,left:-20},children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:"neckGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"5%",stopColor:"#00ffa3",stopOpacity:.18}),(0,a.jsx)("stop",{offset:"95%",stopColor:"#00ffa3",stopOpacity:0})]})}),(0,a.jsx)(x.q,{strokeDasharray:"3 3",stroke:"#1a1d2e",vertical:!1}),(0,a.jsx)(f.K,{dataKey:"time",tick:{fill:"#4a5568",fontSize:9,fontFamily:"monospace"},tickLine:!1,axisLine:!1}),(0,a.jsx)(h.B,{domain:[90,180],tick:{fill:"#4a5568",fontSize:9,fontFamily:"monospace"},tickLine:!1,axisLine:!1}),(0,a.jsx)(m.u,{content:(0,a.jsx)(k,{})}),(0,a.jsx)(p.d,{y:140,stroke:"#f0b429",strokeDasharray:"4 3",strokeWidth:1,label:{value:"".concat(140,"\xb0"),fill:"#f0b429",fontSize:9,fontFamily:"monospace"}}),(0,a.jsx)(g.u,{type:"monotone",dataKey:"neckAngle",name:"Neck",stroke:"#00ffa3",strokeWidth:2,fill:"url(#neckGrad)",dot:!1,activeDot:{r:3,fill:"#00ffa3"}})]})})]})]})}function M(e,t){let s=5+3*t;return{x:e[s]/640,y:e[s+1]/640,conf:e[s+2]}}async function I(e,t,s){var a,n;let l=function(e,t){let s=t.getContext("2d");t.width=640,t.height=640,s.fillStyle="#000",s.fillRect(0,0,640,640);let a=e.videoWidth,n=e.videoHeight,l=Math.min(640/a,640/n),o=Math.round(a*l),i=Math.round(n*l);s.drawImage(e,Math.round((640-o)/2),Math.round((640-i)/2),o,i);let{data:c}=s.getImageData(0,0,640,640),d=new Float32Array(1228800);for(let e=0;e<409600;e++)d[e]=c[4*e]/255,d[e+409600]=c[4*e+1]/255,d[e+819200]=c[4*e+2]/255;return new r.Tensor("float32",d,[1,3,640,640])}(t,s),o={};o[e.inputNames[0]]=l;let i=function(e){let t=null,s=.35;for(let a of e){let e=a[4];if(e<s)continue;let n=a[19],r=a[25],l=a[43],o=a[16],i=a[22],c=a[40],d=o>.3&&i>.3&&c>.3;(n>.3&&r>.3&&l>.3||d)&&(s=e,t=a)}return t}(function(e){let t=e.data,[,s,a]=e.dims,n=[];for(let e=0;e<a;e++){let r=new Float32Array(s);for(let n=0;n<s;n++)r[n]=t[n*a+e];n.push(r)}return n}((await e.run(o))[e.outputNames[0]]));if(!i)return null;let c=function(e){let t=M(e,4),s=M(e,6),a=M(e,12),n=M(e,3),r=M(e,5),l=M(e,11);return t.conf+s.conf+a.conf>=n.conf+r.conf+l.conf?{ear:t,shoulder:s,hip:a,side:"right"}:{ear:n,shoulder:r,hip:l,side:"left"}}(i);return{neckAngle:function(e,t,s){let a=e.x-t.x,n=e.y-t.y,r=s.x-t.x,l=s.y-t.y;return Math.abs(180/Math.PI*Math.atan2(Math.abs(a*l-n*r),a*r+n*l))}(c.ear,c.shoulder,c.hip),spineAngle:(a=c.shoulder,Math.abs(180/Math.PI*Math.atan2(Math.abs((n=c.hip).x-a.x),n.y-a.y))),raw:c}}let C="".concat("https://huggingface.co/spaces/abdullahsamsudii/EdgePostureGuard/resolve/main","/yolov8n-pose.onnx");function D(e){let{status:t}=e,s={good:{label:"GOOD POSTURE",dot:"bg-[#00ffa3]",text:"text-[#00ffa3]",ring:"border-[#00ffa3]/30 bg-[#00ffa3]/5"},bad:{label:"SLOUCH DETECTED",dot:"bg-[#ff5e3a]",text:"text-[#ff5e3a]",ring:"border-[#ff5e3a]/30 bg-[#ff5e3a]/5"},unknown:{label:"DETECTING...",dot:"bg-slate-500",text:"text-slate-400",ring:"border-slate-700/60 bg-slate-800/20"}}[t];return(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border text-xs font-mono tracking-widest uppercase ".concat(s.ring),children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full ".concat(s.dot," ").concat("unknown"!==t?"animate-pulse":"")}),(0,a.jsx)("span",{className:s.text,children:s.label})]})}function T(e){let{message:t}=e;return(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[#060810]/90 z-20 rounded-xl",children:[(0,a.jsx)("div",{className:"w-8 h-8 border-2 border-[#00ffa3]/30 border-t-[#00ffa3] rounded-full animate-spin"}),(0,a.jsx)("p",{className:"text-xs font-mono text-slate-400 tracking-widest",children:t})]})}function E(e){let{entries:t}=e;return 0===t.length?null:(0,a.jsxs)("div",{className:"bg-[#0d1117] border border-[#ff5e3a]/20 rounded-xl p-4 max-h-40 overflow-y-auto",children:[(0,a.jsx)("p",{className:"text-[10px] font-mono tracking-widest text-slate-500 uppercase mb-2",children:"Alert Log"}),t.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-start gap-2 py-1.5 border-b border-[#1e2337] last:border-0",children:[(0,a.jsx)("span",{className:"text-[10px] font-mono text-slate-600 whitespace-nowrap pt-0.5",children:e.timestamp}),(0,a.jsx)("span",{className:"text-[11px] font-mono text-[#ff5e3a]/80 leading-relaxed",children:e.message}),(0,a.jsxs)("span",{className:"text-[10px] font-mono text-[#ff5e3a] ml-auto whitespace-nowrap",children:[e.angle,"\xb0"]})]},t))]})}function O(){var e,t;let s=(0,n.useRef)(null),o=(0,n.useRef)(null),i=(0,n.useRef)(null),c=(0,n.useRef)(null),d=(0,n.useRef)(null),u=(0,n.useRef)(null),[x,f]=(0,n.useState)(!1),[h,m]=(0,n.useState)("idle"),[p,g]=(0,n.useState)(null),[N,v]=(0,n.useState)(!0),[k,S]=(0,n.useState)(!1),M=function(){let e=(0,n.useRef)(j()),[t,s]=(0,n.useState)(15),[a,r]=(0,n.useState)("unknown"),[l,o]=(0,n.useState)(0),[i,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(null),[x,f]=(0,n.useState)([]),[h,m]=(0,n.useState)(y),[p,g]=(0,n.useState)(100),N=(0,n.useRef)(0),v=(0,n.useRef)(0),k=(0,n.useRef)(Date.now()),S=(0,n.useRef)([]);(0,n.useEffect)(()=>{g(function(e,t){let s=e.filter(e=>e.sessionId===t);return 0===s.length?100:Math.round(s.filter(e=>"good"===e.status).length/s.length*100)}(h,e.current))},[h]);let A=(0,n.useCallback)(s=>{if(!s){r("unknown");return}let a=function(e){let t=e.neckAngle>=140,s=e.spineAngle<=15;return t&&s?"good":"bad"}(s),n="bad"===a;c(s.neckAngle),u(s.spineAngle),r(a),n?N.current+=1:N.current=0,o(N.current);let l=Date.now();if(n&&N.current>=t&&l-v.current>=8e3){v.current=l;let e={timestamp:new Date().toLocaleTimeString("en-GB",{hour12:!1}),message:w("bad",s.neckAngle,s.spineAngle),angle:Math.round(s.neckAngle)};f(t=>[e,...t].slice(0,15)),"Notification"in window&&"granted"===Notification.permission&&new Notification("Posture Guard",{body:e.message,icon:"/favicon.ico"});let t=new Audio("/alert.mp3");t.volume=.6,t.play().catch(()=>{})}if(S.current.push(s),l-k.current>=6e4){k.current=l;let t=S.current;if(t.length>0){let s=t.reduce((e,t)=>e+t.neckAngle,0)/t.length,a=t.reduce((e,t)=>e+t.spineAngle,0)/t.length,n={time:l,neckAngle:Math.round(10*s)/10,spineAngle:Math.round(10*a)/10,status:s>=140&&a<=15?"good":"bad",sessionId:e.current};m(e=>{let t=[...e,n];return function(e){try{let t=Date.now()-6048e5,s=e.filter(e=>e.time>=t);localStorage.setItem(b,JSON.stringify(s))}catch(e){}}(t),t}),S.current=[]}}},[t]),M=(0,n.useCallback)(()=>{e.current=j(),N.current=0,v.current=0,k.current=Date.now(),S.current=[],o(0),r("unknown"),c(null),u(null),f([]),g(100)},[]);return{status:a,badStreak:l,neckAngle:i,spineAngle:d,alertLog:x,analyticsPoints:h,postureScore:p,sessionId:e.current,processFrame:A,resetSession:M,threshold:t,setThreshold:s}}(),O=(0,n.useCallback)(async()=>{if(c.current)return c.current;m("model"),l||(l=!0,r.env.wasm.wasmPaths="https://unpkg.com/onnxruntime-web@1.14.0/dist/",r.env.wasm.numThreads=1);let e=await r.InferenceSession.create(C,{executionProviders:["wasm"],graphOptimizationLevel:"all",executionMode:"sequential"});return c.current=e,e},[]),P=(0,n.useCallback)(async()=>{m("camera");let e=await navigator.mediaDevices.getUserMedia({video:{facingMode:"user",width:{ideal:1280},height:{ideal:720}},audio:!1});u.current=e;let t=s.current;t.srcObject=e,await new Promise(e=>{t.onloadedmetadata=()=>{t.play(),e()}})},[]),R=(0,n.useCallback)(async()=>{let e=c.current,t=s.current,a=o.current;if(!e||!t||!a||t.readyState<2){d.current=setTimeout(R,80);return}i.current||(i.current=document.createElement("canvas"),i.current.width=640,i.current.height=640);try{let s=await I(e,t,i.current);M.processFrame(s);let n=a.getContext("2d");if(a.width=t.videoWidth,a.height=t.videoHeight,n.save(),n.translate(a.width,0),n.scale(-1,1),n.drawImage(t,0,0,a.width,a.height),n.restore(),N&&s){a.width,a.height,s.raw,s.raw.ear,s.raw.ear.x,a.width,a.width,s.raw.ear.y,s.raw.shoulder,s.raw.shoulder.x,a.width,a.width,s.raw.shoulder.y,s.raw.hip,s.raw.hip.x,a.width,a.width,s.raw.hip.y;let e={...s.raw,ear:{...s.raw.ear,x:1-s.raw.ear.x},shoulder:{...s.raw.shoulder,x:1-s.raw.shoulder.x},hip:{...s.raw.hip,x:1-s.raw.hip.x}};!function(e,t,s,a,n){let r=n?"#00ffa3":"#ff5e3a",l=[{x:t.ear.x*s,y:t.ear.y*a,conf:t.ear.conf},{x:t.shoulder.x*s,y:t.shoulder.y*a,conf:t.shoulder.conf},{x:t.hip.x*s,y:t.hip.y*a,conf:t.hip.conf}];e.save(),e.strokeStyle=n?"rgba(0,255,163,0.35)":"rgba(255,94,58,0.35)",e.lineWidth=2.5,e.setLineDash([6,4]),e.beginPath(),e.moveTo(l[0].x,l[0].y);for(let t=1;t<l.length;t++)e.lineTo(l[t].x,l[t].y);e.stroke(),e.setLineDash([]),e.strokeStyle=r,e.lineWidth=2,e.beginPath(),e.moveTo(l[1].x,l[1].y),e.lineTo(l[2].x,l[2].y),e.stroke();let o=["EAR","SHOULDER","HIP"];l.forEach((t,s)=>{if(t.conf<.3)return;let a=e.createRadialGradient(t.x,t.y,1,t.x,t.y,12);a.addColorStop(0,r),a.addColorStop(1,"transparent"),e.fillStyle=a,e.beginPath(),e.arc(t.x,t.y,12,0,2*Math.PI),e.fill(),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,5,0,2*Math.PI),e.fill(),e.fillStyle=r,e.font="bold 10px 'JetBrains Mono', monospace",e.fillText(o[s],t.x+8,t.y-8)}),e.restore()}(n,e,a.width,a.height,"good"===M.status)}}catch(e){console.error("Inference error:",e)}d.current=setTimeout(R,80)},[M,N]),L=(0,n.useCallback)(async()=>{g(null);try{await O(),await P(),m("ready"),f(!0),"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission().catch(()=>{})}catch(t){var e;g(null!==(e=null==t?void 0:t.message)&&void 0!==e?e:"Failed to start"),m("idle")}},[O,P]),W=(0,n.useCallback)(()=>{var e;d.current&&clearTimeout(d.current),null===(e=u.current)||void 0===e||e.getTracks().forEach(e=>e.stop()),u.current=null,f(!1),m("idle"),M.processFrame(null)},[M]);(0,n.useEffect)(()=>(x&&(d.current=setTimeout(R,80)),()=>{d.current&&clearTimeout(d.current)}),[x,R]),(0,n.useEffect)(()=>()=>{W()},[]);let G="model"===h||"camera"===h,F="good"===M.status?"#00ffa3":"bad"===M.status?"#ff5e3a":"#4a5568";return(0,a.jsxs)("div",{className:"min-h-screen bg-[#060810] text-slate-100 flex flex-col",children:[(0,a.jsxs)("header",{className:"flex items-center justify-between px-6 py-3 border-b border-[#1e2337]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)("div",{className:"relative w-8 h-8",children:[(0,a.jsx)("div",{className:"absolute inset-0 rounded-lg bg-[#00ffa3]/10 border border-[#00ffa3]/30"}),(0,a.jsxs)("svg",{viewBox:"0 0 32 32",className:"w-8 h-8 p-1.5",children:[(0,a.jsx)("circle",{cx:"16",cy:"9",r:"3",stroke:"#00ffa3",strokeWidth:"1.5",fill:"none"}),(0,a.jsx)("circle",{cx:"16",cy:"18",r:"2",stroke:"#00ffa3",strokeWidth:"1.5",fill:"none"}),(0,a.jsx)("circle",{cx:"16",cy:"26",r:"2",stroke:"#00ffa3",strokeWidth:"1.5",fill:"none"}),(0,a.jsx)("line",{x1:"16",y1:"12",x2:"16",y2:"16",stroke:"#00ffa3",strokeWidth:"1.5"}),(0,a.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"24",stroke:"#00ffa3",strokeWidth:"1.5",strokeDasharray:"2 1.5"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-sm font-bold tracking-widest font-mono uppercase text-slate-100",children:"PostureGuard"}),(0,a.jsx)("p",{className:"text-[10px] font-mono text-slate-600 tracking-wider -mt-0.5",children:"Edge AI \xb7 YOLOv8-pose \xb7 ONNX"})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(D,{status:M.status}),(0,a.jsx)("button",{onClick:()=>S(e=>!e),className:"text-[10px] font-mono tracking-widest px-3 py-1.5 rounded-full border uppercase transition-all ".concat(k?"bg-[#00ffa3]/10 border-[#00ffa3]/30 text-[#00ffa3]":"bg-transparent border-slate-700 text-slate-500 hover:border-slate-500 hover:text-slate-300"),children:"Analytics"})]})]}),(0,a.jsxs)("main",{className:"flex-1 flex gap-4 p-4 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"relative bg-[#0d1117] border border-[#1e2337] rounded-xl overflow-hidden aspect-video",children:[G&&(0,a.jsx)(T,{message:"model"===h?"LOADING ONNX MODEL...":"camera"===h?"INITIALIZING CAMERA...":""}),(0,a.jsx)("video",{ref:s,className:"hidden",playsInline:!0,muted:!0}),(0,a.jsx)("canvas",{ref:o,className:"w-full h-full object-cover",style:{display:x?"block":"none"}}),!x&&!G&&(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-4",children:[(0,a.jsx)("div",{className:"w-16 h-16 rounded-2xl bg-[#00ffa3]/5 border border-[#00ffa3]/20 flex items-center justify-center",children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",className:"w-7 h-7 text-[#00ffa3]/40",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,a.jsx)("circle",{cx:"12",cy:"8",r:"3"}),(0,a.jsx)("path",{d:"M6 20v-1a6 6 0 0 1 12 0v1"})]})}),(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("p",{className:"text-sm font-mono text-slate-400",children:"Camera inactive"}),(0,a.jsx)("p",{className:"text-xs font-mono text-slate-600 mt-1",children:"Enable detection to begin posture analysis"})]}),p&&(0,a.jsx)("p",{className:"text-xs font-mono text-[#ff5e3a] bg-[#ff5e3a]/10 border border-[#ff5e3a]/20 rounded-lg px-3 py-1.5 max-w-xs text-center",children:p})]}),x&&null!==M.neckAngle&&(0,a.jsxs)("div",{className:"absolute top-3 left-3 flex gap-2",children:[(0,a.jsxs)("div",{className:"bg-[#060810]/80 backdrop-blur-sm border border-[#1e2337] rounded-lg px-2.5 py-1.5",children:[(0,a.jsx)("p",{className:"text-[9px] font-mono text-slate-600 uppercase tracking-widest",children:"Neck"}),(0,a.jsxs)("p",{className:"text-base font-bold font-mono tabular-nums leading-none",style:{color:F},children:[M.neckAngle.toFixed(1),"\xb0"]})]}),(0,a.jsxs)("div",{className:"bg-[#060810]/80 backdrop-blur-sm border border-[#1e2337] rounded-lg px-2.5 py-1.5",children:[(0,a.jsx)("p",{className:"text-[9px] font-mono text-slate-600 uppercase tracking-widest",children:"Spine"}),(0,a.jsxs)("p",{className:"text-base font-bold font-mono tabular-nums leading-none",style:{color:F},children:[null===(e=M.spineAngle)||void 0===e?void 0:e.toFixed(1),"\xb0"]})]})]}),M.badStreak>0&&(0,a.jsxs)("div",{className:"absolute top-3 right-3 bg-[#ff5e3a]/20 border border-[#ff5e3a]/40 rounded-lg px-2.5 py-1.5",children:[(0,a.jsx)("p",{className:"text-[9px] font-mono text-[#ff5e3a]/70 uppercase tracking-widest",children:"Streak"}),(0,a.jsx)("p",{className:"text-base font-bold font-mono tabular-nums leading-none text-[#ff5e3a]",children:M.badStreak})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3 bg-[#0d1117] border border-[#1e2337] rounded-xl px-4 py-3",children:[(0,a.jsxs)("button",{onClick:x?W:L,disabled:G,className:"flex items-center gap-2 px-4 py-2 rounded-lg text-xs font-bold font-mono tracking-wider uppercase transition-all disabled:opacity-50 ".concat(x?"bg-[#ff5e3a]/15 border border-[#ff5e3a]/40 text-[#ff5e3a] hover:bg-[#ff5e3a]/25":"bg-[#00ffa3]/15 border border-[#00ffa3]/40 text-[#00ffa3] hover:bg-[#00ffa3]/25"),children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full ".concat(x?"bg-[#ff5e3a] animate-pulse":"bg-[#00ffa3]")}),G?"Starting...":x?"Stop":"Start Detection"]}),(0,a.jsx)("div",{className:"w-px h-6 bg-[#1e2337]"}),(0,a.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[(0,a.jsx)("div",{onClick:()=>v(e=>!e),className:"relative w-8 h-4 rounded-full border transition-colors ".concat(N?"bg-[#00ffa3]/20 border-[#00ffa3]/40":"bg-slate-800 border-slate-700"),children:(0,a.jsx)("span",{className:"absolute top-0.5 left-0.5 w-3 h-3 rounded-full transition-all ".concat(N?"translate-x-4 bg-[#00ffa3]":"bg-slate-500")})}),(0,a.jsx)("span",{className:"text-[11px] font-mono text-slate-400 uppercase tracking-widest",children:"Skeleton"})]}),(0,a.jsx)("div",{className:"w-px h-6 bg-[#1e2337]"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,a.jsx)("span",{className:"text-[11px] font-mono text-slate-500 uppercase tracking-widest whitespace-nowrap",children:"Sensitivity"}),(0,a.jsx)("input",{type:"range",min:5,max:40,step:1,value:M.threshold,onChange:e=>M.setThreshold(Number(e.target.value)),className:"flex-1 h-1 accent-[#00ffa3] cursor-pointer"}),(0,a.jsx)("span",{className:"text-[11px] font-mono text-[#00ffa3] w-5 tabular-nums",children:M.threshold})]}),(0,a.jsx)("div",{className:"w-px h-6 bg-[#1e2337]"}),(0,a.jsx)("button",{onClick:M.resetSession,className:"text-[11px] font-mono text-slate-500 hover:text-slate-300 uppercase tracking-widest transition-colors",children:"Reset"})]}),x&&"unknown"!==M.status&&null!==M.neckAngle&&(0,a.jsx)("div",{className:"rounded-xl border px-4 py-3 text-xs font-mono transition-all",style:{borderColor:"".concat(F,"40"),background:"".concat(F,"08"),color:F},children:w(M.status,M.neckAngle,null!==(t=M.spineAngle)&&void 0!==t?t:0)}),(0,a.jsx)(E,{entries:M.alertLog})]}),k&&(0,a.jsx)("div",{className:"w-80 xl:w-96 flex-shrink-0 overflow-y-auto",children:(0,a.jsx)(A,{analyticsPoints:M.analyticsPoints,postureScore:M.postureScore,sessionId:M.sessionId,neckAngle:M.neckAngle,spineAngle:M.spineAngle})})]}),(0,a.jsxs)("footer",{className:"px-6 py-2 border-t border-[#1e2337] flex items-center justify-between",children:[(0,a.jsx)("p",{className:"text-[10px] font-mono text-slate-700 tracking-widest",children:"All inference runs locally \xb7 No data leaves your device"}),(0,a.jsx)("p",{className:"text-[10px] font-mono text-slate-700 tracking-widest",children:"YOLOv8n-pose \xb7 ONNX Runtime Web"})]})]})}}},function(e){e.O(0,[15,771,971,23,744],function(){return e(e.s=5349)}),_N_E=e.O()}]);
|
index.html
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/b2db8554-ed64f5072c2ba889.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/771-6cfce061b1e036d8.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/app/page-938897cf9f563166.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div class="min-h-screen bg-[#060810] text-slate-100 flex flex-col"><header class="flex items-center justify-between px-6 py-3 border-b border-[#1e2337]"><div class="flex items-center gap-3"><div class="relative w-8 h-8"><div class="absolute inset-0 rounded-lg bg-[#00ffa3]/10 border border-[#00ffa3]/30"></div><svg viewBox="0 0 32 32" class="w-8 h-8 p-1.5"><circle cx="16" cy="9" r="3" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><circle cx="16" cy="18" r="2" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><circle cx="16" cy="26" r="2" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><line x1="16" y1="12" x2="16" y2="16" stroke="#00ffa3" stroke-width="1.5"></line><line x1="16" y1="20" x2="16" y2="24" stroke="#00ffa3" stroke-width="1.5" stroke-dasharray="2 1.5"></line></svg></div><div><h1 class="text-sm font-bold tracking-widest font-mono uppercase text-slate-100">PostureGuard</h1><p class="text-[10px] font-mono text-slate-600 tracking-wider -mt-0.5">Edge AI · YOLOv8-pose · ONNX</p></div></div><div class="flex items-center gap-3"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full border text-xs font-mono tracking-widest uppercase border-slate-700/60 bg-slate-800/20"><span class="w-1.5 h-1.5 rounded-full bg-slate-500 "></span><span class="text-slate-400">DETECTING...</span></div><button class="text-[10px] font-mono tracking-widest px-3 py-1.5 rounded-full border uppercase transition-all bg-transparent border-slate-700 text-slate-500 hover:border-slate-500 hover:text-slate-300">Analytics</button></div></header><main class="flex-1 flex gap-4 p-4 overflow-hidden"><div class="flex flex-col gap-3 flex-1 min-w-0"><div class="relative bg-[#0d1117] border border-[#1e2337] rounded-xl overflow-hidden aspect-video"><video class="hidden" playsInline="" muted=""></video><canvas class="w-full h-full object-cover" style="display:none"></canvas><div class="absolute inset-0 flex flex-col items-center justify-center gap-4"><div class="w-16 h-16 rounded-2xl bg-[#00ffa3]/5 border border-[#00ffa3]/20 flex items-center justify-center"><svg viewBox="0 0 24 24" class="w-7 h-7 text-[#00ffa3]/40" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="8" r="3"></circle><path d="M6 20v-1a6 6 0 0 1 12 0v1"></path></svg></div><div class="text-center"><p class="text-sm font-mono text-slate-400">Camera inactive</p><p class="text-xs font-mono text-slate-600 mt-1">Enable detection to begin posture analysis</p></div></div></div><div class="flex items-center gap-3 bg-[#0d1117] border border-[#1e2337] rounded-xl px-4 py-3"><button class="flex items-center gap-2 px-4 py-2 rounded-lg text-xs font-bold font-mono tracking-wider uppercase transition-all disabled:opacity-50 bg-[#00ffa3]/15 border border-[#00ffa3]/40 text-[#00ffa3] hover:bg-[#00ffa3]/25"><span class="w-1.5 h-1.5 rounded-full bg-[#00ffa3]"></span>Start Detection</button><div class="w-px h-6 bg-[#1e2337]"></div><label class="flex items-center gap-2 cursor-pointer select-none"><div class="relative w-8 h-4 rounded-full border transition-colors bg-[#00ffa3]/20 border-[#00ffa3]/40"><span class="absolute top-0.5 left-0.5 w-3 h-3 rounded-full transition-all translate-x-4 bg-[#00ffa3]"></span></div><span class="text-[11px] font-mono text-slate-400 uppercase tracking-widest">Skeleton</span></label><div class="w-px h-6 bg-[#1e2337]"></div><div class="flex items-center gap-2 flex-1"><span class="text-[11px] font-mono text-slate-500 uppercase tracking-widest whitespace-nowrap">Sensitivity</span><input type="range" min="5" max="40" step="1" class="flex-1 h-1 accent-[#00ffa3] cursor-pointer" value="15"/><span class="text-[11px] font-mono text-[#00ffa3] w-5 tabular-nums">15</span></div><div class="w-px h-6 bg-[#1e2337]"></div><button class="text-[11px] font-mono text-slate-500 hover:text-slate-300 uppercase tracking-widest transition-colors">Reset</button></div></div></main><footer class="px-6 py-2 border-t border-[#1e2337] flex items-center justify-between"><p class="text-[10px] font-mono text-slate-700 tracking-widest">All inference runs locally · No data leaves your device</p><p class="text-[10px] font-mono text-slate-700 tracking-widest">YOLOv8n-pose · ONNX Runtime Web</p></footer></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[4193,[\"15\",\"static/chunks/b2db8554-ed64f5072c2ba889.js\",\"771\",\"static/chunks/771-6cfce061b1e036d8.js\",\"931\",\"static/chunks/app/page-938897cf9f563166.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n9:I[6130,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"I4uC26faRNLFFzrfhg08N\",\"assetPrefix\":\"/spaces/abdullahsamsudii/EdgePostureGuard\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-[#060810] text-slate-100 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"PostureGuard — Edge AI Posture Detection\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device.\"}]]\n3:null\n"])</script></body></html>
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/fd9d1056-b984c68a60c5470f.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/23-c01111a77445e36b.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/main-app-879d53eaff1e26da.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/b2db8554-ed64f5072c2ba889.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/771-6cfce061b1e036d8.js" async=""></script><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/app/page-765dad79341e2c72.js" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>PostureGuard — Edge AI Posture Detection</title><meta name="description" content="Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="bg-[#060810] text-slate-100 antialiased"><div class="min-h-screen bg-[#060810] text-slate-100 flex flex-col"><header class="flex items-center justify-between px-6 py-3 border-b border-[#1e2337]"><div class="flex items-center gap-3"><div class="relative w-8 h-8"><div class="absolute inset-0 rounded-lg bg-[#00ffa3]/10 border border-[#00ffa3]/30"></div><svg viewBox="0 0 32 32" class="w-8 h-8 p-1.5"><circle cx="16" cy="9" r="3" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><circle cx="16" cy="18" r="2" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><circle cx="16" cy="26" r="2" stroke="#00ffa3" stroke-width="1.5" fill="none"></circle><line x1="16" y1="12" x2="16" y2="16" stroke="#00ffa3" stroke-width="1.5"></line><line x1="16" y1="20" x2="16" y2="24" stroke="#00ffa3" stroke-width="1.5" stroke-dasharray="2 1.5"></line></svg></div><div><h1 class="text-sm font-bold tracking-widest font-mono uppercase text-slate-100">PostureGuard</h1><p class="text-[10px] font-mono text-slate-600 tracking-wider -mt-0.5">Edge AI · YOLOv8-pose · ONNX</p></div></div><div class="flex items-center gap-3"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full border text-xs font-mono tracking-widest uppercase border-slate-700/60 bg-slate-800/20"><span class="w-1.5 h-1.5 rounded-full bg-slate-500 "></span><span class="text-slate-400">DETECTING...</span></div><button class="text-[10px] font-mono tracking-widest px-3 py-1.5 rounded-full border uppercase transition-all bg-transparent border-slate-700 text-slate-500 hover:border-slate-500 hover:text-slate-300">Analytics</button></div></header><main class="flex-1 flex gap-4 p-4 overflow-hidden"><div class="flex flex-col gap-3 flex-1 min-w-0"><div class="relative bg-[#0d1117] border border-[#1e2337] rounded-xl overflow-hidden aspect-video"><video class="hidden" playsInline="" muted=""></video><canvas class="w-full h-full object-cover" style="display:none"></canvas><div class="absolute inset-0 flex flex-col items-center justify-center gap-4"><div class="w-16 h-16 rounded-2xl bg-[#00ffa3]/5 border border-[#00ffa3]/20 flex items-center justify-center"><svg viewBox="0 0 24 24" class="w-7 h-7 text-[#00ffa3]/40" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="8" r="3"></circle><path d="M6 20v-1a6 6 0 0 1 12 0v1"></path></svg></div><div class="text-center"><p class="text-sm font-mono text-slate-400">Camera inactive</p><p class="text-xs font-mono text-slate-600 mt-1">Enable detection to begin posture analysis</p></div></div></div><div class="flex items-center gap-3 bg-[#0d1117] border border-[#1e2337] rounded-xl px-4 py-3"><button class="flex items-center gap-2 px-4 py-2 rounded-lg text-xs font-bold font-mono tracking-wider uppercase transition-all disabled:opacity-50 bg-[#00ffa3]/15 border border-[#00ffa3]/40 text-[#00ffa3] hover:bg-[#00ffa3]/25"><span class="w-1.5 h-1.5 rounded-full bg-[#00ffa3]"></span>Start Detection</button><div class="w-px h-6 bg-[#1e2337]"></div><label class="flex items-center gap-2 cursor-pointer select-none"><div class="relative w-8 h-4 rounded-full border transition-colors bg-[#00ffa3]/20 border-[#00ffa3]/40"><span class="absolute top-0.5 left-0.5 w-3 h-3 rounded-full transition-all translate-x-4 bg-[#00ffa3]"></span></div><span class="text-[11px] font-mono text-slate-400 uppercase tracking-widest">Skeleton</span></label><div class="w-px h-6 bg-[#1e2337]"></div><div class="flex items-center gap-2 flex-1"><span class="text-[11px] font-mono text-slate-500 uppercase tracking-widest whitespace-nowrap">Sensitivity</span><input type="range" min="5" max="40" step="1" class="flex-1 h-1 accent-[#00ffa3] cursor-pointer" value="15"/><span class="text-[11px] font-mono text-[#00ffa3] w-5 tabular-nums">15</span></div><div class="w-px h-6 bg-[#1e2337]"></div><button class="text-[11px] font-mono text-slate-500 hover:text-slate-300 uppercase tracking-widest transition-colors">Reset</button></div></div></main><footer class="px-6 py-2 border-t border-[#1e2337] flex items-center justify-between"><p class="text-[10px] font-mono text-slate-700 tracking-widest">All inference runs locally · No data leaves your device</p><p class="text-[10px] font-mono text-slate-700 tracking-widest">YOLOv8n-pose · ONNX Runtime Web</p></footer></div><script src="/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/chunks/webpack-c17d5ea1ff09a30c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[4193,[\"15\",\"static/chunks/b2db8554-ed64f5072c2ba889.js\",\"771\",\"static/chunks/771-6cfce061b1e036d8.js\",\"931\",\"static/chunks/app/page-765dad79341e2c72.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n9:I[6130,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"RggAqs6xEVVo2BkpTWJHZ\",\"assetPrefix\":\"/spaces/abdullahsamsudii/EdgePostureGuard\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-[#060810] text-slate-100 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"PostureGuard — Edge AI Posture Detection\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device.\"}]]\n3:null\n"])</script></body></html>
|
index.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
2:I[6513,[],"ClientPageRoot"]
|
| 2 |
-
3:I[4193,["15","static/chunks/b2db8554-ed64f5072c2ba889.js","771","static/chunks/771-6cfce061b1e036d8.js","931","static/chunks/app/page-
|
| 3 |
4:I[9275,[],""]
|
| 4 |
5:I[1343,[],""]
|
| 5 |
-
0:["
|
| 6 |
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"PostureGuard — Edge AI Posture Detection"}],["$","meta","3",{"name":"description","content":"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."}]]
|
| 7 |
1:null
|
|
|
|
| 1 |
2:I[6513,[],"ClientPageRoot"]
|
| 2 |
+
3:I[4193,["15","static/chunks/b2db8554-ed64f5072c2ba889.js","771","static/chunks/771-6cfce061b1e036d8.js","931","static/chunks/app/page-765dad79341e2c72.js"],"default"]
|
| 3 |
4:I[9275,[],""]
|
| 4 |
5:I[1343,[],""]
|
| 5 |
+
0:["RggAqs6xEVVo2BkpTWJHZ",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}]],null],null]},[["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"bg-[#060810] text-slate-100 antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/spaces/abdullahsamsudii/EdgePostureGuard/_next/static/css/1cf62c737a71895f.css","precedence":"next","crossOrigin":"$undefined"}]],"$L6"]]]]
|
| 6 |
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"PostureGuard — Edge AI Posture Detection"}],["$","meta","3",{"name":"description","content":"Real-time client-side posture analysis using YOLOv8-pose and ONNX Runtime Web. No data leaves your device."}]]
|
| 7 |
1:null
|