All systems
Early Stage Computer VisionOn-device MLMobile

Bar Buddy

AR-powered bar stocktake

SYS.01ObservationSYS.02ArchitectureDecisionSYS.03NativeAR PrototypeSYS.04RebuildingCore CVSYS.05Live Pipeline
The problem

Stocktaking in hospitality is slow, manual and error-prone, and the existing inventory tools on the market still require scanning a barcode one item at a time.

The opportunity

This comes directly from personal experience working in some of the industry's busiest bars and restaurants. The inefficiency isn't a hypothesis, it's a Tuesday night.

The solution

Bar Buddy lets bar staff sweep a phone camera across a shelf and get an instant, itemised count. Getting there meant a real architecture decision early on: I evaluated in-browser WebXR/TensorFlow.js, server-side inference, and native mobile with on-device ML, and ruled out the browser option specifically because Safari doesn't implement immersive-ar and in-browser inference runs several times slower than on-device. That landed the project on React Native with CoreML/TFLite and on-device detection, keeping server-side inference for model retraining only.

Technical challenges
  • Choosing the right foundation before writing much code: running in the browser would have been the easier build, but Safari doesn't support the AR features needed and in-browser image processing is several times slower than running it directly on the phone, so the harder native path was the right call.
  • This is genuinely still an early-stage system: the current image processing isn't reading and analysing a shelf's stock as reliably as I want yet, so it's being rebuilt from first principles rather than patched. The goal is real efficiency gains and a level of confidence in each read that's actually trustworthy, not just a demo that works in good lighting.
  • A working prototype and supporting infrastructure, including a way to pair a phone and a desktop during development, already exist, giving a solid base to rebuild the recognition layer on top of rather than starting from nothing.
Lessons learned

The best architecture decision on this project looked like the slower option at first. Native mobile took more setup than a browser demo would have, but it's the only version with a real shot at being accurate enough that a venue would trust it over a headcount.

Current status

Early stage. The prototype and supporting infrastructure exist, but the core recognition problem isn't solved to the standard I want yet, so that layer is being rebuilt from first principles rather than iterated on.

Omnitrix Supplier Portal