Variable Font Controller
A peer-to-peer experiment that turns your phone into a wireless controller for manipulating variable font axes on screen
Variable Font Controller is a dual experiment exploring two ideas at once: peer-to-peer device connectivity and the creative potential of variable font axes.
How it works
A desktop screen displays text set in Instrument Sans — a variable font with weight and width axes. When the page loads, it generates a unique QR code. Scanning that code with your phone opens a touch controller interface, creating a direct peer-to-peer connection between the two devices.
From your phone, you can manipulate the font in real time: drag to adjust weight and width simultaneously across a 2D space, toggle italics on and off, or reset to defaults. The text on screen responds instantly — no perceptible lag.
The technology
Instead of a traditional WebSocket server, this uses PeerJS for WebRTC peer-to-peer connections, backed by Google’s public STUN servers. The QR code encodes a randomly generated session ID that pairs the two devices directly. No server sits in the middle relaying messages, which keeps latency extremely low.
The connection is lightweight and temporary — it exists only as long as both devices are on the page. If the connection drops, scanning the QR code re-establishes it instantly.
Why it matters
The variable font piece is interesting on its own — it’s a tangible way to understand how axes work and what a typeface can do when weight and width aren’t fixed values. But the real unlock is the connection pattern.
The same peer-to-peer approach could power:
- Interactive retail — customers scan a QR code to control a screen display, dress an avatar, or explore products
- Presentations — control slides from your phone without any installed app
- Trade shows — visitors interact with a booth display using their own device
- Playful brand moments — a footer easter egg, an interactive ad, a collaborative art wall
Any scenario where you want someone to control a shared screen from their personal device — without installing anything — this pattern handles it.
- Role
- Creative Technologist
- Tools
- PeerJS WebRTC Variable Fonts QR Code JavaScript
- Metrics
- Real-time cross-device control with sub-second latency