Iconic

Iconic picks an icon for a short piece of text. You give it a note or a to-do, like "buy milk" or "call the dentist", and it returns the best-matching icons from the Phosphor set.

It runs on the device, is under 5 MB, and works in the 24 official EU languages. Made by Divergent Labs.

Use it

The SDKs bundle these files, so you don't have to download anything:

let iconic = try Iconic()
try iconic.predict("go for a swim")[0].icon   // "swimming-pool"

What's in this repo

File What it is
coreml/IconModel.mlpackage The model for Apple platforms (iOS 18+, macOS 15+)
js/weights.bin, js/manifest.json The same model for the browser and Node
tokenizer.json Splits text into tokens
config.json Input sizes and settings the SDKs need
eval_results.json Test scores, per language

How it works

The model returns one of 798 icon groups rather than a single icon. Phosphor has many near-identical icons (the same arrow pointing four ways, the same file in different formats), so those are grouped together and each group has a default icon.

It reads text in two ways at once. One looks at spelling, so typos and compound words still match. The other looks at meaning, so the same idea in another language lands on the same icon.

How well it works

On a held-out test set of real, short requests in 16 languages, the right icon is in the top 3 about 81% of the time. English scores highest at 85%. The other 15 languages sit between 79% and 84%. Eight languages (Bulgarian, Croatian, Czech, Estonian, Irish, Lithuanian, Maltese, Slovak) have no test data, so their quality is unmeasured.

Limits

  • It is built for short notes and to-dos, not long text. The training data and the test set both consist of to-do items and short requests, so the scores above only describe that kind of text. On other text, such as headings, product names, chat messages or longer sentences, it may perform worse than the numbers here suggest.
  • It only knows Phosphor icons.
  • When nothing fits well, it still returns its best guess. Check the score if that matters for you.

Training data and licences

  • Phosphor icon catalogue (MIT)
  • Unicode CLDR emoji names and keywords, for words in every language (Unicode licence)
  • MASSIVE 1.1 by Amazon, for real example text (CC BY 4.0)
  • potion-multilingual-128M by Minish Lab, for word meaning (MIT)
  • Synthetic examples written and checked by open-weights models (Apache 2.0)

The model is released under the Apache 2.0 licence.

Downloads last month
11
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support