ESM3
Protein language model · EvolutionaryScale · 2025

ESM3

A generative masked model over three parallel tracks. A geometric tokenizer turns local backbone environments into discrete codes; a shared transformer predicts logits for every track; iterative unmasking fills the positions you left open.

In plain language

One model that reads and writes three things at once: the sequence, the shape, and what the protein does. You hand it a partly filled form and it completes the parts you left blank.

One way to picture it

A crossword where the across clues are amino acids, the down clues are geometry, and the theme is the function. Fill in any of them and the rest gets easier.

Commonly misread as

The headline results come from the largest model. The openly available checkpoint is the small one, and it will not reproduce them.

How it is put together

Select a component to read it
Multimodal tokens
Per-track logits

Try it

Complete a partly masked protein
from esm.models.esm3 import ESM3
from esm.sdk.api import ESMProtein, GenerationConfig

model = ESM3.from_pretrained("esm3_sm_open_v1")

# underscores are the positions you want the model to decide
prompt = ESMProtein(sequence="MKTAYIAKQRQISFVK___________VLDRHDL")
result = model.generate(
    prompt,
    GenerationConfig(track="sequence", num_steps=8, temperature=0.7),
)
print(result.sequence)

These snippets have not been executed here. Versions move; check the model card before trusting a line of it.

01 / Why it is here

Standing

The Science paper reports a generated fluorescent protein at 58 percent sequence identity to known fluorescent proteins, which the authors frame as an estimate equivalent to a large evolutionary distance rather than a literal simulation.

02 / What sets it apart

Distinctions

  • Structure is a token track, not an output head bolted onto a sequence model.
  • A prompt can mix modalities: fix a motif, name a function, leave the rest masked.
  • Generation order is chosen by the model rather than running left to right.
03 / Where it stops

Limits

Results reported for the largest model should not be attributed to the small open checkpoint. The evolutionary-distance framing is an estimate, and the open weights are the smallest member of the family.

Weights and code

Checked against the registry, not from memory
RepositorySizeLicenceNote
biohub/esm3-sm-open-v11.4BNon-commercial community licenceFormerly published under EvolutionaryScale

Sources

Each number above comes from one of these

Same task, other answers

Protein language model