What's Included
- TypeScript source (DotWaveSlider.tsx)
- SkSL runtime shader for the dot field
- Container/demo screen (Container.tsx)
- README with install + usage
- MP4 preview
About the Project
The entire dot field is a single Skia RuntimeEffect (SkSL) drawn in one Canvas call — all per-dot math (reveal, twinkle, falloff, rounded-rect SDF) runs on the GPU. The only per-frame JS is a tiny useDerivedValue worklet that feeds uniforms, so nothing touches the JS thread. Drag is handled by react-native-gesture-handler with a Pan gesture (minDistance 0 for zero dead zone), and the thumb snaps to discrete stops via react-native-reanimated withSpring. Haptics fire on grab and release through expo-haptics, scheduled back to the RN thread with react-native-worklets scheduleOnRN. Built for Expo SDK 56 with @shopify/react-native-skia 2.6 and react-native-reanimated 4; requires a development build (Skia is not in Expo Go). Works on iOS and Android.