PyFlow - visual scripting framework for python!¶
About this project¶
PyFlow is a general purpose runtime extendable python qt visual scripting framework. Was inspired by such softwares like Unreal Blueprints, Softimege XSI ICE, Fabric Engine.
Features¶
- Json serializable
- Easy node creation from annotated functions
- Categories tree
- Photoshop-like history
- Properties view
- Runtime nodes creation
- Variables
Changelog¶
PyFlow releases use a semantic versioning policy.
v2.0.1 (September 21, 2019)
-----------------------------------------------------
* LOD settings added to preferences
* Themes improvements
* New wire styles
* Api refactoring
* App can run without packages
* Sliders improvements and refactoring
* Smart create input widgets for int and floats in function library, if range is specified
Bug fixes
v2.0.0 (June 11, 2019)
-----------------------------------------------------
* Subgraphs added
* Node anatomy changed
* Added data exporters/importers hooks
* Everything is modular
* Editor tool class added
* Customizable themes
* Enhanced wire connection
* Wires are selectable
* All nodes can be collapsed
* Node's menu actions can be showed to the right of node name as buttons
Editor anatomy¶
In the middle of the app there is a Canvas
. This is where the fun happens.

Everything in editor except of canvas is a tool
. There are two types of tools
Dock tool¶
Dock tools
are floating widgets.

All registered dock tools can be found below corresponding section on menu bar.

Adding node to canvas¶
To add node to a canvas, you need either to spawn NodeBox tool or right click on canvas. Node box will appear. Enter node type to search field and drag it to the canvas.

Connecting pins¶
To connect pins, left mouse click source pin and drag to destination. Dashed wire will appear. Valid connections color coded as green, invalid as red. Wire is snapped to destination pin if connectoin is possible.

Wires can be reconnected. To reconnect a single wire, click on it near the pin and drag on top of new destination. To reconnect multiple wires, Ctrl+LMB on pin, then drag on top of new destination.

Preferences window¶
Some important settings can be tweaked in editor preferences

General¶
- TempFilesDir. Folder on your file system where temporary files will be placed this folder will be removed on editor shutdown
- Additional package locations. This is comma separated string with directories where to search packages. For example if you are running the editor inside studio, you can load packages from network location
- External text editor. Text editor used for text editing. For now we use it only with python node
- History depth. Defines how many undo steps will be available.
Input¶

Left mouse click to start capturing input. To finish capturing and assign key/button, press Enter.