Diagrams

ConnorGray/Diagrams is a project leveraging the symbolic representation capabilities of Wolfram Language for the purpose of creating diagrams.

Example Gallery

Domain Specific

StringEncodingDiagram

StringEncodingDiagram is used to visualize the layers of abstraction and processing involved in encoding and displaying a string.

A diagram demonstrating each level of abstraction in processing “Hey 👋🏻”, using the variable-length encoding UTF-8:

CharacterSetDiagram

Render a code page for the specified 8-bit character set, and visualize how much its codepoint assignments overlap with Unicode:

MemoryLayoutDiagram

Visualize the layout of a 64-bit integer in memory:
Visualize the layout of a contiguous array of 16-bit integers in memory:
Visualize the layout of a struct in memory:

StackHeapDiagram

Show a diagram visualizing how data on the stack relates to data on the heap:

FileSystemTreeDiagram

Generate an ASCII art diagram of a file directory structure:
A more complicated example:

General Purpose

BlockStackDiagram

BlockStackDiagram is used to visualize any concept that can be broken down into a stack of layers made up of blocks.

A diagram visualizing how a SIMD vector is composed of smaller units, and their layout in memory:
A diagram visualizing the OSI model of network communication layers:

TreeStackDiagram

MultiBlockStackDiagram

A multi-column block stack diagram, with first-class support for arrows between named regions: