1 Million Emojis
Source for a shared emoji canvas where Jev picks the next emoji and its placement after every stroke and judges if the shape is unfinished.
Overview
This repository is the code behind the live 1 Million Emojis canvas: a shared 1,000 x 1,000 grid where anyone can paint with a limited, refilling supply of ink and every stroke appears live for all visitors. Jev, TypeSafe's System One model, paints next to the humans.
After each stroke the site sends one Jev request. It offers a typed set of options built from emoji that share keywords with what is painted nearby, each placed in a spot named relative to the stroke (above the line, at its end, inside the loop), and asks a yes/no on whether the stroke is unfinished. When Jev is sure, it closes the loop or extends the line; otherwise its pick is drawn from its probabilities, with a wider spread when it is less sure, and its top candidates flash before the pick lands. Only drawing data is sent, nothing about the painter.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which emoji, in which named spot relative to the stroke, goes next? | e.g. above the line · at its end · inside the loop |
| Yes / no | Is the stroke unfinished? | yes · no |
How it works
- Capture the stroke shape, its end point, nearby emoji names and a small text picture of nearby cells
- Send one Jev request with the named emoji/placement options and the unfinished-stroke question
- If confident the stroke is unfinished, close the loop or continue the line
- Otherwise sample a pick from the probabilities and flash top candidates first
- Route calls through Vercel AI Gateway with TypeSafe direct as fallback, under per-visitor rate limits and a daily spend cap
Strengths
- Only drawing data is sent, no painter identity
- Sampling from probabilities gives varied but confidence-aware picks
- Gateway-first client with direct fallback and cost reporting
- Unit tests run without any Jev calls
Caveats
- Mirror of a private monorepo: pull requests are applied upstream
- Requires a TypeSafe or gateway key to run the Jev part
Getting started
npm install && npm test && npm run typecheckAt a glance
- Type
- Project
- Status
- production
- Language
- TypeScript
- Runtime
- Node, browser
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
A shared 1000 × 1000 emoji canvas where humans paint and Jev paints alongside them: after each stroke, one Jev request chooses which emoji goes next to it and where, from typed options named against the stroke, and says whether the stroke is an unfinished shape.
logicrw/awesome-jev-projectsA shared 1000 × 1000 emoji canvas, live for everyone, where Jev joins each stroke by choosing a square next to it and its emoji as one Choice.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev send back?
Probabilities over named emoji/placement options and a yes/no on whether the stroke is unfinished; it generates no text.
How is cost kept in check?
The README describes per-visitor rate limits, a daily site spend cap, and a client that reports cost.
Can I reuse the Jev client?
Yes, packages/jev is a small MIT client that tries Vercel AI Gateway first and TypeSafe directly as a fallback.
Related projects
Prompt-first music studio where Jev makes every compositional choice, from plan to each bar pattern, rendered as editable MIDI.
ProjectbetaTypeScriptEmoji autocomplete that asks Jev eight parallel questions per typing pause: emoji choice, emotion, mood, urgency, sarcasm and more.
ServiceprototypeTypeScriptExperiment where Jev turns a one-sentence brief into a coherent design system for a whole dashboard console.
AppprototypeTypeScriptGenerative painting canvas where Jev chooses paint materials and palettes for regions of 105 procedural sketches.
ProjectprototypeTypeScriptFigma plugin that splits a one-sentence design instruction into small Jev choice questions, then code draws the result.
PluginprototypeTypeScriptCan a System One model steer music? Jev picks only enum labels for a composition plan; code writes, engraves and plays the notes.
AppprototypeTypeScript