{
  "id": 8439640,
  "title": "I'm building a scripting language for whiteboard animations",
  "url": "https://urgent.news/2026/09/19/im-building-a-scripting-language-for-whiteboard-animations",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-19T10:24:50.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/laakri/im-building-a-scripting-language-for-whiteboard-animations-21gb"
  },
  "original_language": "en",
  "account": "Strokeline is a scripting language for creating whiteboard animations. The creator wanted to be able to describe animations using text, similar to how one would describe a webpage, and have something else render the animation. The idea is simple: write a script, run it and watch a hand-drawn whiteboard animation play. The twist is that the scripting language is simple enough that AI like ChatGPT or Claude can generate it for you. To use Strokeline, you write a simple script like \"CIRCLE browser RECTANGLE server ARROW browser - server\" and then run it. Ideally, this would result in an animation playing. The creator started the project with a simple idea, but building it turned out to be far more complex than initially anticipated. The first major bug occurred when the test suite died due to Vitest running out of memory. This was later traced to a parser issue. The parser had a recovery mechanism that allowed it to skip over broken lines, but due to a bug, it would continually recover to the same position, creating an infinite loop that eventually consumed 4GB of RAM. Later, the creator encountered another issue when building the editor. The editor displays the script on the left and the animation on the right. While testing, the animation screen went black due to a bug in React and Zustand, a state manager. The problem was that a piece of derived data was being recalculated on every render, causing React to continually create new arrays and trigger re-renders, leading to an infinite loop. Additionally, when text was animated and then finished typing, it would disappear. This was due to two separate rendering paths - one for animating the text as it was typed, and another for displaying it as a cached image. The cached image's dimensions were calculated incorrectly, causing it to be the wrong size, and therefore the text would disappear. Despite these bugs, the creator believes the process of building Strokeline has provided a valuable insight into the development process. The bugs, the broken builds, and the unexpected rendering problems all demonstrate the fundamental problem of believing something is correct when it isn't.",
  "summary": "I started Strokeline with one dumb, simple idea: What if you could describe an animation the same way you describe a webpage — with text — and something else just... drew it? Not AI-generated video. Not a drag-and-drop editor where you fight with alignment guides for twenty minutes. A script . You write: CIRCLE browser RECTANGLE server ARROW browser -> server Hit run, and a hand-drawn whiteboard…",
  "key_points": [
    "Strokeline is a scripting language for whiteboard animations.",
    "Creator aimed to describe animations via text for AI generation.",
    "Development faced complex bugs impacting parser and React state manager."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}