The Ravenel Mosaic

Objective

Create a mosaic poster using photos taken of the Arthur Ravenel, Jr. Bridge in Charleston, South Carolina. The project started as an attempt to have AI assist with Adobe automations. But it became clear that the more direct and economical approach was to have AI assist in writing a Python script to automate the tasks and mosaic creation without the need for subscription-based photo/graphics software.

The Solution

A Python-based tool that creates a photo mosaic from a collection of images. The tool includes functionality for color profile standardization and intelligent tile placement with variety controls to ensure the same photo isn’t used for entire sections of tiles.

AI Tools Used

While I queried ChatGPT 4o and Gemini 2.0 Flash, I used Claude 4.5 Sonnet out of a sense of familiarity. Final scripts to be added to a GitHub repository (documentation prepared in coordination with Claude).

Features

  • Size and color profile standardization across all input images
  • Spectral color analysis and sorting
  • Intelligent tile placement with variety controls
  • High-resolution output suitable for printing
  • Progress tracking during mosaic creation
  • Detailed usage statistics

Requirements

  • Python 3.8+
  • PIL (Pillow) library
  • NumPy
  • tqdm
Photo Mosaics with Python
Avoid complicated user experiences by creating your own scripts for prepping and using photos to create mosaics.
Objective: make new things from old photos
I wanted to see if I could create a mosaic from photos I've taken of the Ravenel bridge here in Charleston.
Standardization Made Easy
The script preps the images for mosaic use by standardizing sizes and dimensions, then orders them from 1-149 based on where they fall on the rainbow spectrum.
Creating the Mosaic
The script creates a full mosaic with more than 10,000 tiles placed to approximate the appearance of a reference photo. several refinement tests take about a minute apiece. (See sidebar for tech details.)