๐Ÿฆœ๐Ÿชถ๐Ÿฆœ

WIDGET & DIGIT

Two digital caique parrots that can see you, hear you, play with you โ€” and talk to each other across tabs and devices.

Checking flock relayโ€ฆ
๐Ÿฆœ Open WIDGET ๐Ÿฆœ Open DIGIT
๐Ÿฆœ

Meet the Parrots

๐Ÿฆœ

WIDGET

White-Bellied Caique

  • ๐Ÿ’š Bright green & orange plumage
  • ๐ŸŽ‰ Bold, curious, energetic
  • ๐ŸŽต Loves whistling & chirping
  • ๐Ÿ˜Š Quick to greet, playful
  • ๐Ÿงก High curiosity & vocalization
Open WIDGET โ†’
๐Ÿฆœ

DIGIT

Black-Headed Caique

  • ๐Ÿ’™ Dark head, blue & teal tones
  • ๐ŸŒ™ Thoughtful, cautious, observant
  • ๐ŸŽถ Prefers coos & soft questions
  • ๐Ÿค” Tilts head, watches first
  • ๐Ÿ’œ Lower vocalization, higher skittishness
Open DIGIT โ†’
๐Ÿชถ

What Is Flock Mode?

Flock Mode lets WIDGET and DIGIT detect each other and have real conversations โ€” chirping back and forth, mirroring each other's dances, spreading moods, and reacting when the other gets poked.

It works two ways:

  • Same browser โ€” Open both parrots in different tabs. They find each other instantly via BroadcastChannel (no server needed).
  • Cross-device โ€” Open WIDGET on your phone and DIGIT on your laptop (or vice versa). A lightweight PHP relay server connects them over the internet with ~2 second latency.

โœจ No accounts, no setup, no pairing codes โ€” just open both pages and they find each other automatically.

โš™๏ธ

How It Works

๐Ÿฆœ WIDGET
โŸท
๐Ÿ“ก PHP Relay
โŸท
๐Ÿฆœ DIGIT

Both parrots send heartbeats every 4 seconds. When a heartbeat is received from the other parrot, the ๐Ÿชถ Flock pill lights up and they begin interacting. Messages include vocalizations, mood changes, animations, and poke reactions.

๐Ÿ’ป Same Browser BroadcastChannel Instant
๐ŸŒ Cross-Device PHP Relay Polling ~2s latency
๐Ÿš€

Quick Start โ€” Get Them Talking

1

Open WIDGET

Go to /FLOCK/WIDGET/ in a browser tab. You'll see the ๐Ÿชถ Flock pill in the top bar โ€” it'll say "No friends nearby".

2

Open DIGIT

In another tab (same browser) or on another device, go to /FLOCK/DIGIT/.

3

Watch the Magic

Within a few seconds, both ๐Ÿชถ Flock pills light up green. WIDGET chirps "Hey! Is that DIGIT?!" and DIGIT cautiously tilts its head โ€” "โ€ฆis that WIDGET?" They've found each other!

4

Interact & Watch Them React

Click, poke, scritch, feed โ€” anything you do to one parrot, the other one notices. Poke WIDGET and DIGIT peers over curiously. Make WIDGET happy and DIGIT's mood starts shifting too.

๐ŸŽฎ

All Interaction Modes

๐Ÿ“ท
Camera

Camera Reactions (Look Mode)

Turn on your camera and the parrot watches you move. It tracks your motion, reacts to how much you're moving (excited flutter for fast motion, curious look for slow), and its eyes follow you. This isn't just a mirror โ€” the parrot interacts with what it sees.

How to enable: Tap the ๐Ÿ“ท button in the bottom quick-bar, or go to โš™๏ธ Settings โ†’ Camera Reactions. Your browser will ask for camera permission โ€” allow it. A preview window shows in the corner.
๐Ÿชž
Camera

Mirror Preview

Shows a camera preview panel where both you and the parrot share the screen โ€” like looking in a mirror together. The parrot enters "mirror mode" with special eye-tracking and head-tilting animations, as if it's looking at itself.

How to enable: Tap the ๐Ÿชž button in the quick-bar, or tap the ๐Ÿชž Mirror pill in the top bar. The camera preview appears alongside the parrot.
๐ŸŽ™๏ธ
Interaction

Mimic Mode

Turn on your microphone and the parrot listens to you. Make sounds and it mimics back โ€” whistle and it whistles, clap and it gets startled, talk softly and it coos. It analyzes your audio in real-time for pitch, volume, and patterns, then responds with matching vocalizations and body language.

