static
Halloween 2026
Halloween 2026 — Rowan & Tristan's Costumes
Two boys, two costumes that complement each other: Rowan is the Star, Tristan is the Moon. Built from foam board prototypes, lit with individually addressable LEDs, ESP32-controlled via a phone app, with a candy-triggered celebration sequence.
The Costumes

Rowan's Star ⭐
- Fully 3D, faceted geometric solid — worn like a poncho/sandwich board, sitting on shoulders
- Top point forms a cone over his head, face cut-out in the centre
- Arms completely free
- Foam board prototype → rebuild final version in EVA foam (lightweight, waterproof by nature, ideal for the scored-and-folded faceted construction)
- Colour: warm white / yellow
Tristan's Moon 🌙
- Flat crescent shape with smooth curves and two pointed horns
- Hangs like a rigid toga — shoulder pivot, hip stop, both hands free
- Bottom horn section becomes a candy stash compartment
- Foam board prototype → waterproof with Plasti-Dip (2–3 coats), keep the foam board rigidity
- Colour: cool white / pale blue
Lighting
LED Strip — WS2812B IP65
Individually addressable RGB LEDs in a waterproof IP65 silicone sleeve. Every LED is independently controllable — full per-pixel animation. 60 LEDs/m gives good density for costume-scale perimeter lighting.
Recommended: BTF-LIGHTING WS2812B 5M IP65 — ~$28.99 on Amazon.ca (fastest delivery option, arrives Thu Oct 15)
One 5M roll covers both costumes comfortably. Cut to length at any LED boundary.
Placement
- Star: perimeter of the five points — LEDs know which index sits at each tip and which at each valley, enabling radial animations
- Moon: outer curved arc + both horn tips; inner concave edge optional (halo effect)
Glow-in-the-Dark Paint
Applied to the face panels of both costumes. The LEDs charge the paint while under any light. When the LEDs are on: perimeter glow. When lights are off or batteries die: faint whole-face glow. Two independent effects.
Sealing sequence: Plasti-Dip (2 coats) → glow paint → seal coat over paint → attach LEDs last.
Electronics
Per Costume
- ESP32 — one per costume, BLE communication between them
- LiPo battery — 1000–2000mAh each (size TBD once perimeter lengths are measured)
- Small speaker + amplifier module — tucked inside the star body / moon's candy compartment
- Audio: DFPlayer Mini MP3 module (micro SD card, serial control from ESP32) or ESP32 DAC direct to amp module
Phone App Control
One app controls both costumes over BLE. Features:
- Independent animation selection per costume
- Brightness control
- Synchronised effects across both
- Manual candy celebration trigger
Animations
Rowan's Star — normal mode
- Slow gold pulse — whole perimeter breathes in and out in warm white/yellow
- Starburst — wave starts at the inner valley LEDs nearest the neckline, radiates outward along all five arms simultaneously, all five tips light at the same moment. Fades back and repeats.
- Animation is pure index arithmetic: map tip positions and valley positions once, interpolate in sequence
Tristan's Moon — normal mode
- Moonrise sweep — wave travels from one horn tip to the other, cool white to pale blue
- Breathing shimmer — slow pulse with random LEDs flickering slightly brighter, like light on water
Candy Celebration — both costumes, synced
- Sensor triggers on Tristan's candy compartment
- Moon ESP32 fires local celebration AND sends BLE signal to star
- Star: rapid starburst firing repeatedly — warm gold burst radiating to all five tips
- Moon: fast horn-to-horn sweep back and forth, bright cool blue
- Both speakers fire matching sound effects simultaneously
Sound ideas: jackpot "ding ding ding" from the star, ethereal chime or "wooooo" from the moon — or a coordinated call-and-response jingle split across both.
Candy Compartment Sensor
Automates the celebration — no button press needed. The costume knows when candy has been scored.
Options (using hardware Paul already has)
- Laser tripwire — laser + LDR/photodiode across the mouth of the compartment. Hand breaks beam, celebration fires. Clean and reliable.
- PIR motion sensor — pointed into the opening. Simpler wiring, slightly prone to false triggers from Tristan's own movement.
- Combined — laser as primary trigger, PIR as backup
Still to decide: open-top compartment or flap — this determines sensor placement.
Build Plan & Open Items
- ☐ Order WS2812B IP65 strip from Amazon (BTF-LIGHTING, link above)
- ☐ Measure perimeter of star (five outer points) and moon (outer arc + horns) to confirm strip length needed and LiPo sizing
- ☐ Decide: open-top or flap for candy compartment → determines sensor position
- ☐ Confirm amplifier module type on hand → determines audio wiring approach
- ☐ Plasti-Dip both foam board costumes (moon definitely; star if not rebuilt in EVA in time)
- ☐ Apply glow-in-the-dark paint to face panels
- ☐ Map LED indices for star tips/valleys and moon horn tips → needed before writing animations
- ☐ Write ESP32 firmware: animations + BLE sync + sensor trigger + audio
- ☐ Build phone app: per-costume control, brightness, manual candy trigger
