VOICE BOARD
γ₁ = 14.134725141734693
mem: 0 ○ offline
speak — words will appear as nodes on the floor
0 nodes
// ── FOLLOW-POINTER TOOLTIP ──────────────────────────────────────────────────── (function(){ var tip = document.getElementById('tip'); if(!tip) return; var currentHit = null; function followTip(e){ var margin=18, tw=tip.offsetWidth||244, th=tip.offsetHeight||160; var lx=e.clientX+margin; if(lx+tw>window.innerWidth-8) lx=e.clientX-tw-margin; var ly=e.clientY-12; if(ly+th>window.innerHeight-8) ly=window.innerHeight-th-8; if(ly<4) ly=4; tip.style.left=lx+'px'; tip.style.top=ly+'px'; } // patch existing mousemove on canvas(es) var canvases=document.querySelectorAll('canvas'); canvases.forEach(function(cv){ cv.addEventListener('mousemove',function(e){ followTip(e); }); cv.addEventListener('mouseleave',function(){ currentHit=null; }); }); })();