About this drop
Skia v3 renders through Graphite on Dawn, and react-native-webgpu's importDevice wraps that same device, so the WebGPU passes and Skia's drawing share one queue and textures pass between them without copies. Everything that moves runs on the UI thread in a single Reanimated useFrameCallback worklet. Gesture.Pan and Gesture.Tap only write shared values; the engine reads them at the start of the next frame, advances the dig and lean springs and the pull-out (lift, centre, hold, open), encodes the WebGPU passes, records a Skia frame that composites them, and fires Pulsar haptics on the frame the event happens. When everything is at rest it stops drawing. React re-renders only the HUD, and only when the front or held record changes. The scene renders in linear HDR into a 4x MSAA target with a 2048 x 2048 shadow map, spherical harmonics ambient light and anisotropic GGX on the vinyl grooves, then a 41-tap bokeh depth of field and Khronos PBR Neutral tone mapping. Every cover, label, poster and wood grain is drawn by Skia at launch into a mipmapped texture array; there are no image assets. It needs a development build, not Expo Go: Expo SDK 57, New Architecture, iOS 15+, and it runs on the iOS Simulator. Android is configured (minSdk 26) but iOS is the documented target. A bundled patch makes SkiaGraphiteView present at 120 Hz on ProMotion screens.