Field capture · dmk.mov · 01:49 · Erode campaign unit
What a passer-by experiences at the DMK campaign totem, frame by frame — an attract-loop rally video, a bare-hand slashing game, and a photobooth that lifts you out of the room and into a poster with the party leaders, delivered to your phone over WhatsApp.
The totem plays DMK rally footage on loop — party flag colours, a speaker mid-oration, campaign slogans in Tamil. This is the attract state: plain full-screen video from the device playlist, cached offline by the service worker.
The white totem — QR sticker on the crown, camera above the panel. A rally speech plays with the slogan “2026-லும் 200 தொகுதிகளுக்கு மேல் வெல்ல முடியும்!” (“in 2026 we can win 200+ seats”).
The video ends and the splash appears (fn.gif): Tamil copy and a
pointing-hand icon inviting a gesture. Behind it, the player has already asked permission to start the game.
What flips the scene
Video ends → the player fires video/ended, shows the splash, and sends
{gestures:['start_game']} to PiQ — which watches the camera for a raised hand and answers
Y (play) or N (skip, back to videos) within 8 seconds.
PiQ says Y, and the DMK-skinned Fruit Ninja loads — an eagle soars over a Tamil Nadu island while manifesto scrolls tumble down. The visitor slices them out of the air with bare-hand swipes; the hand tracking runs inside the game itself, in the browser.
First contact. The visitor points; a cursor appears on screen tracking the fingertip. The eagle circles over the island map — the DMK re-theme of the fruit-ninja arena.
Scrolls drop from the eagle’s flight path. A full-arm swipe cuts them — the “fruit” here is campaign literature, sliced open to reveal the message inside.
Peak intensity — multiple scrolls in the air at once, the visitor swatting two-handed. When the round ends, the game posts its score back to the player shell.
The one-camera trick: the Pi has a single camera and both PiQ and the game want it.
The moment PiQ answers Y, it shuts its own camera down and hands the sensor to the
game’s in-page hand tracker. When the game ends, the player says stop_game and PiQ
takes the camera back. Every act change is this same handover.
What flips the scene
Game over → the game iframe posts {gameEnd:true, score}; the shell stores the
score, returns the camera to PiQ, and rolls straight into the photobooth ask.
A 3-2-1 countdown, a shutter click, a white flash — and the visitor reappears cut out of the office behind them, composited into an illustrated stage with the DMK leaders. The room’s grey wall is gone; the poster’s red rally stage is the new background.
The composite. The visitor stands centre-stage beneath the party leaders — background fully replaced, score and caption burned in, QR code waiting bottom-left.
Phone out immediately. The QR is a WhatsApp deep link carrying the photo’s unique id — the splash stays up 20 seconds, long enough to scan.
What actually happened backstage
The browser captured a 1080×1920 portrait, polished it in JavaScript (white-balance →
denoise → contrast → gamma → saturation → sharpen), then fetched the finished cut-out composite
from the device at GET localhost:4000/capturedimg — the background swap happens
on the Pi, not in the browser.
Scanning the QR opens WhatsApp with a message already typed: the photo’s claim code.
Send it, and the “InBites” bot replies with the poster — hashtagged
#StalinWave2026, ready to share. The kiosk, meanwhile, has already looped back to Act I.
Prefilled and ready: “Send DMKdmk2026160047679” — the same id under
which the kiosk registered the composite. The bot answers with the photo file itself.