Spaces:
Running
Running
| <html lang="en-us"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
| <title>LocalVoiceLLM | WebGPU AI</title> | |
| <link rel="shortcut icon" href="TemplateData/favicon.ico"> | |
| <link rel="stylesheet" href="TemplateData/style.css"> | |
| </head> | |
| <body> | |
| <div id="unity-container"> | |
| <canvas id="unity-canvas" width=1280 height=720 tabindex="-1"></canvas> | |
| <div id="custom-loader"> | |
| <div class="glass-panel"> | |
| <div class="loader-header"> | |
| <div class="ai-pulse"></div> | |
| <h2>LocalVoiceLLM INITIALIZING</h2> | |
| </div> | |
| <div class="progress-track"> | |
| <div class="progress-fill" id="progress-bar"></div> | |
| </div> | |
| <div class="status-text" id="loading-text">Loading WebGPU Kernels...</div> | |
| </div> | |
| </div> | |
| <div id="about-panel" class="hidden"> | |
| <div class="glass-panel license-scroll"> | |
| <button class="close-btn" onclick="toggleAbout(false)">×</button> | |
| <h3>Third Party Notices</h3> | |
| <pre> | |
| SimpleOffline Engine | |
| Copyright (c) 2026 David Addis. All rights reserved. | |
| AI Models (Running Locally via ONNX/Sentis): | |
| • Whisper: MIT License (OpenAI) | |
| • SmolLM2: Apache 2.0 (HuggingFaceTB) | |
| • Supertonic-2: OpenRAIL-M (Supertone Inc.) | |
| Full license texts are available in THIRD_PARTY_NOTICES.txt | |
| </pre> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| var canvas = document.querySelector("#unity-canvas"); | |
| var loaderOverlay = document.querySelector("#custom-loader"); | |
| var progressBar = document.querySelector("#progress-bar"); | |
| var loadingText = document.querySelector("#loading-text"); | |
| var aboutPanel = document.querySelector("#about-panel"); | |
| function toggleAbout(show) { | |
| aboutPanel.className = show ? "visible" : "hidden"; | |
| } | |
| var buildUrl = "Build"; | |
| var loaderUrl = buildUrl + "/WebGL.loader.js"; | |
| var config = { | |
| dataUrl: buildUrl + "/WebGL.data.br", | |
| frameworkUrl: buildUrl + "/WebGL.framework.js.br", | |
| codeUrl: buildUrl + "/WebGL.wasm.br", | |
| streamingAssetsUrl: "StreamingAssets", | |
| companyName: "David Addis", | |
| productName: "LocalVoiceLLM", | |
| productVersion: "0.2.3", | |
| }; | |
| var script = document.createElement("script"); | |
| script.src = loaderUrl; | |
| script.onload = () => { | |
| createUnityInstance(canvas, config, (progress) => { | |
| progressBar.style.width = 100 * progress + "%"; | |
| loadingText.innerText = "Downloading Assets: " + Math.round(100 * progress) + "%"; | |
| }).then((unityInstance) => { | |
| loaderOverlay.style.opacity = "0"; | |
| setTimeout(() => { loaderOverlay.style.display = "none"; }, 500); | |
| // Attach instance to window so Unity can call JS functions | |
| window.unityInstance = unityInstance; | |
| }); | |
| }; | |
| document.body.appendChild(script); | |
| </script> | |
| </body> | |
| </html> | |