← All work
On-device & Privacy 2026

Weave

Per-viewer product placement, decided on your device.

Source scene.
Viewer “Diego” (sports fan, 24) — beer + football.
Viewer “Amara” (sober, EU) — juice + wellness.

The problem

Ad personalization today either interrupts you or surveils you — per-viewer targeting *requires* shipping your profile to an ad network, the exact data you’d never want to hand over.

How it works

Weave puts the brand inside the scene — the bottle on the table, the billboard through the window — and makes the targeting decision on-device with Gemma (via Ollama). The advertiser ships an anonymous catalog; your device reasons over the scene, a local viewer profile, and the catalog to return a renderable placement — while a Privacy Firewall meters every outbound byte and proves external bytes = 0.

Key features

  • On-device decision agent (Gemma / Ollama) — the viewer profile never leaves the machine
  • Narrative-taste enforcement: one motivated placement per scene, no story-breaking swaps
  • Ad-policy + lifestyle guardrails (alcohol / minor / region / sober rules)
  • Privacy Firewall: real-time outbound byte meter proving 0 external bytes, audit log, kill switch
  • Split-screen per-viewer renderer — one frame, a different placement per viewer, fully offline

Architecture

Browser (Vite/React) → local Express decision server (localhost only) → Gemma agent → Ollama on-device. Every hop is localhost; the firewall, audit log, and kill switch wrap the server, the renderer and privacy panel live client-side.

Stack

React Vite Express Gemma Ollama TypeScript

Context

Built at the RAISE Summit Hackathon 2026 — Google DeepMind remote track.