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.2.0.tar.gz (115.5 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.2.0-py3-none-any.whl (84.9 kB view details)

Uploaded Python 3

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

Hashes for mmpviz-1.2.0.tar.gz
Algorithm Hash digest
SHA256 13b9c82fde7596e3acfc4e58605c2a61147e9b155b8b17bf576e060d52533a6d
MD5 3470c23e13880aaca9837a496c17255f
BLAKE2b-256 28f57ce27b94c2af867a64d4539a13043a93048760f135de389a5476ff5e1b53

See more details on using hashes here.

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

Hashes for mmpviz-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8719240216368bd5c14f5ceff751de424a0738f0d066b297bc693f85698e1a8
MD5 95f3e3e60e6add2bfffd2c5275b8c997
BLAKE2b-256 7183e088f0710177950da8a4ee2bc8138b98582dd72d6d71de72928c73ffe156

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