1.7 KiB
Notes
We need three major components to work together. I would love it if the node-store and the runtime are super loosely coupled so that they could be replaced by at will. So for example i could use the “server-runtime” that executes the node-graph on the server, or the “local” runtime that executes the node-graph locally.
NODE_INTERFACE This is where the user interacts with the node graph. The frontend loads a node-system. Then fetches all the relevant nodes from the node-store.
NODE_REGISTRY The node-store stores all the nodes. For each node it stores a definition and the wasm blob that executes that node.
Projects/bachelor/RUNTIME_EXECUTOR The runtime gets a node-graph and returns the result after executing the node-graph. It fetches the relevant nodes from the node-store.
How to store nodes in the registry?
The nodes need:
ID: string/string/string
I could imagine something like jimfx/nature/branch
INPUTS:
We need a way to define how the UI should render the input ui. Could be something like:
{
"inputs": [
“a”: {
“type”: “select”,
“options”: [
“curly”,
“straight”
]
},
"b": {
"type":"float",
"value": 0.5,
"max": 10.0,
"min": 0
},
"res":{
"type": "integer",
"value": 5,
"setting":"leaves/resolution"
}
]
}
OUTPUTS
The nodes output, could look something like this:
{
"outputs": ["stem","float"]
}
How to store serialized nodes
{
"id":"jimfx/nature/branch",
"inputs": [0,8.4],
"position": [0.6, 10]
"meta": {
"title":"Branch Node"
}
}