Pixel Refresh | Vision Pro
A specialized WebXR utility designed to fix stuck pixels on Apple Vision Pro and other VR headsets. This application uses immersive VR sessions to rapidly flash RGB, CMY, and White color patterns to stimulate stuck sub-pixels.
Features
- WebXR Immersive Mode: Launches a full 360-degree VR session to target every pixel on the display.
- 2D Fullscreen Mode: Works on standard monitors, phones, and tablets via browser fullscreen API.
- Full Color Cycle: Rapidly cycles Red, Green, Blue, Cyan, Magenta, Yellow, White, and Black.
- Adjustable Speed: Control flash frequency from 30ms to 500ms.
- Design System: Built with the "Soft, Translucent, and Alive" philosophy featuring glassmorphism and organic animations.
Tech Stack
- Framework: Next.js 16 (App Router)
- Runtime: Bun
- 3D Engine: Three.js (v0.170.0)
- XR/VR: @react-three/xr, @react-three/fiber
- Styling: Tailwind CSS v4
- UI Components: Shadcn UI (customized)
- Fonts: Inter (UI) & Playfair Display (Headings)
Design Philosophy
This project implements a custom design system focused on being "Soft, Translucent, and Alive":
- Soft: Deep border radii (
rounded-3xl) for a friendly, organic feel. - Translucent: Glassmorphism (
backdrop-blur-md,bg-background/80) allows the background to bleed through UI cards. - Alive: Features a "Living Blob" background animation that breathes and shifts over time.
Getting Started
This project uses Bun for package management.
-
Install dependencies:
bun install -
Run the development server:
bun dev -
Open: Navigate to
http://localhost:3000.
Usage on Vision Pro
To test on an Apple Vision Pro or other headset, you need to access the app over the network.
- Ensure your computer and Vision Pro are on the same Wi-Fi network.
- Find your computer's local IP address (e.g.,
192.168.1.x). - Open Safari on Vision Pro and navigate to
http://<your-ip>:3000.- Note: WebXR typically requires a Secure Context (HTTPS). For local development, you may need to enable "WebXR Incubation" flags or setup a local proxy with HTTPS (like ngrok).
- Click "Enter Immersive Mode (XR)".
- The screen will begin flashing. Leave it running for 10-20 minutes to attempt to unstuck pixels.
Usage on Standard Displays
- Open the app on your computer, phone, or tablet.
- Toggle the Device Mode switch to "Standard Display".
- Click "Start Fullscreen Flash".
- The screen will enter fullscreen mode and begin flashing. Click anywhere to exit.
⚠️ Safety Warning
PHOTOSENSITIVITY WARNING: This application generates rapidly flashing lights and colors. DO NOT USE if you have epilepsy or are sensitive to flashing lights. Immediate discontinuation of use is advised if you experience any discomfort.