Ara
Download

Search or run a command

Jump to a section or open an Ara link.

Command · vfx

vfx.text.apply

Apply typed effect text as reversible graph ops.
scope edit:scenenot idempotentnon-destructive

Params

Typed as VfxTextParams. Fields marked * are required.

source*

string
Canonical ID-free effect JSON.
required

Examples

JSON (MCP ara_apply, batches)

{
  "cmd": "vfx.text.apply",
  "args": {
    "source": "{\n  \"name\": \"campfire\",\n  \"seed\": 17,\n  \"hz\": 60,\n  \"quality\": {\n    \"particles\": 1000000,\n    \"overdraw\": 16,\n    \"lights\": 8,\n    \"events\": 4096\n  },\n  \"emitters\": [\n    {\n      \"name\": \"flame\",\n      \"capacity\": 512,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 80\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 0.85,\n              \"size\": 0.3,\n              \"color\": [5, 0.6, 0.03, 0.5]\n            }\n          },\n          {\n            \"name\": \"hearth\",\n            \"module\": {\n              \"op\": \"sphere\",\n              \"center\": [0, 0.12, 0],\n              \"radius\": 0.2\n            }\n          },\n          {\n            \"name\": \"rise\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 0.95, 0],\n              \"spread\": [0.12, 0.2, 0.12]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"curl\",\n            \"module\": {\n              \"op\": \"curl_noise\",\n              \"frequency\": 3,\n              \"strength\": 0.55\n            }\n          },\n          {\n            \"name\": \"drag\",\n            \"module\": {\n              \"op\": \"drag\",\n              \"coefficient\": 0.6\n            }\n          },\n          {\n            \"name\": \"fade\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [4, 1.6, 0.35, 0]\n                },\n                {\n                  \"t\": 0.1,\n                  \"value\": [4, 1.5, 0.25, 0.75]\n                },\n                {\n                  \"t\": 0.55,\n                  \"value\": [2.6, 0.65, 0.06, 0.5]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [0.4, 0.04, 0, 0]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"shrink\",\n            \"module\": {\n              \"op\": \"size_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": 0.24\n                },\n                {\n                  \"t\": 0.35,\n                  \"value\": 0.34\n                },\n                {\n                  \"t\": 1,\n                  \"value\": 0.08\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"unlit\",\n              \"soft_distance\": 0.15,\n              \"sorting\": \"none\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"fire\",\n              \"blend\": \"additive\",\n              \"alignment\": \"camera\",\n              \"stretch\": 1,\n              \"shutter\": 0\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          },\n          {\n            \"name\": \"hearth_light\",\n            \"module\": {\n              \"op\": \"light\",\n              \"color\": [1, 0.32, 0.055],\n              \"lumens\": 900,\n              \"radius\": 6\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"smoke\",\n      \"capacity\": 2048,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 12\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 4.5,\n              \"size\": 0.45,\n              \"color\": [0.2, 0.23, 0.28, 0.14]\n            }\n          },\n          {\n            \"name\": \"source\",\n            \"module\": {\n              \"op\": \"cone\",\n              \"origin\": [0, 0.55, 0],\n              \"height\": 0.2,\n              \"radius\": 0.12\n            }\n          },\n          {\n            \"name\": \"rise\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 0.55, 0],\n              \"spread\": [0.12, 0.15, 0.12]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"curl\",\n            \"module\": {\n              \"op\": \"curl_noise\",\n              \"frequency\": 1.2,\n              \"strength\": 0.35\n            }\n          },\n          {\n            \"name\": \"grow\",\n            \"module\": {\n              \"op\": \"size_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": 0.25\n                },\n                {\n                  \"t\": 1,\n                  \"value\": 1\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"fade\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [0.1, 0.095, 0.09, 0]\n                },\n                {\n                  \"t\": 0.15,\n                  \"value\": [0.12, 0.115, 0.11, 0.2]\n                },\n                {\n                  \"t\": 0.6,\n                  \"value\": [0.16, 0.16, 0.16, 0.11]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [0.2, 0.2, 0.2, 0]\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"surface\",\n              \"soft_distance\": 0.3,\n              \"sorting\": \"depth\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"smoke\",\n              \"blend\": \"alpha\",\n              \"alignment\": \"camera\",\n              \"stretch\": 1,\n              \"shutter\": 0\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"embers\",\n      \"capacity\": 4096,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 12\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 2,\n              \"size\": 0.012,\n              \"color\": [14, 4.5, 0.7, 0.85]\n            }\n          },\n          {\n            \"name\": \"source\",\n            \"module\": {\n              \"op\": \"point\",\n              \"position\": [0, 0.7, 0]\n            }\n          },\n          {\n            \"name\": \"spray\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 2, 0],\n              \"spread\": [0.4, 0.7, 0.4]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"gravity\",\n            \"module\": {\n              \"op\": \"gravity\",\n              \"acceleration\": [0, -9.81, 0]\n            }\n          },\n          {\n            \"name\": \"floor\",\n            \"module\": {\n              \"op\": \"plane_collision\",\n              \"normal\": [0, 1, 0],\n              \"offset\": 0,\n              \"restitution\": 0.6\n            }\n          },\n          {\n            \"name\": \"cool\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [18, 8, 2, 1]\n                },\n                {\n                  \"t\": 0.5,\n                  \"value\": [9, 1.8, 0.1, 0.8]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [1, 0.05, 0, 0]\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"unlit\",\n              \"soft_distance\": 0.15,\n              \"sorting\": \"none\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"spark\",\n              \"blend\": \"additive\",\n              \"alignment\": \"velocity\",\n              \"stretch\": 3,\n              \"shutter\": 0.85\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          }\n        ]\n      }\n    }\n  ]\n}\n"
  }
}

