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