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.0.tar.gz (110.0 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.0-py3-none-any.whl (83.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mmpviz-1.1.0.tar.gz
  • Upload date:
  • Size: 110.0 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.0.tar.gz
Algorithm Hash digest
SHA256 724af8fca4a3cbc3022097bee6dde08aac4c6cfdbd5c4b0672cce072daa0a0cb
MD5 78786ec6b5466b85e9e080b17a3affdc
BLAKE2b-256 9882f0451f1bbe750fb27c10884983e1344dffd05f3e851493af49a31e44287d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmpviz-1.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6aff5efa1abd93186d836790dbfa1fede7d0e33841c98727f0005ca49ec02460
MD5 d5a228a868b33cab8a8a5f9b501223b3
BLAKE2b-256 d367a05836759731985ab946b6bcae8f720b1d9723cf5d87a8327d62f10ca075

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