Skip to main content

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.

ARM CoreSight Dual View


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 default and plantuml; fully customisable theme.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

mmpviz-1.1.1.tar.gz (110.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mmpviz-1.1.1-py3-none-any.whl (83.1 kB view details)

Uploaded Python 3

File details

Details for the file mmpviz-1.1.1.tar.gz.

File metadata

  • Download URL: mmpviz-1.1.1.tar.gz
  • Upload date:
  • Size: 110.2 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

Hashes for mmpviz-1.1.1.tar.gz
Algorithm Hash digest
SHA256 0a6e772706667c52842141ce372e524a830a7adaaa69d70956a07049749c2ace
MD5 386a271afa6da958d0e450c3166b9e58
BLAKE2b-256 c1ba376299235c8b612a4a1fcc16f459a9adeeca59d709721cbc0e9b5f7d8840

See more details on using hashes here.

File details

Details for the file mmpviz-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: mmpviz-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 83.1 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

Hashes for mmpviz-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 650b26b643730fd742c07b5caf97c7320b135384a6e90b39bbf39cc399109eed
MD5 de8c4e5fb747459f12c8ff4e36c569c1
BLAKE2b-256 097931446f8b9192f08660bc9d91945ba7a907b99a0b4b5ed16be94a4caa7672

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page