ProcedurX comes with 3 editor windows: The ProcedurX editor, which can be found in Procedur_X.cs, is the main one, is the main one that allows to edit operator graphs. The second one is the preview window, which can be found in Procedur_X_Preview.cs, is the one to preview the selected graph node and the target procedural asset. The last one is just a small popup with the credits.
At its core, ProcedurX is built arround operation graphs. Each graph node is its own ScriptableObject, in order to integrate as much as possible with Unity’s built in features, like the inspector or project windows.
Procedural Assets are root nodes of the graphs. They are responsible to generate assets such as Textures and Materials by traversing the operators. The ProceduralAsset<AssetType> abstract class is generic by the output asset type.
Asset Operators make up the rest of the graphs under the root nodes. The AssetOperator<AssetType> abstract class is generic by the ouput asset type. They also have a collection GraphNodeInputs. Each of them is design to gather values from its inputs then executing its specific operation to produce its output.
Graph Node Input
A GraphNodeInput is a serializeable class defined on GraphNodes, which can either provide a constant value to an operation, or a reference to another GraphNode.
ImageSpaceEffect & Shaders
Since most operators are implemented to run off the GPU, the actual operation is implemented as a shader. Each shader has its matching ImageSpaceEffect responsible to configure the parameters required by it.
If you create your own Operators, this is the class that defines which of them can be created under which context menu hierarchy.