About this drop
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; it runs in Expo Go, since Skia ships bundled in Expo Go as of SDK 56 (no development build needed). Works on iOS and Android.