Model or dataset
bbycroft/llm-viz avatar
bbycroft/llm-viz

llm-viz: A 3D Model of a GPT-Style Network Running Inference

3D Visualization of an GPT-style LLM

5,538 stars661 forksTypeScriptMIT

At a glance

What is it?
Brendan Bycroft's llm-viz renders a working GPT-style transformer as an interactive 3D scene, using the minGPT demo weights that sort the letters A, B and C. It is a teaching instrument for people who already know what attention is, not a framework you build on.
Who is it for?
Adopt llm-viz if you are explaining transformer inference to people who have read about attention but never watched a tensor move, and you want that explanation to be a walkable 3D scene rather than a slide.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 36 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap llm-viz fills: attention as a diagram versus attention as a place

Most explanations of a transformer hand you a static figure. Boxes for embeddings, an arrow into multi-head attention, a residual line that loops back, a softmax at the end. The figure is correct and almost nobody retains it, because the reader never sees which tensor is large, which one is shared, or where the model's parameters actually sit. llm-viz attacks that specific failure. The README describes it as a 3D interactive model of a GPT-style LLM network running inference, and the project page calls it a 3D model of a working implementation of a GPT-style network, meaning the topology used in OpenAI's GPT-2 and GPT-3. The word working carries the weight here. This is not a diagram of a transformer; it is a transformer whose weights are loaded and whose forward pass is being rendered. The intended audience is narrow and worth naming: engineers, students, and technical writers who already accept the attention equation and want spatial intuition for how the pieces compose. If you need a library to train or serve a model, this is the wrong repository and you will know within a minute.

What the repository actually ships, and why the homepage lives inside it

The README is explicit that this is not a single-purpose library. It is Brendan Bycroft's homepage plus a set of non-trivial projects, kept in one repository for ease of deployment and because they share JavaScript utilities that are otherwise a pain to share around. That single sentence explains most of the repository's shape and most of its friction. There is no monorepo tooling described, no published package, and no release has been retrieved for the project. The two named projects are the LLM visualization and a work-in-progress CPU simulation, a 2D digital schematic editor with an execution model demonstrating a simple RISC-V based CPU. The README marks that second project as not exposed yet, so anything you read about it describes intent rather than something you can open in a browser. For an adopter, the practical consequence is that you are cloning a personal site to get one demo. That is fine for reading and running; it is a poor starting point for vendoring code, because the boundaries between the homepage, the shared utilities, and the visualization are not documented.

The minGPT letters model is the only network with weights you can inspect

This is the constraint that determines whether llm-viz is useful to you. The README states that the first network displayed with working weights is a tiny GPT-style network which sorts a small list of the letters A, B and C, and that these are the demo example weights from Andrej Karpathy's minGPT implementation. Everything else is geometry without numbers. The renderer supports arbitrary sized networks and works with the smaller GPT-2 size, but the README says the weights are not downloaded because they run to hundreds of megabytes. So the honest description of the shipped experience is: one small, fully loaded model you can step through, plus a renderer that can draw a GPT-2-shaped graph whose parameters are absent. That is a real limitation, not a packaging oversight. A GPT-2-sized scene without weights shows you the skeleton of a transformer and nothing about the values flowing through it, which is precisely the part a static diagram already fails to convey. If your goal is to build intuition about what a large model is doing numerically, the tiny letters model is the whole product.

Running it locally: two commands and no configuration surface

The installation instructions in the README are two lines. Install dependencies with yarn, then start the dev server with yarn dev. There is no environment file, no API key, no model download step, and no build configuration described in the material. That absence is consistent with the design: the demo weights ship with the repository, so the visualization has something to render the moment the dev server starts. The lack of a documented production build command is worth noting if you were considering deploying this yourself rather than linking to the hosted version at bbycroft.net. The README does not describe one, and it does not describe any environment variables or configuration keys, so there is nothing to tune. If you are evaluating the project, the entire evaluation is those two commands plus whatever your browser does with the scene. Anything beyond that, such as adapting the renderer to your own model, is undocumented work you would be doing from the source rather than from instructions.

The licence has a carve-out that the one-line summary hides

The README states the licence is MIT, and then immediately qualifies it: the personal homepage under src/homepage/, the file public/me.jpeg, and third-party assets such as fonts and RISC-V tests retain their original rights and licences. This matters more than it usually would, because the visualization and the personal homepage share a repository and, per the README, share JavaScript utilities. If you copy files out of this project into your own, you cannot assume the MIT grant covers everything you touched. The safe reading is that the visualization code is MIT and the homepage material is not. I am not a lawyer and this is not legal advice; if you intend to redistribute anything, read the LICENSE file and identify which paths your copy came from. The practical version for most readers is that you will link to the hosted visualization rather than republish it, in which case the licence question does not arise.

What llm-viz is not: a comparison with a notebook-based walkthrough

The obvious alternative for someone who wants to understand a small GPT is to run the minGPT demo in a notebook and print tensors. The approaches differ in what they make cheap. A notebook makes values cheap: you can index into the attention matrix, plot a row, change a weight and re-run. llm-viz makes structure cheap: the README describes a 3D model of the network running inference, which means you can see how blocks stack and where the residual path rejoins, but you are not going to inspect a specific attention row the way you would in an array. The two are complementary, and the shared origin is not a coincidence, since the weights come from minGPT in the first place. Choose llm-viz when the question is where does this tensor live and what does it connect to. Choose the notebook when the question is what number is in this tensor. Neither answers the other's question, and a reader who wants both should expect to move between them rather than look for one tool that does both.

Maintenance cost, releases, and what the repository does not promise

No releases have been retrieved for this repository, and the README documents no versioning scheme, no changelog, and no compatibility guarantees. The last push recorded for the default branch is 2026-08-10, so the project is not archived and work continues, but activity is not the same as a support commitment. The dependency surface is a Yarn install of whatever the package manifest pins, which you inherit in full when you clone. For a reader, none of this is a problem: a visualization that renders correctly in your browser today does not need a roadmap. For anyone considering the code as a dependency, it is the central problem. There is no published package described, no API documentation, and no statement about which browsers or Node versions are supported. The GPU simulation is marked work in progress and not exposed, so the repository's second project is not something you can evaluate at all. Treat the project as a self-contained artifact you run and read, and the missing release process stops mattering.

Editorial conclusion

Adopt llm-viz if you are explaining transformer inference to people who have read about attention but never watched a tensor move, and you want that explanation to be a walkable 3D scene rather than a slide. Do not adopt it as a serving stack, an evaluation harness, or a component you import into a product: the repository is a single-deployment home for a homepage and several demos, the README does not describe a published package, and the only weights shipped are the minGPT letters demo. Before you invest time, run yarn && yarn dev, confirm the letters model loads in your browser, and check the LICENSE file for the carve-out covering src/homepage/ and public/me.jpeg, because the MIT grant in the README does not extend to those paths.

Official sources

  1. bbycroft/llm-viz on GitHub
  2. Issues
  3. License: MIT
  4. Project website
  5. README
Community notes

Community notes