Yeah. I do wonder if it is possible to pack this into a standalone binary so that I don't have to install PHP - not due to language bias, but so it might be run without any package installation steps.
Not nearly as hacker-y as this, but I'll plug Reflect here. Probably my favorite tool for this so far. Best continually-improving UX, but there's a subscription cost. I happily pay it.
This is really cool. Adding, editing, and navigating nodes is pretty intuitive (reminds me of working in a spreadsheet). I kind of wish that it would auto-center as you're editing, and it might be nice to be able to hit Escape to cancel out of creating a new node. The ability to export as HTML is simple and gives a nice result. I'm going to incorporate this into some of my workflows
I'm old enough to remember when pockets of the Freemind[1] community aspired for that application to reach something of this state. Sadly, development forked and work on the original project stalled pretty hard.
- Why is this written in PHP? Who builds CLI applications in PHP? Everything looks like a nail, I guess?
- Why did you choose your own custom serialization format instead of using something universally supported, like JSON? It's literally more effort for you and everyone else involved for zero benefit.
- I love CLI applications and CLI navigation(vim-style, etc) but it really feels like a missed opportunity for this to not have any sort of web UI, since it would be very natural to click, zoom and pan around.
Programming is not my career, but rather a hobby, and I developed h-m-m because I wanted to have something like this and couldn't find one. Therefore, what I've done here may have a lot of room for improvement.
It makes sense to me that a hobbyist might well build a CLI in whatever is convenient for them, and not know to look for standard serialization formats.
Programming is not my career, but rather a hobby, and I developed h-m-m because I wanted to have something like this and couldn't find one. Therefore, what I've done here may have a lot of room for improvement. If you see an embarrassing problem in the program or have an idea for improvement, feel free to contact me; I'd be happy to receive your feedback.
I’m not fond of it being in PHP, either (mostly because I doubt I have it installed to use this), but that doesn’t make this a bad tool, just one that solves someone’s problem.
Do you mean json for saving the data?
I wanted the file to be human-readable. You can simply have a markdown list and open it in this application and work with it as a mind map. Also, most of the content one may paste into a mind map is an indented list, and when they copy something from the map, they expect it to be like that. Therefore, the application must be able to process from and to indented lists anyway.
The most obvious benefit is easily handling non-tree interactions.
The fact that it's terminal-centric is also situationally an advantage as opposed to gdocs, but that could easily be solved by vim or something, so I don't think that's quite what you were asking.
I'm glad you like it :)
To be clear, this mind mapping application is my personal project and P3.express is a group effort and I'm one of its contributors.
Awesome. I am using PHP for some college classes and I can certainly say that I would never want to use it for something like this, but the fact that someone did is pretty awesome. I will definitely be using (probably a fork that I rewrite in a language that I will be willing to maintain) a lot for sure. Awesome work!
I showed up to a company wide strategy offsite with an iPad and whipped out a mind mapping tool. For the first ten minutes I could see my boss vibrating because he thought I was fucking around.
By the end of the meeting he wanted a copy, and for me to CC his boss and a couple of his peers.
Best ones I’ve used are MindNode and XMind. I actually used MindNode for personal stuff and XMind for work, but now I’ve been gravitating towards XMind alone because it also runs on Linux (besides Mac and Windows) and I can sync my mindmaps to the iPad with SyncThing.
XMind does have a couple of irritating bugs on Fedora around keyboard input (I can’t move focus with the cursor keys, it creates a new node) but it might be specific to my setup. Their support/developers don’t seem to care much, though.
Why would a mind mapping tool cause such a reaction? Are diagrams considered not serious where you work? Was the tool heavily ornamental/stylized? Or was it seen as writing down things that are obvious?
He was sitting right next to me. He was just a control freak, who also projected on other people. His ego took out a whole office. Best layoff I ever had.
Hey! love the thing.
Quick suggestion to the README on the section "Relative navigating and moving"
It looks like I have to press H <AND> <-, to move left - I am assuming that I can do either or, a la vim.
A small copy edit would make that clearer.
Kudos!
I keep trying mind maps and getting frustrated because my mind works differently. Anybody know of ones that let you start out non-hierarchical?
For me, key nodes are often obvious long before relationships are. E.g., if I'm working with post-it notes, I might write a bunch of notes, cluster them, winnow, and only then want to start locking in relationships between items. Has anybody seen something that's pretty straightforward that supports that approach?
Usually the non-hierarchical is an option to toggle on/off in the tools I’ve used.
With hierarchy you can still achieve it though. If the topic is “alphabet” I might create major nodes A B C D without linking them. I then play with A B C and D and add more nodes in a brain dump and then re-arrange later and map the relationships
Yeah this is a common problem that pops up all the time, typically a tree, or taxonomy etc aren't sufficient and you need an ontology. But they aren't so easy to grasp intuitionally so we try to dumb it down and then hit problems, imho.
The best tool I've ever used for this no longer exists, as far as I'm aware. It was circa 1991, a spectacular lightweight Macintosh application called "Inspiration." There currently exists software in the same lane with the same name - but if there's any blood relation between the two, the current bears little resemblance to its progenitor.
I will mangle the terminology since it's been so long, but the basic idea was that on an infinite canvas you would create nodes representing concepts; these nodes were just UI "bubble" objects, like the ovals you might find in slide deck software. Relationships could be added after the fact by linking these nodes, and there was a fast way to create linked "sub-nodes" from an existing node. Also, very strong UI for arranging the node diagram.
Maybe the big problem with mind mapping tools these days is feature creep. A complex UI with too many options will absolutely get in the way of the thought process it serves.
Not mine, I am not affiliated with this tool, but I thought along the same lines as you and found this tool, could you give it a try and let me know what you think?
Very interesting, and does capture some of the transparency of Inspiration, in the sense that using the tool doesn't interfere with the process. Thanks for sharing this!
The software is still around and old vintage software sites have the earlier versions that you can run in a MacOS8 emulator. I last played with version 6 I think about 4 years ago; at that time you could have both an outline view and a mind map and switch between them.
I am currently trying a big sheet of white paper, folded once in the middle and a pilot frixion pen.
This is mostly for home stuff of which there is quite a bit for a home owner. It can just lie on since table or shelf and be updated easily. I put notes and todos together and the todos get a little check box in front of them. I'm in control of the hierarchy and it mostly mirrors the layout of the house. Doesn't get in the way for me.
I also want to extend it to other areas but for now I'm trying things out with the house domain.
Of course the downside is that i cannot easily edit it when I'm out and about and have some idea. And it's not really possible to have any automated reminders or integrations.
(Not sure if there are open source alternatives to what rocketbook is offering; that might be a way to hook this into some digital setup)
I tend to work this way with a tool called Markmap (https://markmap.js.org/repl). I start with one heading and a list then begin moving items and adding new headings/subheadings as the relationships form. For example:
Depending on the topic I'm working on, sometimes I need an approach similar to what you explained. I still use a mindmap, open a first-level node called 'temp' and start adding everything there and keep sorting them. As soon as a structure starts to emerge, I create other nodes and move those items to their new places.
This is based on the assumption that your final output would be a tree with one-to-many relationships rather than a graph with many-to-many relationships. I've seen tools for organizing many-to-many relationships, but I never had the need to use one.
If you want opensource and local storage look up Dendron. It is a VSCode extension in a similar vein, uses markdown so easily track changes in git/etc as well.
Scapple is what you are looking for. Its from the same crew that made Scrivener. You can use it free for a month I think or pay like 20 bucks for a lifetime license. It lets you start anywhere and is very simple and intuitive. The only thing bad about it is exporting data out of it.
https://www.literatureandlatte.com/scapple/overview
This is sort of the problem I have with most things that aren't just a text editor. They may be better in some ways (and I do like Scrivener) but at the end of the day, when I'm done, I want everything to be in a universal format on my own filesystem.
What I really like to prepared D&D games are Entity Relationship Diagrams. A very handy app for from the Android Play Store is "Draw Express Diagram Lite" - the touch UX to create diagrams is unmatched in usability if you ask me.
In the past when I've used them, I usually started by listing all the nodes in a long list under a single root, not trying to organize them at all. I fought the urge to organize everything from the get go.
- kinopio (web/mobile) kinopio.club
Works well, but has a strong, quirky personality which sometimes gets annoying for me; I prefer the minimalism of scapple.
- draw.io / diagrams.net
You can configure it to hide most of the toolbars and then just use it as mind mapping software, this is what I'm trying at the moment.
FastMindMap (https://fastmindmap.innovationgear.com) allows adding on the board the so-called 'floating topics', and later you can build hierarchical or parallel relations between the topics with drag-and-drop. (I'm the developer).
The left-to-right trees of these mindmap applications has always felt a very bad fit for me. To me, a mindmap is a big piece of paper with the core concept in a bubble in the middle, and things drawn outward from it, with lines connecting things when they are related. The end result is much more organic, and spatial layout matters.
Have you considered aligning sublists to the parent node? Right now, your eyes have to leap upwards from a node to get the first child of the list. And since each list has a different length, you have to scan upwards a different amount every time. If every list was aligned with the parent, you could just read left-to-right.
In the screenshot in the repo, there's a node with the text "a mind mapping tool". It has 5 children, but the first child "text-based (terminal application)" is above it. So the more children a node has, the further above it the first child is. What if it was aligned so that the first child is at the same height as its parent? Then it might look more natural like a list, and read easier since the children start at the same height as the parent rather than at some arbitrary point above it.
This would help with flow, because then you can read left to right and scan downwards. Right now you have to keep jumping up to find the first child and then scan down to read all the children.
I agree with this, but I would say that both options work. I like how it organizes things currently, but if this "child list" could be added it would make my workflow quite organized for little input. Keeping things as simple as possible while maintaining productivity is the goal. Although I would like to see color coding in some fashion as to keep larger data sets clear when observed in a tree with many branches.
Perhaps the hotkey of '0' could be used as it is next to O for creating a new "child list". Great tool as-is though.
Please seriously consider making it the default. Every graph-visualization tool makes this alignment mistake, and it's part of why they just aren't very popular. They're too hard to browse because you can't easily scan the graph. I think if you prototype it, you'll see how much better it feels when everything lines up.
I don't really get the point of a hierarchical mind map. Why not just use a nested list? (Seems to be standard for mindmaps, so I'm criticizing this project specifically.)
It's basically a nested list, but you get specific features that makes it easier and faster to navigate such a list.
Mind mapping is a facilitator for the thinking process. When you're trying to solve a problem or design a concept, you need to switch between the high-level aspects and details all the time, and your tool shouldn't get in the way.
There are no stupid questions, except maybe this one:
Q. Why is a wide horizontal tree superior way to work with a mind map that’s a pure outline (not a DAG) than a simple outline?
See the Data Format here, it’s an outline. Keystrokes are about moving nodes and descendants, that can work on an outline. And then why not have a portable outline format.
I do understand this is terminal/text. Yet there are plenty terminal/text outline editors, and being able to see a narrow outline instead of a wide tree feels more usuable.
That said, I use and really enjoy iThoughtsX which can import/export OPML and Markdown etc., and provides ability to control visual layout per ‘information geography’ or ‘cartography’. So not averse to visual graph depiction of a DAG, just asking why folks like this for pure outline format instead of outline editing?
I haven’t tried this yet, but from the look of it, it expands both horizontally and vertically, and one of the more important features is collapsibility/expansion of subnodes.
Note that in the image there, they’ve got some subnodes expanded deep horizontally, while their sibling nodes might be even deeper but are collapsed.
The difference with a simple vertical outline is that this format is focused on pruning/unpruning parts of the tree, pair with an expectation of arbitrarily “deep” nesting. I find that in outline format, I’m unlikely to go deeper than a couple levels, and will at that point either switch to narrative or use some sort of referencing scheme.
OK, makes sense. I think most "outliner" tools I know of do exactly those adds, with the benefit of also being relatively flush left.
As I help our firm select knowledge management tools, I'm just trying to understand the use cases that differentiate this approach from a fully fledged outliner.
Note that I ask the same thing of people who do outlines in MS Word manually as plain bullet lists instead of using, you know, the outliner. :-)
Not trying to hate on PHP, but deployment is one of the features that is so great with Go. It's about on the same level of abstraction as PHP and it's just a breeze to deploy stuff.
Dave Winer of RSS and blogging fame created Think Tank, a text mode outliner, back in the 80’s. Was a single binary for MSDOS. Haven’t seen an outliner that came close.
130 comments
[ 2.8 ms ] story [ 181 ms ] threadget off my yard
Looks cool though, I’ll try it soon :)
https://symisc.net/downloads/ph7_intro.c
This isn't a real Buzan-style mindmap, though, because the words aren't on the lines.
press shift+c
I'll try it when they repair my Mac
...but mapping everything is just step one. Step two is getting a prioritized list of todos for the day.
Great stuff - thanks for sharing!
[1]http://freemind.sourceforge.net/wiki/index.php/Main_Page
- Why is this written in PHP? Who builds CLI applications in PHP? Everything looks like a nail, I guess? - Why did you choose your own custom serialization format instead of using something universally supported, like JSON? It's literally more effort for you and everyone else involved for zero benefit. - I love CLI applications and CLI navigation(vim-style, etc) but it really feels like a missed opportunity for this to not have any sort of web UI, since it would be very natural to click, zoom and pan around.
Programming is not my career, but rather a hobby, and I developed h-m-m because I wanted to have something like this and couldn't find one. Therefore, what I've done here may have a lot of room for improvement.
It makes sense to me that a hobbyist might well build a CLI in whatever is convenient for them, and not know to look for standard serialization formats.
I’m not fond of it being in PHP, either (mostly because I doubt I have it installed to use this), but that doesn’t make this a bad tool, just one that solves someone’s problem.
A question to others who enjoy similar tools:
What is the difference between this (or other) tool to a simple document on Gdocs with multilevel bullet lists?
The fact that it's terminal-centric is also situationally an advantage as opposed to gdocs, but that could easily be solved by vim or something, so I don't think that's quite what you were asking.
The fact that the name immediately made me think "Hamlin-McGill-McGill" is only a bonus :)
By the end of the meeting he wanted a copy, and for me to CC his boss and a couple of his peers.
XMind does have a couple of irritating bugs on Fedora around keyboard input (I can’t move focus with the cursor keys, it creates a new node) but it might be specific to my setup. Their support/developers don’t seem to care much, though.
For me, key nodes are often obvious long before relationships are. E.g., if I'm working with post-it notes, I might write a bunch of notes, cluster them, winnow, and only then want to start locking in relationships between items. Has anybody seen something that's pretty straightforward that supports that approach?
With hierarchy you can still achieve it though. If the topic is “alphabet” I might create major nodes A B C D without linking them. I then play with A B C and D and add more nodes in a brain dump and then re-arrange later and map the relationships
Edit: Or if you want an open source alternative, check out ourboard.io
I will mangle the terminology since it's been so long, but the basic idea was that on an infinite canvas you would create nodes representing concepts; these nodes were just UI "bubble" objects, like the ovals you might find in slide deck software. Relationships could be added after the fact by linking these nodes, and there was a fast way to create linked "sub-nodes" from an existing node. Also, very strong UI for arranging the node diagram.
Maybe the big problem with mind mapping tools these days is feature creep. A complex UI with too many options will absolutely get in the way of the thought process it serves.
https://kinopio.club/
Inspiration : the thought processor Authors: Donald Helfgott, Mona Helfgott, made by Ceres Software, Inc
History of the company: https://psychology.fandom.com/wiki/Inspiration_Software
This is mostly for home stuff of which there is quite a bit for a home owner. It can just lie on since table or shelf and be updated easily. I put notes and todos together and the todos get a little check box in front of them. I'm in control of the hierarchy and it mostly mirrors the layout of the house. Doesn't get in the way for me.
I also want to extend it to other areas but for now I'm trying things out with the house domain.
Of course the downside is that i cannot easily edit it when I'm out and about and have some idea. And it's not really possible to have any automated reminders or integrations. (Not sure if there are open source alternatives to what rocketbook is offering; that might be a way to hook this into some digital setup)
Try SketchViz.com and see what you think.
Also a shoutout to yEd Graph Editor (free).
0. https://obsidian.md/
https://github.com/foambubble/foam
https://github.com/dendronhq/dendron
Link: https://github.com/obsidianmd/obsidian-releases
Also I like to use them in new organizations to map out the people I meet to make sense of who knows what about a topic. Especially in big orgs.
Feel free to try. Works on all platforms, can be used as a collaboration tool, and has a ton of other features
https://6groups.com
- Scapple (mac/windows only) https://www.literatureandlatte.com/scapple/overview I love how minimal it is, but wish there was a linux/web version. I'll probably make my own some day.
- kinopio (web/mobile) kinopio.club Works well, but has a strong, quirky personality which sometimes gets annoying for me; I prefer the minimalism of scapple.
- draw.io / diagrams.net You can configure it to hide most of the toolbars and then just use it as mind mapping software, this is what I'm trying at the moment.
I do believe you can create nodes without any Hierarchy and you can always join the nodes into a hierarchy later.
It's got great export features and a ton of other stuff. For me it's the best mind mapping software I have ever seen and I have tried a lot of them.
I've emailed and tweeted.
This would help with flow, because then you can read left to right and scan downwards. Right now you have to keep jumping up to find the first child and then scan down to read all the children.
Perhaps the hotkey of '0' could be used as it is next to O for creating a new "child list". Great tool as-is though.
Q. Why is a wide horizontal tree superior way to work with a mind map that’s a pure outline (not a DAG) than a simple outline?
See the Data Format here, it’s an outline. Keystrokes are about moving nodes and descendants, that can work on an outline. And then why not have a portable outline format.
I do understand this is terminal/text. Yet there are plenty terminal/text outline editors, and being able to see a narrow outline instead of a wide tree feels more usuable.
That said, I use and really enjoy iThoughtsX which can import/export OPML and Markdown etc., and provides ability to control visual layout per ‘information geography’ or ‘cartography’. So not averse to visual graph depiction of a DAG, just asking why folks like this for pure outline format instead of outline editing?
Note that in the image there, they’ve got some subnodes expanded deep horizontally, while their sibling nodes might be even deeper but are collapsed.
The difference with a simple vertical outline is that this format is focused on pruning/unpruning parts of the tree, pair with an expectation of arbitrarily “deep” nesting. I find that in outline format, I’m unlikely to go deeper than a couple levels, and will at that point either switch to narrative or use some sort of referencing scheme.
As I help our firm select knowledge management tools, I'm just trying to understand the use cases that differentiate this approach from a fully fledged outliner.
Note that I ask the same thing of people who do outlines in MS Word manually as plain bullet lists instead of using, you know, the outliner. :-)
You can either run the code or develop on the code with no more "works on my machine" that way
Something like this should have done it: