Frame Call is a one-screen desk for a 15-second brand opening film. A producer pastes one brief. The left column is a generic answer with no entity IDs: Lo-fi, a slow push-in, warm bokeh. The right column is a Qloo slip. It commits a music call and a camera call only when the taste graph returns entities and an explainability path.
Try it, no login: https://er-s-an.github.io/frame-call/
The public page is fixture mode. The banner reads: "FIXTURE. QLOO_API_KEY is not set. IDs starting with fixture: and the scores under them were written for this demo. They are not a Qloo response." GitHub Pages serves static files from this repository. The browser does not call hackathon.api.qloo.com. A live host would set QLOO_API_KEY on the server only, and the banner would say LIVE for that request. This URL does not.
The demo brief is a Hong Kong independent coffee brand, 15 seconds. The agent resolves Hong Kong (destination) and The Coffee Academics (brand) with GET /search, a coffee tag with GET /v2/tags, then calls GET /v2/insights twice with feature.explainability=true: once for urn:entity:artist and once for urn:entity:movie. A commit needs a contributor score of at least 0.10 from an input entity. On this fixture the slip shows Tatsuro Yamashita (affinity 0.74; Hong Kong 0.61, The Coffee Academics 0.33) and In the Mood for Love (affinity 0.69; Hong Kong 0.72, The Coffee Academics 0.22). The signed summary repeats those IDs. The signature uses a demo key that ships in the repository. It is not the Qloo key, and it does not prove the film will work. The director credit under the film title is local knowledge about that title. It is not a Qloo score.
There is a second brief, and only one. It is a Tokyo record shop, 15 seconds. It is the contrast, not a second city. The right column withdraws: Nothing to call. The coffee entities are not reused. Nothing is signed.
What collapses without Qloo:
GET /searchnever resolves a destination or a brand, so there is no signal.GET /v2/tagsnever attaches.GET /v2/insightsnever returns an artist or a movie, and explainability never returns contributor scores.- The 0.10 rule has nothing to measure, so both calls stay withdrawn.
- There is nothing to sign.
The left column can still print adjectives. That is the point. Adjectives are not a call.
Judge path, about two minutes, on https://er-s-an.github.io/frame-call/ :
- Read the banner. It says FIXTURE. The brief is already filled in. Left: Lo-fi, and "Slow push-in. Warm bokeh.", labeled No ID. Right: Hong Kong and The Coffee Academics in, Tatsuro Yamashita and In the Mood for Love out, each with contributor scores. The rule on the slip is 0.10.
- Open Request trace. Every row says NOT SENT, including two
/searchrows, one/v2/tagsrow, and two/v2/insightsrows (urn:entity:artistandurn:entity:movie, both withfeature.explainability=true). - Click Contrast brief. The line becomes a Tokyo record shop. The right side says Nothing to call and Nothing to sign. The coffee entities are gone. This line is the control.
- Click Demo scene. Click Signed summary of these IDs. The page says HOLDS. Mode says "Fixture. Not a live Qloo response." The music ID and the camera ID match the slip.
- Close on the line under the left column: take Qloo away and that column is all that remains.
Built for the Qloo Agentic Hackathon. Experimental. Aggregate affinity is not a viewer profile, a sync license, or a prediction that the opening film will work.
License: MIT. https://github.com/er-s-an/frame-call/blob/main/LICENSE
Built With
- next.js
- qloo
- typescript
Log in or sign up for Devpost to join the conversation.