Start with a pip
A recognizable little presence, ready to make your own.
An expressive character studio
Meet Nimbus, your first pip. Try a shape. Make a face. Find a buddy that feels like you. Take it with you.
Start with Nimbus. Find your own personality.Pet the head. Tickle the cheeks. Enter to boop.
Make it recognizably yours
Four complete starters. Forty forms to explore. Every change is reversible.
Sharp vector artwork, transparent images, an interactive character, and a studio you can reopen offline.
A recognizable little presence, ready to make your own.
Sculpt, express, dress, and play. The preview responds as you go.
Save your settings and download a portable editor. Saves stay in your browser.
Getting started
Pick a buddy, make it yours, then export a copy to keep. Your pips save on this device.
A still, scalable vector. Keeps your appearance and steady expression. No animation or interaction.
A transparent 2048 × 2048 image. Easy to place in a project. Raster artwork, with no motion.
Your live character in one file. Open offline, with personality, mouth motion, and interactions. No editor or storage service.
A self-contained ES module. Embed your pip in an existing site. Change application state and override reactions through the public API.
A JSON copy of your settings. Load it in Pip Studio to keep creating. It contains settings, not the renderer.
The editor, fonts, renderer, and your settings in one HTML file. Works offline. Browser-local saves are still not a cloud backup.
Stroke the head to pet. Move back and forth on a cheek to tickle. Tap to boop. Drag the lower body in an exported pip; Alt-drag works anywhere. These gestures share one controller, so dragging never also triggers a tickle or a boop.
With the pip focused: Enter or Space to boop, P to pet, T to tickle, B for a surprise, H to say hello. Use the visible buttons in Studio and Nimbus if you prefer.
Repeated boops can annoy a pip. Gentle pets soothe it. Naps are off by default. Turn individual reactions or all reactions off in Personality. Explicit action buttons still work.
The exported module contains the same renderer as Studio. It needs no network, package, account, or framework. Give the mount a width and square aspect ratio.
import createCharacter from './character.mjs';
const pip = createCharacter(document.querySelector('#pip'), {
interactions: { drag: false, scare: false, intensity: .6 }
});
pip.setState('thinking'); // Only while your real task is running
pip.setState('talking');
pip.setSpeech(.6); // Mouth input, not microphone access
pip.setInteractions(false); // Keep explicit actions available
pip.trigger('wave');
pip.destroy(); // Remove owned listeners, timers, SVG and framesLoading and thinking are host-supplied states. Studio’s state controls are labeled previews; they do not run a real operation. Talking is silent mouth motion, driven by an explicit host level or automatic demonstration beats.
Undo and redo preserve a preset as one change. A slider or handle drag is one change; Escape cancels a handle drag. Each section resets only that section. Numeric fields provide an alternative to dragging.
Shape names are consistent across the editor and exports. Older settings still load automatically, including Dumpling files saved with the historical Bell key. Near-relative shapes remain in All 40 even when they are secondary in the curated gallery. Gentle motion respects your device preference and removes travel, spinning, and continuous contour flow.
Pip Breeze is an experimental display family with partial Latin coverage. Dense controls use Noto Sans and system fallbacks. The design targets accessible contrast and keyboard operation; it is not a conformance certification.