NGMA Multi-Projector Sync

National Gallery of Modern Art (NGMA) — artist Navjot Altaf client logo

My first project after moving to Mumbai — frame-accurate video sync across multiple floors and multiple projectors for an art installation at the National Gallery of Modern Art. Became the seed of what eventually turned into Arzen.

Status
Shipped
Client
National Gallery of Modern Art (NGMA) — artist Navjot Altaf
Context
Multi-floor, multi-projector art installation, frame-accurate sync
Role
System designer and builder.

Bill of materials

  • Custom PCs (initially)
  • FFmpeg
  • UDP broadcast
  • Multi-AP Wi-Fi bridging

My first project in Mumbai. Navjot Altaf, an artist exhibiting at NGMA, had a piece that spanned multiple floors of the gallery with multiple projectors on each floor — and the whole thing only worked if every projector was in sync, down to the frame. A floor of projectors drifting by even a few hundred milliseconds breaks the piece.

The sync layer

I built a UDP-broadcast-based sync protocol where a master player emits a continuous reference clock and every slave calculates its offset against the master, adjusting playback speed micro-fractionally to track. Frame-accurate across all players in steady state; re-syncs within a frame after any hiccup. FFmpeg did the heavy lifting for the actual decode; the sync layer sat above it.

The network

No single LAN spanned the gallery, so I had to build one. Two Wi-Fi networks on separate floors, bridged together so the master clock reached every player regardless of which floor they were on. Setup had to survive a venue where “we’ll just unplug that” is a hazard.

Why it matters

This project was the origin of what eventually became Arzen. The hardware player I built here evolved over the next two years — first for Chennai Biennale, where I optimised it down to an embedded ARM device, and then years later into a full product for cinemas. At NGMA it was cobbled-together desktop PCs; by the time it shipped as Arzen it was custom boards with a bespoke Linux image. Same underlying idea, rebuilt three times.