{
  "Node_Iterate_Filter":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"Filter array using condition.",
    "name":"Filter Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Statistic":{
    "inputs":[
      {
        "display_data":[
          "Sum",
          "Mean",
          "Median",
          "Max",
          "Min"
        ],
        "tooltip":"",
        "name":"Type"
      }
    ],
    "tooltip":"",
    "name":"Statistic",
    "outputs":[
      {
        "tooltip":"",
        "name":"Statistic"
      }
    ]
  },
  "Node_Erode":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Preserve border"
      },
      {
        "tooltip":"",
        "name":"Use alpha"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Remove pixel that are close to the border of the image.",
    "name":"Erode",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Strand_Update":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "tooltip":"",
        "name":"Step"
      }
    ],
    "tooltip":"",
    "name":"Strand Update",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Image":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Padding"
      }
    ],
    "tooltip":"Load a single image from your computer.",
    "name":"Image",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Grid_Hex":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Gap"
      },
      {
        "tooltip":"",
        "name":"Tile color"
      },
      {
        "tooltip":"",
        "name":"Gap color"
      },
      {
        "display_data":[
          "Colored tile",
          "Height map",
          "Texture grid",
          "Texture sample"
        ],
        "tooltip":"",
        "name":"Render type"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Texture"
      }
    ],
    "tooltip":"Generate hexagonal grid pattern.",
    "name":"Hexagonal Grid",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Shape":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "display_data":[
          "Rectangle",
          "Ellipse",
          "Regular polygon",
          "Star",
          "Arc",
          "Teardrop",
          "Cross",
          "Leaf"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Sides"
      },
      {
        "tooltip":"",
        "name":"Inner radius"
      },
      {
        "tooltip":"",
        "name":"Anti alising"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Angle range"
      },
      {
        "tooltip":"",
        "name":"Corner radius"
      },
      {
        "tooltip":"",
        "name":"Shape color"
      },
      {
        "tooltip":"",
        "name":"Background color"
      },
      {
        "tooltip":"",
        "name":"Height"
      },
      {
        "tooltip":"",
        "name":"Start radius"
      },
      {
        "tooltip":"",
        "name":"Shape path"
      }
    ],
    "tooltip":"Draw simple shapes using signed distance field.",
    "name":"Shape",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Plot_Linear":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Data"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Sample frequency"
      },
      {
        "tooltip":"",
        "name":"Origin"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Base Color"
      },
      {
        "tooltip":"",
        "name":"Graph Thickness"
      },
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Background color"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "display_data":[
          "Bar chart",
          "Graph"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Value Offset"
      },
      {
        "tooltip":"",
        "name":"Color Over Sample"
      },
      {
        "display_data":[
          "Range",
          "Window"
        ],
        "tooltip":"",
        "name":"Trim mode"
      },
      {
        "tooltip":"",
        "name":"Window Size"
      },
      {
        "tooltip":"",
        "name":"Window Offset"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      },
      {
        "tooltip":"",
        "name":"Bar Width"
      },
      {
        "tooltip":"",
        "name":"Rounded Bar"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Flip Value"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "tooltip":"",
        "name":"Smooth"
      },
      {
        "tooltip":"",
        "name":"Color Over Value"
      },
      {
        "tooltip":"",
        "name":"Value range"
      },
      {
        "tooltip":"",
        "name":"Absolute"
      }
    ],
    "tooltip":"Plot graph or bar chart from array of number.",
    "name":"Bar \/ Graph",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Strand_Length_Adjust":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "display_data":[
          "Point",
          "Band"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "display_data":[
          "Increase",
          "Decrease"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Strength"
      }
    ],
    "tooltip":"",
    "name":"Strand Length Adjust",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Json_File_Write":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Struct"
      }
    ],
    "tooltip":"Save data to .json file.",
    "name":"JSON File Out",
    "outputs":[
    ]
  },
  "Node_2D_light":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "Point",
          "Line",
          "Line asymmetric",
          "Spot"
        ],
        "tooltip":"",
        "name":"Light shape"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Intensity"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Start"
      },
      {
        "tooltip":"",
        "name":"Finish"
      },
      {
        "tooltip":"",
        "name":"Sweep"
      },
      {
        "tooltip":"",
        "name":"Sweep end"
      },
      {
        "tooltip":"",
        "name":"Banding"
      },
      {
        "display_data":[
          "Quadratic",
          "Invert quadratic",
          "Linear"
        ],
        "tooltip":"Control how light fade out over distance.",
        "name":"Attenuation"
      },
      {
        "tooltip":"",
        "name":"Radial banding"
      },
      {
        "tooltip":"",
        "name":"Radial start"
      },
      {
        "tooltip":"",
        "name":"Radial band ratio"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply different shaped light on the image.",
    "name":"2D Light",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Light only"
      }
    ]
  },
  "Node_Rigid_Override":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Object"
      },
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Scales"
      },
      {
        "tooltip":"",
        "name":"Rotations"
      },
      {
        "tooltip":"",
        "name":"Blends"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Velocity"
      }
    ],
    "tooltip":"",
    "name":"Rigidbody Override",
    "outputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ]
  },
  "Node_Iterate_Each":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"Create group that iterate to each member in an array.",
    "name":"Loop Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Mesh_Warp":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Amount of grid subdivision. Higher number means more grid, detail.",
        "name":"Sample"
      },
      {
        "tooltip":"",
        "name":"Spring Force"
      },
      {
        "tooltip":"",
        "name":"Mesh"
      },
      {
        "tooltip":"Include diagonal link to prevent drastic grid deformation.",
        "name":"Diagonal Link"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"Link length preservation, setting it to 1 will prevent any stretching, contraction.",
        "name":"Link Strength"
      },
      {
        "tooltip":"",
        "name":"Full Mesh"
      },
      {
        "display_data":[
          "Grid",
          "Custom"
        ],
        "tooltip":"",
        "name":"Mesh Type"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"Wrap image by converting it to mesh, and using control points.",
    "name":"Mesh Warp",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Mesh data"
      }
    ]
  },
  "Node_RGB_Channel":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface In"
      },
      {
        "display_data":[
          "Channel value",
          "Greyscale"
        ],
        "tooltip":"",
        "name":"Output Type"
      },
      {
        "tooltip":"",
        "name":"Keep Alpha"
      }
    ],
    "tooltip":"Extract RGBA channel on an image, each channel becomes its own image.",
    "name":"RGBA Extract",
    "outputs":[
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      }
    ]
  },
  "Node_Path_Plot":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Output scale"
      },
      {
        "display_data":[
          "Cartesian",
          "Polar"
        ],
        "tooltip":"",
        "name":"Coordinate"
      },
      {
        "display_data":[
          "x function",
          "y function",
          "parametric"
        ],
        "tooltip":"",
        "name":"Equation type"
      },
      {
        "tooltip":"",
        "name":"0 function"
      },
      {
        "tooltip":"",
        "name":"1 function"
      },
      {
        "tooltip":"",
        "name":"Origin"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Input scale"
      },
      {
        "tooltip":"",
        "name":"Input shift"
      }
    ],
    "tooltip":"",
    "name":"Path plot",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Flood_Fill":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      },
      {
        "tooltip":"",
        "name":"Diagonal"
      }
    ],
    "tooltip":"Filled connected pixel given position and color.",
    "name":"Flood Fill",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Normal_Light":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Normal map"
      },
      {
        "tooltip":"",
        "name":"Normal intensity"
      },
      {
        "tooltip":"",
        "name":"Ambient"
      },
      {
        "tooltip":"",
        "name":"Light position"
      },
      {
        "tooltip":"",
        "name":"Light range"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "display_data":[
          "Point",
          "Sun"
        ],
        "tooltip":"",
        "name":"Light type"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Light up the image using normal mapping.",
    "name":"Normal Light",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Noise_Hex":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Texture sample"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"",
        "name":"Oversample mode"
      }
    ],
    "tooltip":"",
    "name":"Hexagonal Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Blur_Zoom":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "display_data":[
          "Start",
          "Middle",
          "End"
        ],
        "tooltip":"",
        "name":"Zoom mode"
      },
      {
        "tooltip":"",
        "name":"Blur mask"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur image by zooming in\/out from a mid point.",
    "name":"Zoom Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_ASE_File_Read":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Generate layers"
      },
      {
        "tooltip":"",
        "name":"Current tag"
      },
      {
        "tooltip":"",
        "name":"Use cel dimension"
      }
    ],
    "tooltip":"Load Aseprite file with support for layers, tags.",
    "name":"ASE File In",
    "outputs":[
      {
        "tooltip":"",
        "name":"Output"
      },
      {
        "tooltip":"",
        "name":"Content"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Palette"
      }
    ]
  },
  "Node_Group_Thumbnail":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Input"
      }
    ],
    "tooltip":"",
    "name":"Thumbnail",
    "outputs":[
    ]
  },
  "Node_Polar":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Convert image to polar coordinate.",
    "name":"Polar",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_VFX_Variable":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ],
    "tooltip":"",
    "name":"VFX Variable",
    "outputs":[
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Scales"
      },
      {
        "tooltip":"",
        "name":"Rotations"
      },
      {
        "tooltip":"",
        "name":"Blending"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Life"
      },
      {
        "tooltip":"",
        "name":"Max life"
      },
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Velocity"
      }
    ]
  },
  "Node_Strand_Group":{
    "inputs":[
    ],
    "tooltip":"Create group for hair simulation.",
    "name":"StrandSim",
    "outputs":[
    ]
  },
  "Node_Pixel_Cloud":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Strength map"
      },
      {
        "tooltip":"",
        "name":"Color over lifetime"
      },
      {
        "tooltip":"",
        "name":"Distance"
      },
      {
        "tooltip":"",
        "name":"Alpha over lifetime"
      },
      {
        "tooltip":"",
        "name":"Random blending"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Displace each pixel of the image randomly.",
    "name":"Pixel Cloud",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Gradient":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "display_data":[
          "Linear",
          "Circular",
          "Radial"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Scale"
      }
    ],
    "tooltip":"Create image from gradient.",
    "name":"Draw Gradient",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Posterize":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "tooltip":"",
        "name":"Use palette"
      },
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Gamma"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Posterize alpha"
      }
    ],
    "tooltip":"Reduce and remap color to match a palette.",
    "name":"Posterize",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_String_Get_Char":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Amount"
      }
    ],
    "tooltip":"",
    "name":"Get Character",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Area":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Postion"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "display_data":[
          "Rectangle",
          "Elipse"
        ],
        "tooltip":"",
        "name":"Shape"
      }
    ],
    "tooltip":"",
    "name":"Area",
    "outputs":[
      {
        "tooltip":"",
        "name":"Area"
      }
    ]
  },
  "Node_Strand_Gravity":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "tooltip":"",
        "name":"Gravity"
      },
      {
        "tooltip":"",
        "name":"Direction"
      }
    ],
    "tooltip":"",
    "name":"Strand Gravity",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Boolean":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Hide Background"
      },
      {
        "display_data":[
          "Top",
          "Bottom"
        ],
        "tooltip":"",
        "name":"Name location"
      }
    ],
    "tooltip":"",
    "name":"Boolean",
    "outputs":[
      {
        "tooltip":"",
        "name":"Boolean"
      }
    ]
  },
  "Node_Lua_Surface":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Function name"
      },
      {
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":14.0,
        "name":"Lua code"
      },
      {
        "tooltip":"",
        "name":"Execution thread"
      },
      {
        "tooltip":"",
        "name":"Execute on frame"
      }
    ],
    "tooltip":"",
    "name":"Lua Surface",
    "outputs":[
      {
        "tooltip":"",
        "name":"Execution thread"
      },
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Transform":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Relative anchor"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "display_data":[
          "Normal",
          "Tile",
          "Wrap"
        ],
        "tooltip":"",
        "name":"Render Mode"
      },
      {
        "tooltip":"Make the surface rotates to follow its movement.",
        "name":"Rotate by velocity"
      },
      {
        "display_data":[
          "Same as input",
          "Constant",
          "Relative to input",
          "Scale"
        ],
        "tooltip":"",
        "name":"Output dimension type"
      },
      {
        "tooltip":"Round position to the closest integer value to avoid jittering.",
        "name":"Round position"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Move, rotate, and scale image.",
    "name":"Transform",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Export":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Paths"
      },
      {
        "tooltip":"",
        "name":"Template"
      },
      {
        "display_data":[
          "Single image",
          "Image sequence",
          "Animation"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Template guides"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "tooltip":"",
        "name":"Frame optimization"
      },
      {
        "tooltip":"",
        "name":"Color merge"
      },
      {
        "tooltip":"",
        "name":"Framerate"
      },
      {
        "display_data":[
          ".png",
          ".jpg",
          ".webp"
        ],
        "tooltip":"",
        "name":"Format"
      },
      {
        "tooltip":"",
        "name":"Quality"
      },
      {
        "tooltip":"",
        "name":"Sequence begin"
      },
      {
        "tooltip":"",
        "name":"Frame range"
      },
      {
        "display_data":[
          "INDEX4",
          "INDEX8",
          "Default (PNG32)"
        ],
        "tooltip":"",
        "name":"Subformat"
      }
    ],
    "tooltip":"Export image, image array to file, image sequence, animation.",
    "name":"Export",
    "outputs":[
      {
        "tooltip":"",
        "name":"Loop exit"
      },
      {
        "tooltip":"",
        "name":"Preview"
      }
    ]
  },
  "Node_Pixel_Sort":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Iteration"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Sort pixel by brightness in horizontal, or vertial axis.",
    "name":"Pixel Sort",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Text_File_Read":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ],
    "tooltip":"Load .txt in as text.",
    "name":"Text File In",
    "outputs":[
      {
        "tooltip":"",
        "name":"Content"
      },
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_DynaSurf_In":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ]
  },
  "Node_Morph_Surface":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface from"
      },
      {
        "tooltip":"",
        "name":"Surface to"
      },
      {
        "tooltip":"",
        "name":"Morph amount"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      }
    ],
    "tooltip":"Morph pixel bewteen two surfaces.",
    "name":"Morph Surface",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Shuffle":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array in"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Shuffle Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Shuffled array"
      }
    ]
  },
  "Node_Display_Text":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "display_data":[
          "Header",
          "Sub header",
          "Normal"
        ],
        "tooltip":"",
        "name":"Style"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Line width"
      }
    ],
    "tooltip":"Display text on the graph.",
    "name":"Display Text",
    "outputs":[
    ]
  },
  "Node_Pixel_Builder":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      }
    ],
    "tooltip":"",
    "name":"Pixel Builder",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface Out"
      }
    ]
  },
  "Node_Random":{
    "inputs":[
      {
        "tooltip":"",
        "name":"seed"
      },
      {
        "tooltip":"",
        "name":"from"
      },
      {
        "tooltip":"",
        "name":"to"
      }
    ],
    "tooltip":"",
    "name":"Random",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Array_Set":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"Array Set",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_VFX_Spawner":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particle sprite"
      },
      {
        "tooltip":"Frames delay between each particle spawn.",
        "name":"Spawn delay"
      },
      {
        "tooltip":"Amount of particle spawn in that frame.",
        "name":"Spawn amount"
      },
      {
        "tooltip":"",
        "name":"Spawn area"
      },
      {
        "display_data":[
          "Area",
          "Border",
          "Map",
          "Atlas"
        ],
        "tooltip":"",
        "name":"Spawn distribution"
      },
      {
        "tooltip":"",
        "name":"Lifespan"
      },
      {
        "tooltip":"",
        "name":"Spawn direction"
      },
      {
        "tooltip":"",
        "name":"Acceleration"
      },
      {
        "tooltip":"",
        "name":"Orientation"
      },
      {
        "tooltip":"",
        "name":"Rotational speed"
      },
      {
        "tooltip":"",
        "name":"Spawn scale"
      },
      {
        "tooltip":"",
        "name":"Scale over time"
      },
      {
        "tooltip":"",
        "name":"Color over lifetime"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Alpha over time"
      },
      {
        "tooltip":"Make the particle rotates to follow its movement.",
        "name":"Rotate by direction"
      },
      {
        "display_data":[
          "Stream",
          "Burst",
          "Trigger"
        ],
        "tooltip":"",
        "name":"Spawn type"
      },
      {
        "tooltip":"",
        "name":"Spawn size"
      },
      {
        "tooltip":"",
        "name":"Spawn velocity"
      },
      {
        "tooltip":"",
        "name":"Gravity"
      },
      {
        "tooltip":"",
        "name":"Direction wiggle"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "display_data":[
          "Random",
          "Order",
          "Animation"
        ],
        "tooltip":"Whether to select image from an array in order, at random, or treat array as animation.",
        "name":"Surface array"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      },
      {
        "display_data":[
          "Uniform",
          "Random"
        ],
        "tooltip":"",
        "name":"Scatter"
      },
      {
        "tooltip":"",
        "name":"Boundary data"
      },
      {
        "display_data":[
          "Loop",
          "Ping pong",
          "Destroy"
        ],
        "tooltip":"",
        "name":"On animation end"
      },
      {
        "tooltip":"",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Random blend"
      },
      {
        "tooltip":"Make particle move away from the spawn center.",
        "name":"Directed from center"
      },
      {
        "tooltip":"",
        "name":"Distribution map"
      },
      {
        "tooltip":"",
        "name":"Atlas"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Gravity direction"
      },
      {
        "tooltip":"",
        "name":"Turning"
      },
      {
        "tooltip":"Apply randomized 1, -1 multiplier to the turning speed.",
        "name":"Turn both directions"
      },
      {
        "tooltip":"",
        "name":"Turn scale with speed"
      },
      {
        "tooltip":"",
        "name":"Collide ground"
      },
      {
        "tooltip":"",
        "name":"Ground offset"
      },
      {
        "tooltip":"",
        "name":"Bounce amount"
      },
      {
        "tooltip":"Apply horizontal friction once particle stop bouncing.",
        "name":"Bounce friction"
      },
      {
        "tooltip":"",
        "name":"Position wiggle"
      },
      {
        "tooltip":"",
        "name":"Rotation wiggle"
      },
      {
        "tooltip":"",
        "name":"Scale wiggle"
      },
      {
        "tooltip":"",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Spawn trigger"
      },
      {
        "tooltip":"How often the 'on step' event is triggered.\nWith 1 being trigger every frame, 2 means triggered once every 2 frames.",
        "name":"Step interval"
      }
    ],
    "tooltip":"",
    "name":"Spawner",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"On create"
      },
      {
        "tooltip":"",
        "name":"On step"
      },
      {
        "tooltip":"",
        "name":"On destroy"
      }
    ]
  },
  "Node_Noise_Simplex":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Iteration"
      },
      {
        "display_data":[
          "Greyscale",
          "RGB",
          "HSV"
        ],
        "tooltip":"",
        "name":"Color mode"
      },
      {
        "tooltip":"",
        "name":"Color R range"
      },
      {
        "tooltip":"",
        "name":"Color G range"
      },
      {
        "tooltip":"",
        "name":"Color B range"
      }
    ],
    "tooltip":"Generate simplex noise, similiar to perlin noise with better fidelity but non-tilable.",
    "name":"Simplex Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Draw_Trapezoid":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "display_data":[
          "Horizontal",
          "Vertical"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "display_data":[
          "Symmetric",
          "Independent"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Bevel"
      },
      {
        "tooltip":"",
        "name":"Bevel 1"
      },
      {
        "tooltip":"",
        "name":"Bevel 2"
      },
      {
        "tooltip":"",
        "name":"Invert"
      }
    ],
    "tooltip":"",
    "name":"Trapezoid",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Fluid_Group":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Collision"
      },
      {
        "display_data":[
          "Multiply",
          "Subtract"
        ],
        "tooltip":"",
        "name":"Material dissipation type"
      },
      {
        "tooltip":"",
        "name":"Material dissipation"
      },
      {
        "display_data":[
          "Multiply",
          "Subtract"
        ],
        "tooltip":"",
        "name":"Velocity dissipation type"
      },
      {
        "tooltip":"",
        "name":"Velocity dissipation"
      },
      {
        "tooltip":"",
        "name":"Acceleration"
      },
      {
        "tooltip":"",
        "name":"Material intertia"
      },
      {
        "tooltip":"",
        "name":"Initial pressure"
      },
      {
        "tooltip":"",
        "name":"Material Maccormack weight"
      },
      {
        "tooltip":"",
        "name":"Velocity Maccormack weight"
      },
      {
        "tooltip":"",
        "name":"Wrap"
      }
    ],
    "tooltip":"Create group for fluid simulation.",
    "name":"FluidSim",
    "outputs":[
    ]
  },
  "Node_Armature_Bind":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Armature"
      },
      {
        "tooltip":"",
        "name":"Bind data"
      },
      {
        "tooltip":"",
        "name":"Bone transform"
      },
      {
        "tooltip":"",
        "name":"Bone scale"
      }
    ],
    "tooltip":"",
    "name":"Armature Bind",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas data"
      },
      {
        "tooltip":"",
        "name":"Bind data"
      }
    ]
  },
  "Node_Particle":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particle sprite"
      },
      {
        "tooltip":"Frames delay between each particle spawn.",
        "name":"Spawn delay"
      },
      {
        "tooltip":"Amount of particle spawn in that frame.",
        "name":"Spawn amount"
      },
      {
        "tooltip":"",
        "name":"Spawn area"
      },
      {
        "display_data":[
          "Area",
          "Border",
          "Map",
          "Atlas"
        ],
        "tooltip":"",
        "name":"Spawn distribution"
      },
      {
        "tooltip":"",
        "name":"Lifespan"
      },
      {
        "tooltip":"",
        "name":"Spawn direction"
      },
      {
        "tooltip":"",
        "name":"Acceleration"
      },
      {
        "tooltip":"",
        "name":"Orientation"
      },
      {
        "tooltip":"",
        "name":"Rotational speed"
      },
      {
        "tooltip":"",
        "name":"Spawn scale"
      },
      {
        "tooltip":"",
        "name":"Scale over time"
      },
      {
        "tooltip":"",
        "name":"Color over lifetime"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Alpha over time"
      },
      {
        "tooltip":"Make the particle rotates to follow its movement.",
        "name":"Rotate by direction"
      },
      {
        "display_data":[
          "Stream",
          "Burst",
          "Trigger"
        ],
        "tooltip":"",
        "name":"Spawn type"
      },
      {
        "tooltip":"",
        "name":"Spawn size"
      },
      {
        "tooltip":"",
        "name":"Spawn velocity"
      },
      {
        "tooltip":"",
        "name":"Gravity"
      },
      {
        "tooltip":"",
        "name":"Direction wiggle"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "display_data":[
          "Random",
          "Order",
          "Animation"
        ],
        "tooltip":"Whether to select image from an array in order, at random, or treat array as animation.",
        "name":"Surface array"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      },
      {
        "display_data":[
          "Uniform",
          "Random"
        ],
        "tooltip":"",
        "name":"Scatter"
      },
      {
        "tooltip":"",
        "name":"Boundary data"
      },
      {
        "display_data":[
          "Loop",
          "Ping pong",
          "Destroy"
        ],
        "tooltip":"",
        "name":"On animation end"
      },
      {
        "tooltip":"",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Random blend"
      },
      {
        "tooltip":"Make particle move away from the spawn center.",
        "name":"Directed from center"
      },
      {
        "tooltip":"",
        "name":"Distribution map"
      },
      {
        "tooltip":"",
        "name":"Atlas"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Gravity direction"
      },
      {
        "tooltip":"",
        "name":"Turning"
      },
      {
        "tooltip":"Apply randomized 1, -1 multiplier to the turning speed.",
        "name":"Turn both directions"
      },
      {
        "tooltip":"",
        "name":"Turn scale with speed"
      },
      {
        "tooltip":"",
        "name":"Collide ground"
      },
      {
        "tooltip":"",
        "name":"Ground offset"
      },
      {
        "tooltip":"",
        "name":"Bounce amount"
      },
      {
        "tooltip":"Apply horizontal friction once particle stop bouncing.",
        "name":"Bounce friction"
      },
      {
        "tooltip":"",
        "name":"Position wiggle"
      },
      {
        "tooltip":"",
        "name":"Rotation wiggle"
      },
      {
        "tooltip":"",
        "name":"Scale wiggle"
      },
      {
        "tooltip":"",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"Round position to the closest integer value to avoid jittering.",
        "name":"Round position"
      },
      {
        "display_data":[
          "Normal",
          "Alpha",
          "Additive"
        ],
        "tooltip":"",
        "name":"Blend mode"
      }
    ],
    "tooltip":"Generate particle effect.",
    "name":"Particle",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Rigid_Render":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Render dimension"
      },
      {
        "tooltip":"",
        "name":"Round position"
      }
    ],
    "tooltip":"",
    "name":"Render",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Find":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"Array Find",
    "outputs":[
      {
        "tooltip":"",
        "name":"Index"
      }
    ]
  },
  "Node_Vector3":{
    "inputs":[
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"z"
      },
      {
        "tooltip":"",
        "name":"Integer"
      }
    ],
    "tooltip":"",
    "name":"Vector3",
    "outputs":[
      {
        "tooltip":"",
        "name":"Vector"
      }
    ]
  },
  "Node_PB_Draw_Rectangle":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      }
    ],
    "tooltip":"",
    "name":"Rectangle",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Shadow":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Grow"
      },
      {
        "tooltip":"",
        "name":"Blur"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply shadow behind the image.",
    "name":"Shadow",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Shift":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Shift"
      }
    ],
    "tooltip":"",
    "name":"Array Shift",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_3D_Mesh_Plane":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Material"
      },
      {
        "display_data":[
          "X",
          "Y",
          "Z"
        ],
        "tooltip":"",
        "name":"Normal"
      }
    ],
    "tooltip":"Put 2D image on a plane in 3D space.",
    "name":"3D Plane",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Strand_Force_Apply":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "display_data":[
          "Point",
          "Band"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Turbulence"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Turbulence frequency"
      },
      {
        "tooltip":"",
        "name":"Turbulence detail"
      }
    ],
    "tooltip":"",
    "name":"Strand Force Apply",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Atlas_Draw":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Atlas"
      }
    ],
    "tooltip":"Render image atlas to a surface.",
    "name":"Draw Atlas",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ]
  },
  "Node_3D_Mesh_Sphere_UV":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Horizontal Slices"
      },
      {
        "tooltip":"",
        "name":"Vertical Slices"
      },
      {
        "tooltip":"",
        "name":"Material"
      },
      {
        "tooltip":"",
        "name":"Smooth Normal"
      }
    ],
    "tooltip":"",
    "name":"3D UV Sphere",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Warp":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Top left"
      },
      {
        "tooltip":"",
        "name":"Top right"
      },
      {
        "tooltip":"",
        "name":"Bottom left"
      },
      {
        "tooltip":"",
        "name":"Bottom right"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Warp image by freely moving the corners.",
    "name":"Warp",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Palette_Sort":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Palette in"
      },
      {
        "display_data":[
          "Brightness",
          -1.0,
          "Hue (HSV)",
          "Saturation (SHV)",
          "Value (VHS)",
          -1.0,
          "Red (RGB)",
          "Green (GBR)",
          "Blue (BRG)",
          -1.0,
          "Custom"
        ],
        "tooltip":"",
        "name":"Order"
      },
      {
        "tooltip":"",
        "name":"Reverse"
      },
      {
        "tooltip":"Compose sorting algorithm using string.\r\n    - RGB: Red\/Green\/Blur channel\r\n    - HSV: Hue\/Saturation\/Value\r\n    - L:   Brightness\r\n    - Use small letter for ascending, capital letter for descending order.",
        "name":"Sort Order"
      }
    ],
    "tooltip":"",
    "name":"Sort Palette",
    "outputs":[
      {
        "tooltip":"",
        "name":"Sorted palette"
      }
    ]
  },
  "Node_Vector_Cross_3D":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point 1"
      },
      {
        "tooltip":"",
        "name":"Point 2"
      }
    ],
    "tooltip":"",
    "name":"Cross product 3D",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Palette_Extract":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Amount of color in a palette.",
        "name":"Max colors"
      },
      {
        "tooltip":"Random seed to be used to initialize K-mean algorithm.",
        "name":"Seed"
      },
      {
        "display_data":[
          "K-mean",
          "Frequency",
          "All colors"
        ],
        "tooltip":"",
        "name":"Algorithm"
      }
    ],
    "tooltip":"Extract palette from an image.",
    "name":"Palette Extract",
    "outputs":[
      {
        "tooltip":"",
        "name":"Palette"
      }
    ]
  },
  "Node_Text":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Font"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "tooltip":"",
        "name":"Anti-Aliasing "
      },
      {
        "tooltip":"",
        "name":"Character range"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Fixed dimension"
      },
      {
        "display_data":[
          862.0,
          862.0,
          862.0
        ],
        "tooltip":"",
        "name":"Horizontal alignment"
      },
      {
        "display_data":[
          682.0,
          682.0,
          682.0
        ],
        "tooltip":"",
        "name":"Vertical alignment"
      },
      {
        "display_data":[
          "Fixed",
          "Dynamic"
        ],
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"",
        "name":"Padding"
      }
    ],
    "tooltip":"Draw text on an image.",
    "name":"Draw Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Draw_Line":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "display_data":[
          829.0,
          829.0,
          829.0,
          829.0
        ],
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Thickness"
      }
    ],
    "tooltip":"",
    "name":"Line",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Gradient_Out":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "tooltip":"Position to sample a color from the gradient.",
        "name":"Sample"
      }
    ],
    "tooltip":"",
    "name":"Gradient",
    "outputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Camera":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Focus area"
      },
      {
        "tooltip":"",
        "name":"Zoom"
      },
      {
        "display_data":[
          "Empty",
          "Repeat",
          "Repeat X",
          "Repeat Y"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Fix background"
      },
      {
        "tooltip":"",
        "name":"Depth of Field"
      },
      {
        "tooltip":"",
        "name":"Focal distance"
      },
      {
        "tooltip":"",
        "name":"Defocus"
      },
      {
        "tooltip":"",
        "name":"Focal range"
      }
    ],
    "tooltip":"Create camera that crop image to fix dimension with control of position, zoom. Also can be use to create parallax effect.",
    "name":"Camera",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "__Node_3D_Combine":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"Combine multiple 3D object to a single scene,",
    "name":"3D Combine",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D objects"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      }
    ]
  },
  "Node_CSV_File_Write":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Content"
      }
    ],
    "tooltip":"Save array as .csv file.",
    "name":"CSV File Out",
    "outputs":[
    ]
  },
  "Node_Gradient_Extract":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      }
    ],
    "tooltip":"Get palatte and array of key positions from gradient.",
    "name":"Gradient Data",
    "outputs":[
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Type"
      }
    ]
  },
  "Node_Alpha_Cutoff":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Any pixel with less alpha (more transparent) than this will be removed.",
        "name":"Minimum"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Remove pixel with low alpha value.",
    "name":"Alpha Cutoff",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Rate_Remap":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Framerate"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Remap animation to a new framerate.",
    "name":"Rate Remap",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ]
  },
  "Node_Iterator_Input":{
    "inputs":[
      {
        "display_data":[
          "Default",
          "Range",
          "Rotation",
          "Rotation range",
          "Slider",
          "Slider range",
          "Padding",
          "Vector",
          "Vector range",
          "Area",
          "Enum button",
          "Menu scroll"
        ],
        "tooltip":"",
        "name":"Display type"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "display_data":[
          "Integer",
          "Float",
          "Boolean",
          "Color",
          "Surface",
          "File Path",
          "Curve",
          "Text",
          "Object",
          "Node",
          "3D object",
          "Any",
          "Path",
          "Particle",
          "Rigidbody Object",
          "Fluid Domain",
          "Struct",
          "Strands",
          "Mesh",
          "Trigger"
        ],
        "tooltip":"",
        "name":"Input type"
      },
      {
        "tooltip":"",
        "name":"Enum label"
      },
      {
        "display_data":[
          "2",
          "3",
          "4"
        ],
        "tooltip":"",
        "name":"Vector size"
      },
      {
        "tooltip":"",
        "name":"Order"
      },
      {
        "tooltip":"",
        "name":"Display preview gizmo"
      },
      {
        "tooltip":"",
        "name":"Step"
      },
      {
        "tooltip":"",
        "name":"Button Label"
      }
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Loop entrance"
      }
    ]
  },
  "Node_Flip":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "x",
          "y"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Flip image horizontally or vertically.",
    "name":"Flip",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Fluid_Add_Collider":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Collider"
      },
      {
        "tooltip":"",
        "name":"Area"
      }
    ],
    "tooltip":"",
    "name":"Add Collider",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Glow":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Border"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply glow to the border of the image.",
    "name":"Glow",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Armature_Sample":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Armature"
      },
      {
        "tooltip":"",
        "name":"Bone name"
      },
      {
        "tooltip":"",
        "name":"Sample point"
      }
    ],
    "tooltip":"",
    "name":"Armature Sample",
    "outputs":[
      {
        "tooltip":"",
        "name":"Position"
      }
    ]
  },
  "Node_Interpret_Number":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Number"
      },
      {
        "display_data":[
          "Greyscale",
          "Gradient"
        ],
        "tooltip":"",
        "name":"Mode"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Gradient"
      }
    ],
    "tooltip":"",
    "name":"Interpret Number",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "__Node_3D_Plane":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "display_data":[
          "Same as input",
          "Constant",
          "Relative to input"
        ],
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"",
        "name":"Constant dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Texture scale"
      },
      {
        "tooltip":"",
        "name":"Texture shift"
      },
      {
        "tooltip":"",
        "name":"Subdiviion"
      },
      {
        "display_data":[
          "X",
          "Y",
          "Z"
        ],
        "tooltip":"",
        "name":"Normal axis"
      }
    ],
    "tooltip":"Put 2D image on a plane in 3D space.",
    "name":"3D Plane",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Array_Composite":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Compose"
      }
    ],
    "tooltip":"",
    "name":"Array Composite",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Random_Shape":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Random Shape",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Crop_Content":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Largest, same size",
          "Independent"
        ],
        "tooltip":"Cropping mode for dealing with image array.",
        "name":"Array"
      },
      {
        "tooltip":"Add padding back after crop.",
        "name":"Padding"
      }
    ],
    "tooltip":"Crop out empty pixel pixel from the image.",
    "name":"Crop Content",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_String_Trim":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Head"
      },
      {
        "tooltip":"",
        "name":"Tail"
      },
      {
        "display_data":[
          "Character",
          "Word"
        ],
        "tooltip":"",
        "name":"Trim"
      },
      {
        "display_data":[
          "Counter",
          "Progress"
        ],
        "tooltip":"Set to progress to use ratio, where 0 means no change and 1 means the entire length of the text.",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Trim Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Sprite_Stack":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Base shape"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Stack amount"
      },
      {
        "tooltip":"",
        "name":"Stack shift"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Stack blend"
      },
      {
        "tooltip":"Alpha value for the last copy.",
        "name":"Alpha end"
      },
      {
        "tooltip":"Make each copy move the original image.",
        "name":"Move base"
      },
      {
        "display_data":[
          "None",
          "Color",
          "Inner pixel"
        ],
        "tooltip":"",
        "name":"Highlight"
      },
      {
        "tooltip":"",
        "name":"Highlight color"
      },
      {
        "tooltip":"",
        "name":"Highlight alpha"
      }
    ],
    "tooltip":"Create sprite stack either from repeating a single image or stacking different images using array.",
    "name":"Sprite Stack",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Fx_Outline":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Corner"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "display_data":[
          "Inside",
          "Outside"
        ],
        "tooltip":"",
        "name":"Side"
      }
    ],
    "tooltip":"",
    "name":"Outline",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_FFT":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Data"
      },
      {
        "display_data":[
          "None",
          "Hann"
        ],
        "tooltip":"",
        "name":"Preprocess Function"
      }
    ],
    "tooltip":"Perform fourier transform on number array.",
    "name":"FFT",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Surface_Replace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Base Image"
      },
      {
        "tooltip":"",
        "name":"Target Image"
      },
      {
        "tooltip":"",
        "name":"Replacement Image"
      },
      {
        "tooltip":"How similiar the color need to be in order to be count as matched.",
        "name":"Color Threshold"
      },
      {
        "tooltip":"",
        "name":"Draw Base Image"
      },
      {
        "tooltip":"",
        "name":"Fast Mode"
      },
      {
        "tooltip":"How many pixel need to me matched to replace with replacement image.",
        "name":"Pixel Threshold"
      },
      {
        "display_data":[
          "Match index",
          "Randomized"
        ],
        "tooltip":"",
        "name":"Array mode"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Replace Image",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface Out"
      }
    ]
  },
  "Node_Print":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Text"
      }
    ],
    "tooltip":"Display text to notification.",
    "name":"Print",
    "outputs":[
    ]
  },
  "Node_3D_Mesh_Cone":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Side"
      },
      {
        "tooltip":"",
        "name":"Material Bottom"
      },
      {
        "tooltip":"",
        "name":"Material Side"
      },
      {
        "tooltip":"",
        "name":"Smooth Side"
      }
    ],
    "tooltip":"",
    "name":"3D Cone",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_3D_Mesh_Extrude":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Height map"
      },
      {
        "tooltip":"",
        "name":"Smooth"
      },
      {
        "tooltip":"",
        "name":"Always update"
      }
    ],
    "tooltip":"Extrude 2D image into 3D object.",
    "name":"Surface Extrude",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Trigger_Bool":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Boolean"
      },
      {
        "display_data":[
          "True frame",
          "False to True",
          "True to False",
          "Value changed"
        ],
        "tooltip":"",
        "name":"Trigger condition"
      }
    ],
    "tooltip":"",
    "name":"Boolean Trigger",
    "outputs":[
      {
        "tooltip":"",
        "name":"Trigger"
      }
    ]
  },
  "Node_Path_Reverse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ],
    "tooltip":"",
    "name":"Reverse Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Shadow_Cast":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Solid"
      },
      {
        "tooltip":"",
        "name":"Light Position"
      },
      {
        "tooltip":"",
        "name":"Soft light radius"
      },
      {
        "tooltip":"",
        "name":"Light density"
      },
      {
        "display_data":[
          "Point",
          "Sun"
        ],
        "tooltip":"",
        "name":"Light type"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Light radius"
      },
      {
        "tooltip":"",
        "name":"Render solid"
      },
      {
        "tooltip":"If checked, background color will be used as shadow caster.",
        "name":"Use BG color"
      },
      {
        "tooltip":"",
        "name":"BG threshold"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Banding"
      },
      {
        "display_data":[
          "Quadratic",
          "Invert quadratic",
          "Linear"
        ],
        "tooltip":"Control how light fade out over distance.",
        "name":"Attenuation"
      },
      {
        "tooltip":"",
        "name":"Ambient occlusion"
      },
      {
        "tooltip":"",
        "name":"Ambient occlusion strength"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply light that create shadow using shadow mask.",
    "name":"Cast Shadow",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Light mask"
      }
    ]
  },
  "Node_Render_Sprite_Sheet":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Sprites"
      },
      {
        "display_data":[
          "Animation",
          "Sprite array"
        ],
        "tooltip":"",
        "name":"Sprite set"
      },
      {
        "tooltip":"Number of frames until next sprite. Can be seen as (Step - 1) frame skip.",
        "name":"Frame step"
      },
      {
        "display_data":[
          "Horizontal",
          "Vertical",
          "Grid"
        ],
        "tooltip":"",
        "name":"Packing type"
      },
      {
        "tooltip":"",
        "name":"Grid column"
      },
      {
        "display_data":[
          "First",
          "Middle",
          "Last"
        ],
        "tooltip":"",
        "name":"Alignment"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      },
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "tooltip":"Starting\/ending frames, set end to 0 to default to last frame.",
        "name":"Range"
      }
    ],
    "tooltip":"Create spritesheet from image array or animation.",
    "name":"Render Spritesheet",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas Data"
      }
    ]
  },
  "Node_Onion_Skin":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Color pre"
      },
      {
        "tooltip":"",
        "name":"Color post"
      },
      {
        "tooltip":"",
        "name":"Step"
      },
      {
        "tooltip":"Render current frame on top of all frames.",
        "name":"On top"
      }
    ],
    "tooltip":"",
    "name":"Onion Skin",
    "outputs":[
      {
        "tooltip":"",
        "name":"Output"
      }
    ]
  },
  "Node_Fluid_Render_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Interpolate"
      },
      {
        "tooltip":"",
        "name":"Draw Domain"
      },
      {
        "tooltip":"",
        "name":"Auto Update"
      }
    ],
    "tooltip":"",
    "name":"Render Domain",
    "outputs":[
    ]
  },
  "Node_Fluid_Turbulence":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Effect area"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "display_data":[
          "Override",
          "Add"
        ],
        "tooltip":"",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Turbulence",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Noise":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "display_data":[
          "Greyscale",
          "RGB",
          "HSV"
        ],
        "tooltip":"",
        "name":"Color mode"
      },
      {
        "tooltip":"",
        "name":"Color R range"
      },
      {
        "tooltip":"",
        "name":"Color G range"
      },
      {
        "tooltip":"",
        "name":"Color B range"
      }
    ],
    "tooltip":"Generate white noise.",
    "name":"Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Skew":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "x",
          "y"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Wrap"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Skew image horizontally, or vertically.",
    "name":"Skew",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_3D_Mesh_Sphere_Ico":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Subdivision"
      },
      {
        "tooltip":"",
        "name":"Material"
      },
      {
        "tooltip":"",
        "name":"Smooth Normal"
      }
    ],
    "tooltip":"",
    "name":"3D Icosphere",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Color_Remove":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"Keep the selected colors and remove the rest.",
        "name":"Invert"
      }
    ],
    "tooltip":"Remove color that match a palette.",
    "name":"Remove Color",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Move_Point":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point"
      },
      {
        "display_data":[
          "XY Shift",
          "Direction + Distance"
        ],
        "tooltip":"",
        "name":"Mode"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Distance"
      }
    ],
    "tooltip":"",
    "name":"Translate Point",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_PB_Fx_Shading":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Color"
      }
    ],
    "tooltip":"",
    "name":"Shading",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Struct_JSON_Parse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"JSON string"
      }
    ],
    "tooltip":"",
    "name":"Parse JSON",
    "outputs":[
      {
        "tooltip":"",
        "name":"Struct"
      }
    ]
  },
  "Node_Color_replace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Color to be replaced.",
        "name":"Palette from"
      },
      {
        "tooltip":"Palette to be replaced to.",
        "name":"Palette to"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      },
      {
        "tooltip":"Set pixel that doesn't match any color in 'palette from' to black.",
        "name":"Set others to black"
      },
      {
        "tooltip":"",
        "name":"Multiply alpha"
      },
      {
        "tooltip":"Completely override pixel with new color instead of blending between it.",
        "name":"Hard replace"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Replace color that match one palette with another palette.",
    "name":"Replace Palette",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Remove":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "display_data":[
          "Index",
          "Value"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Spread array"
      }
    ],
    "tooltip":"",
    "name":"Array Remove",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "__Node_3D_Sphere":{
    "inputs":[
      {
        "tooltip":"Amount of polygon in X and Y axis.",
        "name":"Subdivisions"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Textures"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"",
    "name":"3D Sphere",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Wrap_Area":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Wrap image to fit area value (x, y, w, h).",
    "name":"Area Warp",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_VFX_Group":{
    "inputs":[
    ],
    "tooltip":"Create VFX group, which generate particles that can be manipulated using different force nodes.",
    "name":"VFX",
    "outputs":[
    ]
  },
  "Node_Condition":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Check value"
      },
      {
        "display_data":[
          "Equal",
          "Not equal",
          "Less",
          "Less or equal",
          "Greater",
          "Greater or equal"
        ],
        "tooltip":"",
        "name":"Condition"
      },
      {
        "tooltip":"",
        "name":"Compare to"
      },
      {
        "tooltip":"",
        "name":"True"
      },
      {
        "tooltip":"",
        "name":"False"
      },
      {
        "display_data":[
          "Boolean",
          "Number compare",
          "Text compare"
        ],
        "tooltip":"",
        "name":"Eval mode"
      },
      {
        "tooltip":"",
        "name":"Boolean"
      },
      {
        "tooltip":"",
        "name":"Text 1"
      },
      {
        "tooltip":"",
        "name":"Text 2"
      }
    ],
    "tooltip":"Given a condition, output one value if true, another value is false.",
    "name":"Condition",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      },
      {
        "tooltip":"",
        "name":"Bool"
      }
    ]
  },
  "Node_Invert":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Invert color.",
    "name":"Invert",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Blur":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"Replace all color while keeping the alpha. Used to\nfix grey outline when bluring transparent pixel.",
        "name":"Override color"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur image smoothly.",
    "name":"Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Reverse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"",
    "name":"Array Reverse",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Base_Convert":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Base from"
      },
      {
        "tooltip":"",
        "name":"Base to"
      }
    ],
    "tooltip":"",
    "name":"Convert Base",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Average":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Average color of every pixels in the image.",
    "name":"Average",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Solid":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Empty"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Use mask dimension"
      }
    ],
    "tooltip":"Create image of a single color.",
    "name":"Solid",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_BW":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      },
      {
        "tooltip":"",
        "name":"Contrast"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Convert color image to black and white.",
    "name":"BW",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Combine_HSV":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Hue"
      },
      {
        "tooltip":"",
        "name":"Saturation"
      },
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"Combine 4 image in to one. Each image use to control HSVA channel.",
    "name":"HSV Combine",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Strand_Break":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "display_data":[
          "Point",
          "Band"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Chance"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Strand Break",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_PCX_fn_Math":{
    "inputs":[
      {
        "display_data":[
          "Add",
          "Subtract",
          "Multiply",
          "Divide",
          "Power",
          "Modulo",
          "Absolute",
          -1.0,
          "Round",
          "Floor",
          "Ceil",
          -1.0,
          "Sin",
          "Cos",
          "Tan",
          "Arcsin",
          "Arccos",
          "Arctan",
          -1.0,
          "Min",
          "Max",
          "Clamp",
          -1.0,
          "Lerp"
        ],
        "tooltip":"",
        "name":"Operator"
      },
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"z"
      }
    ],
    "tooltip":"",
    "name":"Math",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Gradient_Shift":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Wrap"
      },
      {
        "tooltip":"",
        "name":"Scale"
      }
    ],
    "tooltip":"Move gradients keys.",
    "name":"Gradient Shift",
    "outputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      }
    ]
  },
  "Node_Armature":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Armature Create",
    "outputs":[
      {
        "tooltip":"",
        "name":"Armature"
      }
    ]
  },
  "Node_String_Split":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"Character that used to split text,\nleave blank to create character array.",
        "name":"Delimiter"
      }
    ],
    "tooltip":"",
    "name":"Split Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_3D_Material":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "tooltip":"",
        "name":"Diffuse"
      },
      {
        "tooltip":"",
        "name":"Specular"
      },
      {
        "tooltip":"",
        "name":"Shininess"
      },
      {
        "tooltip":"",
        "name":"Metalic"
      },
      {
        "tooltip":"",
        "name":"Normal Map"
      },
      {
        "tooltip":"",
        "name":"Normal Strength"
      },
      {
        "tooltip":"",
        "name":"Roughness"
      }
    ],
    "tooltip":"",
    "name":"3D Material",
    "outputs":[
      {
        "tooltip":"",
        "name":"Material"
      }
    ]
  },
  "Node_Zigzag":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Color 1"
      },
      {
        "tooltip":"",
        "name":"Color 2"
      },
      {
        "tooltip":"",
        "name":"Smooth"
      }
    ],
    "tooltip":"Generate zigzag pattern.",
    "name":"Zigzag",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Color_Mix":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Color from"
      },
      {
        "tooltip":"",
        "name":"Color to"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "display_data":[
          "RGB",
          "HSV"
        ],
        "tooltip":"",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Mix Color",
    "outputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_VFX_Vortex":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      },
      {
        "tooltip":"",
        "name":"Attraction force"
      },
      {
        "tooltip":"",
        "name":"Clockwise"
      }
    ],
    "tooltip":"",
    "name":"Vortex",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Iterator_Length":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Loop amount",
    "outputs":[
      {
        "tooltip":"",
        "name":"Length"
      }
    ]
  },
  "Node_3D_Mesh_Obj":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"File Path"
      },
      {
        "tooltip":"Flip UV axis, can be use to fix some texture mapping error.",
        "name":"Flip UV"
      }
    ],
    "tooltip":"Load .obj file from your computer as a 3D object.",
    "name":"3D Object",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Fluid_Render":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Interpolate"
      },
      {
        "tooltip":"",
        "name":"Draw Domain"
      },
      {
        "tooltip":"",
        "name":"Auto Update"
      }
    ],
    "tooltip":"",
    "name":"Render Domain",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid"
      },
      {
        "tooltip":"",
        "name":"Domain"
      }
    ]
  },
  "Node_Iterator_Each_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value out"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
      {
        "tooltip":"",
        "name":"Preview"
      }
    ]
  },
  "Node_VFX_Accelerate":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      }
    ],
    "tooltip":"",
    "name":"Accelerate",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Strand_Render_Texture":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "tooltip":"",
        "name":"Thickness"
      },
      {
        "tooltip":"",
        "name":"Random color"
      },
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Strand Render Texture",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Stripe":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"Smoothly blend between each stripe.",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Random"
      },
      {
        "tooltip":"",
        "name":"Random color"
      },
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Color 1"
      },
      {
        "tooltip":"",
        "name":"Color 2"
      }
    ],
    "tooltip":"Generate stripe pattern.",
    "name":"Stripe",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Seperate_Shape":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Tolerance"
      },
      {
        "tooltip":"",
        "name":"Override color"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"Skip empty and black shape.",
        "name":"Ignore blank"
      }
    ],
    "tooltip":"Separate disconnected pixel each into an image in an image array.",
    "name":"Separate Shape",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas"
      }
    ]
  },
  "Node_PB_Fx_Subtract":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"",
    "name":"Subtract",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Bevel":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Height"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "display_data":[
          "Linear",
          "Smooth",
          "Circular"
        ],
        "tooltip":"",
        "name":"Slope"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      }
    ],
    "tooltip":"Apply 2D bevel on the image.",
    "name":"Bevel",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Fx_Add":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"pbox"
      }
    ],
    "tooltip":"",
    "name":"Add",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Iterator_Sort_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ],
    "tooltip":"",
    "name":"Sort Output",
    "outputs":[
    ]
  },
  "Node_CSV_File_Read":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Convert to number"
      }
    ],
    "tooltip":"Load .csv as text, number array.",
    "name":"CSV File In",
    "outputs":[
      {
        "tooltip":"",
        "name":"Content"
      },
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_PCX_Array_Get":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Index"
      }
    ],
    "tooltip":"",
    "name":"Array Get",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Iterator_Filter_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Result"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
    ]
  },
  "Node_Websocket_Sender":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Port"
      },
      {
        "display_data":[
          "Struct",
          "Surface",
          "File",
          "Buffer"
        ],
        "tooltip":"",
        "name":"Data type"
      },
      {
        "tooltip":"",
        "name":"Struct"
      },
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Target"
      },
      {
        "tooltip":"",
        "name":"Buffer"
      }
    ],
    "tooltip":"Create websocket server to send data to the network.",
    "name":"Websocket Sender",
    "outputs":[
    ]
  },
  "Node_Path_L_System":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Length"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Starting position"
      },
      {
        "tooltip":"",
        "name":"Iteration"
      },
      {
        "tooltip":31.0,
        "name":"Starting rule"
      },
      {
        "tooltip":"Replace symbol of the last generated rule, for example a=F to replace all a with F. Use comma to separate different replacements.",
        "name":"End replacement"
      },
      {
        "tooltip":"",
        "name":"Starting angle"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"L system",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_PB_Box_Inset":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Inset"
      },
      {
        "display_data":[
          "Padding",
          "Ratio"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Height"
      },
      {
        "tooltip":"",
        "name":"Horizontal alignment"
      },
      {
        "tooltip":"",
        "name":"Vertical alignment"
      }
    ],
    "tooltip":"",
    "name":"Inset",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox Inset"
      },
      {
        "tooltip":"",
        "name":"pBox Frame"
      }
    ]
  },
  "Node_Image_Sequence":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "display_data":[
          "Individual",
          "Minimum",
          "Maximum"
        ],
        "tooltip":"",
        "name":"Canvas size"
      },
      {
        "display_data":[
          "Padding \/ Crop",
          "Scale"
        ],
        "tooltip":"",
        "name":"Sizing method"
      }
    ],
    "tooltip":"Load multiple images from your computer as array.",
    "name":"Image Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Paths"
      }
    ]
  },
  "Node_DynaSurf_Out_Width":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Width"
      }
    ],
    "tooltip":"",
    "name":"getWidth",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Wiggler":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Frequency"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "display_data":[
          "Number",
          "Graph"
        ],
        "tooltip":"",
        "name":"Display"
      }
    ],
    "tooltip":"Create smooth random value.",
    "name":"Wiggler",
    "outputs":[
      {
        "tooltip":"",
        "name":"Output"
      }
    ]
  },
  "Node_To_Text":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"To Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Cache":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      }
    ],
    "tooltip":"Store current animation. Cache persisted between save.",
    "name":"Cache",
    "outputs":[
      {
        "tooltip":"",
        "name":"Cache surface"
      }
    ]
  },
  "Node_String_Join":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text array"
      },
      {
        "tooltip":"",
        "name":"Divider"
      }
    ],
    "tooltip":"",
    "name":"Join Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Iterate_Sort":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"Sort array using node graph.",
    "name":"Sort Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "__Node_3D_Cube":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Main texture"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Textures per face"
      },
      {
        "tooltip":"",
        "name":"Textures 0"
      },
      {
        "tooltip":"",
        "name":"Textures 1"
      },
      {
        "tooltip":"",
        "name":"Textures 2"
      },
      {
        "tooltip":"",
        "name":"Textures 3"
      },
      {
        "tooltip":"",
        "name":"Textures 4"
      },
      {
        "tooltip":"",
        "name":"Textures 5"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"",
    "name":"3D Cube",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Mirror":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Reflect the image along a reflection line.",
    "name":"Mirror",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Mirror mask"
      }
    ]
  },
  "Node_String_Regex_Replace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Regex"
      },
      {
        "tooltip":"",
        "name":"Replacement"
      }
    ],
    "tooltip":"",
    "name":"RegEx Replace",
    "outputs":[
      {
        "tooltip":"",
        "name":"Results"
      }
    ]
  },
  "Node_Rigid_Activate":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Object"
      },
      {
        "tooltip":"",
        "name":"Physics activated"
      }
    ],
    "tooltip":"",
    "name":"Activate Physics",
    "outputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ]
  },
  "Node_De_Corner":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Tolerance"
      }
    ],
    "tooltip":"Attempt to remove single pixel corner from the image.",
    "name":"De-Corner",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Convolution":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Kernel"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply convolution operation on each pixel using a custom 3x3 kernel.",
    "name":"Convolution",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_FXAA":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"",
    "name":"FXAA",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "__Node_3D_Repeat":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"3D object"
      },
      {
        "tooltip":"Amount of copies to be generated.",
        "name":"Repeat"
      },
      {
        "tooltip":"",
        "name":"Repeat position"
      },
      {
        "tooltip":"",
        "name":"Repeat rotation"
      },
      {
        "tooltip":"",
        "name":"Repeat scale"
      },
      {
        "display_data":[
          "Linear",
          "Circular"
        ],
        "tooltip":"",
        "name":"Repeat pattern"
      },
      {
        "display_data":[
          "x",
          "y",
          "z"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"Repeat 3D object multiple times.",
    "name":"3D Repeat",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D objects"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      }
    ]
  },
  "Node_Path_Map_Area":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Area"
      }
    ],
    "tooltip":"Scale path to fit a given area.",
    "name":"Remap Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Unicode":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Unicode"
      }
    ],
    "tooltip":"",
    "name":"Unicode",
    "outputs":[
      {
        "tooltip":"",
        "name":"Character"
      }
    ]
  },
  "Node_Palette_Shift":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"",
    "name":"Palette Shift",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Dilate":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Expand the image around a mid point.",
    "name":"Dilate",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_IsoSurf":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Surfaces"
      },
      {
        "tooltip":"",
        "name":"Angle Shift"
      },
      {
        "tooltip":"",
        "name":"Angle Split"
      }
    ],
    "tooltip":"",
    "name":"IsoSurf",
    "outputs":[
      {
        "tooltip":"",
        "name":"IsoSurf"
      }
    ]
  },
  "Node_PB_Fx_Hash":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Hash"
      },
      {
        "tooltip":"",
        "name":"Invert"
      },
      {
        "tooltip":"",
        "name":"Dissolve"
      },
      {
        "tooltip":"",
        "name":"Detail"
      },
      {
        "tooltip":"",
        "name":"Dissolve Scale"
      }
    ],
    "tooltip":"",
    "name":"Hashing",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_PB_Draw_Semi_Ellipse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "display_data":[
          585.0,
          585.0,
          585.0,
          585.0
        ],
        "tooltip":"",
        "name":"Side"
      }
    ],
    "tooltip":"",
    "name":"Semi-Ellipse",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Palette_Replace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Palette in"
      },
      {
        "tooltip":"",
        "name":"Palette from"
      },
      {
        "tooltip":"",
        "name":"Palette to"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      }
    ],
    "tooltip":"",
    "name":"Palette Replace",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Alpha_Grey":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Convert alpha value into solid greyscale.",
    "name":"Alpha to Grey",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Websocket_Receiver":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Port"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Create websocket server to receive data from the network.",
    "name":"Websocket Receiver",
    "outputs":[
      {
        "tooltip":"",
        "name":"Data"
      },
      {
        "tooltip":"",
        "name":"Receive data"
      }
    ]
  },
  "Node_Rigid_Variable":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ],
    "tooltip":"",
    "name":"Rigidbody Variable",
    "outputs":[
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Scales"
      },
      {
        "tooltip":"",
        "name":"Rotations"
      },
      {
        "tooltip":"",
        "name":"Blends"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Velocity"
      },
      {
        "tooltip":"",
        "name":"Center of mass"
      }
    ]
  },
  "Node_Path_Builder":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point array"
      },
      {
        "tooltip":"If set to true, will draw a single path from one point to another. If not set will treat each pair of points as an individual line.",
        "name":"Connected"
      }
    ],
    "tooltip":"Create path from array of vec2 points.",
    "name":"Path Builder",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_PB_Fx_Intersect":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"",
    "name":"Intersect",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_PB_Draw_Fill":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      }
    ],
    "tooltip":"",
    "name":"Fill",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_VFX_Override":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Rotations"
      },
      {
        "tooltip":"",
        "name":"Scales"
      },
      {
        "tooltip":"",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"",
    "name":"VFX Override",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Armature_Pose":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Armature"
      }
    ],
    "tooltip":"",
    "name":"Armature Pose",
    "outputs":[
      {
        "tooltip":"",
        "name":"Armature"
      }
    ]
  },
  "Node_Perlin":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Iteration"
      },
      {
        "tooltip":"",
        "name":"Tile"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "display_data":[
          "Greyscale",
          "RGB",
          "HSV"
        ],
        "tooltip":"",
        "name":"Color mode"
      },
      {
        "tooltip":"",
        "name":"Color R range"
      },
      {
        "tooltip":"",
        "name":"Color G range"
      },
      {
        "tooltip":"",
        "name":"Color B range"
      }
    ],
    "tooltip":"Generate perlin noise.",
    "name":"Perlin Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Get":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "display_data":[
          "Clamp",
          "Loop",
          "Ping Pong"
        ],
        "tooltip":"",
        "name":"Overflow"
      }
    ],
    "tooltip":"",
    "name":"Array Get",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ]
  },
  "Node_Surface_To_Buffer":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"Create buffer from surface.",
    "name":"Buffer from Surface",
    "outputs":[
      {
        "tooltip":"",
        "name":"Buffer"
      }
    ]
  },
  "Node_Image_Sheet":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Sprite size"
      },
      {
        "tooltip":"",
        "name":"Row"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Offset"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      },
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "display_data":[
          "Animation",
          "Array"
        ],
        "tooltip":"",
        "name":"Output"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      },
      {
        "display_data":[
          "Horizontal",
          "Vertical"
        ],
        "tooltip":"",
        "name":"Orientation"
      },
      {
        "tooltip":"Automatically set amount based on sprite size.",
        "name":"Auto fill"
      },
      {
        "tooltip":"",
        "name":"Sync animation"
      },
      {
        "tooltip":"",
        "name":"Filter empty output"
      },
      {
        "display_data":[
          "Transparent",
          "Color"
        ],
        "tooltip":"",
        "name":"Filtered Pixel"
      },
      {
        "tooltip":"",
        "name":"Filtered Color"
      }
    ],
    "tooltip":"Cut up spritesheet into animation or image array.",
    "name":"Splice Spritesheet",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas Data"
      }
    ]
  },
  "Node_Logic":{
    "inputs":[
      {
        "display_data":[
          "And",
          "Or",
          "Not",
          "Nand",
          "Nor",
          "Xor"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"a"
      }
    ],
    "tooltip":"",
    "name":"Logic Opr",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Path_Shift":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Distance"
      }
    ],
    "tooltip":"Move path along its normal.",
    "name":"Shift Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_PB_Draw_Angle":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "display_data":[
          596.0,
          596.0,
          596.0,
          596.0
        ],
        "tooltip":"",
        "name":"Side"
      },
      {
        "tooltip":"",
        "name":"Round"
      }
    ],
    "tooltip":"",
    "name":"Angle",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Displace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Displace map"
      },
      {
        "tooltip":"Vector to displace pixel by.",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"Brightness value to be use as a basis for 'no displacement'.",
        "name":"Mid value"
      },
      {
        "display_data":[
          "Ignore",
          "Vector",
          "Angle"
        ],
        "tooltip":"Use color data set extra information.\r\n    - Ignore: Don't use color data.\r\n    - Vector: Use red as X displacement, green as Y displacement.\r\n    - Angle: Use red as angle, green as distance.",
        "name":"Color data"
      },
      {
        "tooltip":"If not set, then strength value is multiplied directly to the displacement.\r\nIf set, then strength value control how many times the effect applies on itself.",
        "name":"Iterate"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Distort image using another image as a map.",
    "name":"Displace",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Path":{
    "inputs":[
      {
        "tooltip":"Sample position from path.",
        "name":"Path progress"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "display_data":[
          "Entire line",
          "Segment"
        ],
        "tooltip":"",
        "name":"Progress mode"
      },
      {
        "tooltip":"",
        "name":"Round anchor"
      }
    ],
    "tooltip":"",
    "name":"Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Position out"
      },
      {
        "tooltip":"",
        "name":"Path data"
      },
      {
        "tooltip":"",
        "name":"Anchors"
      }
    ]
  },
  "Node_Array_Convolute":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Kernel"
      }
    ],
    "tooltip":"",
    "name":"Array Convolute",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Scale":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "display_data":[
          "Upscale",
          "Scale to fit"
        ],
        "tooltip":"",
        "name":"Mode"
      },
      {
        "tooltip":"",
        "name":"Target dimension"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Simple node for scaling image.",
    "name":"Scale",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Rigid_Object":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Affect by force"
      },
      {
        "tooltip":"",
        "name":"Weight"
      },
      {
        "tooltip":"",
        "name":"Contact friction"
      },
      {
        "tooltip":"",
        "name":"Air resistance"
      },
      {
        "tooltip":"",
        "name":"Rotation resistance"
      },
      {
        "display_data":[
          "Box",
          "Circle",
          "Custom"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "tooltip":"",
        "name":"Start position"
      },
      {
        "tooltip":"Make object spawn when start.",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Generate mesh"
      },
      {
        "tooltip":"",
        "name":"Mesh expansion"
      }
    ],
    "tooltip":"",
    "name":"Object",
    "outputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ]
  },
  "Node_Color":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ],
    "tooltip":"",
    "name":"Color",
    "outputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Region_Fill":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Colors"
      },
      {
        "tooltip":"",
        "name":"Fill Color"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"Fill connected pixel with the same color.",
    "name":"Region Fill",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Noise_Tri":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Texture sample"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"",
        "name":"Oversample mode"
      }
    ],
    "tooltip":"",
    "name":"Triangular Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Vector_Cross_2D":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point 1"
      },
      {
        "tooltip":"",
        "name":"Point 2"
      }
    ],
    "tooltip":"",
    "name":"Cross product 2D",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_To_Number":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ],
    "tooltip":"",
    "name":"To Number",
    "outputs":[
      {
        "tooltip":"",
        "name":"Number"
      }
    ]
  },
  "Node_VFX_Wind":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      }
    ],
    "tooltip":"",
    "name":"Wind",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_PCX_Equation":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Equation"
      }
    ],
    "tooltip":"",
    "name":"Equation",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Gradient_Points":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Center 1"
      },
      {
        "tooltip":"",
        "name":"Color 1"
      },
      {
        "tooltip":"",
        "name":"Center 2"
      },
      {
        "tooltip":"",
        "name":"Color 2"
      },
      {
        "tooltip":"",
        "name":"Center 3"
      },
      {
        "tooltip":"",
        "name":"Color 3"
      },
      {
        "tooltip":"",
        "name":"Center 4"
      },
      {
        "tooltip":"",
        "name":"Color 4"
      },
      {
        "tooltip":"",
        "name":"Use palette"
      },
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "tooltip":"",
        "name":"Falloff 1"
      },
      {
        "tooltip":"",
        "name":"Falloff 2"
      },
      {
        "tooltip":"",
        "name":"Falloff 3"
      },
      {
        "tooltip":"",
        "name":"Falloff 4"
      }
    ],
    "tooltip":"Create image from 4 color points.",
    "name":"4 Points Gradient",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Trigger":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Trigger"
      },
      {
        "tooltip":"",
        "name":"Trigger"
      }
    ],
    "tooltip":"",
    "name":"Trigger",
    "outputs":[
      {
        "tooltip":"",
        "name":"Trigger"
      }
    ]
  },
  "Node_Fluid_Domain":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Collision"
      },
      {
        "display_data":[
          "Multiply",
          "Subtract"
        ],
        "tooltip":"",
        "name":"Material dissipation type"
      },
      {
        "tooltip":"",
        "name":"Material dissipation"
      },
      {
        "display_data":[
          "Multiply",
          "Subtract"
        ],
        "tooltip":"",
        "name":"Velocity dissipation type"
      },
      {
        "tooltip":"",
        "name":"Velocity dissipation"
      },
      {
        "tooltip":"",
        "name":"Acceleration"
      },
      {
        "tooltip":"",
        "name":"Material intertia"
      },
      {
        "tooltip":"",
        "name":"Initial pressure"
      },
      {
        "tooltip":"",
        "name":"Material Maccormack weight"
      },
      {
        "tooltip":"",
        "name":"Velocity Maccormack weight"
      },
      {
        "tooltip":"",
        "name":"Wrap"
      }
    ],
    "tooltip":"",
    "name":"Fluid Domain",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Image_gif":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Set animation length to gif"
      },
      {
        "tooltip":"",
        "name":"Output as array"
      },
      {
        "display_data":[
          "Loop",
          "Ping pong",
          "Hold last frame",
          "Hide"
        ],
        "tooltip":"",
        "name":"Loop modes"
      },
      {
        "tooltip":"",
        "name":"Start frame"
      },
      {
        "tooltip":"",
        "name":"Custom frame order"
      },
      {
        "tooltip":"",
        "name":"Frame"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      }
    ],
    "tooltip":"Load animated .gif from your computer.",
    "name":"Image GIF",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_PCX_fn_Surface_Height":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"",
    "name":"Surface Height",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Cache_Array":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Frame index to start caching, set to -1 to start at the first frame.",
        "name":"Start frame"
      },
      {
        "tooltip":"Frame index to stop caching (inclusive), set to -1 to stop at the last frame.",
        "name":"Stop frame"
      },
      {
        "tooltip":"Cache every N frames, set to 1 to cache every frame.",
        "name":"Step"
      }
    ],
    "tooltip":"Store current animation as array.  Cache persisted between save.",
    "name":"Cache Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Cache array"
      }
    ]
  },
  "Node_Atlas":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Replace transparent pixel with the closet non-transparent pixel.",
    "name":"Pixel Expand",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PCX_var":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Name"
      },
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"Variable",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Iterator_Index":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Index",
    "outputs":[
      {
        "tooltip":"",
        "name":"Loop index"
      }
    ]
  },
  "Node_Corner":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Round out sharp corner of the image.",
    "name":"Corner",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_String_Length":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "display_data":[
          "Character",
          "Word"
        ],
        "tooltip":"",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Text Length",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Feedback_Input":{
    "inputs":[
      {
        "display_data":[
          "Default",
          "Range",
          "Rotation",
          "Rotation range",
          "Slider",
          "Slider range",
          "Padding",
          "Vector",
          "Vector range",
          "Area",
          "Enum button",
          "Menu scroll"
        ],
        "tooltip":"",
        "name":"Display type"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "display_data":[
          "Integer",
          "Float",
          "Boolean",
          "Color",
          "Surface",
          "File Path",
          "Curve",
          "Text",
          "Object",
          "Node",
          "3D object",
          "Any",
          "Path",
          "Particle",
          "Rigidbody Object",
          "Fluid Domain",
          "Struct",
          "Strands",
          "Mesh",
          "Trigger"
        ],
        "tooltip":"",
        "name":"Input type"
      },
      {
        "tooltip":"",
        "name":"Enum label"
      },
      {
        "display_data":[
          "2",
          "3",
          "4"
        ],
        "tooltip":"",
        "name":"Vector size"
      },
      {
        "tooltip":"",
        "name":"Order"
      },
      {
        "tooltip":"",
        "name":"Display preview gizmo"
      },
      {
        "tooltip":"",
        "name":"Step"
      },
      {
        "tooltip":"",
        "name":"Button Label"
      }
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Feedback loop"
      }
    ]
  },
  "Node_Blur_Contrast":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "tooltip":"Brightness different to be blur together.",
        "name":"Threshold"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur only pixel of a similiar color.",
    "name":"Contrast Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Colors_Replace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Palette from"
      },
      {
        "tooltip":"",
        "name":"Palette to"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"",
    "name":"Replace Colors",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_VFX_Renderer":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"Round position to the closest integer value to avoid jittering.",
        "name":"Round position"
      },
      {
        "display_data":[
          "Normal",
          "Alpha",
          "Additive"
        ],
        "tooltip":"",
        "name":"Blend mode"
      }
    ],
    "tooltip":"",
    "name":"Renderer",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Blur_Radial":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur image by rotating aroung a mid point.",
    "name":"Radial Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Bloom":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Bloom blur radius.",
        "name":"Size"
      },
      {
        "tooltip":"How bright a pixel should be to start blooming.",
        "name":"Tolerance"
      },
      {
        "tooltip":"Blend intensity.",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Bloom mask"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply bloom effect, bluring and brighten the bright part of the image.",
    "name":"Bloom",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Iterator_Filter_Input":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value in"
      }
    ]
  },
  "Node_Level":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"White"
      },
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Adjust brightness of an image by changing its brightness range.",
    "name":"Level",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Vector4":{
    "inputs":[
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"z"
      },
      {
        "tooltip":"",
        "name":"w"
      },
      {
        "tooltip":"",
        "name":"Integer"
      }
    ],
    "tooltip":"",
    "name":"Vector4",
    "outputs":[
      {
        "tooltip":"",
        "name":"Vector"
      }
    ]
  },
  "Node_Image_Animated":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "tooltip":"Stretch animation speed to match project length.",
        "name":"Stretch frame"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      },
      {
        "display_data":[
          "Loop",
          "Ping pong",
          "Hold last frame",
          "Hide"
        ],
        "tooltip":"",
        "name":"Loop modes"
      },
      {
        "tooltip":"",
        "name":"Set animation length to match"
      },
      {
        "tooltip":"",
        "name":"Custom frame order"
      },
      {
        "tooltip":"",
        "name":"Frame"
      }
    ],
    "tooltip":"Load multiple images from your computer as animation.",
    "name":"Animation",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Struct_Get":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Struct"
      },
      {
        "tooltip":"",
        "name":"Key"
      }
    ],
    "tooltip":"",
    "name":"Struct Get",
    "outputs":[
      {
        "tooltip":"",
        "name":"Struct"
      }
    ]
  },
  "Node_Array_CSV_Parse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"CSV string"
      },
      {
        "tooltip":"",
        "name":"Skip line"
      }
    ],
    "tooltip":"",
    "name":"Parse CSV",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Equation":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Equation"
      }
    ],
    "tooltip":"Evaluate string of equation. With an option for setting variables.",
    "name":"Equation",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Normal":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Height"
      },
      {
        "tooltip":"Include diagonal pixel in normal calculation, which leads to smoother output.",
        "name":"Smooth"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Create normal map using greyscale value as height.",
    "name":"Normal",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "__Node_3D_Cone":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Sides"
      },
      {
        "tooltip":"",
        "name":"Textures base"
      },
      {
        "tooltip":"",
        "name":"Textures side"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"",
    "name":"3D Cone",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_PCX_Array_Set":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"Array Set",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Armature_Path":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Armature"
      }
    ],
    "tooltip":"",
    "name":"Armature Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Mesh_Transform":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      }
    ],
    "tooltip":"",
    "name":"Mesh Transform",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_Widget_Test":{
    "inputs":[
      {
        "tooltip":"",
        "name":"textBox"
      },
      {
        "tooltip":"",
        "name":"rangeBox"
      },
      {
        "tooltip":"",
        "name":"vectorBox"
      },
      {
        "tooltip":"",
        "name":"vectorRangeBox"
      },
      {
        "tooltip":"",
        "name":"rotator"
      },
      {
        "tooltip":"",
        "name":"rotatorRange"
      },
      {
        "tooltip":"",
        "name":"rotatorRandom"
      },
      {
        "tooltip":"",
        "name":"slider"
      },
      {
        "tooltip":"",
        "name":"sliderRange"
      },
      {
        "tooltip":"",
        "name":"areaBox"
      },
      {
        "tooltip":"",
        "name":"paddingBox"
      },
      {
        "tooltip":"",
        "name":"cornerBox"
      },
      {
        "tooltip":"",
        "name":"controlPointBox"
      },
      {
        "display_data":[
          "Choice 1",
          "Choice 2"
        ],
        "tooltip":"",
        "name":"scrollBox"
      },
      {
        "display_data":[
          "Choice 1",
          "Choice 2"
        ],
        "tooltip":"",
        "name":"buttonGroup"
      },
      {
        "tooltip":"",
        "name":"matrixGrid"
      },
      {
        "tooltip":"",
        "name":"transformBox"
      },
      {
        "tooltip":"",
        "name":"transformBox"
      },
      {
        "tooltip":"",
        "name":"quarternionBox"
      },
      {
        "tooltip":"",
        "name":"checkBox"
      },
      {
        "tooltip":"",
        "name":"buttonColor"
      },
      {
        "tooltip":"",
        "name":"buttonPalette"
      },
      {
        "tooltip":"",
        "name":"buttonGradient"
      },
      {
        "tooltip":"",
        "name":"pathArrayBox"
      },
      {
        "tooltip":"",
        "name":"pathLoad"
      },
      {
        "tooltip":"",
        "name":"pathSave"
      },
      {
        "tooltip":"",
        "name":"fontScrollBox"
      },
      {
        "tooltip":"",
        "name":"curveBox"
      },
      {
        "tooltip":"",
        "name":"textArea"
      },
      {
        "tooltip":"",
        "name":"textBox"
      },
      {
        "tooltip":"",
        "name":"textArea"
      },
      {
        "tooltip":"",
        "name":"textArea"
      },
      {
        "tooltip":"",
        "name":"textArrayBox"
      },
      {
        "tooltip":"",
        "name":"surfaceBox"
      }
    ],
    "tooltip":"",
    "name":"Widget Test",
    "outputs":[
    ]
  },
  "Node_PCX_fn_Surface_Width":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ],
    "tooltip":"",
    "name":"Surface Width",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Fluid_Add":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Fluid brush"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Inherit velocity"
      },
      {
        "tooltip":"",
        "name":"Density"
      },
      {
        "tooltip":"",
        "name":"Expand velocity mask"
      },
      {
        "tooltip":"",
        "name":"Velocity"
      }
    ],
    "tooltip":"",
    "name":"Add Fluid",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Rigid_Object_Spawner":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Object"
      },
      {
        "tooltip":"",
        "name":"Spawn area"
      },
      {
        "display_data":[
          "Stream",
          "Burst"
        ],
        "tooltip":"",
        "name":"Spawn type"
      },
      {
        "tooltip":"",
        "name":"Spawn delay"
      },
      {
        "tooltip":"",
        "name":"Spawn amount"
      },
      {
        "tooltip":"",
        "name":"Spawn frame"
      },
      {
        "tooltip":"",
        "name":"Spawn"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Object Spawner",
    "outputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ]
  },
  "Node_PB_Box_Divide":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Mirror"
      },
      {
        "display_data":[
          "Space Between",
          "Space Around",
          "Begin",
          "End"
        ],
        "tooltip":"",
        "name":"Spacing"
      }
    ],
    "tooltip":"",
    "name":"Divide",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox Content"
      },
      {
        "tooltip":"",
        "name":"pBox Space"
      }
    ]
  },
  "Node_Array_Range":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Start"
      },
      {
        "tooltip":"",
        "name":"End"
      },
      {
        "tooltip":"",
        "name":"Step"
      }
    ],
    "tooltip":"Create array of numbers by setting start, end and step length.",
    "name":"Array Range",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_Gradient_Palette":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "tooltip":"",
        "name":"Custom positions"
      },
      {
        "tooltip":"Array of number indicating color position (0 - 1).",
        "name":"Positions"
      },
      {
        "display_data":[
          "RGB",
          "HSV",
          "Hard"
        ],
        "tooltip":"",
        "name":"Blending"
      }
    ],
    "tooltip":"Create gradient from palette.",
    "name":"Palette to Gradient",
    "outputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      }
    ]
  },
  "Node_Frame":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Label size"
      },
      {
        "tooltip":"",
        "name":"Blend label"
      }
    ],
    "tooltip":"Create frame surrounding nodes.",
    "name":"Frame",
    "outputs":[
    ]
  },
  "Node_3D_Light_Point":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Intensity"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Cast Shadow"
      },
      {
        "tooltip":"",
        "name":"Shadow Map Size"
      },
      {
        "tooltip":"",
        "name":"Shadow Bias"
      }
    ],
    "tooltip":"",
    "name":"Point Light",
    "outputs":[
      {
        "tooltip":"",
        "name":"Light"
      }
    ]
  },
  "Node_Group_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
    ]
  },
  "Node_Iterate":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Repeat"
      }
    ],
    "tooltip":"Create group that reuse output as input repeatedly in one frame.",
    "name":"Loop",
    "outputs":[
    ]
  },
  "Node_Feedback":{
    "inputs":[
    ],
    "tooltip":"Create group that reuse output from last frame to the current one.",
    "name":"Feedback",
    "outputs":[
    ]
  },
  "Node_Padding":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "display_data":[
          "Empty",
          "Solid"
        ],
        "tooltip":"",
        "name":"Fill method"
      },
      {
        "tooltip":"",
        "name":"Fill color"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Pad out",
          "Pad to size"
        ],
        "tooltip":"",
        "name":"Pad mode"
      },
      {
        "tooltip":"",
        "name":"Target dimension"
      },
      {
        "display_data":[
          697.0,
          697.0,
          697.0
        ],
        "tooltip":"",
        "name":"Horizontal alignment"
      },
      {
        "display_data":[
          833.0,
          833.0,
          833.0
        ],
        "tooltip":"",
        "name":"Vertical alignment"
      }
    ],
    "tooltip":"Make image bigger by adding space in 4 directions.",
    "name":"Padding",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_3D_Camera":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"FOV"
      },
      {
        "tooltip":"",
        "name":"Clipping Distance"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "display_data":[
          "Perspective",
          "Orthographic"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Scene"
      },
      {
        "tooltip":"",
        "name":"Ambient Light"
      },
      {
        "tooltip":"",
        "name":"Show Background"
      },
      {
        "display_data":[
          "None",
          "CW",
          "CCW"
        ],
        "tooltip":"",
        "name":"Backface Culling"
      },
      {
        "tooltip":"",
        "name":"Orthographic Scale"
      },
      {
        "display_data":[
          "Position + Rotation",
          "Position + Lookat",
          "Lookat + Rotation"
        ],
        "tooltip":"",
        "name":"Postioning Mode"
      },
      {
        "tooltip":"",
        "name":"Lookat Position"
      },
      {
        "tooltip":"",
        "name":"Roll"
      },
      {
        "tooltip":"",
        "name":"Horizontal Angle"
      },
      {
        "tooltip":"",
        "name":"Vertical Angle"
      },
      {
        "tooltip":"",
        "name":"Distance"
      },
      {
        "tooltip":"",
        "name":"Gamma Adjust"
      },
      {
        "tooltip":"",
        "name":"Environment Texture"
      },
      {
        "tooltip":"",
        "name":"Ambient Occlusion"
      },
      {
        "tooltip":"",
        "name":"AO Radius"
      },
      {
        "tooltip":"",
        "name":"AO Bias"
      },
      {
        "tooltip":"",
        "name":"AO Strength"
      },
      {
        "tooltip":"",
        "name":"Round Normal"
      }
    ],
    "tooltip":"",
    "name":"3D Camera",
    "outputs":[
      {
        "tooltip":"",
        "name":"Rendered"
      },
      {
        "tooltip":"",
        "name":"Normal"
      },
      {
        "tooltip":"",
        "name":"Depth"
      }
    ]
  },
  "Node_PB_Box_Split":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "display_data":[
          "Ratio",
          "Fix Left",
          "Fix Right"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Ratio"
      },
      {
        "tooltip":"",
        "name":"Fix width"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Mirror"
      }
    ],
    "tooltip":"",
    "name":"Split",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox Left"
      },
      {
        "tooltip":"",
        "name":"pBox Right"
      }
    ]
  },
  "Node_Rigid_Group":{
    "inputs":[
    ],
    "tooltip":"Create group for rigidbody simulation.",
    "name":"RigidSim",
    "outputs":[
    ]
  },
  "Node_Fluid_Repulse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "display_data":[
          "Override",
          "Add"
        ],
        "tooltip":"",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Repulse",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_PB_Fx_Stack":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "display_data":[
          653.0,
          653.0,
          653.0,
          653.0
        ],
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Highlight"
      },
      {
        "tooltip":"",
        "name":"Highlight Color"
      },
      {
        "tooltip":"",
        "name":"Invert"
      }
    ],
    "tooltip":"",
    "name":"Stack",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Blend":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Foreground"
      },
      {
        "display_data":[
          "Normal",
          "Add",
          "Subtract",
          "Multiply",
          "Screen",
          "Overlay",
          "Hue",
          "Saturation",
          "Luminosity",
          "Maximum",
          "Minimum",
          "Replace",
          "Difference"
        ],
        "tooltip":"",
        "name":"Blend mode"
      },
      {
        "tooltip":"",
        "name":"Opacity"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "display_data":[
          "None",
          "Stretch",
          "Tile"
        ],
        "tooltip":"",
        "name":"Fill mode"
      },
      {
        "display_data":[
          "Background",
          "Forground",
          "Mask",
          "Maximum",
          "Constant"
        ],
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"",
        "name":"Constant dimension"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Preserve alpha"
      },
      {
        "display_data":[
          697.0,
          697.0,
          697.0
        ],
        "tooltip":"",
        "name":"Horizontal Align"
      },
      {
        "display_data":[
          833.0,
          833.0,
          833.0
        ],
        "tooltip":"",
        "name":"Vertical Align"
      }
    ],
    "tooltip":"Blend 2 images using different blendmodes.",
    "name":"Blend",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Rigid_Global":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Gravity"
      }
    ],
    "tooltip":"",
    "name":"RigidSim Global",
    "outputs":[
    ]
  },
  "Node_Grid_Tri":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Gap"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Tile color"
      },
      {
        "tooltip":"",
        "name":"Gap color"
      },
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "display_data":[
          "Colored tile",
          "Height map",
          "Texture grid",
          "Texture sample"
        ],
        "tooltip":"",
        "name":"Render type"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"Generate triangular grid pattern.",
    "name":"Triangular Grid",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Switch":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Default value"
      }
    ],
    "tooltip":"Given an index, output value base on index matching.",
    "name":"Switch",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "__Node_3D_Displace":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      },
      {
        "tooltip":"",
        "name":"Displacement map"
      },
      {
        "tooltip":"",
        "name":"Strength"
      }
    ],
    "tooltip":"",
    "name":"3D Displace",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Counter":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Start"
      },
      {
        "tooltip":"",
        "name":"Speed"
      },
      {
        "display_data":[
          "Frame count",
          "Animation progress"
        ],
        "tooltip":"Counting mode\r\n    - Frame count: Count value up\/down per frame.\r\n    - Animation progress: Count from 0 (first frame) to 1 (last frame). ",
        "name":"Mode"
      }
    ],
    "tooltip":"Output current frame as frame index, or animation progress (0 - 1).",
    "name":"Frame Index",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ]
  },
  "Node_Grid_Noise":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Texture sample"
      },
      {
        "display_data":[
          "x",
          "y"
        ],
        "tooltip":"",
        "name":"Shift axis"
      },
      {
        "display_data":[
          "Greyscale",
          "RGB",
          "HSV"
        ],
        "tooltip":"",
        "name":"Color mode"
      },
      {
        "tooltip":"",
        "name":"Color R range"
      },
      {
        "tooltip":"",
        "name":"Color G range"
      },
      {
        "tooltip":"",
        "name":"Color B range"
      }
    ],
    "tooltip":"",
    "name":"Grid Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Path_Array":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Path Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path array"
      }
    ]
  },
  "Node_Atlas_Get":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Atlas"
      }
    ],
    "tooltip":"",
    "name":"Atlas Get",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      }
    ]
  },
  "Node_Texture_Remap":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Displacement map where red retermine the X position, and green determine the Y position.",
        "name":"RG Map"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Surface",
          "RG Map"
        ],
        "tooltip":"",
        "name":"Dimension"
      }
    ],
    "tooltip":"Remap image using texture map. Where red channel control x position and green channel control y position.",
    "name":"Texture Remap",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Fx_Strip":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Axis"
      }
    ],
    "tooltip":"",
    "name":"Strip",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Greyscale":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      },
      {
        "tooltip":"",
        "name":"Contrast"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Convert color image to greyscale.",
    "name":"Greyscale",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Pin":{
    "inputs":[
      {
        "tooltip":"",
        "name":"In"
      }
    ],
    "tooltip":"Craete pin to organize your connection. Can be create by double clicking on a connection line.",
    "name":"Pin",
    "outputs":[
      {
        "tooltip":"",
        "name":"Out"
      }
    ]
  },
  "__Node_3D_Transform":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"3D object"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"",
    "name":"3D Transform",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      }
    ]
  },
  "Node_Strand_Render":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "tooltip":"",
        "name":"Thickness"
      },
      {
        "tooltip":"",
        "name":"Thickness over length"
      },
      {
        "tooltip":"",
        "name":"Random color"
      },
      {
        "tooltip":"",
        "name":"Color over length"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"Render extra strands between the real strands.",
        "name":"Child"
      }
    ],
    "tooltip":"",
    "name":"Strand Render",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Fx_Highlight":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Highlight Area"
      },
      {
        "tooltip":"",
        "name":"Light Color"
      },
      {
        "tooltip":"",
        "name":"Shadow Color"
      },
      {
        "tooltip":"",
        "name":"Roughness"
      },
      {
        "tooltip":"",
        "name":"Roughness Scale"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"",
    "name":"Highlight",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Array":{
    "inputs":[
      {
        "display_data":[
          "Any",
          "Surface",
          "Number",
          "Color",
          "Text"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Spread array"
      }
    ],
    "tooltip":"",
    "name":"Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_PB_Draw_Round_Rectangle":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "display_data":[
          "Uniform",
          "Per Corner"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Corner Radius"
      },
      {
        "tooltip":"",
        "name":"Corner Radius"
      },
      {
        "tooltip":"",
        "name":"Relative"
      },
      {
        "tooltip":"",
        "name":"Cut Corner"
      }
    ],
    "tooltip":"",
    "name":"Round Rectangle",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Path_Blend":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path 1"
      },
      {
        "tooltip":"",
        "name":"Path 2"
      },
      {
        "tooltip":"",
        "name":"Ratio"
      }
    ],
    "tooltip":"Blend between 2 paths.",
    "name":"Blend Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Shell":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Script"
      }
    ],
    "tooltip":"Execute shell script.",
    "name":"Execute Shell",
    "outputs":[
    ]
  },
  "Node_Struct":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Struct",
    "outputs":[
      {
        "tooltip":"",
        "name":"Struct"
      }
    ]
  },
  "Node_Group":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Group",
    "outputs":[
    ]
  },
  "Node_PCX_fn_var":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Default Value"
      }
    ],
    "tooltip":"",
    "name":"Fn Variable",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Palette":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "tooltip":"",
        "name":"Trim range"
      }
    ],
    "tooltip":"",
    "name":"Palette",
    "outputs":[
      {
        "tooltip":"",
        "name":"Palette"
      }
    ]
  },
  "Node_Group_Input":{
    "inputs":[
      {
        "display_data":[
          "Default",
          "Range",
          "Rotation",
          "Rotation range",
          "Slider",
          "Slider range",
          "Padding",
          "Vector",
          "Vector range",
          "Area",
          "Enum button",
          "Menu scroll"
        ],
        "tooltip":"",
        "name":"Display type"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "display_data":[
          "Integer",
          "Float",
          "Boolean",
          "Color",
          "Surface",
          "File Path",
          "Curve",
          "Text",
          "Object",
          "Node",
          "3D object",
          "Any",
          "Path",
          "Particle",
          "Rigidbody Object",
          "Fluid Domain",
          "Struct",
          "Strands",
          "Mesh",
          "Trigger"
        ],
        "tooltip":"",
        "name":"Input type"
      },
      {
        "tooltip":"",
        "name":"Enum label"
      },
      {
        "display_data":[
          "2",
          "3",
          "4"
        ],
        "tooltip":"",
        "name":"Vector size"
      },
      {
        "tooltip":"",
        "name":"Order"
      },
      {
        "tooltip":"",
        "name":"Display preview gizmo"
      },
      {
        "tooltip":"",
        "name":"Step"
      },
      {
        "tooltip":"",
        "name":"Button Label"
      }
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value"
      }
    ]
  },
  "Node_Scatter":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "display_data":[
          "Area",
          "Border",
          "Map",
          "Direct Data",
          "Path",
          "Full image + Tile"
        ],
        "tooltip":"",
        "name":"Distribution"
      },
      {
        "tooltip":"Rotate each copy to face the spawn center.",
        "name":"Point at center"
      },
      {
        "tooltip":"",
        "name":"Uniform scaling"
      },
      {
        "display_data":[
          "Uniform",
          "Random"
        ],
        "tooltip":"",
        "name":"Scatter"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Random blend"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Distribution map"
      },
      {
        "tooltip":"",
        "name":"Distribution data"
      },
      {
        "display_data":[
          "Spread output",
          "Mixed"
        ],
        "tooltip":"What to do when input array of surface.\r\n- Spread: Create Array of output each scattering single surface.\r\n- Mixed: Create single output scattering multiple images.",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Multiply alpha"
      },
      {
        "tooltip":"Apply the third value in each data point (if exist) on given properties.",
        "name":"Use value"
      },
      {
        "display_data":[
          "Normal",
          "Add"
        ],
        "tooltip":"",
        "name":"Blend mode"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Rotate along path"
      },
      {
        "tooltip":"",
        "name":"Path Shift"
      },
      {
        "tooltip":"",
        "name":"Scatter Distance"
      }
    ],
    "tooltip":"Scatter image randomly multiple times.",
    "name":"Scatter",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas data"
      }
    ]
  },
  "Node_PB_Fx_Brick":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Dissolve"
      },
      {
        "tooltip":"",
        "name":"Detail"
      },
      {
        "tooltip":"",
        "name":"Dissolve Scale"
      }
    ],
    "tooltip":"",
    "name":"Brick",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_9Slice":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Splice"
      },
      {
        "display_data":[
          "Scale",
          "Repeat"
        ],
        "tooltip":"",
        "name":"Filling modes"
      }
    ],
    "tooltip":"Cut image into 3x3 parts, and scale\/repeat only the middle part.",
    "name":"Nine Slice",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Scale_Algo":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "Scale2x",
          "Scale3x"
        ],
        "tooltip":"",
        "name":"Algorithm"
      },
      {
        "tooltip":"",
        "name":"Tolerance"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Scale image using scale2x, scale3x algorithm.",
    "name":"Scale Algorithm",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Text_File_Write":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Content"
      }
    ],
    "tooltip":"Save text as a .txt file.",
    "name":"Text File Out",
    "outputs":[
    ]
  },
  "Node_PB_Draw_Blob":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      },
      {
        "tooltip":"",
        "name":"Top"
      },
      {
        "tooltip":"",
        "name":"Bottom"
      }
    ],
    "tooltip":"",
    "name":"Blob",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Vector2":{
    "inputs":[
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"Integer"
      },
      {
        "display_data":[
          "Number",
          "Coordinate"
        ],
        "tooltip":"",
        "name":"Display"
      },
      {
        "tooltip":"",
        "name":"Reset to center"
      }
    ],
    "tooltip":"",
    "name":"Vector2",
    "outputs":[
      {
        "tooltip":"",
        "name":"Vector"
      }
    ]
  },
  "Node_SDF":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Inside",
          "Outside",
          "Both"
        ],
        "tooltip":"",
        "name":"Side"
      },
      {
        "tooltip":"",
        "name":"Max distance"
      }
    ],
    "tooltip":"Create signed distance field using jump flooding algorithm.",
    "name":"SDF",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Path_Trim":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Range"
      }
    ],
    "tooltip":"",
    "name":"Trim Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_String_Regex_Match":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Regex"
      }
    ],
    "tooltip":"",
    "name":"RegEx Match",
    "outputs":[
      {
        "tooltip":"",
        "name":"Results"
      }
    ]
  },
  "Node_Iterator_Each_Input":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value in"
      }
    ]
  },
  "Node_Color_Data":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Normalize"
      }
    ],
    "tooltip":"Get data (rgb, hsv, brightness) from color.",
    "name":"Color Data",
    "outputs":[
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Hue"
      },
      {
        "tooltip":"",
        "name":"Saturation"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      }
    ]
  },
  "Node_String_Regex_Search":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      },
      {
        "tooltip":"",
        "name":"Regex"
      }
    ],
    "tooltip":"",
    "name":"RegEx Search",
    "outputs":[
      {
        "tooltip":"",
        "name":"Results"
      }
    ]
  },
  "Node_Chromatic_Aberration":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply chromatic aberration effect to the image.",
    "name":"Chromatic Aberration",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_3D_Scene":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"3D Scene",
    "outputs":[
      {
        "tooltip":"",
        "name":"Scene"
      }
    ]
  },
  "Node_DynaSurf_Out_Height":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Height"
      }
    ],
    "tooltip":"",
    "name":"getHeight",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_PB_Box_Mirror":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Horizontal"
      },
      {
        "tooltip":"",
        "name":"Vertical"
      }
    ],
    "tooltip":"",
    "name":"Mirror",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Tunnel_In":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Name"
      },
      {
        "tooltip":"",
        "name":"Value in"
      }
    ],
    "tooltip":"Create tunnel for sending value based on key matching.",
    "name":"Tunnel In",
    "outputs":[
    ]
  },
  "Node_Array_Length":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"",
    "name":"Array Length",
    "outputs":[
      {
        "tooltip":"",
        "name":"Size"
      }
    ]
  },
  "Node_Sequence_Anim":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Speed"
      },
      {
        "tooltip":"",
        "name":"Sequence"
      },
      {
        "display_data":[
          "Hold",
          "Loop",
          "Ping Pong",
          "Empty"
        ],
        "tooltip":"",
        "name":"Overflow"
      }
    ],
    "tooltip":"Convert array of images into animation.",
    "name":"Array to Anim",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_PB_Layer":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer"
      }
    ],
    "tooltip":"",
    "name":"Layer",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_ASE_layer":{
    "inputs":[
      {
        "tooltip":"",
        "name":"ASE data"
      },
      {
        "tooltip":"",
        "name":"Use cel dimension"
      }
    ],
    "tooltip":"",
    "name":"ASE Layer",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Time_Remap":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Map"
      },
      {
        "tooltip":"",
        "name":"Max life"
      },
      {
        "tooltip":"",
        "name":"Loop"
      }
    ],
    "tooltip":"Remap image using texture as time map. Where brighter pixel means using pixel from an older frame.",
    "name":"Time Remap",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Array_Sort":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array in"
      },
      {
        "display_data":[
          "Ascending",
          "Descending"
        ],
        "tooltip":"",
        "name":"Order"
      }
    ],
    "tooltip":"",
    "name":"Sort Number",
    "outputs":[
      {
        "tooltip":"",
        "name":"Sorted array"
      },
      {
        "tooltip":"",
        "name":"Sorted index"
      }
    ]
  },
  "Node_Checker":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Color 1"
      },
      {
        "tooltip":"",
        "name":"Color 2"
      }
    ],
    "tooltip":"Genearte checkerboard pattern.",
    "name":"Checker",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Path_Separate_Folder":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Keep extension"
      }
    ],
    "tooltip":"",
    "name":"Separate File Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Directory"
      },
      {
        "tooltip":"",
        "name":"File Name"
      }
    ]
  },
  "Node_Blur_Bokeh":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Create bokeh effect. Blur lighter color in a lens-like manner.",
    "name":"Lens Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_VFX_Attract":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      }
    ],
    "tooltip":"",
    "name":"Attract",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Combine_RGB":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "display_data":[
          "Brightness",
          "Channel value"
        ],
        "tooltip":"",
        "name":"Sampling type"
      }
    ],
    "tooltip":"Combine 4 image in to one. Each image use to control RGBA channel.",
    "name":"RGBA Combine",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_String_Merge":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text A"
      },
      {
        "tooltip":"",
        "name":"Text B"
      }
    ],
    "tooltip":"",
    "name":"Combine Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_Display_Image":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ],
    "tooltip":"Display image on the graph.",
    "name":"Display Image",
    "outputs":[
    ]
  },
  "Node_Fluid_Vortex":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Attraction"
      },
      {
        "display_data":[
          "Override",
          "Add"
        ],
        "tooltip":"",
        "name":"Mode"
      }
    ],
    "tooltip":"",
    "name":"Vortex",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Feedback_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      0.0,
      {
        "tooltip":"",
        "name":"Feedback loop"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
    ]
  },
  "Node_Stack":{
    "inputs":[
      {
        "display_data":[
          "Horizontal",
          "Vertical",
          "On top"
        ],
        "tooltip":"",
        "name":"Axis"
      },
      {
        "display_data":[
          "Start",
          "Middle",
          "End"
        ],
        "tooltip":"",
        "name":"Align"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      }
    ],
    "tooltip":"Place image next to each other linearly, or on top of each other.",
    "name":"Stack",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas data"
      }
    ]
  },
  "Node_Fluid_Domain_Queue":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Queue Domain",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_PB_Draw_Diamond":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      }
    ],
    "tooltip":"",
    "name":"Diamond",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Iterator_Each_Length":{
    "inputs":[
    ],
    "tooltip":"",
    "name":"Array Length",
    "outputs":[
      {
        "tooltip":"",
        "name":"Length"
      }
    ]
  },
  "Node_PB_Fx_Radial":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Amount"
      }
    ],
    "tooltip":"",
    "name":"Radial",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_3D_Mesh_Cylinder":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Side"
      },
      {
        "tooltip":"",
        "name":"Material Top"
      },
      {
        "tooltip":"",
        "name":"Material Bottom"
      },
      {
        "tooltip":"",
        "name":"Material Side"
      },
      {
        "tooltip":"",
        "name":"Smooth Side"
      }
    ],
    "tooltip":"",
    "name":"3D Cylinder",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_WAV_File_Read":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Sync lenght"
      },
      {
        "tooltip":"",
        "name":"Mono"
      }
    ],
    "tooltip":"Load wav audio file.",
    "name":"WAV File In",
    "outputs":[
      {
        "tooltip":"",
        "name":"Data"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Sample rate"
      },
      {
        "tooltip":"",
        "name":"Channels"
      },
      {
        "tooltip":"",
        "name":"Duration (s)"
      }
    ]
  },
  "Node_Json_File_Read":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ],
    "tooltip":"Load .json file using keys.",
    "name":"JSON File In",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Struct"
      }
    ]
  },
  "Node_Rigid_Force_Apply":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Object"
      },
      {
        "display_data":[
          "Constant",
          "Impulse",
          "Torque",
          "Explode"
        ],
        "tooltip":"",
        "name":"Force type"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Torque"
      },
      {
        "tooltip":"Frame index to apply force.",
        "name":"Apply frame"
      },
      {
        "tooltip":"",
        "name":"Force"
      },
      {
        "display_data":[
          "Global",
          "Local"
        ],
        "tooltip":"",
        "name":"Scope"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Range"
      }
    ],
    "tooltip":"",
    "name":"Apply Force",
    "outputs":[
      {
        "tooltip":"",
        "name":"Object"
      }
    ]
  },
  "Node_Path_Sample":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Ratio"
      },
      {
        "display_data":[
          "Loop",
          "Ping pong"
        ],
        "tooltip":"",
        "name":"Type"
      }
    ],
    "tooltip":"Sample a 2D position from a path",
    "name":"Sample Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Direction"
      }
    ]
  },
  "Node_PB_Box_Contract":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "display_data":[
          "Ratio",
          "Fix"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Ratio"
      },
      {
        "tooltip":"",
        "name":"Fix Width"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Axis"
      }
    ],
    "tooltip":"",
    "name":"Contract",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox Center"
      },
      {
        "tooltip":"",
        "name":"pBox Side"
      }
    ]
  },
  "Node_Dither":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Palette"
      },
      {
        "display_data":[
          "2 x 2 Bayer",
          "4 x 4 Bayer",
          "8 x 8 Bayer",
          "Custom"
        ],
        "tooltip":"",
        "name":"Pattern"
      },
      {
        "tooltip":"",
        "name":"Dither map"
      },
      {
        "tooltip":"",
        "name":"Contrast"
      },
      {
        "tooltip":"",
        "name":"Contrast map"
      },
      {
        "display_data":[
          "Color",
          "Alpha"
        ],
        "tooltip":"",
        "name":"Mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Reduce color and use dithering to preserve original color.",
    "name":"Dither",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Iterator_Sort_Input":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value in"
      }
    ],
    "tooltip":"",
    "name":"Sort Input",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value in"
      }
    ]
  },
  "Node_Atlas_Set":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Atlas"
      },
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      }
    ],
    "tooltip":"",
    "name":"Atlas Set",
    "outputs":[
      {
        "tooltip":"",
        "name":"Atlas"
      }
    ]
  },
  "Node_Edge_Detect":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "Sobel",
          "Prewitt",
          "Laplacian",
          "Neighbor max diff"
        ],
        "tooltip":"",
        "name":"Algorithm"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Edge detect by applying Sobel, Prewitt, or Laplacian kernel.",
    "name":"Edge Detect",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Color_adjust":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      },
      {
        "tooltip":"",
        "name":"Contrast"
      },
      {
        "tooltip":"",
        "name":"Hue"
      },
      {
        "tooltip":"",
        "name":"Saturation"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Blend alpha"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Exposure"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "display_data":[
          "Surface",
          "Color"
        ],
        "tooltip":"",
        "name":"Input Type"
      },
      {
        "tooltip":"",
        "name":"Color"
      }
    ],
    "tooltip":"Adjust brightness, contrast, hue, saturation, value, alpha, and blend image with color.",
    "name":"Color Adjust",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Color out"
      }
    ]
  },
  "Node_Path_Anchor":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Postion"
      },
      {
        "tooltip":"",
        "name":"Control point 1"
      },
      {
        "tooltip":"",
        "name":"Control point 2"
      },
      {
        "tooltip":"",
        "name":"Mirror control point"
      }
    ],
    "tooltip":"",
    "name":"Path Anchor",
    "outputs":[
      {
        "tooltip":"",
        "name":"Anchor"
      }
    ]
  },
  "Node_WAV_File_Write":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Audio Data"
      },
      {
        "tooltip":"",
        "name":"Sample"
      },
      {
        "display_data":[
          "8 bit positive",
          "16 bit integer"
        ],
        "tooltip":"",
        "name":"Bit Depth"
      },
      {
        "tooltip":"",
        "name":"Remap Data"
      },
      {
        "tooltip":"",
        "name":"Data Range"
      }
    ],
    "tooltip":"Save wav audio file.",
    "name":"WAV File Out",
    "outputs":[
    ]
  },
  "Node_Array_Add":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Spread array"
      }
    ],
    "tooltip":"",
    "name":"Array Add",
    "outputs":[
      {
        "tooltip":"",
        "name":"Output"
      }
    ]
  },
  "Node_Outline":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"Blend outline color with the original color.",
        "name":"Blend"
      },
      {
        "tooltip":"",
        "name":"Blend alpha"
      },
      {
        "display_data":[
          "Inside",
          "Outside"
        ],
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Anti alising"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"Shift outline inside, outside the shape.",
        "name":"Start"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Add border to the image.",
    "name":"Outline",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Outline"
      }
    ]
  },
  "__Node_3D_Export":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Vertex data"
      },
      {
        "tooltip":"Export location without '.obj' extension.",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Export texture"
      }
    ],
    "tooltip":"",
    "name":"3D Export",
    "outputs":[
    ]
  },
  "Node_Surface_From_Buffer":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Buffer"
      }
    ],
    "tooltip":"Create surface from buffer.",
    "name":"Surface from Buffer",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ]
  },
  "__Node_3D_Cylinder":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Sides"
      },
      {
        "tooltip":"",
        "name":"Thickness"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Textures top"
      },
      {
        "tooltip":"",
        "name":"Textures bottom"
      },
      {
        "tooltip":"",
        "name":"Textures side"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Taper"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      }
    ],
    "tooltip":"",
    "name":"3D Cylinder",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Strand_Create":{
    "inputs":[
      {
        "display_data":[
          "Point",
          "Path",
          "Mesh"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"How many strands to generate.",
        "name":"Density"
      },
      {
        "tooltip":"",
        "name":"Length"
      },
      {
        "tooltip":"",
        "name":"Segment"
      },
      {
        "tooltip":"Length preservation, the higher the value the easier it is to stretch each segment.",
        "name":"Elasticity"
      },
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "display_data":[
          "Inner",
          "Outer",
          "Both"
        ],
        "tooltip":"",
        "name":"Side"
      },
      {
        "tooltip":"Angular stiffness, the higher the value the easier it is to bend each segment.",
        "name":"Spring"
      },
      {
        "tooltip":"The ability to keep its original shape.",
        "name":"Structure"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Curl frequency"
      },
      {
        "tooltip":"",
        "name":"Curliness"
      },
      {
        "tooltip":"",
        "name":"Mesh"
      },
      {
        "display_data":[
          "Uniform",
          "Random"
        ],
        "tooltip":"",
        "name":"Distribution"
      },
      {
        "tooltip":"Prevent strand reseting to apply manual modification. Unbaking will remove all changes.",
        "name":"Bake hair"
      },
      {
        "tooltip":"",
        "name":"View fix hair"
      },
      {
        "tooltip":"The force required to break strand from its root. Set to -1 to make strand infinitely strong.",
        "name":"Root strength"
      }
    ],
    "tooltip":"",
    "name":"Strand Create",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Blur_Simple":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Blur mask"
      },
      {
        "tooltip":"Replace all color while keeping the alpha. Used to\nfix grey outline when bluring transparent pixel.",
        "name":"Override color"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur image using simpler algorithm. Allowing for variable blur strength.",
    "name":"Simple Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Trail":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Max life"
      },
      {
        "tooltip":"",
        "name":"Loop"
      },
      {
        "tooltip":"Maximum distance to search for movement, set to -1 to search the entire image.",
        "name":"Max distance"
      },
      {
        "tooltip":"Make trail track pixels of the same color, instead of the closet pixels.",
        "name":"Match color"
      },
      {
        "tooltip":"Blend color between two pixel smoothly.",
        "name":"Blend color"
      },
      {
        "tooltip":"",
        "name":"Alpha over life"
      }
    ],
    "tooltip":"Blend animation by filling in the pixel 'in-between' two or more frames.",
    "name":"Trail",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Trail UV"
      }
    ]
  },
  "Node_PB_Draw_Ellipse":{
    "inputs":[
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Apply Mask"
      }
    ],
    "tooltip":"",
    "name":"Ellipse",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Color_HSV":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Hue"
      },
      {
        "tooltip":"",
        "name":"Saturation"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Normalized"
      }
    ],
    "tooltip":"Create color from HSV value.",
    "name":"HSV Color",
    "outputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Path_Wave":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Frequency"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Smooth"
      }
    ],
    "tooltip":"",
    "name":"Wave Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Lua_Global":{
    "inputs":[
      {
        "tooltip":14.0,
        "name":"Lua code"
      },
      {
        "display_data":[
          "On start",
          "Every frame"
        ],
        "tooltip":"",
        "name":"Run order"
      },
      {
        "tooltip":"",
        "name":"Execution thread"
      }
    ],
    "tooltip":"",
    "name":"Lua Global",
    "outputs":[
      {
        "tooltip":"",
        "name":"Execution thread"
      }
    ]
  },
  "Node_Cellular":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "display_data":[
          "Point",
          "Edge",
          "Cell",
          "Crystal"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"Contrast"
      },
      {
        "display_data":[
          "Uniform",
          "Radial"
        ],
        "tooltip":"",
        "name":"Pattern"
      },
      {
        "tooltip":"",
        "name":"Middle"
      },
      {
        "tooltip":"",
        "name":"Radial scale"
      },
      {
        "tooltip":"",
        "name":"Radial shatter"
      },
      {
        "tooltip":"",
        "name":"Colored"
      }
    ],
    "tooltip":"Generate voronoi pattern.",
    "name":"Cellular Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_DynaSurf_Out":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface"
      },
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"sx"
      },
      {
        "tooltip":"",
        "name":"sy"
      },
      {
        "tooltip":"",
        "name":"angle"
      },
      {
        "tooltip":"",
        "name":"color"
      },
      {
        "tooltip":"",
        "name":"alpha"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Composite":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Padding"
      },
      {
        "display_data":[
          "First surface",
          "Largest surface",
          "Constant"
        ],
        "tooltip":"",
        "name":"Output dimension"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      }
    ],
    "tooltip":"Combine multiple images with controllable position, rotation, scale.",
    "name":"Composite",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Atlas data"
      }
    ]
  },
  "Node_Audio_Loudness":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Audio Data"
      }
    ],
    "tooltip":"",
    "name":"Audio Volume",
    "outputs":[
      {
        "tooltip":"",
        "name":"Loudness"
      }
    ]
  },
  "Node_VFX_Destroy":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      }
    ],
    "tooltip":"",
    "name":"Destroy",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Color_RGB":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Normalized"
      }
    ],
    "tooltip":"Create color from RGB value.",
    "name":"RGB Color",
    "outputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Twirl":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Center"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Twist the image around a mid point.",
    "name":"Twirl",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Number":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Integer"
      },
      {
        "display_data":[
          "Number",
          "Slider",
          "Rotator"
        ],
        "tooltip":"",
        "name":"Display"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Step"
      }
    ],
    "tooltip":"",
    "name":"Number",
    "outputs":[
      {
        "tooltip":"",
        "name":"Number"
      }
    ]
  },
  "Node_HSV_Channel":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      }
    ],
    "tooltip":"Extract HSVA channel on an image, each channel becomes its own image.",
    "name":"HSV Extract",
    "outputs":[
      {
        "tooltip":"",
        "name":"Hue"
      },
      {
        "tooltip":"",
        "name":"Saturation"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      }
    ]
  },
  "Node_Blur_Directional":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Direction"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Blur image given a direction.",
    "name":"Directional Blur",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Local_Analyze":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "display_data":[
          "Average (Blur)",
          "Maximum",
          "Minimum"
        ],
        "tooltip":"",
        "name":"Algorithm"
      },
      {
        "tooltip":"",
        "name":"Size"
      },
      {
        "display_data":[
          "Empty",
          "Clamp",
          "Repeat"
        ],
        "tooltip":"How to deal with pixel outside the surface.\n    - Empty: Use empty pixel\n    - Clamp: Repeat edge pixel\n    - Repeat: Repeat texture.",
        "name":"Oversample mode"
      },
      {
        "display_data":[
          "Square",
          "Circle",
          "Diamond"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Apply non-linear operation (minimum, maximum) on each pixel locally.",
    "name":"Local Analyze",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Repeat":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "display_data":[
          "Linear",
          "Grid",
          "Circular"
        ],
        "tooltip":"",
        "name":"Pattern"
      },
      {
        "tooltip":"",
        "name":"Repeat position"
      },
      {
        "tooltip":"",
        "name":"Repeat rotation"
      },
      {
        "tooltip":"",
        "name":"Scale multiply"
      },
      {
        "tooltip":"",
        "name":"Angle range"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Start position"
      },
      {
        "tooltip":"",
        "name":"Scale over copy"
      },
      {
        "tooltip":"Make each copy follow along path.",
        "name":"Path"
      },
      {
        "tooltip":"Range of the path to follow.",
        "name":"Path range"
      },
      {
        "tooltip":"",
        "name":"Path shift"
      },
      {
        "tooltip":"",
        "name":"Color over copy"
      },
      {
        "tooltip":"",
        "name":"Alpha over copy"
      },
      {
        "display_data":[
          "Order",
          "Random",
          "Spread"
        ],
        "tooltip":"Whether to select image from an array in order, at random, pr spread or each image to one output.",
        "name":"Array select"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Column"
      },
      {
        "tooltip":"",
        "name":"Column shift"
      },
      {
        "tooltip":"",
        "name":"Animator midpoint"
      },
      {
        "tooltip":"",
        "name":"Animator range"
      },
      {
        "tooltip":"",
        "name":"Animator position"
      },
      {
        "tooltip":"",
        "name":"Animator rotation"
      },
      {
        "tooltip":"",
        "name":"Animator scale"
      },
      {
        "tooltip":"",
        "name":"Animator falloff"
      },
      {
        "display_data":[
          "None",
          "X",
          "Y"
        ],
        "tooltip":"Place each copy next to each other, taking surface dimension into account.",
        "name":"Stack"
      },
      {
        "tooltip":"",
        "name":"Animator blend"
      },
      {
        "tooltip":"",
        "name":"Animator alpha"
      }
    ],
    "tooltip":"Repeat image multiple times linearly, or in grid pattern.",
    "name":"Repeat",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Math":{
    "inputs":[
      {
        "display_data":[
          "Add",
          "Subtract",
          "Multiply",
          "Divide",
          "Power",
          "Root",
          "Sin",
          "Cos",
          "Tan",
          "Modulo",
          "Floor",
          "Ceil",
          "Round",
          "Lerp",
          "Abs"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"a"
      },
      {
        "tooltip":"",
        "name":"b"
      },
      {
        "tooltip":"",
        "name":"Degree angle"
      },
      {
        "tooltip":"",
        "name":"To integer"
      },
      {
        "tooltip":"",
        "name":"Amount"
      }
    ],
    "tooltip":"",
    "name":"Math",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Vector_Dot":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point 1"
      },
      {
        "tooltip":"",
        "name":"Point 2"
      }
    ],
    "tooltip":"",
    "name":"Dot product",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Line":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Segment"
      },
      {
        "tooltip":"",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Wiggle"
      },
      {
        "tooltip":"",
        "name":"Random seed"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"Draw line along path.",
        "name":"Path"
      },
      {
        "tooltip":"Range of the path to draw.",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "tooltip":"",
        "name":"Color over length"
      },
      {
        "tooltip":"",
        "name":"Width over length"
      },
      {
        "tooltip":"Apply the full 'width over length' to the trimmed path.",
        "name":"Span width over path"
      },
      {
        "tooltip":"",
        "name":"Round cap"
      },
      {
        "tooltip":"",
        "name":"Round segment"
      },
      {
        "tooltip":"Apply the full 'color over length' to the trimmed path.",
        "name":"Span color over path"
      },
      {
        "tooltip":"",
        "name":"Greyscale over width"
      },
      {
        "tooltip":"Render pixel perfect 1px line.",
        "name":"1px mode"
      },
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "tooltip":"Fix length of each segment instead of segment count.",
        "name":"Fix length"
      },
      {
        "tooltip":"",
        "name":"Segment length"
      },
      {
        "tooltip":"",
        "name":"Texture position"
      },
      {
        "tooltip":"",
        "name":"Texture rotation"
      },
      {
        "tooltip":"",
        "name":"Texture scale"
      }
    ],
    "tooltip":"Draw line on an image. Connect path data to it to draw line from path.",
    "name":"Line",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Fluid_Update":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"",
    "name":"Update Domain",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Array_Insert":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Index"
      },
      {
        "tooltip":"",
        "name":"Value"
      },
      {
        "tooltip":"",
        "name":"Spread array"
      }
    ],
    "tooltip":"",
    "name":"Array Insert",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_PB_Box_Transform":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Translate"
      }
    ],
    "tooltip":"",
    "name":"Transform",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Audio_Window":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Audio data"
      },
      {
        "tooltip":"Amount of bits to extract.",
        "name":"Width"
      },
      {
        "tooltip":"",
        "name":"Location"
      },
      {
        "display_data":[
          "Start",
          "Middle",
          "End"
        ],
        "tooltip":"",
        "name":"Cursor location"
      },
      {
        "tooltip":"",
        "name":"Step"
      },
      {
        "tooltip":"Set window cursor to match animation timeline.",
        "name":"Match timeline"
      }
    ],
    "tooltip":"Take a slice of an audio array based on the current frame.",
    "name":"Audio Window",
    "outputs":[
      {
        "tooltip":"",
        "name":"Bit Array"
      }
    ]
  },
  "Node_3D_Light_Directional":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Intensity"
      },
      {
        "tooltip":"",
        "name":"Cast Shadow"
      },
      {
        "tooltip":"",
        "name":"Shadow Map Size"
      },
      {
        "tooltip":"",
        "name":"Shadow Map Scale"
      },
      {
        "tooltip":"",
        "name":"Shadow Bias"
      }
    ],
    "tooltip":"",
    "name":"Directional Light",
    "outputs":[
      {
        "tooltip":"",
        "name":"Light"
      }
    ]
  },
  "Node_Array_Copy":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      },
      {
        "tooltip":"",
        "name":"Starting Index"
      },
      {
        "tooltip":"",
        "name":"Size"
      }
    ],
    "tooltip":"",
    "name":"Array Copy",
    "outputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ]
  },
  "Node_VFX_Repel":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      }
    ],
    "tooltip":"",
    "name":"Repel",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_Transform_Array":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Postion"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      }
    ],
    "tooltip":"",
    "name":"Transform Array",
    "outputs":[
      {
        "tooltip":"",
        "name":"Transform"
      }
    ]
  },
  "Node_Lua_Compute":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Function name"
      },
      {
        "display_data":[
          "Number",
          "String",
          "Struct"
        ],
        "tooltip":"",
        "name":"Return type"
      },
      {
        "tooltip":14.0,
        "name":"Lua code"
      },
      {
        "tooltip":"",
        "name":"Execution thread"
      },
      {
        "tooltip":"",
        "name":"Execute on frame"
      }
    ],
    "tooltip":"",
    "name":"Lua Compute",
    "outputs":[
      {
        "tooltip":"",
        "name":"Execution thread"
      },
      {
        "tooltip":"",
        "name":"Return value"
      }
    ]
  },
  "Node_De_Stray":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Tolerance"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Attempt to remove orphan pixel.",
    "name":"De-Stray",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Mesh_Create_Path":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Sample"
      },
      {
        "display_data":[
          "Ear Clipping",
          "Convex Fan",
          "Delaunay"
        ],
        "tooltip":"",
        "name":"Algorithm"
      }
    ],
    "tooltip":"Create mesh from path.",
    "name":"Path to Mesh",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "Node_PB_Box_Divide_Grid":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Layer Shift"
      },
      {
        "tooltip":"",
        "name":"pBox"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      },
      {
        "tooltip":"",
        "name":"Mirror"
      }
    ],
    "tooltip":"",
    "name":"Divide Grid",
    "outputs":[
      {
        "tooltip":"",
        "name":"pBox"
      }
    ]
  },
  "Node_Shape_Polygon":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Background color"
      },
      {
        "tooltip":"",
        "name":"Shape color"
      },
      {
        "display_data":[
          "Rectangle",
          "Ellipse",
          "Star",
          "Capsule",
          "Ring",
          "Arc",
          "Gear",
          "Cross"
        ],
        "tooltip":"",
        "name":"Shape"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Sides"
      },
      {
        "tooltip":"",
        "name":"Inner radius"
      },
      {
        "tooltip":"",
        "name":"Radius"
      },
      {
        "tooltip":"",
        "name":"Teeth"
      },
      {
        "tooltip":"",
        "name":"Teeth height"
      },
      {
        "tooltip":"",
        "name":"Teeth taper"
      },
      {
        "tooltip":"",
        "name":"Angle range"
      },
      {
        "tooltip":"",
        "name":"Round cap"
      },
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ],
    "tooltip":"Draw simple shapes using triangles.",
    "name":"Polygon Shape",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"Mesh"
      },
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Scatter_Points":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Point area"
      },
      {
        "display_data":[
          "Area",
          "Border",
          "Map"
        ],
        "tooltip":"",
        "name":"Point distribution"
      },
      {
        "display_data":[
          "Uniform",
          "Random"
        ],
        "tooltip":"",
        "name":"Scatter"
      },
      {
        "tooltip":"Amount of particle spawn in that frame.",
        "name":"Point amount"
      },
      {
        "tooltip":"",
        "name":"Distribution map"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"Fix point position, and only select point in the area.",
        "name":"Fixed position"
      },
      {
        "tooltip":"",
        "name":"Reference dimension"
      }
    ],
    "tooltip":"Generate array of vector 2 points for scattering.",
    "name":"Scatter Points",
    "outputs":[
      {
        "tooltip":"",
        "name":"Points"
      }
    ]
  },
  "Node_Array_Zip":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Array"
      }
    ],
    "tooltip":"",
    "name":"Array Zip",
    "outputs":[
      {
        "tooltip":"",
        "name":"Output"
      }
    ]
  },
  "Node_3D_Mesh_Cube":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      },
      {
        "tooltip":"",
        "name":"Material per side"
      },
      {
        "tooltip":"",
        "name":"Material"
      },
      {
        "tooltip":"",
        "name":"Material Bottom"
      },
      {
        "tooltip":"",
        "name":"Material Left"
      },
      {
        "tooltip":"",
        "name":"Material Right"
      },
      {
        "tooltip":"",
        "name":"Material Back"
      },
      {
        "tooltip":"",
        "name":"Material Front"
      }
    ],
    "tooltip":"",
    "name":"3D Cube",
    "outputs":[
      {
        "tooltip":"",
        "name":"Mesh"
      }
    ]
  },
  "__Node_3D_Extrude":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Object position"
      },
      {
        "tooltip":"",
        "name":"Object rotation"
      },
      {
        "tooltip":"",
        "name":"Object scale"
      },
      {
        "tooltip":"",
        "name":"Render position"
      },
      {
        "tooltip":"",
        "name":"Render rotation"
      },
      {
        "tooltip":"",
        "name":"Render scale"
      },
      {
        "tooltip":"",
        "name":"Manual generate"
      },
      {
        "tooltip":"",
        "name":"Light direction"
      },
      {
        "tooltip":"",
        "name":"Light height"
      },
      {
        "tooltip":"",
        "name":"Light intensity"
      },
      {
        "tooltip":"",
        "name":"Light color"
      },
      {
        "tooltip":"",
        "name":"Ambient color"
      },
      {
        "tooltip":"",
        "name":"Height map"
      },
      {
        "tooltip":"",
        "name":"Always update"
      },
      {
        "display_data":[
          "Orthographic",
          "Perspective"
        ],
        "tooltip":"",
        "name":"Projection"
      },
      {
        "tooltip":"",
        "name":"Field of view"
      },
      {
        "tooltip":"",
        "name":"Scale view with dimension"
      },
      {
        "tooltip":"",
        "name":"Smooth"
      }
    ],
    "tooltip":"Extrude 2D image into 3D object.",
    "name":"3D Extrude",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      },
      {
        "tooltip":"",
        "name":"3D scene"
      },
      {
        "tooltip":"",
        "name":"Normal pass"
      },
      {
        "tooltip":"",
        "name":"3D vertex"
      }
    ]
  },
  "Node_Compare":{
    "inputs":[
      {
        "display_data":[
          "Equal",
          "Not equal",
          "Greater",
          "Greater or equal",
          "Lesser",
          "Lesser or equal"
        ],
        "tooltip":"",
        "name":"Type"
      },
      {
        "tooltip":"",
        "name":"a"
      },
      {
        "tooltip":"",
        "name":"b"
      }
    ],
    "tooltip":"",
    "name":"Compare",
    "outputs":[
      {
        "tooltip":"",
        "name":"Result"
      }
    ]
  },
  "Node_Colorize":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "tooltip":"",
        "name":"Gradient shift"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Multiply alpha"
      }
    ],
    "tooltip":"Map brightness of a pixel to a color from a gradient.",
    "name":"Colorize",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Threshold":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      },
      {
        "tooltip":"",
        "name":"Brightness Threshold"
      },
      {
        "tooltip":"",
        "name":"Brightness Smoothness"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Alpha Threshold"
      },
      {
        "tooltip":"",
        "name":"Alpha Smoothness"
      }
    ],
    "tooltip":"Set a threshold where pixel darker will becomes black, and brighter to white. Also works with alpha.",
    "name":"Threshold",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Gradient_Replace_Color":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      },
      {
        "tooltip":"",
        "name":"Color from"
      },
      {
        "tooltip":"",
        "name":"Color to"
      },
      {
        "tooltip":"",
        "name":"Threshold"
      }
    ],
    "tooltip":"",
    "name":"Gradient Replace",
    "outputs":[
      {
        "tooltip":"",
        "name":"Gradient"
      }
    ]
  },
  "Node_VFX_Turbulence":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Particles"
      },
      {
        "tooltip":"",
        "name":"Area"
      },
      {
        "tooltip":"",
        "name":"Falloff"
      },
      {
        "tooltip":"",
        "name":"Falloff distance"
      },
      {
        "tooltip":"",
        "name":"Effect Vector"
      },
      {
        "tooltip":"",
        "name":"Strength"
      },
      {
        "tooltip":"",
        "name":"Rotate particle"
      },
      {
        "tooltip":"",
        "name":"Scale particle"
      },
      {
        "tooltip":"",
        "name":"Turbulence scale"
      }
    ],
    "tooltip":"",
    "name":"Turbulence",
    "outputs":[
      {
        "tooltip":"",
        "name":"Particles"
      }
    ]
  },
  "Node_3D_Repeat":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Objects"
      },
      {
        "display_data":[
          "Duplicate",
          "Array"
        ],
        "tooltip":"",
        "name":"Object Mode"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Starting Position"
      },
      {
        "tooltip":"",
        "name":"Starting Rotation"
      },
      {
        "tooltip":"",
        "name":"Starting Scale"
      },
      {
        "tooltip":"",
        "name":"Shift Position"
      },
      {
        "tooltip":"",
        "name":"Shift Rotation"
      },
      {
        "tooltip":"",
        "name":"Shift Scale"
      },
      {
        "tooltip":"",
        "name":"Positions"
      },
      {
        "tooltip":"",
        "name":"Rotations"
      },
      {
        "tooltip":"",
        "name":"Scales"
      }
    ],
    "tooltip":"",
    "name":"3D Repeat",
    "outputs":[
      {
        "tooltip":"",
        "name":"Scene"
      }
    ]
  },
  "Node_PCX_Condition":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Condition"
      },
      {
        "tooltip":"",
        "name":"True"
      },
      {
        "tooltip":"",
        "name":"False"
      }
    ],
    "tooltip":"",
    "name":"Condition",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_Level_Selector":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Mid point"
      },
      {
        "tooltip":"",
        "name":"Range"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Isolate part of the image that falls in the selected brightness range.",
    "name":"Level Selector",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Fluid_Apply_Velocity":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      },
      {
        "tooltip":"",
        "name":"Brush"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Velocity"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"",
    "name":"Apply Velocity",
    "outputs":[
      {
        "tooltip":"",
        "name":"Fluid Domain"
      }
    ]
  },
  "Node_Sampler":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"Size of square around the position to sample and average pixel color.",
        "name":"Sampling size"
      }
    ],
    "tooltip":"Sample color from an image.",
    "name":"Sampler",
    "outputs":[
      {
        "tooltip":"",
        "name":"Color"
      }
    ]
  },
  "Node_Curve":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Brightness"
      },
      {
        "tooltip":"",
        "name":"Red"
      },
      {
        "tooltip":"",
        "name":"Green"
      },
      {
        "tooltip":"",
        "name":"Blue"
      },
      {
        "tooltip":"",
        "name":"Mask"
      },
      {
        "tooltip":"",
        "name":"Mix"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Adjust brightness of an image using curves.",
    "name":"Curve",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Canvas":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Brush size"
      },
      {
        "tooltip":"",
        "name":"Fill threshold"
      },
      {
        "display_data":[
          "4 connect",
          "8 connect",
          "Entire canvas"
        ],
        "tooltip":"",
        "name":"Fill type"
      },
      {
        "tooltip":"",
        "name":"Draw preview overlay"
      },
      {
        "tooltip":"",
        "name":"Brush"
      },
      {
        "tooltip":"",
        "name":"Surface amount"
      },
      {
        "tooltip":"",
        "name":"Background"
      },
      {
        "tooltip":"",
        "name":"Background alpha"
      },
      {
        "tooltip":"",
        "name":"Render background"
      },
      {
        "tooltip":"",
        "name":"Alpha"
      },
      {
        "tooltip":"",
        "name":"Frames animation"
      },
      {
        "tooltip":"",
        "name":"Animation speed"
      }
    ],
    "tooltip":"Draw on surface using brush, eraser, etc.",
    "name":"Canvas",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Grey_Alpha":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"Replace output with solid color.",
        "name":"Replace color"
      },
      {
        "tooltip":"",
        "name":"Color"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Convert greyscale to alpha value.",
    "name":"Grey to Alpha",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Anim_Curve":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Curve"
      },
      {
        "tooltip":"",
        "name":"Progress"
      },
      {
        "tooltip":"",
        "name":"Minimum"
      },
      {
        "tooltip":"",
        "name":"Maximum"
      },
      {
        "tooltip":"",
        "name":"Animated"
      }
    ],
    "tooltip":"Evaluate value from an animation curve.",
    "name":"Evaluate Curve",
    "outputs":[
      {
        "tooltip":"",
        "name":"Curve"
      }
    ]
  },
  "Node_Crop":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Crop"
      },
      {
        "tooltip":"",
        "name":"Active"
      }
    ],
    "tooltip":"Crop out image to create smaller ones.",
    "name":"Crop",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Strand_Collision":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Strand"
      },
      {
        "tooltip":"",
        "name":"Collision mesh"
      }
    ],
    "tooltip":"",
    "name":"Strand Collision",
    "outputs":[
      {
        "tooltip":"",
        "name":"Strand"
      }
    ]
  },
  "Node_Find_Pixel":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Surface in"
      },
      {
        "tooltip":"",
        "name":"Search color"
      }
    ],
    "tooltip":"Get the position of the first pixel with a given color.",
    "name":"Find pixel",
    "outputs":[
      {
        "tooltip":"",
        "name":"Position"
      }
    ]
  },
  "Node_Grid":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Gap"
      },
      {
        "tooltip":"",
        "name":"Angle"
      },
      {
        "tooltip":"",
        "name":"Tile color"
      },
      {
        "tooltip":"",
        "name":"Gap color"
      },
      {
        "tooltip":"",
        "name":"Texture"
      },
      {
        "tooltip":"",
        "name":"Shift"
      },
      {
        "display_data":[
          "X",
          "Y"
        ],
        "tooltip":"",
        "name":"Shift axis"
      },
      {
        "display_data":[
          "Colored tile",
          "Height map",
          "Texture grid",
          "Texture sample"
        ],
        "tooltip":"",
        "name":"Render type"
      },
      {
        "tooltip":"",
        "name":"Seed"
      }
    ],
    "tooltip":"Generate grid pattern.",
    "name":"Grid",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_Vector_Split":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Vector"
      }
    ],
    "tooltip":"",
    "name":"Vector Split",
    "outputs":[
      {
        "tooltip":"",
        "name":"x"
      },
      {
        "tooltip":"",
        "name":"y"
      },
      {
        "tooltip":"",
        "name":"z"
      },
      {
        "tooltip":"",
        "name":"w"
      }
    ]
  },
  "Node_Tunnel_Out":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Name"
      }
    ],
    "tooltip":"Receive value from tunnel in of the same key.",
    "name":"Tunnel Out",
    "outputs":[
      {
        "tooltip":"",
        "name":"Value out"
      }
    ]
  },
  "Node_Pack_Sprites":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Sprites"
      },
      {
        "display_data":[
          "Skyline",
          "Shelf",
          "Top left",
          "Best fit"
        ],
        "tooltip":"",
        "name":"Algorithm"
      },
      {
        "tooltip":"",
        "name":"Max width"
      },
      {
        "tooltip":"",
        "name":"Max height"
      },
      {
        "tooltip":"",
        "name":"Spacing"
      }
    ],
    "tooltip":"Combine array of images with different dimension using different algorithms.",
    "name":"Pack Sprites",
    "outputs":[
      {
        "tooltip":"",
        "name":"Packed image"
      },
      {
        "tooltip":"",
        "name":"Atlas data"
      }
    ]
  },
  "Node_Noise_Aniso":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Dimension"
      },
      {
        "tooltip":"",
        "name":"Amount"
      },
      {
        "tooltip":"",
        "name":"Seed"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      }
    ],
    "tooltip":"Generate anisotropic noise.",
    "name":"Anisotropic Noise",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface out"
      }
    ]
  },
  "Node_String":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ],
    "tooltip":"",
    "name":"Text",
    "outputs":[
      {
        "tooltip":"",
        "name":"Text"
      }
    ]
  },
  "Node_PCX_fn_Random":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Min"
      },
      {
        "tooltip":"",
        "name":"Max"
      },
      {
        "tooltip":"",
        "name":"Integer"
      }
    ],
    "tooltip":"",
    "name":"Random",
    "outputs":[
      {
        "tooltip":"",
        "name":"PCX"
      }
    ]
  },
  "Node_HLSL":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Vertex"
      },
      {
        "tooltip":"",
        "name":"Fragment"
      },
      {
        "tooltip":"",
        "name":"Base Texture"
      }
    ],
    "tooltip":"",
    "name":"HLSL",
    "outputs":[
      {
        "tooltip":"",
        "name":"Surface"
      }
    ]
  },
  "Node_Path_Transform":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Path"
      },
      {
        "tooltip":"",
        "name":"Position"
      },
      {
        "tooltip":"",
        "name":"Rotation"
      },
      {
        "tooltip":"",
        "name":"Scale"
      },
      {
        "tooltip":"",
        "name":"Anchor"
      }
    ],
    "tooltip":"",
    "name":"Transform Path",
    "outputs":[
      {
        "tooltip":"",
        "name":"Path"
      }
    ]
  },
  "Node_Iterator_Output":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Value"
      },
      0.0,
      {
        "tooltip":"",
        "name":"Loop exit"
      }
    ],
    "tooltip":"",
    "name":"Output",
    "outputs":[
    ]
  },
  "Node_Animation_Control":{
    "inputs":[
      {
        "tooltip":"",
        "name":"Toggle Play \/ Pause"
      },
      {
        "tooltip":"",
        "name":"Pause"
      },
      {
        "tooltip":"",
        "name":"Resume"
      },
      {
        "tooltip":"",
        "name":"Play From Beginning"
      },
      {
        "tooltip":"",
        "name":"Play once"
      },
      {
        "tooltip":"",
        "name":"Skip Frames"
      },
      {
        "tooltip":"",
        "name":"Skip Frames Count"
      }
    ],
    "tooltip":"Control animation state with triggers.",
    "name":"Animation Control",
    "outputs":[
    ]
  }
}