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.
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.
-
π§© 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
Visualize your program's execution flow with connected nodes and path highlighting
Visual representation of classes, functions, and their relationships
Type directly in the graph to create nodes and generate code instantly
- Python 3.12+ (tested with Python 3.13.5)
- PyQt5 5.15.11+
# Clone the repository
git clone https://github.com/yourusername/VysualPy.git
cd VysualPy
# Install dependencies
pip install PyQt5
# Launch the IDE
python main.py- Create a New File -
Ctrl+Nor 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
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]
- π¨ Node System: Unified
BaseNodewith 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.
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
.vpbfiles for later
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
.vegfiles
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()
- Edit β Preferences β Editor Colors
- Customize colors for keywords, strings, comments, etc.
- Changes apply immediately across all tabs
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", ...}
}- Blueprint workspaces:
.vpbfiles - Execution workspaces:
.vegfiles - All workspace data uses JSON format with validation
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
# 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- 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
Font Scaling Errors: QFont::setPointSize: Point size <= 0
- Solution: All font sizes now have bounds checking (minimum 8pt)
- Fixed in:
vpy_graph.pyandvpy_editor.py
Terminal Output Issues: wrapped C/C++ object has been deleted
- Solution: Proper stdout restoration implemented in Terminal class
- Fixed in:
vpy_layout.pyTerminal class
Custom Window Dragging: TypeError with None dragPos
- Solution: Added null checks in mouse event handlers
- Fixed in:
vpy_winmix.pyCustomWindowMixin
Build Graph Editor Access: "IDE object has no attribute 'textEdit'"
- Solution: Updated to use tab-based
current_editor()method - Fixed in:
vpy_blueprints.pyBuildGraph 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
π 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.
- Breakpoint support for debugging
- Project management system
- Stack view with direct modification
- Granular color coding for blueprint graphs
- Plugin architecture for extensibility
- Multi-language support (C, C++, C#)
- Snap-to-grid enhancements
- International translations
We welcome contributions! Please see our development guidelines above.
- 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
Please report bugs to: kvthweatt@gmail.com
Include:
- Steps to reproduce
- Expected vs actual behavior
- Python/PyQt5 versions
- Screenshots if applicable
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Qt5
- Inspired by Unreal Engine Blueprints
- Node graph concepts from disassembler execution flow visualization
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
- 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
- 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 | π Report Bug | π‘ Request Feature
