PhotoBooth

Custom-built rig focused on 3D printing and interactivity

📅 Aug 10, 2025 ☁️ Local • macOS and Linux
DEVELOPMENT
Featured
PhotoBooth

Tech Stack

Frontend

OBS Studio for scene capture

Backend

Python control scriptsobs-websocket for automationgPhoto2 camera control

Infrastructure

Local USB and network devicesmacOS hardware and cooling considerations

PhotoBooth

A hands-on photo booth project that emphasizes 3D printed hardware and simple, reliable interaction.

Overview

The goal is a stable and fast experience with minimal moving parts. Software is intentionally simple so that the physical rig and controls can shine. A single scene that captures 4 photos provides a clean baseline to iterate on framing, timing, lighting, and printing.

Field Test and Thermal Lessons

Version 1 was tested at a birthday party in hot conditions around 36°C. The Mac overheated during active use which led to UI lag and slow camera communication. Some sessions did not complete. These findings drive the next iteration: improved cooling, fewer background processes, and a hardware-first control scheme.

Why I Built It

I wanted a giftable, reliable photo booth that can be assembled quickly, used by guests without guidance, and printed on the spot. The project also serves as a testbed for 3D printed mounts, plates, and cable management.

Evolution

  • Version 1: Printed mounts and a Stream Deck based trigger. Functional but vulnerable to thermal throttling and UI complexity in high heat.
  • Version 2 (in progress): Physical arcade buttons for start and reset, simplified single scene workflow, printer upgrade evaluation, and thermal management improvements.

What I Built

  • 3D printed camera and accessory mounts
  • Python scripts to coordinate capture and OBS
  • Start and reset actions mapped to physical buttons
  • A minimal one-scene, 4-photo capture flow

Tech Behind the Scenes

Frontend
OBS is used to compose the scene and trigger captures.

Backend
Python coordinates camera commands and OBS automation through obs-websocket. Camera control is handled via gPhoto2 where supported.

Deployment
Runs locally on macOS. Thermal management and power delivery are treated as first-class design constraints.

What I Learned

  • Thermal constraints dominate reliability. Design for heat before features.
  • Physical controls reduce failure modes. Arcade buttons are clearer than multi-step UI paths.
  • Baseline first. One scene with four photos is enough to validate end-to-end performance.

Takeaway

The next milestone is a reliable, heat-tolerant baseline with physical controls and faster prints. Once stable, features can grow without compromising the experience.

Gallery

Project screenshot
Project screenshot
© 2025 Andrew Evans