SuperHQ Motion experiment: locomotion and action checkpoints, runtime, clips, evaluation
6adbbb1 verified Download examples/playground.html from superhq-ai/motion: direct link, hf CLI and curl.
- Browser
- Download file 5.12 kB
-
https://huggingface.co/superhq-ai/motion/resolve/main/examples/playground.html
- Command line
-
hf download hf://superhq-ai/motion/examples/playground.html
-
curl -L -o playground.html https://huggingface.co/superhq-ai/motion/resolve/main/examples/playground.html
5.12 kB
| <html lang="en"><head> | |
| <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> | |
| <meta name="motion-model" content="../model/"> | |
| <meta name="motion-actions" content="../actions/"> | |
| <meta name="motion-clips" content="../clips/action-clips.json"> | |
| <meta name="motion-character" content="./assets/characters/eric-renderpeople.glb"> | |
| <title>SuperHQ Motion Experiment</title><link rel="icon" href="data:,"> | |
| </head><body> | |
| <main id="viewport" aria-label="Interactive motion playground" tabindex="0"> | |
| <div class="tools"><div class="connection"><i id="lamp"></i><span id="connection" role="status">Loading model</span></div> | |
| <details id="help"><summary aria-label="Help and settings" title="Help and settings">?</summary><div class="help-panel"> | |
| <h2>Controls</h2> | |
| <dl><dt>Move</dt><dd><kbd>W</kbd><kbd>A</kbd><kbd>S</kbd><kbd>D</kbd></dd><dt>Jog</dt><dd><kbd>Shift</kbd></dd><dt>Sprint</dt><dd><kbd>Ctrl</kbd> + <kbd>Shift</kbd></dd><dt>Jump</dt><dd><kbd>Space</kbd></dd><dt>Crouch</dt><dd><kbd>C</kbd></dd><dt>Look</dt><dd>Drag · <button id="capture" title="Lock mouse look. Escape releases the cursor.">Lock cursor</button></dd><dt>Dash / lunge</dt><dd><kbd>F</kbd> / <kbd>G</kbd></dd><dt>Knockback test</dt><dd><kbd>H</kbd></dd><dt>Zoom</dt><dd>Scroll</dd><dt>Shoulder view</dt><dd>Hold right mouse</dd><dt>Pause / reset</dt><dd><kbd>P</kbd> / <kbd>R</kbd></dd></dl> | |
| <div class="help-footer"><label title="Display model only; motion is identical">Character <select id="character"><option value="eric">Eric</option><option value="mannequin">Mannequin</option></select></label><a id="credit" href="https://sketchfab.com/3d-models/eric-rigged-001-rigged-3d-business-man-a46bc9f67aaa415bb4f3241eef900e7f" target="_blank" rel="noopener" title="Eric Rigged 001 by Renderpeople, CC BY 4.0">Eric © Renderpeople, CC BY 4.0 ↗</a><label title="Display-only vertical correction, bounded to 5 cm"><input id="guard" type="checkbox" checked> Floor guard</label><a id="comparison" href="https://huggingface.co/spaces/superhq-ai/motion/blob/main/PLAYGROUND.md" target="_blank" rel="noopener">Experiment notes ↗</a></div> | |
| </div></details></div> | |
| <div id="reticle" aria-hidden="true">+</div> | |
| <div id="scene-error" role="alert" hidden></div> | |
| <div class="motion-state"><strong id="state">Standing idle</strong><span id="route">Ready when you are</span></div> | |
| <div class="telemetry"><span id="speed">0.00</span> m/s <span class="separator">·</span> <span id="latency">0.0</span> ms / inference</div> | |
| <nav class="toolbar" aria-label="Motion controls"> | |
| <select id="style" aria-label="Motion style"><option value="natural">Natural</option><option value="carry">Carrying</option><option value="zombie">Zombie</option></select><span class="divider"></span> | |
| <button id="crouch" aria-pressed="false" title="Toggle crouch (C)"><span id="crouch-label">Crouch</span> <kbd>C</kbd></button> | |
| <button id="jump" title="Jump (Space)">Jump <kbd>Space</kbd></button> | |
| <button id="demo" title="Repeat walk and crouch transitions">Walk ↔ crouch <span>▶</span></button><span class="divider"></span> | |
| <button id="pause" aria-label="Pause" title="Pause (P)">Ⅱ</button><button id="reset" aria-label="Reset" title="Reset (R)">↺</button> | |
| </nav> | |
| <p id="demo-note" role="status"></p> | |
| </main> | |
| <script type="module"> | |
| const signature=location.hostname.endsWith('.static.hf.space')?new URL(location.href).searchParams.get('__sign'):null; | |
| function asset(path){const url=new URL(path,document.baseURI);if(signature&&url.origin===location.origin)url.searchParams.set('__sign',signature);return url.href;} | |
| const css=document.createElement('link');css.rel='stylesheet';css.href=asset('./playground.css');document.head.append(css); | |
| const imports={three:asset('./vendor/three.module.js')}; | |
| for(const path of ['./playground.js','./playground-driver.js','../src/game-controller.js','../src/game-driver.js','../src/action-controller.js','../src/action-stabilizer.js','../src/movement-network.js','../src/pose.js','../src/profile-controller.js','../src/profile-clock.js','../src/controller.js','../src/network.js','../src/ground-pose.js','../src/stride-jump.js','../src/leg-ik.js','../src/clip-actions.js','../src/adapters/three.js','./vendor/jsm/loaders/GLTFLoader.js','./vendor/jsm/utils/BufferGeometryUtils.js','./vendor/three.module.js','./vendor/three.core.js'])imports[new URL(path,document.baseURI).href]=asset(path); | |
| const map=document.createElement('script');map.type='importmap';map.textContent=JSON.stringify({imports});document.head.append(map); | |
| function failed(error){document.getElementById('connection').textContent='Could not start';document.getElementById('lamp').className='failed';const box=document.getElementById('scene-error');box.hidden=false;box.textContent=String(error?.message||error).replace(/([?&]__sign=)[^\s"']+/g,'$1[redacted]');} | |
| const deadline=setTimeout(()=>failed('Loading is taking too long. Reload or check your connection.'),30000); | |
| import(asset('./playground.js')).catch(failed).finally(()=>clearTimeout(deadline)); | |
| </script></body></html> | |