The State of AI in the Binocular Viewer Industry
Sign in<br>Subscribe
Up front: "guy builds software with AI" is not a scarce genre right now, and I'm about to add to it. But I'd note that every industry gets a state-of-AI report eventually, and nobody else was going to write this one.<br>If you've stood at the Top of the Rock, walked around Niagara Falls, or looked out at the Manhattan skyline from the Statue of Liberty, you've probably used one of our machines: the chrome binocular viewers that have been part of the American landmark experience for nearly a century. You’ve certainly at least seen one of our machines. The Tower Optical Company has been building them since 1933. There are nearly 2,000 of our machines in the field today, across 800-plus sites. Drop in a quarter or two, or these days, tap your phone or a card, and the skyline snaps into focus.<br>My partners and I acquired the business in June of 2025. What we bought was a genuine American icon with serious logistical problems attached: thousands of machines across hundreds of sites, most of them a long drive from anyone who could service them, and no real way to know what any of them were doing. Every unit was coin-operated. A machine's earnings were whatever came out of it on collection day, recorded on paper slips. Venue partners were paid by written check, and everything got typed into QuickBooks after the fact. A viewer that stopped working stayed broken until a person noticed and alerted our team at headquarters. This wasn't neglect, it was a system built for the world the machines were born into, and it had run that way, more or less, for decades.<br>Two things had to change. The machines needed to take payment the way people actually pay now and we needed a way to manage the fleet efficiently.<br>So we developed a tap-to-pay retrofit kit for the machines with an engineering partner, then did the conversion work ourselves, 150 units retrofitted in-house. We finally began rolling them out this past June. The new units do something the old ones never could: they report back to HQ in near real-time.<br>That solved one problem and created another. For the first time, we had real data coming from the fleet and, at first, it went into spreadsheets. Every tap became a row. Figuring out which machines were earning, which had gone quiet, and figuring out why (Dead battery? Payment terminal frozen? Just a rainy Tuesday?) meant downloading files and squinting at rows & columns.<br>And the transaction data was only part of it. Each converted machine is its own small logistics problem: a merchant ID for card processing, a payment terminal with its own serial number, a control board with another, a firmware version, a cellular connection, two battery packs, GPS coordinates, a specific physical key to unlock it, an on-site contact, a maintenance contact, and a negotiated revenue split with the partner venue. Multiply that by 150 machines, with the rest of the fleet still to come, and a jumble of spreadsheets and pivot tables was never going to cut it.<br>What I built<br>It started as a single HTML file to visualize transaction data so we could see how our new machines were performing – a simple CSV file exported from our payment processor, visualized in a web browser. About six weeks later, it’s a production web application (built on Next.js and Supabase, deployed on Vercel) running the operational heart of the connected fleet that our team and partners use daily:<br>Live revenue, per machine, per site: Every location in its own time zone, every figure traceable back to transaction records delivered by our payment processor.<br>Machines that tell us how they're doing: The viewers report telemetry data such as battery voltage, firmware versions, and cellular signal, which our dashboard ingests & displays through Google Pub/Sub. The dashboard predicts battery swaps before a unit dies and flags viewers that go quiet within hours while knowing the difference between “broken” and “rained out”. It cross-references local weather and venue closure patterns, so we chase down real problems instead of false alarms.<br>A single system of record for every machine: All of it… serial numbers, firmware versions, merchant IDs, SIM cards, physical key types, contacts, coordinates, revenue splits, and site maps live in one place, attached to the machine they belong to, instead of scattered across files and someone's memory.<br>An AI assistant that knows the fleet : Built into the dashboard: ask it a question in plain English (for example, which machines went quiet this week, when a viewer was last serviced, how a site trended since launch) and it answers from the live data. The same system of record that ended the spreadsheet hunting also means the AI has one trustworthy place to look.<br>Machine health reports and maintenance lists : Every unit generates a health report (signal, battery, uptime, recent/suspected issues) and a service checklist to match. A tech heading to a site, whether someone on our...