{
  "version": 1,
  "note": "All three models share the same architecture (12L, d=256, ctx=256, ~9.6M params, char-level). Each was trained from scratch in this browser for 5000 steps on ~1.1 MB of its corpus. Compare the samples — same machinery, different patterns.",
  "models": [
    {
      "id": "shakespeare",
      "name": "Shakespeare",
      "icon": "🎭",
      "blurb": "Verse + dialogue, character labels.",
      "corpus": "tinyshakespeare (Karpathy)",
      "corpusUrl": "https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt",
      "file": "shakespeare.tinygpt",
      "params": "9.6M",
      "paramCount": 9608704,
      "trainLoss": "1.22",
      "steps": 5000,
      "sample": "MENENIUS:\nThen you shall hear from a kinsman, ay, my lord.\n\nFIRST CITIZEN:\nWhat trade art thou? Speak, …",
      "fileBytes": 19253009,
      "gpuBytes": 115304448
    },
    {
      "id": "tinystories",
      "name": "TinyStories",
      "icon": "📖",
      "blurb": "Simple children's stories. Subject + verb + object, basic moods, repetition.",
      "corpus": "roneneldan/TinyStories",
      "corpusUrl": "https://huggingface.co/datasets/roneneldan/TinyStories",
      "file": "tinystories.tinygpt",
      "params": "9.6M",
      "paramCount": 9608704,
      "trainLoss": "0.89",
      "steps": 5000,
      "sample": "Once upon a time, there was a penny girl named Lily. She loved to play with her toys and always dress. One day, she saw a big bird whole wanted to see what was the table. She sat down on the monket and the nespecial stopped on the way and blocked on",
      "fileBytes": 19252815,
      "gpuBytes": 115304448
    },
    {
      "id": "code",
      "name": "Python code",
      "icon": "⌨️",
      "blurb": "Source code. Imports, def, indentation, dunders, return.",
      "corpus": "codeparrot/github-code-clean (Python)",
      "corpusUrl": "https://huggingface.co/datasets/codeparrot/github-code-clean",
      "file": "code.tinygpt",
      "params": "9.6M",
      "paramCount": 9608704,
      "trainLoss": "0.59",
      "steps": 5000,
      "sample": "def _feed_ids:\n        if feed_id:\n            redializer_feeds(feed_ids)\n                feed_ids = RUserSubscribedusSing(feed_ids, feed_ids, …",
      "fileBytes": 19252805,
      "gpuBytes": 115304448
    }
  ]
}