Depth rings, not a hairball.
A force-directed graph of a real codebase is a tangle. Lattice lays the same graph out on concentric rings by call depth, so the structure shows before you read a single name.
Distance from the center is depth.
- Rim. Entry points: route handlers, commands, and handler functions, the places execution starts.
- Center. Foundations: the helpers many things call. Code no entry point reaches sits in the middle too, with no depth at all.
- Angle. Symbols sit next to the others in their package on each ring.
- Size. A bigger dot has a higher PageRank: it is a structural hub.
- Arcs. One arc per resolved call. An arc that crosses many rings skips layers.
- Color. Dot color is the kind of symbol: module, class, function, or method.


See how far a change reaches.
Turn on blast radius, pick 1 to 5 hops, and select a symbol. Everything that depends on it is colored by distance and the rest fades. The shape tells you whether a change is contained or systemic.
- The symbol itself
- 1 hop: direct callers
- 2 hops
- 3 hops
- 4 hops
- 5 hops or more




Narrow the picture; nothing is dropped silently.
Menus pick the repository, the kind of symbol, and the package. The canvas draws up to 2,500 symbols at a time, highest centrality first, and a notice says when it trimmed so you know to filter. Drag to pan, scroll to zoom, hover to highlight neighbors, and click to inspect.




The canvas is mouse-driven; the facts are not.
The graph is drawn on a canvas that you pan, zoom, and click with a pointer. Selecting a symbol has no keyboard path yet, and that gap is listed on the accessibility page. The menus, the blast-radius checkbox, and the theme toggle are ordinary controls that Tab reaches, and the same answers about any symbol are available as text through Lattice's MCP tools, command line, and REST API, shown on the agent tools page.