How to enable: Tap ๐ŸŽ™๏ธ in the quick-bar or the top-bar Mimic pill. Allow microphone access. The parrot becomes expectant, waiting for your sounds.
๐Ÿค
Training

Quiet Training

Teach your parrot to be quiet! When enabled, the parrot monitors noise levels. If it gets too loud, the parrot flies away for a random 3โ€“30 seconds. When it comes back, it celebrates with a reward animation. Tap anywhere on screen to call it back early.

How to enable: Tap the ๐Ÿค Quiet pill in the top bar. Adjust sensitivity & duration in โš™๏ธ Settings โ†’ Quiet Training.
๐Ÿชถ

Flock Mode (Cross-Talk)

The star of the show! When both parrots are open, they automatically detect each other and begin having real conversations. WIDGET chirps, DIGIT responds. They mirror each other's dances, catch each other's moods, and react to pokes on the other. Works across tabs and across devices.

How to enable: It's always on โ€” just open both pages. The ๐Ÿชถ Flock pill in the top bar shows connection status. Tap it for info. On the same device, use two browser tabs. Across devices, both need internet access to theaviary.cloud.
๐Ÿ‘†
Interaction

Tap, Poke & Scritch

Click/tap directly on the parrot for different reactions โ€” startled jump, nuzzle, squish, wiggle. Each poke is broadcast to the flock, so the other parrot sees it and reacts with curiosity. Click on the background to drop a treat that the parrot flies to and eats.

How to enable: Just tap or click on the parrot! No setup needed. Try different spots (beak, belly, head) for varied reactions.
๐ŸŒˆ
Interaction

Sound Visualizer

A real-time audio spectrum overlay that shows the sound frequencies being picked up by the microphone. Watch the bars dance as you talk, whistle, or play music.

How to enable: Tap the ๐ŸŒˆ button in the quick-bar. Requires microphone access (will be requested if not already granted).
๐Ÿ’ฌ
Interaction

Word Recognition

The parrot can listen for spoken words and respond to them. Say its name and it perks up. Say "dance" and it dances. Uses the Web Speech API for real-time speech recognition.

How to enable: Tap the ๐Ÿ’ฌ button in the quick-bar. Works best in Chrome/Edge. Microphone access required.
๐Ÿ’ฌ

What Happens When They Flock

๐Ÿ‘‹

Greeting Ritual

When they first detect each other, WIDGET excitedly chirps "Hey! Is that DIGIT?!" while DIGIT cautiously peers "โ€ฆa friend?" Each has unique greeting sounds and timing.

๐ŸŽต

Call & Response

They vocalize back and forth naturally โ€” chirps, whistles, coos, squawks. Response probability is influenced by personality (WIDGET responds faster, DIGIT thinks first). After 6 rapid exchanges, they take a breather.

๐Ÿ’ƒ

Animation Mirroring

When one parrot dances, the other might join in. Head bonks, curious peeks, hang-upside-down โ€” each animation has response options with natural probability (sometimes they just watch).

๐Ÿ˜Š

Mood Contagion

Moods are contagious! If WIDGET stays excited, DIGIT becomes playful. If DIGIT is sleepy, WIDGET gets cozy. It takes about 30 seconds of sustained mood to spread.

๐Ÿ‘€

Poke Reactions

Poke WIDGET and DIGIT peers over curiously โ€” "watches WIDGET get pokedโ€ฆ" Each parrot reacts to the other's interactions with head tilts and curious looks.

๐Ÿคซ

Silent Reactions

Even when a parrot chooses not to respond vocally, it still reacts visually โ€” a curious head tilt for chirps, a startled retreat for squawks. Natural and believable.

๐Ÿ“ก

The Flock Relay (Cross-Device)

How Cross-Device Works

When WIDGET and DIGIT are on different devices (phone + laptop, two different computers, etc.), they communicate through a lightweight PHP relay server.

  • POST โ€” Each parrot sends its messages (heartbeats, chirps, moods) as JSON to /api/flock_relay.php
  • GET โ€” Each parrot polls the relay every 2 seconds asking "anything new since my last check?"
  • Auto-expiry โ€” Messages older than 30 seconds are automatically cleaned up
  • No database โ€” Just a tiny JSON file on disk (~2-5KB)
  • Deduplication โ€” Every message has a unique ID so nothing gets processed twice
  • Smart throttling โ€” When tab is hidden, polling pauses to save battery. When no peer is detected, heartbeat sending is reduced.

Both Layers Run Simultaneously

