What's Included
- TypeScript source (GenieForm.tsx)
- roundSnapshot helper (rounded-corner texture baker)
- Demo screen
- README with install + usage
- MP4 preview
About the Project
Built on @shopify/react-native-skia and Reanimated 4. The live form is captured with Skia's makeImageFromView and warped through a 14x48 Vertices triangle mesh, rebuilt every frame inside a useDerivedValue worklet from a single progress shared value, so the genie runs entirely on the UI thread. The card is an interactive RN view at rest and a static, rounded snapshot while it moves, swapped pixel-perfectly at progress 0 so the handoff never flashes; the drop shadow is a separate Skia canvas whose size and opacity are derived from the same progress. scheduleOnRN (react-native-worklets) bridges worklet completions back to JS for the phase machine. Requires a dev build rather than Expo Go because Skia ships native code. Tested on Expo SDK 56, iOS and Android.