The idea is simple, but the results are surprisingly decent.
Even though I originally built isoflow to visualise network architectures, there's nothing stopping you from going beyond networks and generating anything you're interested in (provided it can be visualised on a graph). For example, try writing the prompt “Show me the organisational structure of the US political system” and you'll see what I mean.
As a visual learner, I’m already finding this feature quite useful for gaining insight into different types of organisational structures (I've been asking questions from how Amazon is organised to how the Sinaloa Cartel is structured). The output is not yet perfect, but as a first iteration it's already feeling quite useful, and I'm sure there is a lot of improvement to be made when it comes to optimising the prompts I'm using.
Now for the tech side of things.
Text-to-diagram uses OpenAI's GPT API under the hood (no surprises there!). As I mentioned, I've had this experiment in mind for a while now, but it bubbled up to the surface again after I recently read about the new ‘Structured Outputs’ feature which allows you to pass a JSON schema to GPT, so that the response can be formatted to the schema. This is HUGELY useful, and made it a breeze to get GPT talking the same language as Isoflow.
Once I had that, I built a simple interface that would accept a prompt. Nothing complicated, mainly just a textbox, but after generating a few diagrams, I discovered that ChatGPT wasn't great at positioning nodes on the graph. A lot of the time the nodes were too close or too far away from each other, making relationships difficult to see (and something which made the output almost useless). So as a next step, I started experimenting with auto-layout algorithms, mainly force-directed graph drawing.
The force-directed algo essentially sees nodes as physical objects, and connectors as rubber bands, and runs your graph through a physics model. Eventually connected nodes start getting pulled closer together, and the result is a neater layout where everything is more logically spaced out. So now I use GPT just to generate the content, and the layout algo deals with making things look nice.
I'm interested in whether others find this feature useful, especially visual learners like myself, and I'm also interested in what people are using to visualise with it. I will aim to keep this feature free as long as costs don't spiral out of control. Do let me know in the comments what you think.