Inspiration

We love Halloween, but most “spooky filters” feel generic. We wanted a playful way to flex costumes that actually feels interactive.

Two twists make it memorable: AI captions that match the vibe, and a “DSA gate” that playfully nudges devs to solve a quick challenge before saving.

We extended it beyond a single photo: turn a set of images into a short, haunted narrative.

What it does

4 in 1 Platform to apply halloween filters, generate sassy captions, generate a gif and even create a custom story based on user images! Perfect for trying with friends and uploading for social media

Here is the user flow:

  • Upload photos and preview instantly.
  • Apply spooky filters (Vampire, Zombie, Ghost, Pumpkin, Witch, Demon, Skeleton, Possessed).
  • Generate AI captions with adjustable “sass level.”
  • Create a gif from a single photo
  • Auto‑compose a spooky story from multiple photos
  • Save/Share: Users can download the final video—after passing a fun DSA challenge.

How we built it

  • Frontend: React + TypeScript (Vite), Tailwind + shadcn/ui + Radix for polished, fast UI.
  • AI captions: Google Generative Language API (Gemini) via VITE_GEMINI_API_KEY, prompting with the chosen theme and sass level.
  • Gif generation: HTML Canvas + MediaRecorder to render frames and produce a smooth WebM/MP4 blob in‑browser; jumpscare frames and transitions layered on top. Story mode: Sequences multiple uploaded images with theme‑aware transitions and caption pacing to form a short narrative.

Challenges we ran into

  • Making calls to Gemini API
  • Debugging certain errors and making feature changes

Accomplishments that we're proud of

  • Being able to protype fast, build really cool features that are functional
  • Working well together as a team

What we learned

  • AI truly multiples engineering productivity

What's next for Halloween costume Flex

Possession Mode Live Filter: WebGL shader that “possesses” faces in real time with morphing eyes/teeth and dynamic ambient SFX tied to mic input.

Built With

Share this project:

Updates