CLI

ara do vfx.text.apply --args '{"source":"{\n  \"name\": \"campfire\",\n  \"seed\": 17,\n  \"hz\": 60,\n  \"quality\": {\n    \"particles\": 1000000,\n    \"overdraw\": 16,\n    \"lights\": 8,\n    \"events\": 4096\n  },\n  \"emitters\": [\n    {\n      \"name\": \"flame\",\n      \"capacity\": 512,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 80\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 0.85,\n              \"size\": 0.3,\n              \"color\": [5, 0.6, 0.03, 0.5]\n            }\n          },\n          {\n            \"name\": \"hearth\",\n            \"module\": {\n              \"op\": \"sphere\",\n              \"center\": [0, 0.12, 0],\n              \"radius\": 0.2\n            }\n          },\n          {\n            \"name\": \"rise\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 0.95, 0],\n              \"spread\": [0.12, 0.2, 0.12]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"curl\",\n            \"module\": {\n              \"op\": \"curl_noise\",\n              \"frequency\": 3,\n              \"strength\": 0.55\n            }\n          },\n          {\n            \"name\": \"drag\",\n            \"module\": {\n              \"op\": \"drag\",\n              \"coefficient\": 0.6\n            }\n          },\n          {\n            \"name\": \"fade\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [4, 1.6, 0.35, 0]\n                },\n                {\n                  \"t\": 0.1,\n                  \"value\": [4, 1.5, 0.25, 0.75]\n                },\n                {\n                  \"t\": 0.55,\n                  \"value\": [2.6, 0.65, 0.06, 0.5]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [0.4, 0.04, 0, 0]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"shrink\",\n            \"module\": {\n              \"op\": \"size_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": 0.24\n                },\n                {\n                  \"t\": 0.35,\n                  \"value\": 0.34\n                },\n                {\n                  \"t\": 1,\n                  \"value\": 0.08\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"unlit\",\n              \"soft_distance\": 0.15,\n              \"sorting\": \"none\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"fire\",\n              \"blend\": \"additive\",\n              \"alignment\": \"camera\",\n              \"stretch\": 1,\n              \"shutter\": 0\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          },\n          {\n            \"name\": \"hearth_light\",\n            \"module\": {\n              \"op\": \"light\",\n              \"color\": [1, 0.32, 0.055],\n              \"lumens\": 900,\n              \"radius\": 6\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"smoke\",\n      \"capacity\": 2048,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 12\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 4.5,\n              \"size\": 0.45,\n              \"color\": [0.2, 0.23, 0.28, 0.14]\n            }\n          },\n          {\n            \"name\": \"source\",\n            \"module\": {\n              \"op\": \"cone\",\n              \"origin\": [0, 0.55, 0],\n              \"height\": 0.2,\n              \"radius\": 0.12\n            }\n          },\n          {\n            \"name\": \"rise\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 0.55, 0],\n              \"spread\": [0.12, 0.15, 0.12]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"curl\",\n            \"module\": {\n              \"op\": \"curl_noise\",\n              \"frequency\": 1.2,\n              \"strength\": 0.35\n            }\n          },\n          {\n            \"name\": \"grow\",\n            \"module\": {\n              \"op\": \"size_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": 0.25\n                },\n                {\n                  \"t\": 1,\n                  \"value\": 1\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"fade\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [0.1, 0.095, 0.09, 0]\n                },\n                {\n                  \"t\": 0.15,\n                  \"value\": [0.12, 0.115, 0.11, 0.2]\n                },\n                {\n                  \"t\": 0.6,\n                  \"value\": [0.16, 0.16, 0.16, 0.11]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [0.2, 0.2, 0.2, 0]\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"surface\",\n              \"soft_distance\": 0.3,\n              \"sorting\": \"depth\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"smoke\",\n              \"blend\": \"alpha\",\n              \"alignment\": \"camera\",\n              \"stretch\": 1,\n              \"shutter\": 0\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"embers\",\n      \"capacity\": 4096,\n      \"bounds\": {\n        \"min\": [-8, -2, -8],\n        \"max\": [8, 12, 8]\n      },\n      \"stacks\": {\n        \"spawn\": [\n          {\n            \"name\": \"rate\",\n            \"module\": {\n              \"op\": \"rate\",\n              \"per_second\": 12\n            }\n          }\n        ],\n        \"initialize\": [\n          {\n            \"name\": \"lifetime\",\n            \"module\": {\n              \"op\": \"lifetime\",\n              \"seconds\": 2,\n              \"size\": 0.012,\n              \"color\": [14, 4.5, 0.7, 0.85]\n            }\n          },\n          {\n            \"name\": \"source\",\n            \"module\": {\n              \"op\": \"point\",\n              \"position\": [0, 0.7, 0]\n            }\n          },\n          {\n            \"name\": \"spray\",\n            \"module\": {\n              \"op\": \"velocity\",\n              \"value\": [0, 2, 0],\n              \"spread\": [0.4, 0.7, 0.4]\n            }\n          }\n        ],\n        \"update\": [\n          {\n            \"name\": \"gravity\",\n            \"module\": {\n              \"op\": \"gravity\",\n              \"acceleration\": [0, -9.81, 0]\n            }\n          },\n          {\n            \"name\": \"floor\",\n            \"module\": {\n              \"op\": \"plane_collision\",\n              \"normal\": [0, 1, 0],\n              \"offset\": 0,\n              \"restitution\": 0.6\n            }\n          },\n          {\n            \"name\": \"cool\",\n            \"module\": {\n              \"op\": \"color_over_life\",\n              \"keys\": [\n                {\n                  \"t\": 0,\n                  \"value\": [18, 8, 2, 1]\n                },\n                {\n                  \"t\": 0.5,\n                  \"value\": [9, 1.8, 0.1, 0.8]\n                },\n                {\n                  \"t\": 1,\n                  \"value\": [1, 0.05, 0, 0]\n                }\n              ]\n            }\n          }\n        ],\n        \"render\": [\n          {\n            \"name\": \"sprite\",\n            \"module\": {\n              \"op\": \"sprite\",\n              \"domain\": \"unlit\",\n              \"soft_distance\": 0.15,\n              \"sorting\": \"none\"\n            }\n          },\n          {\n            \"name\": \"appearance\",\n            \"module\": {\n              \"op\": \"appearance\",\n              \"texture\": \"spark\",\n              \"blend\": \"additive\",\n              \"alignment\": \"velocity\",\n              \"stretch\": 3,\n              \"shutter\": 0.85\n            }\n          },\n          {\n            \"name\": \"flipbook\",\n            \"module\": {\n              \"op\": \"flipbook\",\n              \"grid\": [4, 4],\n              \"fps\": 16\n            }\n          }\n        ]\n      }\n    }\n  ]\n}\n"}' --why "…"