How leon-thomm/ryven works
Ryven is a Python flow-based visual scripting editor and framework. Users configure a launch, load node packages, assemble nodes and connections in a Qt flow editor, and run the resulting graph; projects can also run headlessly through the console. The repository includes a reusable ryvencore Qt presentation layer, package/node APIs, example nodes, and node source inspection/editing tools. The README documents capabilities beyond the sampled code; edges for those branches are included only where documented, while unsampled implementation details are left out.
Main entry points: StartupDialog.py Startup Dialog · main_window.py Editor Window · SessionGUI.py Session GUI · FlowView.py Flow Canvas
Components 18
Launch and Projects
- Startup Dialog
ryven-editor/ryven/gui/startup_dialog/StartupDialog.py - Configuration
ryven-editor/ryven/main/config.py - Project Utilities
ryven-editor/ryven/main/utils.py - Editor Window
ryven-editor/ryven/gui/main_window.py
Nodes and Packages
- Package Loader
ryven-editor/ryven/main/packages/nodes_package.py - Node API
ryven-editor/ryven/main/packages/node_env.py - Example Nodes
ryven-editor/ryven/example_nodes/linalg/matrices.py
Qt Flow Editor
- Session GUI
ryvencore-qt/ryvencore_qt/src/SessionGUI.py - Design and Themes
ryvencore-qt/ryvencore_qt/src/Design.py - Flow Canvas
ryvencore-qt/ryvencore_qt/src/flows/FlowView.py - Node Items
ryvencore-qt/ryvencore_qt/src/flows/nodes/NodeItem.py - Node Ports
ryvencore-qt/ryvencore_qt/src/flows/nodes/PortItem.py - Connections
ryvencore-qt/ryvencore_qt/src/flows/connections/ConnectionItem.py
Execution and Tools
- ryvencore Session
- Headless Console
ryven-editor/ryven/main/RyvenConsole.py - Node Code Editor
ryven-editor/ryven/gui/code_editor/CodePreviewWidget.py - Source Code Storage
ryven-editor/ryven/gui/code_editor/codes_storage.py
Other components
- User
Connections 22
- User → Startup Dialog: configures launch
- Startup Dialog → Configuration: reads settings
ryven-editor/ryven/gui/startup_dialog/StartupDialog.py - Startup Dialog → Package Loader: selects packages
ryven-editor/ryven/gui/startup_dialog/StartupDialog.py - Startup Dialog → Editor Window: launches editor
- Editor Window → ryvencore Session: loads project
ryven-editor/ryven/gui/main_window.py - Editor Window → Session GUI: hosts session UI
ryven-editor/ryven/gui/main_window.py - Editor Window → Project Utilities: loads project data
ryven-editor/ryven/gui/main_window.py - Package Loader → Node API: loads node definitions
ryven-editor/ryven/main/packages/nodes_package.py - Example Nodes → Node API: uses node API
ryven-editor/ryven/example_nodes/linalg/matrices.py - Session GUI → ryvencore Session: creates session
ryvencore-qt/ryvencore_qt/src/SessionGUI.py - Session GUI → Flow Canvas: creates flow views
ryvencore-qt/ryvencore_qt/src/SessionGUI.py - Session GUI → Design and Themes: initializes design
ryvencore-qt/ryvencore_qt/src/SessionGUI.py - Flow Canvas → Node Items: creates node items
ryvencore-qt/ryvencore_qt/src/flows/FlowView.py - Flow Canvas → Connections: creates connections
ryvencore-qt/ryvencore_qt/src/flows/FlowView.py - Node Items → Node Ports: builds ports
ryvencore-qt/ryvencore_qt/src/flows/nodes/NodeItem.py - Connections → Node Ports: reads port items
ryvencore-qt/ryvencore_qt/src/flows/connections/ConnectionItem.py - User → Flow Canvas: builds graph
- User → Headless Console: runs headlessly
- Headless Console → ryvencore Session: loads graph
- User → Node Code Editor: edits node code
- Node Code Editor → Source Code Storage: uses source cache
ryven-editor/ryven/gui/code_editor/CodePreviewWidget.py - Source Code Storage → Configuration: reads editor settings
ryven-editor/ryven/gui/code_editor/codes_storage.py