I built Fisheye because I wanted a simple drop-in library for playing 360° panoramic videos on iOS. Point it at an
equirectangular video and it renders it onto an inward-facing sphere with touch-based rotation to look around.
It uses Metal for rendering with YUV-to-RGB color conversion done on the GPU via shaders, triple-buffered uniforms to avoid CPU-GPU sync hazards, and pure Swift sphere geometry generation. Supports both SwiftUI and UIKit — in SwiftUI it's one line: FisheyeSwiftUIView(videoURL: url).
Happy to discuss the rendering pipeline or API design.