CRITICAL: WebGPU Required
Hyperscape requires WebGPU. WebGL WILL NOT WORK. This is a hard requirement due to our use of TSL (Three Shading Language) for all materials and post-processing effects. TSL only works with the WebGPU node material pipeline.Why WebGPU-Only?
TSL Shaders
All materials use Three.js Shading Language (TSL) which requires WebGPU:- Node-based material system
- GPU-computed animations (dissolve, fade, flicker)
- Procedural noise and patterns
- Custom vertex/fragment shaders
Post-Processing Effects
All post-processing uses TSL-based node materials:- Bloom (glow effects)
- Tone mapping (HDR to SDR)
- Color grading (LUT-based)
- Outline rendering (entity highlights)
No Fallback Path
There is NO WebGL fallback because:- TSL compiles to WGSL (WebGPU Shading Language)
- WGSL cannot run on WebGL
- Rewriting all shaders for WebGL would require months of work
- WebGPU provides better performance and features
Browser Requirements
Supported Browsers
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 113+ | Recommended, best performance |
| Edge | 113+ | Chromium-based, same as Chrome |
| Safari | 18+ (macOS 15+) | Safari 17 support removed Feb 2026 |
| Firefox | Nightly only | Behind flag, not recommended |
Check your browser’s WebGPU support at webgpureport.org
Safari 17 Support Removed
BREAKING CHANGE (commit 205f96491, February 27, 2026): Safari 17 support was removed. Safari 18+ (macOS 15 Sequoia or later) is now required. Reason:- Safari 17 had incomplete WebGPU implementation
- Missing features caused rendering bugs
- Safari 18 provides full WebGPU support
- Update macOS to 15.0+ (Sequoia)
- Update Safari to 18.0+
- Or use Chrome 113+ / Edge 113+
GPU Requirements
Desktop GPUs
Minimum:- NVIDIA GTX 1060 or equivalent
- AMD RX 580 or equivalent
- Intel Arc A380 or equivalent
- NVIDIA RTX 3060 or better
- AMD RX 6600 or better
- Intel Arc A750 or better
Mobile GPUs
iOS:- iPhone 12 or newer (A14 Bionic+)
- iPad Air 4th gen or newer
- iPad Pro 3rd gen or newer
- Snapdragon 888 or newer
- Mali-G78 or newer
- Adreno 660 or newer
Enabling WebGPU
Chrome / Edge
WebGPU is enabled by default in Chrome 113+ and Edge 113+. Verify:- Open
chrome://gpu - Check “WebGPU” status
- Should show “Hardware accelerated”
- Go to
chrome://settings - System → “Use hardware acceleration when available”
- Enable the toggle
- Restart browser
Safari
WebGPU is enabled by default in Safari 18+ (macOS 15+). Verify:- Safari → Preferences → Advanced
- Check “Show Develop menu in menu bar”
- Develop → Experimental Features
- Verify “WebGPU” is checked
- Develop → Experimental Features → WebGPU
- Check the box
- Restart Safari
Firefox
WebGPU is behind a flag in Firefox (not recommended for production use). Enable:- Open
about:config - Search for
dom.webgpu.enabled - Set to
true - Restart Firefox
Server/Streaming Requirements
For Vast.ai and other GPU servers running the streaming pipeline:Hardware Requirements
GPU:- NVIDIA GPU with Vulkan support (REQUIRED)
- RTX 3060 Ti or better recommended
- Vulkan 1.2+ support
- Must run headful with Xorg or Xvfb (NOT headless Chrome)
- Chrome uses ANGLE/Vulkan backend to access WebGPU
- Headless mode does NOT support WebGPU
- NVIDIA driver 535+ recommended
- Vulkan ICD installed (
/usr/share/vulkan/icd.d/nvidia_icd.json)
Software Requirements
Environment Configuration
Deployment Validation
Thedeploy-vast.sh script validates WebGPU requirements:
- NVIDIA GPU not detected
- Vulkan ICD missing
- Display server not running
- WebGPU preflight test fails
- Previous versions fell back to headless mode
- Headless mode doesn’t support WebGPU
- Now deployment FAILS immediately if WebGPU unavailable
Removed Features
WebGL Fallback (BREAKING)
Removed in commit 47782ed (February 27, 2026):URL Parameters (REMOVED)
Environment Variables (DEPRECATED)
- Backwards compatibility with old configs
- Prevents deployment failures from stale env files
- Logged as warnings when set
Error Messages
User-Facing Errors
When WebGPU is unavailable, users see:SYSTEM_WEBGL_ERROR (renamed from WebGL, kept for compatibility)
Location: packages/client/src/lib/errorCodes.ts
Developer Errors
When WebGPU fails during development:Migration Guide
For Developers
If you have code that checks for WebGL:For Deployment
Update your deployment configs:For Users
If you see “WebGPU not supported” error:-
Check browser version:
- Chrome:
chrome://version(need 113+) - Edge:
edge://version(need 113+) - Safari: Safari → About Safari (need 18+)
- Chrome:
-
Update browser:
- Chrome: google.com/chrome
- Edge: microsoft.com/edge
- Safari: Update macOS to 15.0+ (Sequoia)
-
Enable hardware acceleration:
- Chrome/Edge:
chrome://settings→ System → “Use hardware acceleration” - Safari: Preferences → Advanced → Experimental Features → WebGPU
- Chrome/Edge:
-
Update GPU drivers:
- NVIDIA: nvidia.com/drivers
- AMD: amd.com/support
- Intel: intel.com/download-center
Testing WebGPU Support
Browser Console Test
Open browser console and run:WebGPU Report
Visit webgpureport.org to see:- WebGPU availability
- GPU adapter information
- Supported features and limits
- Browser compatibility
Common Issues
”WebGPU not supported” Error
Cause: Browser doesn’t support WebGPU Solutions:- Update browser to Chrome 113+, Edge 113+, or Safari 18+
- Enable hardware acceleration in browser settings
- Update GPU drivers
- Check for browser extensions blocking WebGPU
Black Screen / No Rendering
Cause: WebGPU initialized but rendering failed Solutions:- Check browser console for WebGPU errors
- Verify GPU drivers are up to date
- Try different browser (Chrome vs Edge vs Safari)
- Disable browser extensions
- Clear browser cache and reload
”GPU process was unable to boot”
Cause: GPU access disabled or driver issue Solutions:- Enable hardware acceleration:
chrome://settings→ System - Update GPU drivers
- Check for GPU blocklist:
chrome://gpu→ “Problems Detected” - Try
--ignore-gpu-blocklistflag (development only)
Streaming Shows Black Frames
Cause: WebGPU not initializing on remote server Solutions:- Check GPU diagnostics:
bunx pm2 logs hyperscape-duel --lines 500 | grep "GPU Diagnostics" - Verify display server:
echo $DISPLAY && xdpyinfo - Check Vulkan:
vulkaninfo --summary - Review preflight test:
bunx pm2 logs hyperscape-duel | grep preflight - Ensure
STREAM_CAPTURE_HEADLESS=false
Development Rules
DO NOT:
- ❌ Add WebGL fallback code
- ❌ Use
--disable-webgpuflags - ❌ Use
forceWebGLparameters - ❌ Create headless Chrome configurations without GPU/WebGPU support
- ❌ Suggest WebGL as an alternative
DO:
- ✅ Assume WebGPU availability in all renderer code
- ✅ Throw errors immediately if WebGPU unavailable
- ✅ Use TSL for all custom shaders
- ✅ Test on WebGPU-capable browsers only
- ✅ Document WebGPU requirements in user-facing docs