Lightweight, high-performance web utility designed to detect your monitor's refresh rate and perform a high-frequency strobe test.
READ BEFORE USING: This application generates rapid flashing lights (strobe effects) which can trigger seizures in people with photosensitive epilepsy.
- DO NOT USE this tool if you or anyone in your household has a history of epilepsy or seizures.
- IMMEDIATELY STOP using the tool if you experience dizziness, altered vision, eye or face twitching, jerking or shaking of arms or legs, disorientation, confusion, or momentary loss of awareness.
- Real-time Hz Detection: Accurately measures monitor refresh rate using the browser's
requestAnimationFrameloop. - Variable Strobe Speed: Adjust the strobe frequency from 0% (static) to 100% (every frame) to test motion clarity and pixel response times.
- High Performance: Built with the HTML5 Canvas API (
alpha: false) for maximum rendering efficiency and timing precision. - Zero Bloat: Written in Vanilla TypeScript with no runtime framework dependencies.
While WebGL or WebGPU offer lower-level access, the bottleneck for a screen strobe application is the browser's compositor and VSync implementation. The Canvas 2D API is fully hardware-accelerated in modern browsers and provides the most direct path to requestAnimationFrame without the overhead of shader compilation or buffer management.
The application measures the delta between frame callbacks to calculate an instantaneous FPS. The strobe effect uses an accumulator-based system to ensure smooth frequency scaling regardless of the monitor's native refresh rate.
- Node.js (v20.19.0 or higher)
- npm
-
Clone the repository:
git clone https://github.com/psampir/hzstrobe.git cd hzstrobe -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Build for production:
npm run build
MIT License. See LICENSE for details.