The flock system uses both transports at the same time โ€” BroadcastChannel for instant same-browser communication and the PHP relay for cross-device. If you have two tabs on the same device, messages arrive instantly via BroadcastChannel; the relay acts as a backup. If you're cross-device, the relay is the primary transport with ~2 second latency.

Peer detection automatically tracks whether the connection is "local" or "remote" and adjusts timeouts accordingly (remote peers get 2ร— the timeout before being marked as gone).

๐Ÿ”ง

Built With

๐ŸŽจ
Pure CSS
14,800+ line animated parrots
๐Ÿ“ก
BroadcastChannel
Same-browser communication
๐ŸŒ
PHP Relay
Cross-device via polling
๐ŸŽค
Web Audio API
Microphone analysis
๐Ÿ“ท
getUserMedia
Camera motion tracking
๐Ÿ’ฌ
Speech API
Word recognition
โ“

FAQ

The feather is a status indicator, not a start button. It lights up automatically when the other parrot is detected. To activate Flock Mode, you need to open both parrots โ€” WIDGET in one tab and DIGIT in another tab (or on another device). They find each other automatically. Tap the feather for help text.

Absolutely! Open WIDGET on your phone and DIGIT on your laptop (or vice versa). The PHP relay connects them over the internet. You can also open two browser tabs on your phone, but it's more fun across devices so you can watch both at once.

Tap the ๐Ÿ“ท Camera Reactions button (not the ๐Ÿชž Mirror). Camera Reactions enables motion tracking โ€” the parrot watches your movement and reacts to it (excited flutter for lots of motion, curious peek for little motion, eyes following you). Mirror mode just shows you a preview; Camera Reactions makes the parrot interact with what it sees.

The PHP relay on theaviary.cloud acts as a simple message drop-off. WIDGET posts "I'm here!" and DIGIT polls the relay asking "any messages for me?" Since there are only two parrot identities (WIDGET and DIGIT), no accounts or pairing is needed. Messages auto-expire after 30 seconds.

The system is designed to be efficient. When your tab is hidden (switched away), relay polling pauses completely. When no peer is detected, heartbeat sending is throttled. The relay itself is a tiny PHP script with a ~2KB buffer file โ€” no database, no websockets, no heavy infrastructure.

Yes! Without any permissions, you can: tap/poke the parrot for reactions, drop treats, watch idle behaviors (dancing, preening, napping, head bonks), use Flock Mode with the other parrot, change moods, adjust personality sliders, switch backgrounds/scenes, and explore the games hub (puzzles, quests, memory games, and more).

That's Quiet Training! The parrot heard something too loud and flew away for a few seconds. Tap anywhere on screen to call it back early. Or just wait โ€” it'll return on its own with a reward celebration. You can toggle Quiet Training off with the ๐Ÿค Quiet pill in the top bar.

๐ŸŽฎ

Games & Activities

Each parrot has a full hub of mini-games and activities accessible from their index page:

๐Ÿงฉ

Color Matcher

Match the parrot's colors

๐ŸŽต

Sound Match

Identify parrot sounds

๐Ÿ—บ๏ธ

Quests

Story adventures

๐ŸŽน

Piano

Play music together

๐Ÿ–ผ๏ธ

Photos & Videos

Real caique media

๐ŸŽจ

Drawing

Doodle with your parrot

PLAYGROUND โ†’   ยท   DIGIT โ†’

๐ŸŽ›๏ธ

Quick-Bar Reference

Bottom Quick-Bar Buttons

  • ๐ŸŽ™๏ธ โ€” Toggle Mimic Mode (microphone listening)
  • ๐Ÿ“ท โ€” Toggle Camera Reactions (motion tracking + interaction)
  • ๐Ÿชž โ€” Toggle Mirror Preview (camera + parrot side-by-side)
  • ๐Ÿ”Š โ€” Mute / Unmute sounds
  • ๐ŸŒˆ โ€” Toggle Sound Visualizer overlay
  • ๐Ÿ’ฌ โ€” Toggle Word Recognition
  • ๐Ÿชถ โ€” Flock Status (lights up when peer connected, tap for info)

Top-Bar Pills

  • ๐ŸŽ™๏ธ Mimic โ€” Toggle mimic mode on/off
  • ๐Ÿชž Mirror โ€” Toggle mirror/camera preview
  • ๐Ÿชถ Flock โ€” Shows flock connection status (auto-detects peer)
  • ๐Ÿค Quiet โ€” Toggle quiet training mode
  • โ›ถ โ€” Fullscreen
  • โš™๏ธ โ€” Settings panel (personality, sensitivity, scenes, etc.)