Title

BizBot

Role

Software Engineer

Year

2026

BizBot autonomous event photographer interface

BIZBOT is an autonomous event photography robot that roams venues, detects interesting scenes, and captures candid moments. It uses an AI quality gate to filter and publish only the best photos to a curated gallery, with admin controls for fine-tuning selection and quality.

  • FastAPI
  • Supabase
  • Google Gemini
  • YOLOv8
  • PyTorch
  • OpenCV
  • Next.js

What it does
An event photographer for real-world chaos.

BIZBOT is a robot event photographer designed for real environments: crowded rooms, messy backgrounds, unpredictable lighting, and lots of motion.

The goal is simple: capture moments people actually want to keep, and make it easy to look back on an event without dumping hundreds of random low-quality shots on attendees.

BIZBOT can roam an event, automatically detect hot spots, and take candid and B-roll photos. It also runs an AI quality gate and only releases photos that meet a configurable standard, making the system more reliable, respectful, and real-world ready.

How we built it and the system flow
System flow from roaming to curated publishing.

BIZBOT is directly connected and controlled through a web app with three main surfaces: a Control Panel, a Gallery, and an Admin Dashboard.

From the Control Panel, starting the robot calls the backend to launch the main robot loop and place BIZBOT in roam mode. While roaming, the robot continuously captures frames and listens for control or stop events.

The main loop runs CV inference on incoming frames, including person detection and scene-quality checks. When a frame meets capture conditions (sharpness, framing, exposure), it is promoted to a candidate photo and passed to the PhotoPipeline.

The PhotoPipeline scores each candidate image with Gemini for technical quality factors like blur, exposure, subject framing, clutter, and distracting items. Images are uploaded to Supabase Storage, while storage path and score are stored in Supabase Postgres.

The Gallery serves only photos where score is above the threshold, hiding technically poor photos. In Admin Dashboard mode, photos can be approved or removed manually, image scores can be adjusted, and the release threshold can be tuned for each event.

If Gemini fails, score is set to NULL, and that image remains hidden until admin review.

Tech stack
Built for fast iteration and control.
  • FastAPI backend for upload and admin/public endpoints
  • Supabase Storage for image hosting
  • Supabase Postgres for photo metadata (id, storage_path, score)
  • Google Gemini API for multimodal image scoring (0 to 1)
  • YOLOv8, PyTorch, and OpenCV for people detection, model inference, and frame capture
  • Next.js frontend for the web application