HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/panomity.de/vr.panomity.com/test-splat.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Splat-Test p7</title>
<style>html,body{margin:0;height:100%;overflow:hidden;background:#000}</style>
</head>
<body>
<script type="importmap">
{
  "imports": {
    "three": "https://unpkg.com/three@0.160.0/build/three.module.js",
    "gaussian-splats-3d": "https://unpkg.com/@mkkellogg/gaussian-splats-3d@0.4.7/build/gaussian-splats-3d.module.js"
  }
}
</script>
<script type="module">
import * as GaussianSplats3D from 'gaussian-splats-3d';

const params = new URLSearchParams(location.search);
const yaw = parseFloat(params.get('yaw') || '0') * Math.PI / 180;
const url = params.get('url') || '/panos/p7.tiles/splat.splat';

// Unsere Splats: x rechts, y unten, z vorwärts → Kamera-Up ist -y.
const look = [Math.sin(yaw), 0, Math.cos(yaw)];

const viewer = new GaussianSplats3D.Viewer({
    cameraUp: [0, -1, 0],
    initialCameraPosition: [0, 0, 0.001],
    initialCameraLookAt: look,
    sharedMemoryForWorkers: false,
});
viewer.addSplatScene(url, { showLoadingUI: true, progressiveLoad: false })
    .then(() => {
        viewer.start();
        window.__splatReady = true;
    })
    .catch(e => { window.__splatError = String(e); });
</script>
</body>
</html>