nodes/docs/ARCHITECTURE.md
Max Richter f4853821d4
All checks were successful
Deploy to GitHub Pages / build_site (push) Successful in 2m9s
feat: add some documentation
2024-05-05 13:47:08 +02:00

1.1 KiB

Nodarium Architecture

The basic idea of nodarium is to use the advantages of WebAssembly to create a performant, secure and extandable visual programming language.

The visual programming language consists of so called Nodes which are stored and distributed as single .wasm files. Each node receives some arguments and generates some output.

What is a node?

type Node = {
  id: string,
  outputs: string[],
  inputs: {
    [key:string]: NodeInput
  }
}

How are the arguments defined?

To define which arguments a nodes accepts we use JSON. This json is embeded into the .wasm file of our node. An example definition.json file could look like this:

{
  "id": "my-name/my-namespace/zylinder-node",
  "outputs": [
    "geometry"
  ],
  "inputs": {
    "height": {
      "type": "float",
      "value": 2
    },
    "radius": {
      "type": "float",
      "value": 0.5
    }
  }
}

For a more in-depth explanation have a look at ./NODE_DEFINITION.md.

How are the nodes executed?

How are the nodes stored?