I am not skilled in drawing, but after trying PlantUML, I found that I can create visual representations directly using code. This has greatly aided my spatial imagination.
Take, for example, the usecases diagram:
@startuml
:user: -right-> (Right)
:user: -up-> (Up)
@enduml
With the use of directional terms like “up” and “right,” you can intuitively draw the diagram as shown. it lowers barrier for non-artists - no drawing ability needed and focuses thought process on structural elements and relationships.
When immersed in text, our spatial imagination can often become less active. For example, when trying to imagine the hierarchical structure of an article such as org-mode, our mental representation tends to be more like a bullet structure in an editor, rather than a graphical tree structure.
PlantUML addresses the challenge of limited spatial imagination by providing an intuitive text-graph syntax. One notable feature is the Work Breakdown Structure (WBS) functionality.
Consider the following example:
@startwbs
!theme mono
Emamcs
** Texting Editing
** Note taking
** File Manager
** Literature Programming
@endwbs
The WBS feature in PlantUML facilitates the effortless transformation of a vertical structure into a horizontal representation. This allows me to mentally interpret and visualize the PlantUML code, automatically converting the vertical structure into a spatially-oriented horizontal structure in mind. Consequently, it effectively resolves the issue of my limited visual imagination and improving it continually.
I’ve been using PlantUML for documenting almost everything. ORG, org-babel and PlantUML is indeed a lovely combo!
For a recent blog post I wrote this ORG file: https://github.com/dorneanu/roam/blob/main/org/blog/2023-07-17-documentation_as_code_for_cloud_plantuml.org
There I not only use org-babel to write PUML code but I also use things like `org-sbe` to
- *tangle* PUML files in a specific directory
- *generate* PNG files in another one
Make sure to view the RAW file.