What it is

A peacock that shows taste. Qloo's ten entity types are the ten feathers of its tail: film, series, artist, book, place, destination, podcast, game, brand, person. You explore as a visitor with a preset demo taste profile. Pick one of ten fictional adults and the peacock compares your ten feathers with theirs.

  • Where your tastes meet, feathers shiver and the names turn gold.
  • If nothing meets, the tail folds, with a dry look.
  • When a tail folds or only flickers, the peacock may whisper a door: a Qloo recommendation to explore, with its basis shown.
  • There is no compatibility score. The peacock judges feathers, never the person. Qloo's affinity numbers describe individual recommendation items, not compatibility between people.

It has a Friend mode (teases) and a Lover mode (blushes), English and Traditional Chinese, and optional British English voices (male or female).

Play with the peacock · Source code (MIT)

Try it in 60 seconds

  1. Open the link and wait for the peacock (a free host may need up to a minute to wake).
  2. Pick a character. Watch which feathers go gold, and read what the peacock says about them.
  3. Scroll to the bottom and open Under the hood to see the real Qloo calls behind that verdict.

Technological implementation

Qloo does the part exact matching cannot.

  1. Search (/search) resolves items to Qloo entities of the requested type when needed. Identical names can match directly, without an API call.
  2. Insights (/v2/insights), seeded with your items of one type, returns what lives in the same taste neighbourhood. If the character's item is in that list, the feather is a neighbour match (≈). Identical items are a same match (=).
  3. Doors: when a tail folds or only flickers, we ask Qloo what you might love in a category where the character has taste. The engine first looks for one of the character's existing items, then for a new item recommended from both taste profiles. If neither is found, it may offer a recommendation from your demo taste alone. The page makes the basis clear.

Engineering that matters in practice:

  • A request queue with retry and back-off for Qloo's rate limits, and a six-hour server-side cache.
  • We adapted to the hackathon API's constraints: games use urn:entity:videogame, and some entities are rejected as taste signals. Unsupported signals are shown as skip, not hidden.
  • In live mode a failed call is left empty and labelled error. Demo data is never mixed into live results.
  • In live mode, the call trace is visible under Under the hood, labelled live, cache, skip or error, with a short summary of what Qloo returned.
  • The same engine is exposed as MCP tools (list_cast, open_display, bridge_feather) over Streamable HTTP.
  • The repository includes 44 automated tests. Copy, audio and mobile layout were reviewed with help from three other AI assistants; those reviews also contributed tests.

Design

A working end-to-end demo: ten characters with full ten-feather taste profiles, a peacock whose reaction (swoon, shiver, flicker, fold, yawn, eye-roll, double take) responds to what actually matched and the sequence of results, bilingual captions, recorded British voices, a mobile layout with a fixed control bar, and an honest "how it works" panel.

The copy is reviewed and tested against the on-screen states, so a fold and a flicker tell different stories.

Potential impact

We do not claim to solve a large problem. We make a narrower, credible point: many recommendation and matching products compress taste into one number, and a number invites ranking people.

Picture two people at a community event: instead of "you are a 78% match", they see that their books and places meet, and that is what they start talking about.

A display of which things meet is a gentler and more useful starting point for conversation, for friends, communities, dating-adjacent products, and teams who want to find common ground. The peacock also shows its working, which makes Qloo's output understandable to people who are not technical.

We have not tested it with real users yet; that is the first thing we would do next.

Quality of the idea

The creative move is to treat Qloo's ten entity types as ten feathers: a single, legible shape that shows breadth of taste and lets "no overlap" be a graceful outcome, not a failure.

The door turns a miss into a Qloo recommendation to explore, with its basis shown.

Responsible data

  • The ten characters are fictional adults. Nobody is contacted, profiled or scored.
  • The Qloo key stays on the server. The server keeps its response cache in memory rather than writing it to disk; Qloo responses are not stored in the repository.
  • The public demo uses a preset taste profile and fictional adult characters; visitors do not need to enter personal information.

Known limitations

See the README. In short: a fixed demo visitor; some entities cannot be used as signals; neighbour matching checks the first 40 insight results; the cast is ten fictional people and does not prove that taste overlap predicts friendship; verdicts can change with live Qloo data.

What's next

Let a visitor bring their own taste through the web page; let two real people compare with consent; more languages and voices; user research.

Built With

Share this project:

Updates

Submission history