Wildgrowth

How it works

← Back to the recommender

High-level architecture

MTG2VEC(COMMANDER) 128-d FROZEN FEATURES EXPLICIT 118 FEATURES self-attention query q PASSED IN AS AN ARGUMENT MTG2VEC(QUERIED_CARD) 128-d FROZEN FEATURES EXPLICIT 118 FEATURES card tower key k q·k SCORE SIGMOID

The problem

Every Commander recommender is collaborative filtering over decklists. They are very good at confirming consensus, and they cannot reach past it.

EDHREC, Moxfield and Archidekt all score a card by who else played it alongside your commander. That is item–item CF, and it performs well on cards it has already seen. A card with an empty column has nothing to score.

The model

So make the item side content-based and learn the interaction. A dual-encoder: the commander becomes a query through self-attention over its own features, and every card becomes a key built from a frozen 128-d MTG2VEC embedding (my own encoder, trained separately on rules text) concatenated with 118 explicit features. The score is their dot product.

The explicit features handle the cases where MTG2VEC was not providing enough signal on its own, such as mana value, colour identity, and power and toughness.

What ships

The site is a formulaic reading of those regressed scores. Three lenses, each optimising a different question against the same underlying fit.

  • RecommendFit blended with predicted card quality.
  • Pure fitHow characteristic of this commander, quality ignored.
  • SleepersFit minus how often the card is played with this commander.

Because a card's score is a function of the printed card, a good one can be found whether or not anybody has put it in a deck before.

Wildgrowth, a deck-agnostic Commander recommender built on frozen MTG2VEC embeddings. Card data and prices from Scryfall. Built by Gunner Stone