static
Halloween 2026
Halloween 2026 — The Star and the Moon
The Costumes
Two boys, two costumes that complement each other:
- Rowan — The Star: A fully 3D, faceted geometric star worn like a rigid poncho. The top point forms a cone over his head, with a face cut-out in the middle. His shoulders take the load; the costume hangs with great freedom of movement.
- Tristan — The Moon: A crescent moon that hangs off one shoulder like a rigid toga. The shoulder is the pivot point, the lower horn rests against his hip as a stop. Both hands completely free. The lower section doubles as a candy stash compartment.
Both prototypes are built from foam board and will be waterproofed with Plasti-Dip (2–3 coats). Glow-in-the-dark paint goes on the face panels, sealed over with another coat. Rain in the rainforest: handled.
Lighting
Each costume gets WS2812B NeoPixel LED strip (IP65 waterproof) — individually addressable, so every single LED can be controlled independently. This enables per-LED animation patterns, not just per-strip control.
- Rowan's star: Warm white / yellow strip around the perimeter of all five points.
- Tristan's moon: Cool white / pale blue strip along the outer arc and both horn tips.
The glow-in-the-dark paint on the face panels is charged by the LEDs before heading out. If the batteries die, the costumes still faintly glow.
Animation Patterns
- Starburst (star): Light starts at the LEDs nearest the centre neckline and radiates outward along all five arms simultaneously, hitting all five tips at the same moment. Uses LED index mapping — tips and valleys are fixed positions, animations are functions over those indices.
- Moonrise sweep (moon): A wave of cool blue light sweeping from one horn tip to the other.
- Slow breathing pulse: Gentle brighten/dim cycle on either costume for idle state.
- Water shimmer (moon): Random LEDs flicker slightly brighter, like light reflecting off water.
Libraries: FastLED or NeoPixel on the ESP32. Map tip/valley positions to LED indices once; animations are pure index arithmetic from there.
Electronics
- Controller: One ESP32 per costume, powered from a LiPo battery (est. 1000–2000mAh each, depending on strip length and required run time).
- App control: One phone app controls both costumes over BLE — brightness, animation mode, synchronised effects.
- Audio: Small speakers and amplifier modules in each costume. Options: ESP32 built-in DAC (GPIO25/26) → amp → speaker (WAV files from flash/SPIFFS), or a DFPlayer Mini MP3 module on micro SD for simplicity.
- LED strip: WS2812B IP65 (BTF-LIGHTING recommended — fast delivery on Amazon).
The Candy Celebration 🍬
When candy lands in Tristan's compartment, both costumes go into full celebration mode simultaneously:
- Sensor inside the candy compartment triggers (laser tripwire or PIR motion sensor).
- Tristan's moon ESP32 fires the celebration locally and sends a BLE signal to Rowan's star.
- Both costumes light up in sync — starburst on the star, horn-to-horn sweep on the moon.
- Sound effects blast from both speakers — e.g. jackpot chime from the star, spooky chime or laugh from the moon.
Candy Sensor Options
- Laser tripwire (preferred): Laser + LDR/photodiode across the mouth of the compartment. Hand or candy breaks the beam. Clean and reliable in the dark.
- PIR motion sensor: Simpler wiring, pointed into the opening. Could false-trigger from movement — tune sensitivity.
- Both: Laser as primary, PIR as backup.
Still to decide: open-top compartment or flap? This determines sensor placement.
Open Items
- Flap or open candy compartment?
- Confirm perimeter length of each costume → determines how much LED strip to buy.
- Confirm required run time → determines LiPo capacity.
- Which amplifier modules are on hand? Do speakers fit inside the star body and the moon's candy compartment?
- Star: rebuild in EVA foam (waterproof by nature, lighter) or waterproof the existing foam board prototype? Time may be the deciding factor.