VysualPy

VysualPy 🎨

Python PyQt5 License Status

A revolutionary node graph-based IDE for Python development
Transform your coding experience with visual building blocks inspired by Unreal Engine blueprints and disassembler execution flow graphs.

✨ What Makes VysualPy Special

VysualPy reimagines software development by making coding more like assembling building blocks rather than crafting the blocks themselves. Whether you’re refactoring complex applications or rapidly prototyping new ideas, VysualPy accelerates your workflow through visual programming paradigms.

πŸš€ Core Features

πŸ“Έ Screenshots

Execution Graph - Runtime Flow Visualization

Execution Graph Preview

Visualize your program’s execution flow with connected nodes and path highlighting

Blueprint Graph - Code Structure Overview

Visual representation of classes, functions, and their relationships

Build Graph - Live Visual Coding

Type directly in the graph to create nodes and generate code instantly


πŸš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/yourusername/VysualPy.git
cd VysualPy

# Install dependencies
pip install PyQt5

# Launch the IDE
python main.py

First Steps

  1. Create a New File - Ctrl+N or File β†’ New
  2. Open a Graph - View menu β†’ Blueprint Graph, Execution Graph, or Build Graph
  3. Start Coding - In Build Graph, type directly in empty space to create nodes
  4. Explore Connections - Watch as function calls automatically connect to definitions

πŸ—οΈ Architecture Overview

VysualPy is built on a modern, extensible architecture designed for performance and maintainability:

graph TD
    A[Main IDE] --> B[Multi-Tab Editor]
    A --> C[Graph System]
    A --> D[File Management]
    
    C --> E[Blueprint Graph]
    C --> F[Execution Graph] 
    C --> G[Build Graph]
    
    E --> H[Node System]
    F --> H
    G --> H
    
    H --> I[BaseNode + Mixins]
    H --> J[Connection Manager]
    H --> K[AST Integration]

Key Components

For detailed architecture information, see ARCHITECTURE.md.


πŸ“š Usage Guide

Blueprint Graph πŸ”΅

Purpose: Visualize code structure and function relationships

  1. Open any Python file in the editor
  2. Go to View β†’ Blueprint Graph
  3. See your classes and functions as connected nodes
  4. Use comment boxes to group related functionality
  5. Save workspace as .vpb files for later

Execution Graph 🟠

Purpose: Trace runtime execution flow

  1. Open View β†’ Execution Graph
  2. Watch execution paths light up as connected nodes
  3. Conditional branches (if statements) appear in orange
  4. Click any node to dim unrelated paths for clarity
  5. Save workspace as .veg files

Build Graph 🟒

Purpose: Live visual code editing

  1. Open View β†’ Build Graph
  2. Type directly in empty graph space
  3. Code nodes are created automatically
  4. Call undefined functions β†’ automatic stub creation
  5. Changes sync instantly with your source file

Example Workflow:

# Type this in Build Graph empty space:
def main():
    test()  # Function doesn't exist yet
    return

β†’ VysualPy automatically creates a test() function node and links it to main()


βš™οΈ Advanced Configuration

Syntax Highlighting Customization

  1. Edit β†’ Preferences β†’ Editor Colors
  2. Customize colors for keywords, strings, comments, etc.
  3. Changes apply immediately across all tabs

Language Configuration

Language definitions are stored in config/python.json:

{
    "lang": {"name": "Python", "extensions": ["py", "pyc", "pyw"]},
    "keywords": ["def", "class", "if", "for", ...],
    "colors": {"keyword": "#FF6B6B", "string": "#98C379", ...}
}

Workspace Persistence


πŸ› οΈ Development

Project Structure

VysualPy/
β”œβ”€β”€ main.py                 # Application entry point
β”œβ”€β”€ vpy_editor.py          # Main IDE with multi-tab editor
β”œβ”€β”€ vpy_blueprints.py      # Graph workspace implementations  
β”œβ”€β”€ vpy_graph.py           # Legacy node classes (being refactored)
β”œβ”€β”€ vpy_node_base.py       # New unified node system
β”œβ”€β”€ vpy_node_types.py      # Concrete node implementations
β”œβ”€β”€ vpy_connection_core.py # Enhanced connection system
β”œβ”€β”€ vpy_legacy_compat.py   # Backward compatibility layer
β”œβ”€β”€ config/                # Language configurations
└── ARCHITECTURE.md        # Detailed technical docs

Key Development Commands

# Run the IDE
python main.py

# Analyze project structure  
python analyze_project.py --output PROJECT_STRUCTURE.md --json project_structure.json

# Run from IDE terminal
# Use "Run Program" menu or Ctrl+R on active file

Contributing Guidelines

  1. Code Style: Follow PEP 8, use Black formatter
  2. Architecture: Maintain separation of concerns (rendering/interaction/business logic)
  3. Compatibility: Use legacy compatibility layer during refactoring
  4. Testing: Add unit tests for new features
  5. Documentation: Update relevant .md files

πŸ”§ Troubleshooting

Common Issues

Font Scaling Errors: QFont::setPointSize: Point size <= 0

Terminal Output Issues: wrapped C/C++ object has been deleted

Custom Window Dragging: TypeError with None dragPos

Build Graph Editor Access: β€œIDE object has no attribute β€˜textEdit’”

Performance Tips


πŸ“ˆ What’s New

Recent Updates (2025)

πŸŽ‰ February 2025

πŸŽ‰ January 2025

πŸŽ‰ August 2025 - Architecture Overhaul

See ChangeLog.md for complete history.


πŸ—ΊοΈ Roadmap

Short Term

Long Term


🀝 Contributing

We welcome contributions! Please see our development guidelines above.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes following our code style
  4. Add tests if applicable
  5. Commit with clear messages (git commit -m 'Add amazing feature')
  6. Push to branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Bug Reports

Please report bugs to: kvthweatt@gmail.com

Include:


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Attribution


🎯 Status

Current Status: Active Development
Python Support: 3.12+ (tested with 3.13.5)
Platform Support: Windows, Linux, macOS
Stability: Beta - Core features stable, advanced features in development

Working Features βœ…

In Development 🚧


**VysualPy** - *Making code visual, making development faster* [⭐ Star this project](https://github.com/yourusername/VysualPy) | [πŸ› Report Bug](mailto:kvthweatt@gmail.com) | [πŸ’‘ Request Feature](https://github.com/yourusername/VysualPy/issues)