Back to browse
GitHub Repository

iOS 360° panorama video player with Metal rendering support (formerly HTY360Player)

2,149 starsSwift

Fisheye – iOS 360° panorama video player library using Metal

by cloudrunner·Mar 8, 2026·1 point·0 comments

AI Analysis

●●SolidWizardryNiche Gem

Metal sphere rendering with GPU color conversion, but panorama players already exist.

Strengths
  • Metal + YUV-to-RGB shader pipeline eliminates CPU bottlenecks in frame conversion.
  • Triple-buffered uniforms solve real GPU sync hazards, showing deep graphics knowledge.
  • One-line SwiftUI API (`FisheyeSwiftUIView(videoURL: url)`) with UIKit fallback.
Weaknesses
  • No evidence of novel codec support, frame interpolation, or quality that differentiates from existing panorama libraries.
  • Niche use case: only iOS, limited market compared to web-based 360 players (Matterport, Theta) or cross-platform frameworks.
Target Audience

iOS developers building immersive video experiences or VR/AR applications.

Similar To

Panono SDK · THEOplayer (360 video module) · AVPlayer + custom Metal rendering

Post Description

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.

Similar Projects

AI/ML●●Solid

We open-sourced MusePro, a Metal-based realtime AI drawing app for iOS

The standout is the real-time feedback loop: Pencil input feeds sub-second inference over WebSockets so your composition evolves as you draw, not after the fact. UX tools like influence sliders, pause, seed shuffle and one-tap enhancers (2x upscaling, background removal) give artists control instead of handing everything to the model — clever engineering that still leaves open questions about on-device vs cloud inference and latency/cost tradeoffs.

WizardrySlick
okaris
103mo ago