About this drop
Reads the expo-sensors Accelerometer at ~50fps and derives tilt magnitude and direction from the gravity vector with atan2. An adaptive low-pass filter (variable alpha plus a center deadzone) kills hand tremor while staying responsive, and the heading unwraps the 180/-180 seam so rotation never jumps. The smoothed values feed react-native-reanimated v4 shared values, with useDerivedValue, useAnimatedStyle, and useAnimatedProps driving the bubble offset, rotation, and degree text entirely on the UI thread. Glass bubbles use expo-glass-effect (iOS 26 Liquid Glass; Android falls back gracefully). Runs in Expo Go (expo-sensors and expo-glass-effect are both bundled as of SDK 56), but needs a real device since the accelerometer is inert in the simulator. Tested on Expo SDK 56.