Visualize binary data and C struct memory layouts in Obsidian
ByteGrid is an Obsidian plugin that transforms YAML definitions into beautiful, interactive SVG diagrams showing memory layouts of binary data structures.
Perfect for reverse engineering, protocol analysis, file format documentation, and understanding low-level data structures.



main.js, manifest.json, and styles.css into your vault's .obsidian/plugins/bytegrid/ folderCreate a code block with the bytegrid language tag:
```bytegrid
name: Simple Structure
size: 16
layout: 16
fields:
- offset: 0-3
name: ID
type: uint32_t
- offset: 4-7
name: Timestamp
type: uint32_t
- offset: 8-11
name: Value
type: float
- offset: 12-15
name: Checksum
type: uint32_t
```
name: Structure Name # Required: Name of the structure
size: 16 # Required: Total size in bytes
layout: 16 # Optional: Bytes per row (default: 16)
layoutUnit: byte # Optional: 'byte' or 'bit' (default: byte)
# Color Options
autoColor: true # Optional: Auto-assign colors (default: true)
colorScheme: default # Optional: 'default', 'dark', or 'light'
# Legend Options
legendPosition: right # Optional: 'right', 'left', 'bottom', 'none'
legendColumns: 1 # Optional: Number of columns in legend (default: 1)
# Other Options
showFooter: true # Optional: Show footer (default: true)
fields:
- offset: 0-3 # Required: Byte range (SSOT)
name: FieldName # Required: Field name
type: uint32_t # Required: Data type
color: blue # Optional: Explicit color
description: '...' # Optional: Description
endianness: little # Optional: 'little' or 'big'
bitfields: # Optional: Bit-level fields
- name: Flag1
bits: '0-3'
description: '...'
Integer Types:
char, int8_t, uint8_tint16_t, uint16_t, shortint32_t, uint32_t, intint64_t, uint64_t, longFloating Point:
float, doubleArrays:
char[4], uint8_t[16], etc.Special:
reserved, padding (always gray)When autoColor: true (default), fields cycle through these colors:
Check the examples folder for more:
# Install dependencies
npm install
# Build all packages
npm run build
# Run tests
npm run test
# Development mode (watch)
cd packages/obsidian-plugin
npm run dev
bytegrid/
├── packages/
│ ├── core/ # Core rendering engine
│ └── obsidian-plugin/ # Obsidian plugin wrapper
└── examples/ # Example files
Contributions are welcome! Please feel free to submit a Pull Request.
reserved or padding typesMIT License - see LICENSE for details
Built with:
Made with ❤️ for the Obsidian community