What's Included
- TypeScript source (LampRopeSkia component)
- Rope physics helper (Verlet integration + constraint solver)
- Sound asset for the pull trigger
- Demo App.tsx entry
- README with install + usage
About the Project
The rope is a chain of point masses solved with time-corrected Verlet integration and a Gauss-Seidel relaxation pass for distance constraints. Both run inside a Reanimated worklet driven by a withRepeat ticker, so the simulation and Skia path rebuild happen entirely on the UI thread. The pan gesture pins the lamp during drag and converts release velocity into Verlet displacement so the rope keeps its momentum. Built against Expo SDK 54 with Skia, Reanimated, Gesture Handler, expo-av, and expo-haptics. Works on both iOS and Android; no custom native code.