PuzzleRush

Inspiration

PuzzleRush was born from the idea of merging classic jigsaw puzzles with modern AI to create a unique, adaptive challenge every time you play.

We wanted to eliminate the repetitive nature of traditional puzzle games by generating fresh, themed images and missions on demand.

What it does

PuzzleRush is an AI-powered jigsaw puzzle game.

Game Flow

  1. Pick a Theme
    Choose from Animals, Space, Cities, Cartoons, Nature, or Random.

  2. AI Generates the Challenge
    A Large Language Model creates a unique title, mission story, difficulty recommendation, and strategic hint.

  3. AI Generates the Image
    An AI image generation model creates a custom puzzle image based on the selected theme.

  4. Play the Game
    Drag and drop the shuffled pieces into the correct grid positions before the timer runs out.

  5. Save & Replay
    Every generated puzzle is saved to a personal Library, so users can replay their favorites anytime.

How we built it

Frontend

  • React
  • Vite
  • Tailwind CSS
  • Custom 8-bit pixel-art aesthetic

Game Logic

  • Custom drag-and-drop puzzle mechanics
  • Framer Motion for smooth interactions

State Management

  • Zustand for managing game state, scores, and challenge data

AI Integration

  • Gemini 2.5 Flash for generating:
    • Challenge configurations
    • Puzzle titles
    • Mission stories
    • Hints
    • Difficulty recommendations
  • AI Image Generation for creating unique puzzle visuals

Backend

  • Supabase for storing generated puzzles in a PostgreSQL database
  • Supabase Storage for hosting puzzle images

Edge Functions

  • Serverless functions securely handle API calls to AI services

Challenges we ran into

API Polling

Image generation is asynchronous and can take up to 60 seconds. We built a polling mechanism to track task status such as:

  • PROCESSING
  • PENDING
  • SUCCESS

This prevents the UI from crashing while waiting for generated images.

Response Parsing

The image generation API returns base64 data nested inside markdown syntax:

Built With

  • vibecoding
Share this project:

Updates