Memory Map / Address Map SVG Visualizer — turn a JSON description of your memory layout into a publication-quality SVG diagram
Project description
mmpviz — Memory Map / Address Map Visualizer
Turn a JSON description of your memory layout into a publication-quality SVG diagram.
No coordinates. No manual box placement. Just describe the address ranges and let mmpviz compute the layout.
Install
pip install mmpviz
mmpviz has no runtime dependencies — stdlib only. Schema and cross-reference validation run automatically on every render.
Quick Start
1. Create diagram.json
{
"views": [
{
"id": "flash",
"bits": 32,
"sections": [
{ "id": "bootloader", "name": "Bootloader", "address": "0x00000000", "size": "0x8000" },
{ "id": "app", "name": "Application","address": "0x00008000", "size": "0x78000" }
]
}
]
}
2. Render
mmpviz -d diagram.json -o map.svg
3. Choose a layout algorithm (optional)
mmpviz -d diagram.json -o map.svg --layout algo4
| Flag | Description |
|---|---|
--layout algo1 |
One column per DAG level |
--layout algo2 |
Algo-1 + height-rebalancing |
--layout algo3 |
Algo-2 + routing lanes for non-adjacent links (default) |
--layout algo4 |
Algo-3 + vertical column alignment to minimise link length |
Themes
Two built-in themes ship with mmpviz:
| Theme | Flag | Appearance |
|---|---|---|
default |
-t default |
Neutral gray fills, clean monochrome |
plantuml |
-t plantuml |
Warm yellow fills, PlantUML-style palette |
mmpviz -d diagram.json -o map.svg -t plantuml
Theme resolution — first match wins:
-t flag |
theme.json next to diagram? |
Theme used |
|---|---|---|
-t plantuml (or any name/path) |
yes or no | The -t value — sibling is ignored |
| (omit) | yes | The sibling theme.json |
| (omit) | no | Built-in default |
For a custom theme, place a theme.json next to diagram.json and extend a built-in:
{ "schema_version": 1, "extends": "plantuml" }
Features
- Zero required dependencies — pure Python stdlib
- Auto-layout — DAG-based column assignment, height rebalancing, routing lanes for crossing-free link bridges
- Multi-view diagrams — model interconnected address spaces with typed links (connector, band)
- Themes — built-in
defaultandplantuml; fully customisabletheme.json - Per-section overrides — granular fill, stroke, height floor/ceiling per section or view
- Scales from MCUs to SoCs — tested on OpenTitan Earl Grey (65+ peripherals)
More Examples
Real-world chip diagrams, theme showcases, and layout comparisons are in the examples/ directory on GitHub.
Full documentation: github.com/f33lgood/mmpviz
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mmpviz-1.2.0.tar.gz.
File metadata
- Download URL: mmpviz-1.2.0.tar.gz
- Upload date:
- Size: 115.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13b9c82fde7596e3acfc4e58605c2a61147e9b155b8b17bf576e060d52533a6d
|
|
| MD5 |
3470c23e13880aaca9837a496c17255f
|
|
| BLAKE2b-256 |
28f57ce27b94c2af867a64d4539a13043a93048760f135de389a5476ff5e1b53
|
File details
Details for the file mmpviz-1.2.0-py3-none-any.whl.
File metadata
- Download URL: mmpviz-1.2.0-py3-none-any.whl
- Upload date:
- Size: 84.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8719240216368bd5c14f5ceff751de424a0738f0d066b297bc693f85698e1a8
|
|
| MD5 |
95f3e3e60e6add2bfffd2c5275b8c997
|
|
| BLAKE2b-256 |
7183e088f0710177950da8a4ee2bc8138b98582dd72d6d71de72928c73ffe156
|