Features
Custom nodes from functions
Know how to define a function? Then you already know how to define a node! Just provide a function and the app turns it into a node for you. You can use a builtin function, one from a third-party module and even classes work as well. In fact, as long as it is a callable object, it can be turned into a node.
Node layout edition
Once you have your nodes ready, you can combine them into layouts. Node editing in Nodezator provides users with basic operations like creating, moving, deleting and duplicating nodes.
Many widgets to choose from
Lots of widgets to make your nodes really powerful and versatile. Widgets to edit strings, numbers (integers and floats), option menus, checkbuttons, image previews, font previews, hold and edit text/code, hold and edit colors, etc.
Custom data visualization
The pygame-ce library used for Nodezator's GUI allows developers to easily access the screen and control the main loop, meaning custom viewer nodes can be easily developed, allowing total control of how your data is displayed.
Export node layouts as Python code
Worried that including node editing in your pipeline will make your work too dependent on the node editor? No need to worry, because your node layouts can be 100% exported back to pure Python code.
Export node layouts as image
The node layouts can also be exported into other useful formats like .svg, .html (svg tag embedded in .html document) or .png.
Useful nodes out of the box
In addition to allowing you to define your own nodes, Nodezator also includes many nodes out of the box. Many builtin functions/classes and standard library functions are already present as nodes. This means you already have access from the beginning to useful operations like creation of dictionaries, lists, itertools functions, etc. There are also special nodes that perform specific actions like loading and saving of text files, json files, Python literals, etc.
Data nodes
Nodezator also provides data nodes, which can hold any widget you want and then have that value passed to the argument(s) of one or more nodes, allowing you to edit the value solely on the data node's widget. In addition to that, you can pick whichever widget you want among the existing ones, making you able to provide many different kinds of data.
Node layout execution
Nodezator gives you control over graph execution by providing additional options. Among the possible things to do is to track the time of execution of the whole graph as well as that of individual nodes and to execute the graph in the context of a custom standard outpupt stream, so that the app can catch and display output on the GUI that otherwise you only be printed in the command line.
Operator nodes
Operators in Python go well beyond their role in mathematical operations, since they can be overloaded. This gives them new meaning, making them more versatile. Moreover, there are also other kinds of operators, like logical operators and others used for comparison. Because of that, Nodezator comes with special operator nodes out of the box.
Redirect nodes
Nodezator also provides redirect nodes to help you simplify/organize your node layouts.
Node source view
Taking a look at the source code of a node is handy to inspect how exactly some operation is carried. Nodezator allows you to quickly visualize the source of a node.
User preferences and internationalization
Nodezator provides a user preferences form which allows you to set your preferences. Among the preferences, you can also choose the language you speak. Nodezator comes with both English and Brazilian Portuguese, but at the moment Brazilian Portuguese support is limited. We welcome contributions from people willing to add their own languages as well.
Text/code editor
Nodezator also comes with a builtin text/code editor. It can be used to write text, code, Python literals, json data, etc., just any kind of text. It also provides line numbering and Python syntax highlighting. Rather than a feature per se, though, the text editor is more of a convenience provided for you in the Nodezator app, since it doesn't replace a full-fledged text/code editor. It is great for simple/quick edits though.