Halloween 2023

Another year, another Halloween display. After my experience last year, there were a couple main areas I wanted to improve:

  1. Needs to be simpler
  2. Needs to be scarier

Making it scarier

I wanted to incorporate at least one “new” element this year. A remote controlled spider that drops down? A talking pumpkin? Too complicated. A haunted two-way mirror seemed cool and mechanically simple, but I didn’t want to risk breaking a monitor.

Finally I found these cool projector effects from AtmosFX that only require a projector and semi-transparent fabric.

Luckily my local library has projectors available to borrow, and my grandma had plenty of old sheer curtain, so I didn’t have to buy any equipment.

Making it simpler

Last year, I had several “states” for controlling the lights and audio, which I had to manually click through. That’s a lot to juggle when you’re simultaneously trying to throw on a mask, grab candy and answer the door.

I reduced the number of actions to just 3:

  1. Default state
  2. Spook and lighting
  3. (optional) Replay lighting

I wired these up to 3 buttons on a wireless keyboard, labeled with colored stickers for glanceable access.

Pressing the first (green) button resets the porch light to its usual cyan glow and stops the audio. When someone rings the doorbell, I press the second (red) button. This starts a 2 sec countdown, during which I grab my tray of candy and prepare to open the door. Then, it plays a scary noise and turns the porch light red. That noise is my queue to open the door, then a crack of lighting flashes on me from the indoor light.

Usually I only have to press that one button, but sometimes multiple groups of kids some in quick succession, so it’s useful to have a way to continue the effect for newcomers without closing the door and starting all over. That’s when I’d press the third (yellow) button to play another crack of lighting.

Here’s how my setup looked from the inside. Keyboard and candy at the ready, projector offscreen.

I mounted 5.1 channel computer speakers on the porch and fed their wires through the window. The front speakers near the window played audio from the projector’s AtmostFX loops, while the rear speakers played the stinger / lightning sound effects from my laptop.

I resisted the urge to rewrite all the lights / audio logic this year, instead making tweaks to last year’s code (vanilla JavaScript, how terrifying!)


Several kids told me I had the “best costume” of the night, which is hiliarious because my costume is literally just my normal sweatpants, sweatshirt, and a $10 plastic mask from Walgreens. I think what they meant is they liked the theatrics of it all.

I overheard lots of parents in awe of the window projections. I organized the clips into “mild”, “medium” and “spicy” categories and progressively shifted towards spicier (scarier) clips as the night progressed to avoid traumatizing little kids.

Similar to last year, the little kids were generally unphased by my routine, but the older kids were really overdramatic and some ran screaming.

One girl said, “Oh, I remember this house!” which made my night. It’s nice knowing I made an impression last year, and I think I made many more impressions this year!