Map.
Map is a macos application for wardley mapping. It lets you use text to create and update maps quickly.
Map is distributed under the GPLv3 license. The code and license text are available in git.r.bdr.sh, or mirrored in sourcehut.
You can also install map via homebrew running:
brew tap rbdr/apps git@git.sr.ht:~rbdr/homebrew-apps brew install --cask map
Features
- Draw components, connect them, group them, add notes, add inertia and evolution arrows.
- Live preview.
- Edit vertices with your mouse.
- Quick Look plugin lets you preview your map files.
- Create custom evolution stages for specialized analysis.
- Create templates for recurring map types.
- Adjust the size of each stage of evolution.
- Customize fonts and background.
- Adjustable editor font style and size.
- Smart label placement improves legibility.
- Smart editor helps you spot mistakes.
- Export to PNG, TIF, JPG, BMP and GIF.
Screenshots
Here's some screenshots of the app and example diagrams generated with it.
Horizontal Layout, Light Mode | Vertical Layout, Light Mode | Horizontal Layout, Dark Mode | Vertical Layout, Dark Mode | Map Output |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
Language Reference
Components
Components should be of the format Name (x,y)
. The name can contain spaces and \n
, and the x/y can be integers or
decimals.
All dimensions go from 0 - 100, so 50 means 50% of the way through. You can also specify the shape by appending `[Square]`,
`[Triangle]`, or `[x]`. eg.
Component (1,2)
My Cool Component (10.0,21.0)
A (1, 2.0) [Square]
Rose Wall (44.3, 50.0) [x]
Dependencies
Dependencies connect two components. They use the format Component -- Component
(line only) or Component -> Component
(with arrowhead). eg.
Component -- My Cool Component
A -> Component
Inertia
You can place an inertia marker in front of a component by using [Inertia] Component
. eg.
[Inertia] My Cool Component
[Inertia] A
Evolution
You can draw evolution arrows by using [Evolution] Component +x
or [Evolution] Component -x
. eg.
[Evolution] My Cool Component -10
[Evolution] A +15
Notes
You can add notes [Note] (x, y) Text
where x and y are numbers, and Text is any text with spaces or \n
[Note] (30, 45) Here we want to call out an explanation or context.
[Note] (90, 25) We're close to the edge \n so we can multiline it.
Groups
You can group components together by using [Group] ComponentA, ComponentB...
[Group] Tinker, Tailor, Soldier
[Group] Two Words, Three Words Here
Modifying the axes
If you need more space for one of the four segments you can use [I] x
, [II] x
, or [III] x
,
[I] 15
[II] 35.5
[III] 80
The parser doesn't enforce position, so if you put axis iii before axis i, you'll get some rendering issues.
Changelog
4.0.0
- BREAKING: [Blocker] has been renamed [Inertia] to match usage in other apps.
- Preferences for editor allow you to change the font style and size.
- Preferences for map allow you to change the font style, background and export format.
- Export is now available in PNG, TIF, JPG, GIF and BMP.
- You can use your mouse to move vertices around and instantly update your map.
- You can add custom stages to show in the map.
- You can create templates and change what new maps look like.
- Smart label placement improves legibility.
3.1.0
- Adds search to the source.
- Moves export to the menu bar.
3.0.1
- Fixes groups not detecting components with spaces.
3.0.0
- Uses files instead of iCloud.
- Horizontal and Vertical layout switching.
- Introduces [Group] directive.
- App store no longer supported.
2.0.0
- Introduces [Note] directive.
- New icon and map style.
1.2.0
- Performance improvements.
1.1.0
- Adds syntax highlighting.
1.0.0
- Initial release.