Skip to content

Commit 0d4f9c7

Browse files
author
Bryan Howard
committed
Add markdown_format.png image and update README with enhanced project description and structure
1 parent 4af31c3 commit 0d4f9c7

File tree

2 files changed

+25
-24
lines changed

2 files changed

+25
-24
lines changed

images/markdown_format.png

94.9 KB
Loading

readme.md

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ A universal, node-based visual scripting editor built with Python and PySide6. D
44

55
![Node Editor Showcase](images/gui.png)
66

7-
This project is a universal implementation of a node-based Python environment. It provides a highly interactive and visually polished interface for creating, connecting, and executing custom logic nodes. The application is designed to handle any Python code, including scripts with embedded pip dependencies. The compiled application is fully self-contained and includes a portable Python runtime, so users do not need to have Python installed on their system.
7+
This project implements a node-based visual programming environment for Python code execution. The application provides a Qt-based interface for creating, connecting, and executing Python functions as nodes in a directed acyclic graph. Graph persistence is handled through a Markdown-based serialization format that maintains both structural metadata and human readability. The application supports arbitrary Python code execution with isolated virtual environments and dependency management through subprocess isolation.
88

9-
The core philosophy of this editor is **"Code as Nodes."** Instead of manually adding inputs and outputs, the editor intelligently parses the Python code within each node to dynamically generate the appropriate connection pins, making graph creation fast, flexible, and intuitive.
9+
The core architecture follows a **"Code as Nodes"** approach where input and output pins are automatically generated by parsing Python function signatures and type annotations. This eliminates manual pin configuration and enables rapid prototyping of data processing pipelines. The Markdown file format stores graph topology, node positioning, code content, and environment requirements in a structured format that can be processed by both the application, external tools, and large language models (LLM's).
1010

1111
---
1212

@@ -44,35 +44,15 @@ The core philosophy of this editor is **"Code as Nodes."** Instead of manually a
4444

4545
---
4646

47-
## Screenshots
48-
49-
### Main Interface
50-
51-
The main PyFlowGraph interface showcasing a complete text adventure game implementation. This example demonstrates the node-based visual scripting approach with interconnected nodes handling game logic, user input processing, and narrative flow. Notice the clean dark theme, type-colored connection pins, and the intuitive layout of the node graph canvas.
52-
53-
![Node Editor Showcase](images/text_adventure_graph.png)
54-
55-
### Mini-IDE Code Editor
56-
57-
The integrated Python code editor provides a professional development environment within PyFlowGraph. Features include syntax highlighting with custom color schemes, line numbering, smart auto-indentation, and tab support. The modal dialog design gives developers ample space to write and edit node logic while maintaining the visual context of the graph workflow.
58-
59-
![Python Code Editor](images/python_editor.png)
60-
61-
### Python Environment Manager
62-
63-
The Python Environment Manager dialog enables sophisticated dependency management for each graph project. Users can specify custom pip requirements that are automatically installed in isolated virtual environments. This ensures each graph has its own clean dependency space, preventing conflicts between different projects while maintaining security through subprocess isolation.
64-
65-
![Python Environment Manager](images/environment_manager.png)
66-
67-
### Markdown File Format
47+
## Markdown File Format
6848

6949
PyFlowGraph uses a innovative Markdown-based file format (`.md`) that combines human readability with structured data storage. This format makes graphs both machine-readable for the application and easily editable by humans or AI assistants. The format includes embedded metadata for node positions, connections, and execution requirements while presenting the code in a clean, readable format.
7050

7151
![Markdown Format Example](images/markdown_format.png)
7252

7353
For detailed information about the file format specification, see [flow_spec.md](flow_spec.md).
7454

75-
## Example Graphs
55+
### Example Graphs
7656

7757
The `examples/` directory contains sample graphs demonstrating various capabilities:
7858

@@ -88,6 +68,26 @@ The `examples/` directory contains sample graphs demonstrating various capabilit
8868

8969
---
9070

71+
## Screenshots
72+
73+
### Main Interface
74+
75+
The main PyFlowGraph interface showcasing a complete text adventure game implementation. This example demonstrates the node-based visual scripting approach with interconnected nodes handling game logic, user input processing, and narrative flow. Notice the clean dark theme, type-colored connection pins, and the intuitive layout of the node graph canvas.
76+
77+
![Node Editor Showcase](images/text_adventure_graph.png)
78+
79+
### Mini-IDE Code Editor
80+
81+
The integrated Python code editor provides a professional development environment within PyFlowGraph. Features include syntax highlighting with custom color schemes, line numbering, smart auto-indentation, and tab support. The modal dialog design gives developers ample space to write and edit node logic while maintaining the visual context of the graph workflow.
82+
83+
![Python Code Editor](images/python_editor.png)
84+
85+
### Python Environment Manager
86+
87+
The Python Environment Manager dialog enables sophisticated dependency management for each graph project. Users can specify custom pip requirements that are automatically installed in isolated virtual environments. This ensures each graph has its own clean dependency space, preventing conflicts between different projects while maintaining security through subprocess isolation.
88+
89+
![Python Environment Manager](images/environment_manager.png)
90+
9191
## Project Structure
9292

9393
The project is organized into modular, single-responsibility Python files:
@@ -266,6 +266,7 @@ def main_node_function(base_name: str) -> str:
266266
**Custom Dependencies**: Each graph can specify its own pip requirements through the Environment Manager. Dependencies are automatically installed in isolated virtual environments.
267267
268268
**Type Flexibility**: The editor supports any Python type through type hints for automatic pin generation. Pin colors are determined by the type annotation, providing visual type identification. Common types include:
269+
269270
* `int` - Integer values (blue pins)
270271
* `str` - String values (green pins)
271272
* `float` - Floating point numbers (orange pins)

0 commit comments

Comments
 (0)