VysualPy π¨

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
- π§© Three Specialized Graph Workspaces
- Blueprint Graph - Visual code structure & relationships
- Execution Graph - Runtime flow visualization with path highlighting
- Build Graph - Live code editing where typing creates executable nodes
- β‘ Live Code Synchronization
- Type directly in graph space β instant code generation
- Automatic function stub creation for undefined calls
- Real-time bidirectional sync between visual nodes and source code
- π― Visual Code Navigation
- Connection dimming for clear execution path tracing
- Rubber band selection and drag-to-organize node layouts
- Comment boxes for grouping and documentation
- π§ Professional IDE Features
- Multi-tab code editor with syntax highlighting
- Integrated file browser and project management
- Terminal integration with proper stdout handling
- Customizable themes and preferences
πΈ Screenshots
Execution Graph - Runtime Flow Visualization

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
- Python 3.12+ (tested with Python 3.13.5)
- PyQt5 5.15.11+
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
- Create a New File -
Ctrl+N or File β New
- Open a Graph - View menu β Blueprint Graph, Execution Graph, or Build Graph
- Start Coding - In Build Graph, type directly in empty space to create nodes
- 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
- π¨ Node System: Unified
BaseNode with composable mixins for rendering, interaction, and editing
- π Connection Manager: Intelligent connection validation and visual feedback
- π³ AST Integration: Real-time Python code analysis and structure parsing
- π Live Synchronization: Bidirectional sync between visual graphs and source code
- π± Scene Architecture: Specialized graph scenes with shared base functionality
For detailed architecture information, see ARCHITECTURE.md.
π Usage Guide
Blueprint Graph π΅
Purpose: Visualize code structure and function relationships
- Open any Python file in the editor
- Go to View β Blueprint Graph
- See your classes and functions as connected nodes
- Use comment boxes to group related functionality
- Save workspace as
.vpb files for later
Execution Graph π
Purpose: Trace runtime execution flow
- Open View β Execution Graph
- Watch execution paths light up as connected nodes
- Conditional branches (if statements) appear in orange
- Click any node to dim unrelated paths for clarity
- Save workspace as
.veg files
Build Graph π’
Purpose: Live visual code editing
- Open View β Build Graph
- Type directly in empty graph space
- Code nodes are created automatically
- Call undefined functions β automatic stub creation
- 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
- Edit β Preferences β Editor Colors
- Customize colors for keywords, strings, comments, etc.
- 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
- Blueprint workspaces:
.vpb files
- Execution workspaces:
.veg files
- All workspace data uses JSON format with validation
π οΈ 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
- Code Style: Follow PEP 8, use Black formatter
- Architecture: Maintain separation of concerns (rendering/interaction/business logic)
- Compatibility: Use legacy compatibility layer during refactoring
- Testing: Add unit tests for new features
- Documentation: Update relevant .md files
π§ Troubleshooting
Common Issues
Font Scaling Errors: QFont::setPointSize: Point size <= 0
- Solution: All font sizes now have bounds checking (minimum 8pt)
- Fixed in:
vpy_graph.py and vpy_editor.py
Terminal Output Issues: wrapped C/C++ object has been deleted
- Solution: Proper stdout restoration implemented in Terminal class
- Fixed in:
vpy_layout.py Terminal class
Custom Window Dragging: TypeError with None dragPos
- Solution: Added null checks in mouse event handlers
- Fixed in:
vpy_winmix.py CustomWindowMixin
Build Graph Editor Access: βIDE object has no attribute βtextEditββ
- Solution: Updated to use tab-based
current_editor() method
- Fixed in:
vpy_blueprints.py BuildGraph classes
- Large files use viewport optimization for smooth scrolling
- Graph rendering employs full viewport updates for connection drawing
- AST parsing performance scales with code complexity
π Whatβs New
Recent Updates (2025)
π February 2025
- β
Line numbers with proper scaling
- β
Dual File/Project Browser tabs
- β
Go to Line feature (Ctrl+G)
π January 2025
- β
Fixed scroll bar issues for large files
- β
Color-coded execution branches (orange for conditionals)
- β
Improved execution path tracing with exclusion lists
- β
Code Build Graph workspace implementation
- β
Comment box resize handles and constant font sizing
- β
Rubber band selection for all graph types
- β
ALT + Left-Click panning for graphs
π August 2025 - Architecture Overhaul
- β
Multi-tab editor system fully implemented
- β
Syntax highlighting color persistence
- β
Enhanced connection system with validation
- β
Unified node architecture with mixins
- β
Backward compatibility layer
- β
BuildGraph function call detection
See ChangeLog.md for complete history.
πΊοΈ Roadmap
Short Term
Long Term
π€ Contributing
We welcome contributions! Please see our development guidelines above.
How to Contribute
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Make your changes following our code style
- Add tests if applicable
- Commit with clear messages (
git commit -m 'Add amazing feature')
- Push to branch (
git push origin feature/amazing-feature)
- Open a Pull Request
Bug Reports
Please report bugs to: kvthweatt@gmail.com
Include:
- Steps to reproduce
- Expected vs actual behavior
- Python/PyQt5 versions
- Screenshots if applicable
π License
This project is licensed under the MIT License - see the LICENSE file for details.
Attribution
- Built with Qt5
- Inspired by Unreal Engine Blueprints
- Node graph concepts from disassembler execution flow visualization
π― 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 β
- Multi-tab code editor with syntax highlighting
- All three graph workspaces (Blueprint, Execution, Build)
- Live code synchronization in Build Graph
- Visual node connections and path highlighting
- Workspace save/load functionality
- Preferences and configuration system
In Development π§
- Enhanced error handling
- Performance optimizations for large codebases
- Comprehensive test suite
- User documentation and tutorials
**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)