# isaacaneek/flow-maker architecture

> Architecture diagram of the GitHub repository isaacaneek/flow-maker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/isaacaneek/flow-maker
- Repository: https://github.com/isaacaneek/flow-maker

## Overview

Flow Maker is a Godot flowchart and graph editor for creating plans and visualizing structured data. Its documented workflow is to open a recursive JSON graph, then arrange selected nodes. The README also describes saving and sharing, but no source excerpts were provided, so internal ownership and most implementation links cannot be verified; those capabilities are represented without guessed call paths.

Main entry points: [`scripts/graph_edit.gd`](https://github.com/isaacaneek/flow-maker/blob/main/scripts/graph_edit.gd) (Graph Editor), [`scenes/graph_edit.tscn`](https://github.com/isaacaneek/flow-maker/blob/main/scenes/graph_edit.tscn) (Editor UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Graph Authoring"]
  node_editor_ui["Editor UI<br/>[graph_edit.tscn]"]
  node_graph_editor["Graph Editor<br/>[graph_edit.gd]"]
  node_graph_model["Graph Data<br/>[graph_data.gd]"]
  node_node_data["Node Data<br/>[graphNode_data.gd]"]
  node_subnode_data["Subnode Data<br/>[subNode_data.gd]"]
  node_save["Save Graph<br/>[graph_edit.gd]"]
end

subgraph group_input["Graph Input"]
  node_json_file["Recursive JSON"]
end

subgraph group_sharing["Sharing"]
  node_community(("Community"))
end

node_user(("User"))

node_user -->|"opens graph"| node_editor_ui
node_user -->|"selects file"| node_json_file
node_json_file -->|"visualizes"| node_graph_editor
node_user -->|"arranges nodes"| node_graph_editor
node_graph_editor -.->|"saves graph"| node_save
node_graph_editor -.->|"shares roadmap"| node_community

click node_editor_ui "https://github.com/isaacaneek/flow-maker/blob/main/scenes/graph_edit.tscn"
click node_graph_editor "https://github.com/isaacaneek/flow-maker/blob/main/scripts/graph_edit.gd"
click node_graph_model "https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/graph_data.gd"
click node_node_data "https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/graphNode_data.gd"
click node_subnode_data "https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/subNode_data.gd"
click node_save "https://github.com/isaacaneek/flow-maker/blob/main/scripts/graph_edit.gd"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_editor_ui,node_graph_editor,node_graph_model,node_node_data,node_subnode_data,node_save,node_user toneBlue
class node_json_file toneAmber
class node_community toneMint
```

## Components

### Graph Authoring

- [Editor UI](https://github.com/isaacaneek/flow-maker/blob/main/scenes/graph_edit.tscn): `scenes/graph_edit.tscn`
- [Graph Editor](https://github.com/isaacaneek/flow-maker/blob/main/scripts/graph_edit.gd): `scripts/graph_edit.gd`
- [Graph Data](https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/graph_data.gd): `resource_scripts/graph_data.gd`
- [Node Data](https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/graphNode_data.gd): `resource_scripts/graphNode_data.gd`
- [Subnode Data](https://github.com/isaacaneek/flow-maker/blob/main/resource_scripts/subNode_data.gd): `resource_scripts/subNode_data.gd`
- [Save Graph](https://github.com/isaacaneek/flow-maker/blob/main/scripts/graph_edit.gd): `scripts/graph_edit.gd`

### Graph Input

- **Recursive JSON**

### Sharing

- **Community**

### Other components

- **User**

## Connections

- User → Editor UI: opens graph (evidence: `README.md`)
- User → Recursive JSON: selects file (evidence: `README.md`)
- Recursive JSON → Graph Editor: visualizes (evidence: `README.md`)
- User → Graph Editor: arranges nodes (evidence: `README.md`)
- Graph Editor → Save Graph: saves graph
- Graph Editor → Community: shares roadmap (evidence: `README.md`)
