Field capture · dmk.mov · 01:49 · Erode campaign unit

One kiosk, three acts,
and your face on the poster

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.

unit QTV / dmk## · Raspberry Pi + portrait TV player playerqv1 @ newdmk engine PiQ · localhost:4000
RALLY VIDEOattract loop GESTURE GAMEslash the scrolls PHOTOBOOTHinto the poster WHATSAPP QRphoto to phone playlist/advance — the loop restarts for the next visitor
Act I

The screen earns a glance

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.

Visitor watching the rally video on the white portrait kiosk
00:01 · ATTRACT LOOP

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”).

Instruction splash with a pointing-hand icon and Tamil copy
00:12 · INVITATION

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.

Act II

Slashing scrolls out of the sky

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.

Visitor pointing at the screen as the eagle flies over the island
00:26 · CALIBRATION

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.

Visitor swiping an arm as a scroll falls toward the island
00:38 · FIRST SLASH

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.

Many scroll cards falling at once, visitor mid-swipe
00:52 · FULL FLOW

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.

Act III

Out of the room, onto the poster

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 kiosk showing the visitor composited into a DMK leaders poster
01:02 · THE REVEAL

The composite. The visitor stands centre-stage beneath the party leaders — background fully replaced, score and caption burned in, QR code waiting bottom-left.

Close-up of the poster with QR code, visitor scanning with a phone
01:06 · THE SCAN

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.

Finale

The photo follows you home

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.

WhatsApp chat with the prefilled claim code message
01:44 · THE CLAIM

Prefilled and ready: “Send DMKdmk2026160047679” — the same id under which the kiosk registered the composite. The bot answers with the photo file itself.

KIOSK (Pi)composites the cut-out CLOUD REGISTRYcaricature API + S3, by id YOUR PHONEQR → wa.me + claim code INBITES BOTreplies with the poster the bot fetches the photo from the registry by the code you sent