Achieving key objectives:
- Adding elements (nodes, functions)
- Interconnecting elements
- Opening and saving diagrams
- Moving and editing elements
- Undo/Redo
- Automatic positioning of elements
- Settings and help
- Multi-select items to move or delete them
- Set the spacing of elements for automatic placement
- Allow the names of free nodes to be justified
- Enable zooming and shifting of the whole layout
- A rendering tool (render.py) for converting .dmg files (or directories) into .svg files