Files
tooll3--t3/documentation.json
2023-10-29 18:25:20 +01:00

5864 lines
240 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"Type": 0,
"Text": "An interactive playground that illustrates various method to animate things in Tooll.\n\n[Value]",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Tooll is all about animation. So there are endless possibilities for it. This playground shows some examples. \nTry to select the operators at the end of each graph and play with them.\n\n(please activate the Idle Motion mode in the time controls)",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "1e8fabb8-c4ff-42e8-bf8a-a8063a46a54b"
},
{
"Type": 1,
"Text": "Using time. Notice that Tooll's time is not in secs but in musical bars -\n4 beats is 1 bar. 4 bars form a measure. This means that your animation\nwill work for all BPM-rates!\n\n\n",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "61c00d70-55f1-496d-ab8b-d75387a440e6"
},
{
"Type": 1,
"Text": "Math is your friend (even if you didn't love it in school).\nUnderstanding these 3 functions will be a game changer for your work.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "d1a48210-aa37-4a47-bc5b-ecb4974738b2"
},
{
"Type": 1,
"Text": "Keep in mind that you can always combine things.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "531dc9b0-ad02-4259-9719-5977dcc4adba"
},
{
"Type": 1,
"Text": "If values fall in the range between 0 and 1, nerds call them \"Normalized\" or \"Saturated\".\nThe Pow function is very useful to add easing to your normalized values.\n\n",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "02b96af0-3803-4ddb-af58-2f839afe52c1"
},
{
"Type": 1,
"Text": "There are operators that are animated without a connection to [Time]*\nThese operators are such powerful tools that we should explain them in detail:\n\n\n\n",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "5f9df0dd-39ec-49e9-894b-e820413fdb70"
},
{
"Type": 1,
"Text": "* These are automatically connected to time.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "c6d0cf73-962f-4e66-ade9-60fb8e72f0d4"
},
{
"Type": 1,
"Text": "Mucians might know [AnimValue] operator as\n\"LFO\" (Low frequency operator).\n\nYou can adjust its main parameters directly by holding \nthe CTRL key.\n- Drag Up/Down on the left adjusts the rate in steps /4x4\n- Drag the graph to adjust ratio and Bias",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "7333c3c1-a0f0-41c9-9fd8-518804226909"
},
{
"Type": 1,
"Text": "[SequenceAnim] is to generate repetitive patterns.\nYou can adjust the steps by dragging with CTRL.\nCheck out the modes. It's very flexible.\n",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "d5214db2-60b4-42b3-9a43-3297dd325454"
},
{
"Type": 1,
"Text": "[Counter] is similar to [AnimValue].\nIt can be useful to drive continuous values like\nrotations and phases.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "0f56d01a-e2bd-4948-8357-f52caa52a7ae"
},
{
"Type": 1,
"Text": "[PerlinNoise] is the go-to algorithm to make things\njiggle in a natural way. Perfect for camera shaking\nand so many other things.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "363650ae-441e-4058-9319-6c33eea9d63f"
},
{
"Type": 1,
"Text": "Click me",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "558cb89d-7c4c-42fb-a837-fa6eec50fcf6"
},
{
"Type": 1,
"Text": "Reactions to audio input or the current project soundtrack is an advanced topic.\nIt's probably easier to check out one of the tutorial videos for that.\n\nHere's a short example of what you could do with that.\nPress play to activate the soundtrack.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "e068acab-3f1f-4c4a-936a-2d5a631b18d1"
},
{
"Type": 1,
"Text": "Tooll also provides possibilities for keyframe animations.\nYou can animate any scalar and vector parameter in the parameter window.\n\nAnimated operators have a small orange \"animation\" tag in the corner, \nlike this one:",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "10deadb1-757b-4c5a-a798-7184a5868feb"
},
{
"Type": 1,
"Text": "If you click on \"Dope\" / \"Curve\" in the Time Control Bar\nyou can toggle between Dopesheet and Curve mode.\nDragging keyframes holding the Shift-key toggles\nsnapping.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "ed0d2b3a-8791-4b08-a04b-408338187908"
},
{
"Type": 1,
"Text": "Another powerful option for procedual animation is [TriggerAnim].\nTake a look at the following example:\n\nA different version of effects are triggered if any of the events on the left occur.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "6e01257e-ea2a-426e-95f1-57706f756c0c"
},
{
"Type": 1,
"Text": "Here is a more elaborate example on how to use an animation event...",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "d0729712-35f1-4955-81db-6c74338387da"
},
{
"Type": 1,
"Text": "We create a new clear color for our render target, by cycling through a gradient. \nNotice how [Counter] uses a modulo to repeat the cycle.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "95812bb4-d98b-4bbe-b7e7-577c881298ca"
},
{
"Type": 1,
"Text": "Combine two [TriggerAnimation] with [Remap] to \ncreate a bouncy font size.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "e297379b-e86e-465d-9470-b7744aaf4b80"
},
{
"Type": 1,
"Text": "Use an integer count to pick a string from a list...",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "c160e623-08f7-4ba0-b9ee-701fa728eec6"
},
{
"Type": 1,
"Text": "...and pick from a list of meshes to draw.",
"SymbolId": "9b1a1ff1-2935-4d9a-880f-897a7f8885ad",
"Id": "0059af6e-4f43-4a20-81ee-064d0f932e1a"
},
{
"Type": 0,
"Text": "An interactive tutorial how to render content with Tooll's rendering pipeline.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Tooll is all about drawing (or \"rendering\") realtime content. \nThis playground will give you an introduction. ",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "9fc74122-1bcb-42fd-aab5-70a85494da34"
},
{
"Type": 1,
"Text": "Here is a typical setup of the basics steps.\n\nFor each of these steps there are many operators to achive different effects.\nPlease check out the [HowToUseOperators] for more details.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "d8d8b8bf-155c-442f-8803-33d1adb4f4fa"
},
{
"Type": 1,
"Text": "Generate and apply environment texture and\nshow it in the background. The Camera \nhas to follow later so the background \nmatches the camera movement..",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "172298dc-5619-4b11-9fd1-759b82cd840a"
},
{
"Type": 1,
"Text": "This is an advanced setup that illustrates many components required for a PBR light setup.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "52f96e30-a573-452c-8454-b71544dd9cd1"
},
{
"Type": 1,
"Text": "Many draw operators allow to set specific drawstyles.\nHere are some examples for the results you can achieve \nby adjusting the parameters of [DrawMesh]...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "297fac84-de17-4b6c-87b2-08935862abaf"
},
{
"Type": 1,
"Text": "Here is an example for loading and setting up PBR Assets with complex textures.\nThe awesome \"Cerberus\" gun is made by Andrew Maximov (see link in description)",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "ad01e43b-9c5d-4b80-944e-34349b66ea9c"
},
{
"Type": 1,
"Text": "Some tips:\n- Select and pin the final operator operators on the right to the output window so see the results.\n- Enable Idle-Motion on the timeline toolbar, to see some animations.\n- hover over the comment-icons to learn more.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "f54d92fe-a9ba-4a15-847f-235451f65431"
},
{
"Type": 2,
"Text": "... into an image buffer ...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "114f1697-de7a-4479-afef-4f0e75473c55"
},
{
"Type": 2,
"Text": "Some \"content\" like buffers or textures...\n\nYou can discover numerous additional Mesh generators in the symbol browser within the lib.3d.mesh.generate namespace.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "5f06349f-20f9-4c08-9080-73cab767ec56"
},
{
"Type": 2,
"Text": "... it's now drawn...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "8db2355a-03dd-463f-850c-e7c46f2e2542"
},
{
"Type": 2,
"Text": "... with a \"setup\" ...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "0823549b-0920-4918-914a-6b5dd46ee73b"
},
{
"Type": 2,
"Text": "... and finally we can apply a post effect.\n\nPlease select this operator (and pin it in the output window) to see the result.\n\nAlso check the video tutorial for the Raster effect linked in the description of this operator.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "83cfdd8a-5ad0-4963-933a-3350c723da68"
},
{
"Type": 2,
"Text": "Load and distort a mesh...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "c60d8bbe-4d2d-41a3-a8cd-6d2909cc6d6d"
},
{
"Type": 2,
"Text": "... we add a displacement effect and animate its phase over time ...\n\nYou can Select this operator and press Shift-B to bypass this effect.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "fadf444e-7fa3-4a8f-b8f9-826dcc887a54"
},
{
"Type": 2,
"Text": "Now we draw the mesh. ",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "d16957f5-2a78-4df6-b26d-50cdc991610a"
},
{
"Type": 2,
"Text": "A bit of colored fog for depth.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "cf44730d-4b94-41d8-8daa-77a3cdc8dfa8"
},
{
"Type": 2,
"Text": "Render to an image buffer using anti-aliasing.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "0abc263f-1c0c-4405-a803-5b3c4fa09649"
},
{
"Type": 2,
"Text": "Setting the material with a generative texture for the emissive color.\n\nNotice how the pattern highlight color is brighter than 1 so it glows nicely.\n",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "30d0ea55-fdfe-4fbd-8aef-f5978f02897a"
},
{
"Type": 2,
"Text": "Apply post-processing ambient occlusion to darken creases.\n\nNote how we also have to connect the RenderTarget.DepthOutput for this effect to work.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "e069a7da-016d-475c-952b-0f69a551ef9d"
},
{
"Type": 2,
"Text": "Split vertices for flat shading.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "da8c1027-7fe4-476b-9554-9a5def4a2acb"
},
{
"Type": 2,
"Text": "Apply glow to HDR colors in the emissive texture and environment.\n",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "f4cab9da-00e0-48d5-b6c0-2bdfdb2e30ac"
},
{
"Type": 2,
"Text": "A lense flare setup that follows the point light position.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "e13af1a0-015d-4c9e-93c8-27c39bdcb076"
},
{
"Type": 2,
"Text": "Some dust particles that wiggle around.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "9fab0cbe-51e6-4cd5-95db-7688cb1aa95c"
},
{
"Type": 2,
"Text": "Finally we apply some color grading and vignette.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "35b60bb9-6e7e-4077-9862-926a35be6116"
},
{
"Type": 2,
"Text": "This is a fancy operator isn't it? If you are curious, you can double click it to look inside and learn how this is made.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "195fc78a-57a1-4e9e-b9ce-515d69f6d67d"
},
{
"Type": 2,
"Text": "Note how we adjust the culling to None so we also render backfacing triangles.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "444fac4f-e84b-4ac7-9edf-7d6fbe27d543"
},
{
"Type": 2,
"Text": "We use the geometry as OBJ (see the link in the description)...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "051f0cfc-b352-4733-9bd7-fadf23ad904e"
},
{
"Type": 2,
"Text": "We're using CombineMaterialMaps to create the combined texture.\nThat's the reason we change the roughness-offset to 0.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "7b3387ab-9153-4d44-99c6-e62c9dff7131"
},
{
"Type": 2,
"Text": "Note how we adjusted the Roughness Remap curve to make the gun slightly less shiny.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "7241eb50-c918-457c-a2ba-0299b9d24281"
},
{
"Type": 2,
"Text": "Normally you draw a single mesh...",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "e935f2d3-726e-4577-abad-176d02ca1c07"
},
{
"Type": 2,
"Text": "...but you can also use a list of Points to draw instances.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "3c854ec7-5b82-41f5-a3be-5e868217a7d6"
},
{
"Type": 2,
"Text": "Notices how we increased the MultiSampling to 8 samples to reduce some of aliasing on the finer details of the gun.\n\nThese samples are ONLY computed at the edges of the geometry, not of the surfaces.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "24bb70f4-6ce4-4e1b-8de6-f1f93bd73e8f"
},
{
"Type": 2,
"Text": "SetEnvironment without a connected connected texture allows us to enable the default background and adjust is brightness.\n\nAlso check the documentation fo this operator.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "9f1f826c-9b24-40cf-ade1-ed4dfc692dbd"
},
{
"Type": 2,
"Text": "We use this \"Null\"-object as a reference for the center of our scene, so we don't have to guess the depth of field's focus center.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "5ec89390-974c-4841-b585-71fbe0fb4561"
},
{
"Type": 2,
"Text": "We also add a rotating point light just for completeness.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "9117a6bb-1111-4c9a-be44-627211c9f307"
},
{
"Type": 2,
"Text": "We add a point light and animated it.",
"SymbolId": "40757a26-1cd8-477c-a774-7463aadd6f0f",
"Id": "93dc2607-bf39-4f76-bc53-416adec48b17"
},
{
"Type": 0,
"Text": "This is playground that gives an overview about Tooll's main image effects operators.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "There are effects that use the incoming \nimage to generate patterns or shapes.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "d05d3d5d-240b-4de8-a970-e881f43d4c02"
},
{
"Type": 1,
"Text": "Here are examples of effects that\ntransform or distort an image buffer.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "c57262d3-9928-48c2-ab08-eba3a204fcde"
},
{
"Type": 1,
"Text": "This operator picks one of the incoming effects.\n\nYour can toggle the grid icon in the \nTime Controls to pause this.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "a35b622a-4f5c-4ee1-bf67-0c29c446415a"
},
{
"Type": 1,
"Text": "Here are some basic image effects.\nAlso note, that most operators\nhave presets you can explore.\n\nTIPP: Hold the ALT-Key while\nhovering over presets.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "cc4c290c-294b-4d1d-bdcd-c58be4ad88d6"
},
{
"Type": 1,
"Text": "Many effects use a second input\nas mask or effect input. Here are\nsome examples.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "374f4922-c82a-416b-86ec-7c52b7321fc4"
},
{
"Type": 1,
"Text": "Blend is the go-to operator to\ncombine image buffers. ",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "341cd5a9-322a-46b4-bfa9-864e6aad8dd4"
},
{
"Type": 1,
"Text": "However you should consider using [Layer2d]\nfor better rendering performance.\n",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "5e8bd960-7a80-4d3b-9d1b-3ee52183a8fd"
},
{
"Type": 1,
"Text": "This is nice example of \nthe kind of effects that\ncan be achieved with compute\nshaders. ",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "50b5afd1-0769-411f-b2e0-5bc37a2e664c"
},
{
"Type": 1,
"Text": "[BlendWithMask] uses a mask image to control the blending.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "6d0076de-13c0-4688-982d-c3cb67fe35de"
},
{
"Type": 1,
"Text": "You don't need an effects layer for [DirectionalBlur] .\nBut it really results in some very interesting visuals.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "eecc7921-23d8-4aa9-8e16-6d35fb2a816e"
},
{
"Type": 1,
"Text": "[Displace] uses the gradient of effect\nimages to distort images.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "ab3b2edb-7215-4bed-bfb8-cea5b6f5969e"
},
{
"Type": 1,
"Text": "Fake Light produces something like an emboss effect.\n",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "7cf03de1-1d93-43f8-a91f-0d303e8fc2de"
},
{
"Type": 1,
"Text": "This is another displacement variation.",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "e7d3314e-404f-47ba-96eb-ac6a1624f8cf"
},
{
"Type": 1,
"Text": "Blending",
"SymbolId": "649d4542-4165-4129-9484-dd8fb8663e15",
"Id": "e6afb637-c33e-4b9d-9ebd-b4275a0b9b3d"
},
{
"Type": 0,
"Text": "This example gives a playful interactive introduction to Tooll's operators and how they work.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Everything in T3 is made out of operators.\nThese operators can be structured into the following categories.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "f2ae8a9c-8d73-4698-9e04-e8fab0ac2797"
},
{
"Type": 1,
"Text": "Values",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "3aae77b7-2887-4639-9066-9a6d724963f5"
},
{
"Type": 1,
"Text": "Buffers / Data on GPU",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "60143946-178c-46d0-87ad-42756155815b"
},
{
"Type": 1,
"Text": "Draw instructions",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "764be5c8-a525-4175-84e0-a6960d88ac14"
},
{
"Type": 1,
"Text": "Draw attributes",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "63c6b793-896f-4771-aa9b-5ecc42880619"
},
{
"Type": 1,
"Text": "Flow control",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "6294dc30-d1fe-48ea-9e9c-fba59643b5d3"
},
{
"Type": 1,
"Text": "Render Targets",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "a6e72c0c-14d5-4534-9678-918b37541511"
},
{
"Type": 1,
"Text": "Image Effects",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "cb85d1d8-9d77-4f0e-a427-b635818f6f62"
},
{
"Type": 1,
"Text": "You can quickly distinguish the catories by their respective output type: Float-Number, Buffer, Command, Image, etc.\nThere are many more types but understanding these foundations will get you far...",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "5bdcc582-0109-4388-bdf5-4d580fa2a967"
},
{
"Type": 1,
"Text": "Although the data is flowing from left to right, the graph is actually \"evaluated\" from right to left!\n\nLet's look at the following example.\nPlease click on the [RenderTarget]...\n\n\n",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "d07b68ba-775d-44e2-9299-f9963d881164"
},
{
"Type": 1,
"Text": "1. If this RenderTarget\nis selected, it \"requests\"\nits input command.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "b03d9382-caa3-47b9-ad9c-5db277583562"
},
{
"Type": 1,
"Text": "2. This connected operator\nsets a camera perspective\nand also requests its connected \ncommand.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "38cdb32d-2357-45fe-9774-6681b00b93fd"
},
{
"Type": 1,
"Text": "3. This operator finally wants\nto \"draw\" something,\nbut it needs some\ncontent, so, ...",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "c585a017-bbda-4ce7-b26a-159a9f4eb27a"
},
{
"Type": 1,
"Text": "4. ... finally this operator\nprovides the actually data\nin form of faces and vertices.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "2fca86b0-adbd-45af-a8e1-f8bf5711cb07"
},
{
"Type": 1,
"Text": "This example show that graphs can form complex networks (but not loops).",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "54cb1d11-87a9-4a3e-9be8-bb675fffd24f"
},
{
"Type": 1,
"Text": "While the graph is being evaluated (remember: from right to left), parameters\nfor where and how to draw things are collected.\n\n",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "d4dc659e-f088-44da-87a4-962d9faa2984"
},
{
"Type": 1,
"Text": "Transformations like Offset, Scale and Rotation\nare accumulated.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "9201860c-0aad-40bc-9693-f280da49c181"
},
{
"Type": 1,
"Text": "Settings for Material, Time and resolution \nare overwritten. The last one (on the left) wins.\n",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "7dd94d2a-7335-4106-a707-09402a2a3d00"
},
{
"Type": 1,
"Text": "Switch and Pick operators both help you to build complex\nsetups that respond to inputs like time, audio or sensor data.",
"SymbolId": "fc3a89d4-e7ea-45d8-b1c5-41170c7cd2b8",
"Id": "ac34d967-98a9-43f4-aa93-0c3d1c28c700"
},
{
"Type": 0,
"Text": "This interactive tutorial explains how Tooll's [ParticleSystem] works and how you can use it.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "There are many forces to pick from. \nHere are some examples.\n\nTIP: Please enable idle motion and select \nthe final output to see the effect.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "e458c89f-6239-4306-b90b-311446a1f617"
},
{
"Type": 1,
"Text": "This is a most simple example of a particle system...",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "35f2d883-63f6-49b9-809d-cd9b9b19e94b"
},
{
"Type": 1,
"Text": "A set of point to emit \n(this can be tens of thousands)",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "e8eaa7a4-561b-4bfa-9b05-2cba36dbb1f1"
},
{
"Type": 1,
"Text": "One or more forces that are \napplied to the emitted particles.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "3aa41853-402e-4ed6-aba6-982e98434d06"
},
{
"Type": 1,
"Text": "It generates points that can be used \nfor rendering or other effects.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "3ca7df36-ea96-40c1-81ad-dabbeeb37b8b"
},
{
"Type": 1,
"Text": "The [SurfaceForce] simulates collision of the primitive sphere, cube or plane.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "7f56c6ab-a59a-452c-a4e4-f40dda99b2f3"
},
{
"Type": 1,
"Text": "Emit a single point once per bar.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "3c19a1c5-f12d-492c-a6ff-5ec22db39197"
},
{
"Type": 1,
"Text": "These points are repelled out of the sphere and then attracted towards it.\n",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "1ca566cf-83ad-41fa-90b7-7c34ba1debe1"
},
{
"Type": 1,
"Text": "The VisualizePoints operator can be used\nto show the particle's velocity.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "9380ea3e-c8c2-4f91-a995-46dfd61104a7"
},
{
"Type": 1,
"Text": "Here are some examples for different emitters with\na very simple [DirectionalForce] as gravity.\n\nNotice how we enable initial velocity for the [ParticleSystem].",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "aa50be31-ac57-4994-b957-de79ecdfdc6e"
},
{
"Type": 1,
"Text": "Here are some examples how to chosing different methods \nof drawing the particles can lead to a wide variety of results.\n",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "5bdf284b-854d-4ca4-abb6-5cfb763f132b"
},
{
"Type": 1,
"Text": "A VERY simple particle effect.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "ee30c5cf-c4ce-46da-8a73-58d3599733dc"
},
{
"Type": 1,
"Text": "A simple fire like effect.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "f39ea71c-cb55-41d9-b75e-f823572ed031"
},
{
"Type": 1,
"Text": "This slightly more advanced example highlights the [StepAxisForce].\nOn every beat some of the particles are accellerated towards an axis.\nBecause they leave a [PointTrail] behind, this evalually results into a grid-like structure.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "a8e9c5d5-dd2f-47bd-b2e2-f62b1898f57e"
},
{
"Type": 2,
"Text": "This is a very simple particle force. \nWe animate its force with the current time.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "3727ea90-2f55-4634-aaf3-7369b369135e"
},
{
"Type": 2,
"Text": "Here we only pick a single force. But particle system can be connected to many.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "9502243e-7360-4c55-807f-4361a5914813"
},
{
"Type": 2,
"Text": "This counter is incremeted once every bar add switches between different forces.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "42de9f29-5869-4ab8-84b9-fc9d7105a20e"
},
{
"Type": 2,
"Text": "This is also nice.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "b8729c32-9439-4651-abcd-1a7675d8baff"
},
{
"Type": 2,
"Text": "The [SurfaceForce] can be used an attractor, a container or a reflective surface.\nAlso see the examples further blow.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "ce57c1de-b755-4b5d-b31a-50bd9156892f"
},
{
"Type": 2,
"Text": "Note how we set \"SetWTo\" to ParticleSpeed. This can then be used by the [VisualizePoints] operator to show can the length of the velocity indicator.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "ca8a57cc-6b07-49f4-b652-d29b79f0d891"
},
{
"Type": 2,
"Text": "We generate a new buffer with slightly randomized point orientations.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "edfc232d-0bcb-4d68-8cc1-8b3b4137422e"
},
{
"Type": 2,
"Text": "Switch between the different emit points on every bar.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "5c4c4fdc-a15a-4a9d-bfee-2590bbd59a88"
},
{
"Type": 2,
"Text": "This draws points as billboards with some shading.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "cc6f1e99-1a0f-4e35-b82f-6b2d5391f5f1"
},
{
"Type": 2,
"Text": "Select and pin this operator to see the results.\n\nTIP: Don't forget to start playback or enable Idle motion in the toolbar below.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "6fa6a070-4415-45e0-ace9-7d63bd5849c8"
},
{
"Type": 2,
"Text": "This operator computes the size of each face to produce a uniform random distribution of of points on the mesh surface.\n\nNotes how these points are oriented with their normal pointing towards to mesh normal.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "33c4ad16-4e20-46d8-9065-0c9bf18f17d8"
},
{
"Type": 2,
"Text": "This converts the point into a GPU buffer.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "f2cbfa53-d71a-412e-bd17-54e83703cecf"
},
{
"Type": 2,
"Text": "We randomly rotate the points.\nNotice how we change the transformation space to \"Point\" to rotate around each point's center instead of the object center.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "5998e214-8825-427e-b009-7e628725a5cd"
},
{
"Type": 2,
"Text": "Notice how we set a fixed resolution instead of using the requested output resolution.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "e72c9fac-628b-471d-8c2c-72f255d6b81a"
},
{
"Type": 2,
"Text": "Similar to [PointsOnMesh] this generates random points depending on an image's brightness.\n\nThis operation is VERY slow for large image resolution. Unless the image is animated the result of this computation is cached though.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "772d2d86-561e-4267-b405-b736a2010dcc"
},
{
"Type": 2,
"Text": "We utilize this operator to pick only one of the [LinePoints] for emitting.\nThe index is incremented every frame.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "b214aa0c-42ca-4c23-b860-68931c334cbe"
},
{
"Type": 2,
"Text": "Simple white points. Notice that the Point's W attribute is used for scaling the points.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "cfc7c7c0-c7b5-4f68-a87b-0a4bb3a0c8f5"
},
{
"Type": 2,
"Text": "We switch between different draw styles once a frame.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "ab71bf02-58db-4cfa-ab8a-d0b78df35812"
},
{
"Type": 2,
"Text": "We can instantiate meshes at each point.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "9823e3c4-6b8b-4789-bbe5-b1528e045fe0"
},
{
"Type": 2,
"Text": "We can also clone other points at the particles positions.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "628ae78f-9eae-4479-89c1-5dcc580d62bd"
},
{
"Type": 2,
"Text": "This op uses a volume with a slow fall-off radius to define the strength of the transformation.\nThis can lead to very interesting results...",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "e19288b3-fde2-4e4a-b5ba-1750f7835487"
},
{
"Type": 2,
"Text": "A similar volume with a slow falloff can be used for \"selecting\" points.\nSelection in this case means setting the W-Attribute.\n\nbecause this is then used by [DrawPoints] it looks like the points are fading out.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "8980fc15-5044-474c-9e9c-6ba02c55461a"
},
{
"Type": 2,
"Text": "We change the orientation of this circle toward the y-axis (pointing up),\nand adjust the orientation so Z-points inwards.\n",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "481d81f4-d9cb-4171-b742-1b7bb34f9fca"
},
{
"Type": 2,
"Text": "We adjust the aging rate and write the particle age to the result points W attribute so it can be used by [DrawBillboards].",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "6228a4bd-c9c1-4844-b980-20a94dedc951"
},
{
"Type": 2,
"Text": "We use the W-attribute for sampling a gradient and scale curve for each particle.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "88f59435-472d-47d9-90ae-59c74e57374a"
},
{
"Type": 2,
"Text": "We constantly emit this one point in center, leaving to a gradual increase in complexity.\n\nTip: Try using a [RadialPoint] op instead.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "c8ad57b5-2fa7-498e-a958-86fdb801f5ef"
},
{
"Type": 2,
"Text": "We reduce the particle count to 10k because we draw a line trail for each of those particles.\n\nThe current particle speed is written to W so it can be used by [DrawBillboards].",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "71d60463-8b96-4d44-a841-3bdd53ef6750"
},
{
"Type": 2,
"Text": "These are very long trails leading to roughly 10 million points connected by particles.\n\nNotice how we also insert seperators if the distance between source points is too large.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "d8dd2bde-47f7-4f09-8a6a-cfcdab775007"
},
{
"Type": 2,
"Text": "We ignore the points with for the lines.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "0d092b4a-7378-4625-9d6a-f9b857208b13"
},
{
"Type": 2,
"Text": "...40% of the particles are accellerated along the x,y, or z-axis.\n\nNotice the y-axis: \n- it's chosen only 5% of the time, but then with 4x the velocity.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "03041eed-99b6-47f2-8b55-5d5471202045"
},
{
"Type": 2,
"Text": "On every beat...",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "09cd4ebe-c6a5-4382-b346-100007723e81"
},
{
"Type": 2,
"Text": "Uses draw the W attributes to highlight fast particles.\n\nThe Gradient uses HDRD colors, that spread nicely with [Glow].",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "3147c1a0-dff7-4068-a5fc-3c0ad1124fa2"
},
{
"Type": 2,
"Text": "Everythings looks better with glow.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "a872a7e0-6182-4e05-8eb0-a7d91f07f5fe"
},
{
"Type": 2,
"Text": "Visualize the used emits points with their position and index.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "72174cd2-fad8-4937-bd31-fef054611b64"
},
{
"Type": 2,
"Text": "We adjusted its parameters to it creats 4 points in a on the Y-axis.\n\nNotices how we also adjusted the OrientationAxis to X and adjusted the orientation angle to adjust the points's z (forward) direction.\n\nWe also disable the CloseCircleLine to prevent overlapping points at start and end.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "6c70d237-9e63-4bba-9f46-8a7387ed7afa"
},
{
"Type": 2,
"Text": "Select and pin operator and don't forget to enable Idle motion in the timeline toolbar.",
"SymbolId": "812561d8-cbb5-40c3-a53e-3c3f0ad2352e",
"Id": "937dc47f-0e80-4968-a26d-6721c6f336ac"
},
{
"Type": 0,
"Text": "This playground gives you an introduction on how point buffers can be used to generate content and drive effects.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "There are many ways to generate point buffers.\nHere is a short selection.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "24d6d4c9-86ae-4b27-89e4-4cd940448048"
},
{
"Type": 1,
"Text": "Points can be drawn in many different styles:",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "3c2452bb-9e0b-4eaa-b8f6-0b76783689c6"
},
{
"Type": 1,
"Text": "Combining and blending",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "aa763b0b-105c-4484-a194-645027866b03"
},
{
"Type": 1,
"Text": "A point is a small structure that combines flexibility \nwith a small data size for great rendering performance.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "dc990361-035c-42c0-a86b-8f8b335772c7"
},
{
"Type": 1,
"Text": "Here is a Point. It has...",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "3bb26659-1068-451b-9d15-cfdb43f6ee21"
},
{
"Type": 1,
"Text": "A position XYZ:",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "039a4b9b-2cb2-43b3-8c99-91a22807d920"
},
{
"Type": 1,
"Text": "An orientation:\nIt has 4 components because\nwe use quaternions for better\ninterpolation",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "556dbc5f-4348-4a33-b5b0-e03b8dbefd83"
},
{
"Type": 1,
"Text": "And a W-Attribute:\nWhich is used for various effects like...\n- selection\n- representing line width\n- scale factores\n- particle age.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "84e31cee-df94-4f80-8fa6-d6f8d8f81b33"
},
{
"Type": 1,
"Text": "We use this operator to \nupload the buffer to the GPU.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "efa93f6a-e19d-426f-8e51-80d7aa2ef28f"
},
{
"Type": 1,
"Text": "We can use this point's position to draw more points...",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "dfa7dd0a-a43a-4fa2-b03f-e26be1dcf4a6"
},
{
"Type": 1,
"Text": "...and these positions to draw even more line points at these positions.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "f90ff88b-5619-4340-812f-21bc753440db"
},
{
"Type": 1,
"Text": "...or create another modified copy\nand draw mesh instances there...",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "c682fefc-fbdc-482e-a662-374d73bbab0b"
},
{
"Type": 1,
"Text": "This helper operator visualizes points\nand their orientation. This one is \npermanently visible. But you can toggle\nthe default for these gizmos with the \noutput window \"Gizmo\" toggle.\n",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "422cfb03-b733-4c2f-9bbf-0a3d0453cb1e"
},
{
"Type": 1,
"Text": "Modifying",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "2c36f688-8733-41c5-b0f4-938ba39cb359"
},
{
"Type": 1,
"Text": "Generating Points",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "75f4dc3b-3942-4ebc-937a-cb57ff662c6a"
},
{
"Type": 1,
"Text": "Refine points",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "812b2f92-a03e-4fbc-9550-bea6a9634fdc"
},
{
"Type": 1,
"Text": "Most operators will create NEW buffers with manipulated, combined or filtered points.\nThis allows you to create reproducible and controllable effects.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "e80e0d59-a953-4658-85f3-9cf519280745"
},
{
"Type": 1,
"Text": "The following operators DIRECTLY MODIFY buffers,\nlike you would expect from a particle simulation.\n",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "2b385ae1-10e6-4178-b8ac-cba37ac4f4f2"
},
{
"Type": 1,
"Text": "Here are some more examples for how to use points.",
"SymbolId": "e6a11c29-11f9-49a3-9eff-463a93503420",
"Id": "0731a2ec-bb3c-4986-bf68-a4de4859a35f"
},
{
"Type": 0,
"Text": "This interactive tutorial guides you through the user interface of Tooll3.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "This is an Operator.\nIf you select it, you see its output \nin the Output-View.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "125f20a8-465e-4758-b8c0-7601c7dc0112"
},
{
"Type": 1,
"Text": "You can create a connection by\ndragging the output of [LoadImage] \nto the Image input of [DetectEdges].\nThen select [DetectEdges] to see \nthe result.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "d26f5d4f-5727-4d0f-989b-9fcb19c037e6"
},
{
"Type": 1,
"Text": "Tutorial 1 ",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "df329cf7-1e0e-496a-b91e-592a30ccbbd5"
},
{
"Type": 1,
"Text": "Welcome - You made it!\nDouble clicking on an operator will enter it. This is how you got here.\n\nTry to double click on the background to get back to the [HomeCanvas].\n",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "ac1fcac6-637d-474b-8a07-98c92c18ab56"
},
{
"Type": 1,
"Text": "Notice how the breadcrumbs in the top left corner also \nguide you back home...",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "a3cc2028-be91-472c-985d-cb6c707383c1"
},
{
"Type": 1,
"Text": "Creating new operators is easy:\n1. select [DetectEdges] and...\n2. press TAB on your keyboard.\n3. Type \"Color...\" and select \n [ColorGrade] by pressing return.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "1058504f-053c-4b01-833c-4c5d8d5ea64a"
},
{
"Type": 1,
"Text": "1. Creating and connecting Operators",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "474e3707-8497-44ea-890b-fc3f1f6b4448"
},
{
"Type": 1,
"Text": "Adjusting parameters with the Parameter Window",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "54456a70-93a3-4455-b1e1-a2731d03de39"
},
{
"Type": 1,
"Text": "1. Select the [Blob]...\n2. Notice how the parameter window shows the things you can do with it..\n",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "86ddce6c-2d27-451c-acde-7edffdb45820"
},
{
"Type": 1,
"Text": "You can...\n\n1. Drag values horizontally to change them.\n2. Click a value to type, e.g. values like \"2.1\" or fomulas like \"1.4/3\"\n3. Hover over a value to use mouse wheel. Try holding Shift (for finer) \n or ALT (for faster) changes.\n\n",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "f5ee65c5-76e7-4242-bdb2-6e6c8ab1cc2a"
},
{
"Type": 1,
"Text": "6. Click on a parameter name \"e.g. FillColor\" to reset it to its default.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "f083606b-1507-4ed9-a5e1-d41787afec99"
},
{
"Type": 1,
"Text": "4. Click on a color to open the color picker.\n5. Drag a color vertically to adjust transparency or brightness.",
"SymbolId": "1ec749af-fe7d-4728-9855-d1fa3e879751",
"Id": "1f963cbf-7a9d-4ffd-b881-a193e3ee1ce3"
},
{
"Type": 0,
"Text": "A simple template for programming new Point compute shaders.",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Convert input parameters to into a buffer \nfor the shader.",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "2b4e0d94-84f9-48d0-93c3-68c178f8ac14"
},
{
"Type": 1,
"Text": "Get the number of input points...",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "356e48a1-bbe5-4eb6-b0c0-1b9be5788255"
},
{
"Type": 1,
"Text": "Setup a new structured buffer with the \nrequired dimenstion (stride) and length.",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "dc8affb1-d3ea-44eb-bc8d-12a8fd5ade4a"
},
{
"Type": 1,
"Text": "Setup the compute shader and calculate\nthe number of dispatches ThreadGroups\nand buffer length.",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "11995ccc-443d-447b-8c14-0101552651e5"
},
{
"Type": 1,
"Text": "This is the shader you want to edit.\nSelect it, then click [Edit] in \nParameter Window...",
"SymbolId": "0db659a4-d0ba-4d23-acac-aea5ba5b57dc",
"Id": "25ec73d0-2770-4767-9216-a851924a9820"
},
{
"Type": 0,
"Text": "A very simple proportional-integral-derivative controller.\n\nNote that the increment is a rate that get multiplied with the current frame duration: With an increment of 1 you have a full value change of 1 unit after one second.\n",
"SymbolId": "90b2c6d2-e9a6-4910-b42d-94202f07be27",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a repetitive LFO-like signal syned to the current BPM rate. It supports various shapes, modes and forms.\n\nYou can manipulate the rate and shape directly in the graph by dragging with CTRL+ left mouse button.\n\nSome tips:\n- Please checkout the [HowToAnimate] playground to see some applications.\n- You can use [SetSpeedFactors] to override the incoming rate, which is very useful for live VJ setups.\n\n- Also have a look at [AnimVec2], [AnimVec3], and [TriggerAnim].\n",
"SymbolId": "ea7b8491-2f8e-4add-b0b1-fd068ccfed0d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a repetitive LFO-like signal syned to the current BPM rate. It supports various shapes, modes and forms.\n\nYou can manipulate the rate and shape directly in the graph by dragging with CTRL+ left mouse button.\n\nSome tips:\n- Please checkout the [HowToAnimate] playground to see some applications.\n- You can use [SetSpeedFactors] to override the incoming rate, which is very useful for live VJ setups.\n\n- Also have a look at [AnimValue], [AnimVec3], and [TriggerAnim].\n",
"SymbolId": "af79ee8c-d08d-4dca-b478-b4542ed69ad8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a repetitive LFO-like signal syned to the current BPM rate. It supports various shapes, modes and forms.\n\nYou can manipulate the rate and shape directly in the graph by dragging with CTRL+ left mouse button.\n\nSome tips:\n- Please checkout the [HowToAnimate] playground to see some applications.\n- You can use [SetSpeedFactors] to override the incoming rate, which is very useful for live VJ setups.\n\n- Also have a look at [AnimValue], [AnimVec2], and [TriggerAnim].\n",
"SymbolId": "7814fd81-b8d0-4edf-b828-5165f5657344",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very versatile operator that uses beat time to increment values periodically.\n\nNote that you can adjust many properties directly within the graph while holding CTRL+key.",
"SymbolId": "11882635-4757-4cac-a024-70bb4e8b504c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Keeps the current input value as long as Keep is true.\nThis can be useful for building interactive features like stop watches.",
"SymbolId": "587dbb73-fd79-4481-a79e-f77055abda9a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that combines 3 sin waves into a vector",
"SymbolId": "8a6ab5ec-caa6-4baa-a9d1-2079af22685c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate interactive animation values than can be triggered with a boolean value.\nIt offers a variety of shapes and modes.\n\nTips:\n- Hold CTRL to directly manipulate rate and shape in the graph.\n- Have a look at [HowToAnimate] to get some ideas on how to use this.\n\nAn example setup might be:\n\n[HasValueIIncreased]->[TriggerAnim]->[SampeGradient]->[Blob]",
"SymbolId": "95d586a2-ee14-4ff5-a5bb-40c497efde95",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Defines a Gradient from a set of Colors and positions.\nThis can be useful for animating gradients.\n\nPosition outside the range of 0 ... 1 will be ignored.",
"SymbolId": "185452c6-f299-42a3-b618-c6aa00d66c62",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets the color of a certain position in the texture",
"SymbolId": "42703423-1414-489e-aac2-21a3d7204262",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Defines a gradient that can then be sampled into a color or used further by [GradientsToTexture] or other operators.\n\nThe first output returns the sampled color.\nThe second output the gradient structure.\n\nRight click in the parameter window gradient to adjust interpolation mode or save presets.",
"SymbolId": "8211249d-7a26-4ad0-8d84-56da72a5c536",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends the connected input images with cross-fading and using a float index.\n\nPlease note: this will lead to inconsistent behaviour if used with images of varying resolution unless you set an explicit resolution.\n\nAlso see: [PickTexture]\n\n\n",
"SymbolId": "48781d5a-d67f-4b9f-8554-35185ddb6c5c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses a float index to alpha blend between draw scenes.",
"SymbolId": "6e67d136-9285-48c6-a557-0a07361fc847",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Controls how frequently the sub graph is being executed. \nThis can be useful for increasing or slowing down simulation speeds.",
"SymbolId": "46420979-1e56-4de3-a6ca-0447be1b9813",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Executes the subgraph only once. This can be useful for initializing buffers or resetting states.",
"SymbolId": "7a09136e-18b2-46b7-afff-8ef999e3965d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that first evaluates a command input before returning a texture2d. This can be useful for compute shader processing.",
"SymbolId": "6c2f8241-9f4b-451e-8a1d-871631d21163",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Performs a sequence of drawing operations and then restores the graphics context. You can use it for grouping or activating and deactivating parts of your graphs.\n\nSince [Execute] itself does nothing, you can also use it to name things by inserting it into the graph and setting the instance name by pressing Enter.\n\nAn alternative to [Execute] is [Group], which can also have a translation and multiple input connections.\n",
"SymbolId": "936e4324-bea2-463a-b196-6064a2d8a6b2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Prints a message to console log. \nThis can be useful for debugging updates, caching and timing in complex graph networks.",
"SymbolId": "53127485-e2c7-4be8-aff2-da5790799593",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Executes the sub graph multiple times. This can be very useful for iterating a drawing functions.\n\nYou can use [GetFloatVar] and [GetIntVar] to access the iterator variables. \n\nPlease note that this operation creates draw calls for each iteraction and thus is not meant for loop counts exceeding 1000 or more.\n\nPlease check the example.\n\n\n",
"SymbolId": "3631c727-36a0-4f26-ae76-ee9c100efc33",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Enables the sub graph on the left side only with the playback time is within the timeclips region allowing you to cut from scene to scene.\n\nThis allows you to edit sequences similar to non-linear editing applications with timeclips in the timeline.",
"SymbolId": "3036067a-a4c2-434b-b0e3-ac95c5c943f4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates Points and Sprites from a text that can be animated and then rendered with [DrawPointSprites] or [DrawPointSpritesShaded].\n\nThis operator is an advanced solution that loads a BmFont fond definition and the matching MSDF (multichannel distance field) texture and generates a set of buffers.\nThis buffers can then be modified and combined with other operators.\n\nThe Point - buffer includes position, orientation and W (size).\nThe Sprite - buffer contains additional attributes for rendering like texture UV coordinates for characters, pivot, size and layout information.\n\nSome tips:\n- You might replace the Point buffer with another buffer (e.g. [RadialPoints].\n- For rending basic text usage consider using [Text].\n\nCheck the examples.",
"SymbolId": "1a6a58ea-c63a-4c99-aa9d-aeaeb01662f4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Can be used to define a text string that can be used later.\n\nTIP: To increas the size of the input pannel, you can right click on the edge of the operator and switch display to \"Resizable\".",
"SymbolId": "5880cbc3-a541-4484-a06a-0e6f77cdbe8e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Produces a wide selection of text writer effects that \ncan be linked to AudioReactions. Interesting Setups are\n\n[MockStrings]->[GetStringPart]->[ScambleString]",
"SymbolId": "7b21f10b-3548-4a23-95df-360addaeb03d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Changes a case of string to upper or lower case.",
"SymbolId": "acdd78b1-4e66-4fd0-a36b-5318670fefd4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines any number with strings with the provided optional seperator.\n\nTo add line breaks use \"\\n\".\n\nAlternative titles: Concat, Join",
"SymbolId": "48ab9824-76ca-4238-800f-9cf95311e6c0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Extracts directory, filename and extension from a filepath and checks if filepath exists.",
"SymbolId": "42c556fb-014b-4ac5-b390-f426ab415aa7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a list of float numbers to String",
"SymbolId": "abf1ec99-049d-474c-9023-5302d5a5c804",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a float value into a string.\n\nYou can use the .net string format descriptor various effects, like...\n\nHere are some examples for for the value 1.2345\n\n{0:P1} -> 123.45%\n{0:000.000} -> 001.234\n{0:0} -> 1\n{0:G3} -> 1.23\nneed {0:1.2} cookies -> need 1.2 cookies\n",
"SymbolId": "39c96cfd-dedf-4f76-a471-d1c26c9ba9fa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts an [IntValue] to a string.\n\nTip: You can override the string formatting to something like... \"{0:0} times\" add prefexis or suffixes.",
"SymbolId": "416a1c8d-4143-4de7-bcf9-466c4009112a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Joins the members of a string with with a separator.",
"SymbolId": "51943340-70b1-4bb5-8cb9-0e79d366a57b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A small selection of strings of different categories.",
"SymbolId": "3af25959-fd3f-4608-b521-5860d82554df",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets a lines, words or charactsr from the input string. Good for type writer effects, etc.",
"SymbolId": "7baaa83d-5c09-42a0-b7bc-35dbcfa5156d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Picks a string of multiple connected.",
"SymbolId": "a9784e5e-7696-49a0-bb77-2302587ede59",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns a random word per beat.",
"SymbolId": "dd7fa7ee-266a-43c8-b29f-3357488b26be",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Looks for an characters or strings in within another string and returns are new string with the matches replaced.",
"SymbolId": "b7910fc6-c3b2-4daf-93cd-010dcfe22a57",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Repeats a string multiple times.",
"SymbolId": "04d0d6d7-8c40-4d18-aa44-6806c51fe139",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Wraps a string a column width",
"SymbolId": "96ccea19-c37f-4ee4-8dd2-5abdb347f5a1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple Testscene made in Tooll3 and recreated in Blender EEVEE to make comparisons",
"SymbolId": "77e234f1-1c07-4742-82fc-1b6178f734c7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Just a chair with a blob shadow",
"SymbolId": "e830b91b-80cc-4fc7-9b9f-52b47c95fc85",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Examples",
"SymbolId": "a4f8b7e9-a52f-41b6-a63b-d30e5ba77825",
"Id": "e30a7b4b-8835-47d1-88db-dbb961e883ef"
},
{
"Type": 0,
"Text": "A visually pleasing example of how to use [CamPosition] to emit particles in front of an arbitrary camera.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Highlight grid cells",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "2a6c1856-7f44-4249-aa32-4d76e65d7399"
},
{
"Type": 1,
"Text": "Draw grid",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "3769fc78-7a43-41ad-a1bb-e3bbfae7bc72"
},
{
"Type": 1,
"Text": "Take the camera position and move it slightly\naway along the view direction. Then add some perlin noise.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "1ae65319-3191-4a09-8496-d0da1886214a"
},
{
"Type": 1,
"Text": "Draw twisted particle trail.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "4a90a060-5873-4412-8b0d-3e4f1d18c8bb"
},
{
"Type": 2,
"Text": "Note how the [CamPosition] operator needs to be connect so it is updated first with the current camera set in the context.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "172e2960-77d0-4f9c-88bd-6811041c54ab"
},
{
"Type": 2,
"Text": "Disable line mode and adjust orientation of circle and its point so that each point's z-axis is pointing outwards.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "fdf61255-1945-4d60-b3ed-6e547adc9c77"
},
{
"Type": 2,
"Text": "We set the w-attribute to the particle age so it can then be used by [DrawBillboards] for coloring the points.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "d6966486-fd1c-4347-a580-5d46da24dbf9"
},
{
"Type": 2,
"Text": "We add a little bit of noise to make things more interesting.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "f29ca9cb-6fa8-419c-9de3-50f4dcd55a3c"
},
{
"Type": 2,
"Text": "We use the time to spin the emit points into a twirl.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "25e8b622-b41d-4573-9d0c-b093850c7c45"
},
{
"Type": 2,
"Text": "Pleaes note how we set the second \"wobble\" component of some parameters to create a more complex camera animation.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "dac7434c-fdaf-4aac-aaba-c4429e286c9b"
},
{
"Type": 2,
"Text": "We create a point at the current center...",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "2023d2ab-a742-42be-b167-09eb381dd08f"
},
{
"Type": 2,
"Text": "another point with the y-axis zeroed out.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "8ef6b90a-829c-402a-a434-78a6f6c7bd4e"
},
{
"Type": 2,
"Text": "We connect both points to draw a line.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "2699a417-482f-4858-845d-63fc78622af9"
},
{
"Type": 2,
"Text": "To get the center position of the active cell, we first have to floor...",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "268bfcf1-8fe5-4b43-982d-ad5e66525301"
},
{
"Type": 2,
"Text": "Create a point at that center position.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "9d4c0032-4ef7-4ee5-95d3-443733b00887"
},
{
"Type": 2,
"Text": "And yes, this is a very ugly trick: to fade the cells out, we just draw 100 cell on top of each other.\n\nThis is not a very performant way to do this.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "099a644e-b04a-4a40-898e-7f461a96940b"
},
{
"Type": 2,
"Text": "..then have we have to add have a cell width.",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "2f0ee70b-bb1a-44a9-a4ae-c85e9de9826a"
},
{
"Type": 2,
"Text": "We repeat some radial points at the floor point to indicate the base",
"SymbolId": "5fb11919-0eef-4cee-bddf-bf30e0a98ad9",
"Id": "95a7f9ba-a7b7-4695-b422-81f4a10fdaa6"
},
{
"Type": 0,
"Text": "Your personal Workspace.",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Welcome to Tooll3\n\nThis short tutorial will guide you through the first steps.\n",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "b81c6d34-6ca0-4cf8-aeb5-49e6bdeae95a"
},
{
"Type": 1,
"Text": "This is the Graph Window.\n\nIn the top right corner, you see, that it's \ncurrently showing your [Dashboard].",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "1bb9e84d-84fb-4bc0-a070-ba1d76092369"
},
{
"Type": 1,
"Text": "You can...\n- zoom with mouse wheel\n- pan with the right mouse button\n- or press [F] to adjust to the view to show all \n content.",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "3abc855f-23b7-4e19-b575-d7afc764b9ca"
},
{
"Type": 1,
"Text": "This is an Operator.\n\nIf you select it, you will see its output in the Output-Window.\n\nTry to double-click it, for an interactive tutorial that will guide you\nthrough Tooll's user interface.\n\n\n\n\n\n\n Double click ------>",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "589f0a56-7537-4b0e-9305-ec21b76ae7fa"
},
{
"Type": 1,
"Text": "This is a simple Graph. Select the [FluidFeedback] operator to see it's output.",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "7a6d050e-f043-49ca-9f1f-23caca7914d3"
},
{
"Type": 1,
"Text": "Some more complex projects.",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "0c4f5f08-a8f1-4791-8764-f3a49aa77871"
},
{
"Type": 1,
"Text": "These interactive playgrounds give you a first introduction on how to use different Operators.\nThere is also the \"Tip of the Day\"-playlist on YouTube.",
"SymbolId": "dab61a12-9996-401e-9aa6-328dd6292beb",
"Id": "b4fc7f16-73ac-48ea-93d2-6253527680e3"
},
{
"Type": 0,
"Text": "Shows how to use [Loop] to iterate over the nodes connected to a [Switch]. ",
"SymbolId": "a3945dbe-d5be-4f0f-a904-8ee287d14a9f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "This is the loop body that is processed on every iteration.",
"SymbolId": "a3945dbe-d5be-4f0f-a904-8ee287d14a9f",
"Id": "ef2af288-141f-4063-bf15-e93628d40f6c"
},
{
"Type": 1,
"Text": "This returns the iteration index.",
"SymbolId": "a3945dbe-d5be-4f0f-a904-8ee287d14a9f",
"Id": "3c3a2bbc-1853-4a4c-9d9e-d4f0e80f1c77"
},
{
"Type": 1,
"Text": "This returns the normalized progress \"f\"\nof the loop as values between 0 and 1.",
"SymbolId": "a3945dbe-d5be-4f0f-a904-8ee287d14a9f",
"Id": "140c217c-fb66-48a6-9ea5-155b3f30d392"
},
{
"Type": 1,
"Text": "This is the iterator that\nalso defines the name of\nthe iterator variables.",
"SymbolId": "a3945dbe-d5be-4f0f-a904-8ee287d14a9f",
"Id": "95d1d86b-ae07-4f9c-91aa-61fffca633c0"
},
{
"Type": 0,
"Text": "Shows how to [DetectBpm] is used to do a bpm sweep over a range of bpm-rates and visualize the energy differences for all rates in a plot chart.\n",
"SymbolId": "012119bf-aeec-4134-b7aa-6bc7f9816800",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how the different [Damp] methods work.",
"SymbolId": "366b6a6f-9995-48a1-bc0e-5c516ec5170e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates different applications for DrawBillboards.\nIt also shows how to [CollectSpawnPoints] to drive simulated animations.",
"SymbolId": "93292762-bc39-4b66-ace0-583f461abf76",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick test reproducing an image from the internetz.",
"SymbolId": "c7f87607-dea2-4250-bd51-65fb6e12872d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to read back point information from the gpu and use them in CPU operators.\nIn this case we set the camera's target to a point position.",
"SymbolId": "25d26231-730e-4376-b256-e34eca6290ce",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows a couple of things you can do with [LineTextPoints]",
"SymbolId": "c49ebc17-b730-4e86-9ea7-2c404e4be3ad",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to load a point cloud with color information.",
"SymbolId": "3096f86e-e850-4f76-80de-1996fc811285",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This examples explores how to combine [ParticleCollisionForce] with a [SurfaceForce].\n\nAlso check the comments on the graph operators.",
"SymbolId": "54bea221-f2db-4ff8-afeb-200bcfd37871",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Various examples for force driven particle simulations.",
"SymbolId": "c05bc3da-6f9c-45a7-8030-78476027359d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Let's emit some points\nNotice how the Particle Simulation activates aging\nand initial velocity...",
"SymbolId": "c05bc3da-6f9c-45a7-8030-78476027359d",
"Id": "913e0cb2-9743-484a-b7ef-f45bfe2b49bb"
},
{
"Type": 1,
"Text": "Let's apply some forces...",
"SymbolId": "c05bc3da-6f9c-45a7-8030-78476027359d",
"Id": "2ea289c8-d9a3-4a99-bbad-df3a0fffed14"
},
{
"Type": 1,
"Text": "Let's draw the particles. \nNotice how the w-parameter is used to\ndrive the color over lifetime...",
"SymbolId": "c05bc3da-6f9c-45a7-8030-78476027359d",
"Id": "70dda3ed-e760-4d1c-ad6a-f4b5315179d1"
},
{
"Type": 1,
"Text": "Just another funky effect.",
"SymbolId": "c05bc3da-6f9c-45a7-8030-78476027359d",
"Id": "09003d84-a123-4e76-8bba-00155fada3a8"
},
{
"Type": 0,
"Text": "This shows how to use a 3d perlin noise field",
"SymbolId": "78413b72-9c04-41e7-93cc-7fc75aff99b5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to combine multiple [ReplicateAtPoint]s, [SamplePointAttributes] and [SelectPoints] to generate a feather like structure.",
"SymbolId": "01ebb7a3-9caa-4259-aaa1-c79248b39325",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to combine [GridGPoints] with [SelectPoints].\n",
"SymbolId": "2fcb6afc-2d82-47a5-a6dd-39c85348b8c4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to combine boid simulation with [PointTrail] and [KeepPoints]",
"SymbolId": "abdf2c06-2b93-4938-afac-6d737a1c1be5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An illustration how to cascade multiple SoftTransform Operators to create intersting shapes.",
"SymbolId": "a1384530-671b-4a6a-b17c-89480bc2f23a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Draw lines using W for color",
"SymbolId": "3828afee-3ba2-43f4-abc0-6e8f3e257cc5",
"Id": "b549891a-d91f-4d86-a00d-31bb58767728"
},
{
"Type": 1,
"Text": "Get some point buffer variations",
"SymbolId": "3828afee-3ba2-43f4-abc0-6e8f3e257cc5",
"Id": "8ee1ac6a-1460-486d-8c47-61f324489ae8"
},
{
"Type": 1,
"Text": "Get some texture variations",
"SymbolId": "3828afee-3ba2-43f4-abc0-6e8f3e257cc5",
"Id": "9b7106ee-271f-4938-b341-e051b7d23e3c"
},
{
"Type": 1,
"Text": "You should also play with presets.",
"SymbolId": "3828afee-3ba2-43f4-abc0-6e8f3e257cc5",
"Id": "ffc32405-0d86-4584-aa43-3dfcad525bc8"
},
{
"Type": 0,
"Text": "Illustrates how to use [TransformCpuPoint] to implement an interactive camera control.\n\nThis is different from Tooll's CameraInteraction because it would work for exported executables.",
"SymbolId": "69020cd2-de9a-4150-bac5-b547301e7bc8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Example on how to combine [SelectPoints] with [TransformPoints] in point space.\n\nTip: Toggle Gizmos in View to see point visualization.",
"SymbolId": "0d94d3d9-3023-4763-b80c-2c63415500d4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to embed the SpatialHashMap algorithm.",
"SymbolId": "69776b58-e05d-47c8-b19f-2f44f7b9c915",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to combine [SelectPoints], [TextSprites], and [DrawPointSpritesShaded] into a nice animation.",
"SymbolId": "876e870a-2e34-4adb-bdc9-878b312e633b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how an animated scene can be rendered multiple times. This can be useful for motion blur effects.",
"SymbolId": "1cccb283-18f0-4ef2-817f-dd28d40ebb7a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws PBR shaded instances of a mesh defined by the connected point buffer. It uses the current settings for material, point lights, fog and environment. It can use the point's W attribute to control the size of the instances.\n\nCheckout the [HowToDrawThings] on how to set these up.\n\nAlso checkout [DrawMesh] and [RepeatMeshAtPoints].",
"SymbolId": "42cb88bc-beb8-4d89-ac99-44b77be5f03e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A more abstract shading style",
"SymbolId": "c757cde3-511c-44cb-af62-39156557daa6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws a mesh without any shading.",
"SymbolId": "4499dcb1-c936-49ed-861b-2ad8ae58cb28",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses PBR rendering to draw a mesh using the current settings for material, fog, point lights, transform and camera. For convenience Tooll adds a default reflection and two point lights attached to the camera to a RenderTarget. You can override these by adding [SetEnvironment] and [SetMaterial] operators further up (further right) in your graph.\n\nYou can adjust various parameters to achieve wireframe or both sided rendering.\n\nAlso take a look at [DrawMeshAtPoints], [DrawMeshUnlit], [DrawMeshHashed] and the [HowToDrawThings] playground.",
"SymbolId": "a3c5471e-079b-4d4b-886a-ec02d6428ff6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws points that repeated wrapped and animated around the current camera position.\n\nTip: This effect can be combined with [SetFog].",
"SymbolId": "d14233a2-8240-47d3-bb92-0854f6d3b218",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends smoothly between image files read from a directory.\nBlendspeed controls the speed of the transition.",
"SymbolId": "cb89ed1d-03ea-4880-bfa0-1dd723e4bdab",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Current",
"SymbolId": "cb89ed1d-03ea-4880-bfa0-1dd723e4bdab",
"Id": "cd62dd3a-e66b-49c4-a1fc-39130ac7aa8d"
},
{
"Type": 1,
"Text": "Next",
"SymbolId": "cb89ed1d-03ea-4880-bfa0-1dd723e4bdab",
"Id": "40309590-e388-4fb2-bd12-30d1f1c7978c"
},
{
"Type": 0,
"Text": "A gizmo for debug visualization",
"SymbolId": "763e1851-36ef-4443-92d9-4d49ee479357",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An attempt to draw camera gizmos.",
"SymbolId": "cdf5dd6a-73dc-4779-a366-df19b69071a6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders a grid of lines in the given scaling. \nThis might be useful for debugging or to use as content.",
"SymbolId": "296dddbd-250b-4801-a039-bcb3cd555774",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper gizmo that can uses a fragment shader to draw smooth grid lines.",
"SymbolId": "935e6597-3d9f-4a79-b4a6-600e8f28861e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Provides a 3d position in world space that can but used to drive other components.\n",
"SymbolId": "348652c3-abf5-4fe9-873b-89d1acaaf0ff",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Plots a history curve of a value.",
"SymbolId": "92f3193e-a7dd-4417-b569-129823607fbe",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Only executes the subgraph if the set visibility matches the visibility of the evaluation context.\n\nThe user can toggle the gizmo visibility by the gizmo icon in the output window.",
"SymbolId": "d61d7192-9ca3-494e-91e2-10a530ee9375",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This helper operator visualizes points and their orientation. It is permanently visible, but you can toggle the default settings for these gizmos using the \"Gizmo\" toggle in the output window.\n\nUnderstanding the size, order, and orientation of points in space can be crucial for content creation.\n\nDepending on the use case, this operator can help you visualize:\n\n The centers\n The \"w\" attribute (represented by the scale of the center points)\n The \"w\" attribute (listed as the connected table on the left)\n The orientation with its axes: x (right), y (up), z (forward)\n The orientation as sprites (indicated with an \"F\")\n The velocity of the points encoded in the rotation (relevant only for Simulation operators).\n\nAlso, please take a look at the presets.",
"SymbolId": "37bdbafc-d14c-4b81-91c3-8f63c3b63812",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws additional informations like index or position on points.",
"SymbolId": "ff5b93e3-d29f-489f-8cca-cb12cd1af65d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal wrapped used by the editor output window. \n\nShould not be used and must not have input parameters.\n\nPlease consider using [GridPlane].",
"SymbolId": "e5588101-5686-4b02-ab7d-e58199ba552e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws mesh normals, tangents and bitangents as lines for analysis. \nThis can be useful to verify that TBN space is spatially consitent.",
"SymbolId": "dd353ac7-1f11-4dd6-aff5-5c557c695512",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds a depth of field effect.\n\nHint: Use a [Locator] and its DistanceToCamera output to use automatic focus distance.",
"SymbolId": "53d3eebd-4ead-4965-b26d-10a8bbd48182",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses the z-buffer to draw god rays.",
"SymbolId": "e1c294b5-1ea8-435e-a437-26d280d3c2f4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a post processing motion blur to a RenderTaget texture and its DepthBuffer.",
"SymbolId": "196e14c7-3a71-4afd-a53b-e51d0fe8f414",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Pre-made complex light flare setups with various styles.\n\nRequire at least one [PointLight] on the left side.",
"SymbolId": "eb4d5014-2619-4368-a1b8-521db8372243",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A point light with gizmo",
"SymbolId": "9c67a8c8-839f-4f67-a949-08cb38b9dffd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets the image based lighting (IBL) for the current RenderTarget. This texture can then be used by drawing operators for physically based rendering (PBR) further left in the graph.\n\nSome background information: a standard technology for rendering is to use environment textures that store various degrees of roughness in their mip map levels: fully reflective chrome in the highest resolution and very blurry/diffuse reflections in the lower levels. This is not just done be blurring, though: a single ultra bright pixel (E.g. the sun) can brighten the complete diffuse reflection. This computation is very(!) expensive and should not be done in real-time for high resolution environment maps.\n\nTo compute this IBL map [SetEnvironment] needs a cube map texture. As of now you can load equirectangular HDR maps only in DDS format and convert them with a [TextureToCubemap]. We are working on making this more convenient. You can also use procedural image textures for this.\n\nNOTICE: For the background environment to have the correctly aligment, the camera must be set after the environment:\n\n[DrawMesh]->[SetMaterial]->[SetPointLight]->[SetEnvironment]->[SetCamera].\n\nAlso see: [HowToDrawThings]",
"SymbolId": "f3b66187-34b2-4018-8380-279f9f296ded",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Set fog rendering properties for the sub tree.",
"SymbolId": "74cbfce0-f8b8-46a1-b5d6-38477d4eec99",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets the phyical base rendering (PBR) material for the current RenderTarget which is then used by [DrawMesh] and other PBR rendering operators. Each of the material properties can be controlled by a color or by connecting a texture input.\n\nPlease note that color parameter is multiplied to the texture: so to for an emissive texture to be visible, you have to first set the Emissive Color to one.\n\nThe base (albedo) color can also be adjusted by the Draw operators.\nPleaes use [CombineMaterialChannels] to combine Roughness, Metallic and Occulusion textures into a single texture that can be connected to the .RoughnessMetallicOcclusion parameter.\nFor the roughness rendering the draw operators need an IBL texture set by [SetEnviroment] . We uses a default IBL map as a default.\n\n\nAlso see: [HowToDrawThings]",
"SymbolId": "0ed2bee3-641f-4b08-8685-df1506e9af3c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds a point light to the evaluation context. The maximum number of lights is 8.",
"SymbolId": "4912ba82-460a-4229-884d-6b647d64b08c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a 2d texture into a cube map that can then be used by [SetEnvironment] for PBR image based lighting.",
"SymbolId": "e85d98cf-9240-4f5d-8df6-35425d325778",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Smoothly blends between multiple cameras by using a floating point index.",
"SymbolId": "e3ff58e2-847a-4c97-947c-cfbcf8f9c79d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets the camera for the subgraph.\n",
"SymbolId": "746d886c-5ab6-44b1-bb15-f3ce2fadf7e6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Groups a sequence of incoming draw commands.\n\nAlthough simular to [Execute] it also allows to [Transform] and override the color multiply for all operators further down (I.e. left) in the graph.\n",
"SymbolId": "a3f64d34-1fab-4230-86b3-1c3deba3f90b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Provides common camera movement utilities for an easy dynamic camera setup",
"SymbolId": "6415ed0e-3692-45e2-8e70-fe0cf4d29ebc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Set an orthographic project matrix for the operators following further down (I.e. to the left).\n\nNote that this projection uses a special z-buffer depth that might be incompatible with other operators like [DepthBufferAsGrayScale]",
"SymbolId": "954af16f-b37b-4e64-a965-4bec02b9179e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a rotation to the transform matrix.",
"SymbolId": "a6e12383-09b6-4bbd-a4bb-8908598c3409",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a shearing transformation to the transform matrix.",
"SymbolId": "c3d35057-2544-4b82-b2de-b70fe205662b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shifts the clip space of the current context projection matrix.\nThis might be useful for the implementation of obscure rendering tricks.",
"SymbolId": "1a8d2a8d-d189-472f-bab3-d645a63c7aff",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Modifies the Viewport and projection matrix to help drawing grid cells. \n\nIn the simplest form this can be used to limit the rendering to a letter box format (I.e. with black bars on top and bottom).\nIn a more complex setup it can be combined with Loop to draw a grid of render passes. See example for more details.",
"SymbolId": "8b888408-e472-4bf9-be25-17a3dd8b90fd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Spatially distributes the incoming graph elements.",
"SymbolId": "e07550cf-033a-443d-b6f3-73eb71c72d9d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Switches between connected graphs.\n\nThe index starts with 0 for the first input and will wrap on values exceeding the count of connected inputs.\n\nTip: \n- use index -1 to activate non (I.e. disable all)\n- use index -2 to activate all\n\nThe naming of this operator diverges from the Pick... convention like [PickColor], [PickImage] etc because it also allows to execute \"nothing\" or all connected inputs. \nThis is a a consequence of command being the only \"type\" that doesn't return data but only executes connected commands.\n\n\n",
"SymbolId": "e64f95e4-c045-400f-98ca-7c020ad46174",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Moves, Scales and Rotates the sub graph. \nTransform ops can be chained to add local pivots.\n\nAlso see [HowToDraw3d] playground.",
"SymbolId": "284d2183-197d-47fd-b130-873cced78b1c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal helper that applies camera transfrom matrix to the context. \nThis is can be used to draw something distorted with camera clip space.",
"SymbolId": "3dae14a8-3d0b-432f-b951-bdd7afd7e5f8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper to access elements of a transform matrix stored in a SharpDX.Vector4[]",
"SymbolId": "a83f2e4f-cb4d-4a6f-9f7a-2ea7fdfab54b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses a camera projection and the UV layout of the incoming mesh to reproject an image onto a geometry.\n\nThis can useful for uses like projection mapping or imersive media installations.\n\nNote:\n\nFor the setup to work correctly make sure that...\n- the FOV of the viewer camera is wide enough.\n- the aspect ratio of the viewer camera matches the texture resolution\n\nSee [ReprojectToUvExample].",
"SymbolId": "4238439e-a6b4-4390-9984-e6ebf19c3a69",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Set the projection matrix to the properties provided by another camera.\n\nThis can be helpful for reusing an animated [Camera] for several [RenderTarget]s.\n",
"SymbolId": "484bec1b-e441-440a-85b4-b3865c57b4ed",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An experiment that users a texture to shade text characters written in a text block.\nThis is ",
"SymbolId": "ad28819d-be62-4ed7-932a-fc861562983d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Composes a transformation matrix from translate, scale and rotation that can be used inside shaders",
"SymbolId": "17324ce1-8920-4653-ac67-c211ad507a81",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "once upon a time...",
"SymbolId": "fa45d013-5a1c-45a0-9b05-a4a4edfb06f9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Pre-integrates Cook-Torrance specular BRDF for varying roughness and viewing directions.",
"SymbolId": "08d526d0-d5e5-4fc9-a039-98189721d2b8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal helper that converts a depth buffer into a linear texture map. \n\nNote that the TextureMap is not returned but a reference has to be provided as input parameter.\n\nOutput range is only used if one of the is not 0.\n\nConsider using the more convenient [DepthBufferAsGrayScale].",
"SymbolId": "ade1d03d-db80-41ad-bcfa-8a2b900e9d41",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Internal implementation of the Depth of Field effect.\n\nThis is an internal component of [DepthOfField].",
"SymbolId": "2cd650a1-5b77-4040-895b-6049dc09206e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draw a lense flare shimmer effect at the given points.",
"SymbolId": "c87b140b-1109-4eff-bf77-98bff3fc3e17",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a list of Sprite positions that can be joined and rendered as sprites.",
"SymbolId": "947ad81e-47da-46c3-9b1d-8e578174d876",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Internal operator that prepares attribute for rendering a quad as a Layer2d.\nWe reimplemented this functionality c# for performance optimization.",
"SymbolId": "d8699da1-13aa-42f7-816a-88abb1d0ba06",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal implementation of the Text operator that generates a sprite buffer that is then being rendered.",
"SymbolId": "c5707b79-859b-4d53-92e0-cbed53aae648",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This is a legacy version of [AnimValue]. \nPlease consider using the update version which has been aligned with [AnimVec2] and [AnimVec3].\n\nGenerates a repetitive LFO-like signal syned to the current BPM rate. It supports various shapes, modes and forms.\n\nYou can manipulate the rate and shape by dragging with CTRL+ left mouse button.\n\nPlease checkout the [AnimatingStuff] playground to see some applications.\n\n",
"SymbolId": "c5e39c67-256f-4cb9-a635-b62a0d9c796c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates randomly moving position with within an area. \n\nThis operator has been deprecated. Please consider using [AnimVec2].\n",
"SymbolId": "23794a1f-372d-484b-ac31-9470d0e77819",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a random motion. This operator has been deprecated.\nPlease consider using [AnimValue] with PerlinNoise shape.",
"SymbolId": "3b0eb327-6ad8-424f-bca7-ccbfa2c9a986",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This operator has been deprecated.\n\nPlease consider using [AnimValue] or [TriggerAnim].",
"SymbolId": "ffed6f9e-2495-4cf3-9cda-740ecec75d10",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a pulse value with a linear decay. \nAlso consider using [LFO].",
"SymbolId": "5952d7b4-29ac-41fb-9324-287392d55048",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sends the incoming structured list as StructedBuffers to the GPU.\n\nThis is frequently used to upload multiple [APoint]s for further usages on the graphics card.",
"SymbolId": "7e28c796-85e7-47ee-99bb-9599284dbeeb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Pick on of the connected GPU buffers. This can be useful for switching between differen sets of Points or Vertices.",
"SymbolId": "e6bbbeef-08d8-4105-b84d-39edadb549c0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Samples the incoming points into a set of spline points.",
"SymbolId": "edecd98f-209b-423d-8201-0fd7d590c4cf",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a GPU buffer with optional shader resource view and unordered access view.\nThis \"BufferWithView\" types makes it easier to use this buffer without generating new shader resource views.\n\nYou can access the views with [GetBufferComponents].",
"SymbolId": "b6c5be1d-b133-45e9-a269-8047ea0d6ad7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a \"barebone\" structured buffer with shader resource view.\n\nUsage is discuraged. Please consider using [StructuredBuffer2]",
"SymbolId": "a8a0e6c4-1f49-4ed8-8d0b-e7aa6cdf8a87",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that swaps two Structured buffers if set.\n",
"SymbolId": "020573c5-acaa-442e-9b1b-01338b0f4b62",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper to swappes textures buffers. This can be useful for implementing buffer buffering in compute shader effects.",
"SymbolId": "590a0b0b-c847-433c-8ffa-602ed0ae8f28",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses the ThreadCount information from a compute shader to convert an element count into a thread group dispatch count.\n\nFor 2D Textures also see [SizeToDispatchCount].",
"SymbolId": "eb68addb-ec59-416f-8608-ff9d2319f3a3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Provides a opinionat set of hareware blendstates.\n\nGraphics card (output merger) blend modes are kind of hard to get right. Feel free to suggest additional modes.",
"SymbolId": "fd9bffd3-5c57-462f-8761-85f94c5a629b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Switches between different blend state ops.",
"SymbolId": "179093f6-d3ef-43bc-a5af-1df2379ec081",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the properties of a ShaderResourceView",
"SymbolId": "bc489196-9a30-4580-af6f-dc059f226da1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the dimension (resolution) of the connected texture in pixels.\n\nIt can also check if the texture is valid or undefined (I.e. Null). ",
"SymbolId": "daec568f-f7b4-4d81-a401-34d62462daab",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Checks all connected <BufferWithView> buffers and picks the first one with a valid (Not NULL) input. This can be useful for overriding buffers.",
"SymbolId": "b4a8a055-6ae3-4b56-8b65-1b7b5f87d19a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This is new version the uses a Fragment shaders instead of ComputeShader as in [_ImageFxShaderSetup]\n",
"SymbolId": "2b20afce-2b54-4bcc-ba0e-e456a0d92833",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A version that has not time dependency with improved caching performance.",
"SymbolId": "bd0b9c5b-c611-42d0-8200-31af9661f189",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the currentCamera properties. This can be very useful for positioning or emitting things in front of the camera.\n\nPlease consider looking at the example.",
"SymbolId": "2ed26fb7-fe66-4ed6-8b8d-230d87ae5c77",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Fetches a float variable from the context. \nUse [SetContextVariable] to set variable further up the graph.\n\nImportant:\n\nIf you're using this together with [Loop] don't forget to use f as normalized progress variable.",
"SymbolId": "e6072ecf-30d2-4c52-afa1-3b195d61617b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets the current foreground color from context.\nThis can then be used to apply it to drawing operators, they can be affected by the primary drawing color.",
"SymbolId": "6c1271a0-058f-4ff0-940b-f196e5debdf7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Reads a variable from context",
"SymbolId": "470db771-c7f2-4c52-8897-d3a9b9fc6a4e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets the current position, rotation and scale in world so it can be applied to other transforms.",
"SymbolId": "b7731197-b922-4ed8-8e22-bc7596c64f6c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Writes a float value to the context float variable dictionary. \nUse [ContextFloat] to read this value further down the graph.",
"SymbolId": "2a0c932a-eb81-4a7d-aeac-836a23b0b789",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets or overwrite an int variable that can be retrieved by [GetIntVar] further down (left in) the graph.",
"SymbolId": "7953f704-ebee-498b-8bdd-a2c201dfe278",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders the connected draw commands as vertical ViewRect slices with optional labels.\n\nThis can be a quite interesting as an effect or for examples purposes to show multiple variations.",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Draw labels...",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "34f78e9d-ee63-4b4f-a598-cf90d9d06f4d"
},
{
"Type": 2,
"Text": "This is \"magic\": We route the multiple-connections from outside into the [Switch] command here. So actually it's not a single input, but as many as are connected on the outside.\nWe then use the total count for looping of each connected element.",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "62819993-7f9a-436a-8fc6-4b2e6c49ce7a"
},
{
"Type": 2,
"Text": "Also checkout the example in the operator's description.",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "764f39e4-f3ff-4afa-8705-54328aafdee9"
},
{
"Type": 2,
"Text": "This nice operator will slice the viewport. Check out its example in the description.",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "114a2a4b-cd0c-4ab0-9ec9-43d26e023d64"
},
{
"Type": 2,
"Text": "Sadly we can't reuse the other [SliceViewPort] because we want to override the camera so the labels are facing the camera.",
"SymbolId": "f19a9234-cd23-4229-a794-aa9d97ad8027",
"Id": "0d67c292-49fb-41c4-bc2d-5b96b98045c6"
},
{
"Type": 0,
"Text": "Repeats the connected sub graph with offset locat time.\n\nConsider using [RenderWithMotionBlur] for more consistent results.",
"SymbolId": "603c68a7-77e8-4b64-b4f3-d4423e654a38",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adjusts various color properties of the incoming image and adds a slight vignette.\n\nAlso consider using [ColorGrade]",
"SymbolId": "55411442-d538-48bf-ab78-b8c24c85aa46",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adjusts the color of an incoming image.\n\nEach row defined a color-channel of the output where as the incoming components are multiplied by a factor summed up .\nFinnally a value is added to each component.\n\nYou can do a lot of things with this operator, like\n- converting to grayscale\n- extracting an alpha channel to grayscale\n- invert an image\n- swap color channels.\n\nCheck the presets for examples.\nFor a more natural color correction try [Adjust Color]",
"SymbolId": "51968877-03e7-472d-9b43-95bc8aeda3bc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A advanced color grade that uses a depth buffer based gradient look for additional effects.",
"SymbolId": "a1e3b8d3-3888-4e18-80e4-f6c65a136e75",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adjusts the color grading of the incoming image for the Gain (highlights), Gamma (mid tones), Lift (Shadows).\n\nGray values are neutral. Alpha can be used to amplify the effect. \nVignette color, size and possition can be used for additional effects.\n\nTry...\n- ...blending by by hovering presets while holding the ALT key.\n- ...dragging the parameter color swatches vertically with the left and right mouse button to quickly adjust brightness and alpha.\n- ...adding a [WaveForm2] operator to visualize the image properties.\n\nAlso consider using [AdjustColors]\n",
"SymbolId": "42d86738-d644-47c8-ab92-cc426d958e51",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a Texture into another format. This can be useful to speed up video file rendering or fix unsupported texture formats for [PlayVideo].",
"SymbolId": "e1cd1cdf-3982-4bb3-b080-9f0a851566d7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "No MipMaps",
"SymbolId": "e1cd1cdf-3982-4bb3-b080-9f0a851566d7",
"Id": "e7d777d9-106f-4ced-a406-082776548839"
},
{
"Type": 1,
"Text": "With MipMaps",
"SymbolId": "e1cd1cdf-3982-4bb3-b080-9f0a851566d7",
"Id": "82c00fc8-d20d-48ac-bf7f-ecb576ed151a"
},
{
"Type": 0,
"Text": "Crops an image. Negative crop values add padding to the image with giving background colorl",
"SymbolId": "a29cf1c8-d9cd-4a5d-b06c-597cbeb5b33d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts the provided depth buffer into a gray scale texture.\n\nImportant: Needs the correct settings for near/far-clipping.",
"SymbolId": "2d62dd4b-9597-4569-a09e-495abf880e34",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blurs the incoming image along a direction angle. \n\nYou can override the angle and strength through an FXTexture with...\n\nR - Angle\nG - Strength\n\nOverriding the effects texture is especially interesting, when used with a blurred version of the input image.\n",
"SymbolId": "1192ae86-b174-4b58-9cc6-38afb666ce35",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple color keyer",
"SymbolId": "2ab1bbef-8322-4638-8b1d-7e31aaa6a457",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Replaces the colors of an image with a gradient depending on its brightness. \nThis can be used to emulate gradient curves or level adjustments.\n\nNote that you can use the gradient's alpha channel to control the intensity of the effect.\n\nAlso consider using [Tint]",
"SymbolId": "da93f7d1-ef91-4b4a-9708-2d9b1baa4c14",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Tints the bright and dark colors of an image.\nThis can be an easy method of subtle color corrections or drastic effects.\n\nAlso see [RemapColors] for a similar operator.",
"SymbolId": "d9a71078-8296-4a07-b7de-250d4e2b95ac",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Rotates, Offsets and scales the incoming image",
"SymbolId": "32e18957-3812-4f64-8663-18454518d005",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple helper to verify an image effect before and after. \nIt show",
"SymbolId": "0e13e34f-c07b-4ada-8c87-6b89f4ed8b41",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Visualize the image brightness distribution of an an image.",
"SymbolId": "592a2b6f-d4e3-43e0-9e73-034cca3b3900",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Visualizes the color and intensity distribution within an image by overlaying a Waveform and a Vectroscope.\n\nThese overlays can be incredibly valuable. YouTube provides countless Tutorials on how they can be applied to color correction and other use cases.",
"SymbolId": "92e28e50-bd40-4f93-ba92-8f69cded6ec1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An advanced version of the [FluidFeedback] effect which much more versatile but harder to control.\nIt also utilizes [DetectEdges] and stabilizes the feedbackback buffer to a meaningful value range and thus avoiding black or overly bright values.",
"SymbolId": "33424f7f-ea2d-4753-bbc3-8df00830c4b5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Reset Buffer when backwards",
"SymbolId": "33424f7f-ea2d-4753-bbc3-8df00830c4b5",
"Id": "bb61c901-78de-4d49-b181-bf0f9cffb061"
},
{
"Type": 0,
"Text": "Draws the incoming image as shaded ascii characters similar to the matrix.\n\nTip: You can connect [AnimVec2] with the \"Endless vertical\" to the offset.",
"SymbolId": "42e6319e-669c-4524-8d0d-9416a86afdb3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An image effect that enlarges the inner circular region with a smooth edge. Other words for this would be \"Bulge\", \"Blob distort\", \"Fish Eye zoom\".\n\n",
"SymbolId": "ca3f3c1b-6f22-4bf3-b06b-d2b0d85a8881",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates custom shader from a source parameter. This can be useful for prototyping.",
"SymbolId": "46daab0e-e957-413e-826c-0699569d0e07",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Detect edges in the incoming image. \n\nTry the presets.",
"SymbolId": "2a5475c8-9e16-409f-8c40-a3063e045d38",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Repeats (stretches) pixels of the input image along a line.\n\nPlease explore the presets.",
"SymbolId": "72e627e9-f570-4936-92b1-b12ed8d6004e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a fake shading to the image.",
"SymbolId": "6820b166-1782-43b9-bc5c-6b4f63b16f86",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An example how feedback combined with displacement can lead to a variety of effects.",
"SymbolId": "f9d453d1-04d9-43ef-9189-50008f93bcc2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds a bloom effect onto the incoming image.\nIt uses multiple resolution passes and is reasonably fast.\n\nYou can use the Offset parameter as a threshold for \"glowing\" content.",
"SymbolId": "d392d4af-4c78-4f4a-bc3f-4c54c8c73538",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This subdevides the incoming image into resursive tiles.\n\nCheck out the presets for an overview.",
"SymbolId": "c68fbb84-2f56-4aed-97ab-3c2df0ec700b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a brightnes of an image into normal map that can be use with [SetMaterial].",
"SymbolId": "01458940-287f-4d31-9906-998efa9a2641",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a polar coordiante transformation that converts between circular and rectangluar coordinates. \nI.e. It (un)wraps round images.",
"SymbolId": "941410e5-2023-43c6-87b1-55386bb048ac",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A vintage tv-glitch effect",
"SymbolId": "5972a57b-73cd-49b2-8b24-96636a4c294b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This Simple Detailed Fluid effect is a port the of https://www.shadertoy.com/view/sl3Szs by Lomateron.\n\nParameters:\n\nIt yields very interesting results when combined with an FX Texture that can include the following channels:\n- RB -> Velocity vectors (0.5 neutral)\n- G -> Mass\n- A -> Effect Amount \n\nEach of these channels can then multiplied with the ApplyFxTexture parameter.\n\n.SpeedFactor is multiplied on each frame and can be used for adding friction (smaller than 1) or dynamic (largen than 1) to the system.\n.StabilizeFactor will lower too intense and amplify too low mass values.\n\nIteration count will speed up the processing my app\n\n\n\n\n",
"SymbolId": "d1a1f207-0537-416a-985b-e350c3f7e655",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A port of \" simple detailed fluid\" https://www.shadertoy.com/view/sl3Szs by lomateron",
"SymbolId": "e4e608e7-1248-4d73-910c-e8bfbb34251b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "veAn interesting image glitch effect",
"SymbolId": "cbbb011c-f2bc-460e-86d0-48e49ed377fd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A versatile effect that uses the value of the input image to draw \"steps\". These can be shaded and animated.",
"SymbolId": "4cdc0f90-6ce9-4a03-9cd0-efeddee70567",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very versatile generator for rectangles, circles, blobs, vignets and many other things.\nDifferent to [_BlobOld] it is using an eliptical shape and easier to control parameters.\n\nAlso consider using [RoundedRect] and [RadialGradient].\n",
"SymbolId": "27b0e1af-cb2e-4603-83f9-5c9b042d87e6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates an animated 2d perlin noise. \n\nNOTE: The legacy version is very expensive for higher resolution. and might not run in realtime in 1080p.\n\nThe OpenSimplex is a faster implementation from https://www.shadertoy.com/view/ttdGR8\n\n",
"SymbolId": "97eb35ec-2825-4f63-8fdf-3fe38fa9e652",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Basis for the Fräser spiral illusion",
"SymbolId": "b882a5d0-f5ae-40a4-8c42-5b25e5775def",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds animated grain or (I.e. pixel noise) to an image.",
"SymbolId": "b5102fba-f05b-43fc-aa1d-613fe1d68ad2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders a linear color ramp defined by a gradient. Can be very useful in combination with [Steps].",
"SymbolId": "2c3d2c26-ac45-42e9-8f13-6ea338333568",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an image file with the given URL. Does not do any caching",
"SymbolId": "61ec6355-bd7d-4abb-aa44-b01b7d658e23",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an image file as a Texture2d.\n\nSome notes: \n\n- Resources are cached, so that when you access that filename again, it will load much faster.\n- An ImageBuffer will forward their size so that image fx operators and will produce buffers of idential sizes.\n- Mipmaps will be created automatically.\n\nMost image types are supported, but only 8bit.",
"SymbolId": "0b3436db-e283-436e-ba85-2f3a1de76a9d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders a polygone shape similar to [Blob] or [RoundedRect]",
"SymbolId": "22a3cd4e-02b3-44d7-ad2b-aab5810c5e88",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders columns for values numbers that can be driven be an input texture. \nThis can be a nice effect overlay.",
"SymbolId": "1fec51bc-4de7-400a-8910-db39f4129579",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a wide range of different raster patterns.\n\nYou can also connect input texture to drive vaious aspects of the pattern.",
"SymbolId": "4f89b41b-1643-442b-bec8-9f9ef2173baa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "The primary method of rending 3d data into a 2d image textue. \n\nYou will need this for all post processing image effects and many other things.\n\nSome notes\n------------------\nIf resolution is...\n- [0,0] the current requests resolution of the output window is being used\n- for image fx operators, negative resolutions will use the incomming resolution.\n\nAll other settings using custom resolutions. The max. resolution is depends on your graphics hardware and is normally 16k.\n\n\nTextureReference can be used for feedback effects.\n\nYou will need a depth buffer for all Z-Buffer sorting.\nCombining depth buffer with MultiSampling requires internal down sampling: This basically means doubling the GPU memory consumption.\n\n",
"SymbolId": "f9fe78c5-43a6-48ae-8e8c-6cdbbc330dd1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a procedural rings texture that can procude a wide variety of radial patterns.\n\nPlease try the presets.",
"SymbolId": "d002bd90-5921-48b0-a940-a8d0c779f674",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates animated patterns inspired by Ryoji Ikeda. It subdivids the image into smaller and smaller segments and can produce a wide varienty of effects.\n\nPlease check the presets and the example. ",
"SymbolId": "3ee3597d-dbf1-43a2-89d9-2f7b099112c7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A pattern generator inspired by the work of Ryoji Ikeda. It subdivides the image space recursesivly and can generate a range of different patterns.",
"SymbolId": "cb28a67e-80cb-460a-8130-00e3cd85b7c2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Allows to add sketches as annoations or storyboards.\n\nYou create multiple pages and switch between them by selecting or animating the PageIndex.\nUse the ShowAs parameter to toggle between showing the sketches as a single frame (e.g. as a comment), until the next frame (e.g. as a story board or animation), or with onion skinning.\n\nYou can also use the following keyboard short-cuts:\n\n[P] - Draw mode\n[E] - Erase mode\n[0-9] - Select brush size",
"SymbolId": "8e6ed99c-a3e0-42c0-9f81-a89b1e340757",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Draw Brush Cursor",
"SymbolId": "8e6ed99c-a3e0-42c0-9f81-a89b1e340757",
"Id": "8432acf4-59cc-4410-bba7-4f8118fb828c"
},
{
"Type": 1,
"Text": "Onion Skin Rendering",
"SymbolId": "8e6ed99c-a3e0-42c0-9f81-a89b1e340757",
"Id": "3c22fab6-384b-4bd8-b318-3f61458fcd4d"
},
{
"Type": 0,
"Text": "Generates a wave form image by feeding in a horizontal texture line at the bottom of the texture.",
"SymbolId": "1b69d98a-0b38-4563-aa43-aac5b8395c2b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very versatile generator for rectangles, circles, blobs, vignets and many other things.\nIt's is using a round rect shape that was too awkward to control. Consider using the updated [Blob].",
"SymbolId": "c8590f8f-cca1-434a-a880-67bb91920e1a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends two images by the brightness of a 3rd mask image.\n\nIn the mask, fully black areas will only render that portion of image A, and fully white areas will only render that of image B. Values in between will interpolate between the two.",
"SymbolId": "7da55d23-0bd1-457b-a036-9b6b51d2e34b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends two images.\n",
"SymbolId": "9f43f769-d32a-4f49-92ac-e0be3ba250cf",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A node to combine 3 input images into the RGBA-channels of a new one.",
"SymbolId": "1d958538-98e7-4053-b1e2-3b9f1bc4faa9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines roughness metallic and ambient occlusion texture maps into a single texture for [SetMaterial].",
"SymbolId": "3d0ad320-1055-4f71-b3c0-0e77261ca587",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines roughness metallic and ambient occlusion texture maps into a single texture for [SetMaterial].",
"SymbolId": "085b7841-9502-4b49-896e-3b1fa023f1bf",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Implements a double buffer to keep the previous image.\nThis can be useful for effects that rely on image change comparision, like motion estimation.",
"SymbolId": "b5b6c046-3c8e-478a-b423-899872c2e1c4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Picks one of the connected textures.\n\nOnly the selected connection will be updated.",
"SymbolId": "e6070817-cf2e-4430-87e0-bf3dd15afdb5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This will render multiple instances of the incoming op each pass with slightly offset local time.\n\nIt's primary purpose for increasing rendering quality for output with Render to Image Sequences or Video. Depending on the complexity of the graph this effect but very slow. \n\nYou can use [HasTimeChanged] with Mode= AdvancedWithMotionBlur to trigger updates to the first pass. This can be useful to simulation or feedback effects.\n\nTip: When rendering videos or sequences you can override the sample count.",
"SymbolId": "0989e44b-f543-4b9a-a08e-5058d0032259",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses windows MediaFoundation to play a video file.\n\nTo ensure seek precision while editing it enforce seeking if timeline playback is paused.\nIf timeline playback is running, it will only seek if the video playback drift exceed the resync threshold.\nIf this threshold is too small, if playback will stutter. If it's excessively large, synching might be off.\n\nImported: MediaFoundation returns tetures in BGRA format. This might now work for some draw operator like [Layer2d]. \nPlease insert a [ConvertFormat] operator to convert the format.\n",
"SymbolId": "914fb032-d7eb-414b-9e09-2bdd7049e049",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates audio reaction from audio inputs.",
"SymbolId": "03477b9a-860e-4887-81c3-5fe51621122c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Experimental attempt to constantly adjust BPM rate and sync offset to external audio source.",
"SymbolId": "1fa651c8-ab73-4ca0-9506-84602bbf2fcb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal operator that stores the result of the current FFT audio analysis in the context, so it can be used by [AudioReaction] Ops further down the graph.",
"SymbolId": "ecbafbeb-c14b-4507-953f-80bc6676d077",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an SVG file as points so it can be rendered as points or lines.\n\nThe supported SVG feature set is very basic and depending on your exporting applications, elements could be missing or not correctly representated.\n\nMissing SVG features include:\n- Masking\n- Text\n- Fill\n- Effects\n- Stroke styles like dashes\n\nThe \"ImportAs Lines\" mode inserts double points so closed shapes will be closed when rendering lines.\n\nTo draw the SVG you can convert the list to a GPU point buffer with [ListToBuffer] and then [DrawLines].\n\nAlso see:\n[PrepareSvgLineTransition], [SvgLineTransitionExample]\n",
"SymbolId": "e8d94dd7-eb54-42fe-a7b1-b43543dd457e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Fetch image urls from Unsplash API. Use [LoadImageFromUrl] to load the results.",
"SymbolId": "89162b9f-75f5-4d32-9d28-8259cf47cf58",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An experimental implementation to record midi input signals.",
"SymbolId": "2d1c9633-b66e-4958-913c-116ae36963a5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This helper uses the midi time clock events to drive the playback time. \nThis can be useful for live performances when you want to sync visuals to a clock provided by a DAW like Ableton or Traktor.\n\nTip: When connecting the SyncTrigger parameter to a [MidiInput] and [HasValueIncreased] be sure to disable damping on the MidiInput.",
"SymbolId": "3f10f526-d8ca-4f67-95a4-d703b713088e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Provides input from connected Midi devices. As a default, the Midi range from 0 ... 127 is mapped to an output range from 0 .. 1 which can be adjusted with the parameters.\nFor smoothing the output damping is enabled by default. Reduce the damping parameter to improve latency.\n\nIf you want to react to a range for controls (I.e. to the range of keys on a keyboard), you can use the ControlRange parameter. If this is something else than [0, 0] we map its range to the OutputRange.\n(e.g. you could map two octaves of your keyboard to output values from 0 ... 1).\n\nTo support controllers that have controllers and note buttons with overlapping control-Ids (like the APC Mini) we distinguish between different event types.",
"SymbolId": "59a0458e-2f3a-4856-96cd-32936f783cc5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Send notes or controller change events to selected device.\nThis operator is experimental.\n\nThe velocity of given as normalized float value between 0 ... 1.\n ",
"SymbolId": "f9f4281b-92ee-430d-a930-6b588a5cb9a9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Parses a dictionary and converts a single value to a float",
"SymbolId": "fd5467c7-c75d-4755-8885-fd1ff1f07c95",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Receives OSC input from an connected server.",
"SymbolId": "3a1d7ea0-5445-4df0-b08a-6596e53f815a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the application runtime in seconds.\n\nThis is rarely useful. Consider using [Time].\n",
"SymbolId": "862de1a8-f630-4823-8860-7afa918bb1bc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Overrides the animation time of a sub command graph.",
"SymbolId": "32325c5b-53f7-4414-b4dd-a436e45528b0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An advanced option that allows to slowdown the playback (including audio). \n\nThis might be useful in some situations, though some details might not work as expected.",
"SymbolId": "fcd32cac-6544-42a3-8a14-203b8ca3559e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An advanced playback control that will move the current playhead to the defined time. \n\nThis can be useful in complex VJ-Setup. Only use this operator if you know what you're doing. \nSetting the PlaybackTime frequently can interfere with user interactions like editing keyframes.",
"SymbolId": "c6d22dc3-a6ff-4a6f-aa14-8be6595da2b1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A stopwatch that can stop, measure and keep time and thus measure durations.",
"SymbolId": "485af23d-543e-44a7-b29f-693ed9533ab5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "NDI live video input",
"SymbolId": "7567c3b0-9d91-40d2-899d-3a95b481d023",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Spout live video input",
"SymbolId": "25307357-6f6c-45b1-a38d-de635510a845",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Spout live video output.\n\nWe recommend to use the R8G8B8A8_UNorm texture format for output. You adjust the render form by using a [RenderTarget] like in this example:\n\n[TorusMesh]->[DrawMesh]->[RenderTarget]->[SpoutOutput].\n",
"SymbolId": "13be1e3f-861d-4350-a94e-e083637b3e55",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns true if all of the connected booleans are true.",
"SymbolId": "3a6fd508-0272-4c18-96b8-bc2387d3b2fd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns True if both inputs are true.\n\nConsider using [All] if you want to test more than two booleans for true.",
"SymbolId": "a18ae2d3-1735-40b8-bebb-65a6788bc872",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns true if any of its inputs are true",
"SymbolId": "1446e61e-7f68-4655-99c8-5be390f64851",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Defines a boolean value that can be true of false. Also offers a convenient toggle control in the graph.",
"SymbolId": "ed0f5188-8888-453e-8db4-20d87d18e9f4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns different integer values for depending if a boolean is true of false. \n\nWith its default values it converts a boolean into 0 for false and 1 for true.",
"SymbolId": "cd43942a-887e-4e34-bc54-0c2e5e8bc2af",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Delays the change of boolean flag. This can be useful for implementation interaction where a value needs to stay true for minimum duration.\n\nIn \"DelayTrue\" mode, it will immediately switch to true, but delay switching back to false.\n\nNote: This is NOT a queue. Frequent changes of the incoming signal can lead to the delayed state filter out changes within the delay duration.\n\nIn vvvv this op is called a MonoFlop.",
"SymbolId": "fbd9ac37-4427-4852-95d7-d8383fefbe36",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Hold the \"activated\" state of a boolean.\n\nAlso check [DelayTrigger]",
"SymbolId": "ec1ba1fb-ceb7-4d4f-86b4-389589c7e6f0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns true if the connected input changed, either from False to True or vise versa.\nThis can be useful to detect the moment of the mouse click or mouse release.\n",
"SymbolId": "57351603-f472-445f-b94b-e8f538f85517",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Triggers a bool, if time was scrubbed back in timeline by user or by looping.\n\nAlso known as: DidTimeChange",
"SymbolId": "2443b2fd-c397-4ea6-9588-b595f918cf01",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines two boolean values with a not operation.",
"SymbolId": "0d4f4e07-5cb2-4d80-bf8e-3deadf968724",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns true if one of it's to imputs is true.\n\nConsider using [Any] if you want to test more than two booleans.",
"SymbolId": "9786dec1-b0fc-49d7-bf79-c9a1d457f386",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns a boolean that gets reset to false on the next frame.",
"SymbolId": "0bec016a-5e1b-467a-8273-368d4d6b9935",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Tip: Hold Shift for snapping. Press F to extend view to selection.",
"SymbolId": "ab511978-bad5-4b69-90b2-c028447fe9f7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "the absolute value of a number",
"SymbolId": "cd9f16bc-5306-458c-aff8-1cca3bb24469",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that smooths or amplifies a value list over time.\nThis can be used to extract beats in an audio spectrum.\n",
"SymbolId": "4def850e-3627-46d8-ae2b-58b513843885",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the arc tangents of a vector.",
"SymbolId": "7636bb3c-9f12-4323-b9be-e05f0eb561c5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blend a number of incoming values with a float value.",
"SymbolId": "a1341063-f893-4447-93cd-63cfe514495e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Rounds to the next highest integer value.",
"SymbolId": "7129684e-bf84-4c8b-996e-baba68094585",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Damps the incoming vector.",
"SymbolId": "671f8151-9ec1-4f02-9ad1-b8a2d70d3d68",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Damps (I.e. smooths or filters) an incoming value with the following methods:\n\nLinear interpolation: \nDamping 0 -> instant ... 1 -> value frozen / Target will never be reached\n\nSpring Damp: \n- Uses a \"critically damped spring\" that will provide a very smooth interpolation that will never overshoot.\n- The ideal damping value depends on your value range (lower spring for very large changes in value).\n\nThe spring damp method is also used by be Unity's SmoothDamp method.\n\nHave look at the example.\n",
"SymbolId": "af9c5db8-7144-4164-b605-b287aaf71bf6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Detects if rapid changes within an input signal exceed a threshold. This can be useful for detecting beats in OSC or audio signals.",
"SymbolId": "7ff47023-622e-4834-8de5-2438d56c09bd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a float value to an integer. This can be useful for using values for indices or random seeds.\n\nNote: positive values will be floors (0.9 becomes 0) negative values get ceiled (-0.9 becomes 0).",
"SymbolId": "06b4728e-852c-491a-a89d-647f7e0b5415",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Negates a float value.",
"SymbolId": "97032147-ba0c-4454-b878-1048d8faea05",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends between two values (lerp). \n\nAlso see...\n- [BlendValues] to blend between more values.\n- [Remap] blend between two value ranges",
"SymbolId": "1f5294e1-9d0b-4cd5-9d65-14c8bbf59e61",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Picks a Value from the connected float inputs.",
"SymbolId": "63e6e642-827b-4518-ac64-9ab0a8d4391e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adanced version of rounding. See https://www.desmos.com/calculator/rojg8taxot for more additional details.",
"SymbolId": "ae0c87d6-2b1e-4e28-b0d0-8611a2f7e152",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns a sigmoid function 1/(1+e^x-1).\n\nIt's very similar to [SmoothStep] but never reaches the -1 and 1 boundaries.",
"SymbolId": "fc56f945-ba04-4d10-a516-68a479147016",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Computes the square root of a float value.\nTIP: You can use the [Pow] operator to compute roots for other bases by using 1/base for the exponent).\n",
"SymbolId": "24b56330-b9c5-4454-a398-0500b0422ce1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Substracts two float values.",
"SymbolId": "3ba13faf-ea80-44ec-948a-02ed3d653a20",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Composes a Vector3 by selecting floats from a list. \n\nThis can be useful for converting data from OSC messages into positions or rotations.",
"SymbolId": "a52070ce-7110-439c-84e7-01f2a883b83f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Compares the current input value to the current damped value. If the input value is great, it is imediately used and no damping applied.\nIf the input value is small it is decaying slowly, similar to the peak indicators of equalizer visualizations.",
"SymbolId": "ef3a1411-e88c-43a8-83b4-931fdbf16c75",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the change of the value during the last frame (or a giving smoothing average).\n\nPlease not that this time is not frame locked and will jitter slightly.",
"SymbolId": "919beb6b-4798-45fc-83bd-8203a9b26e8e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines conneted float values into a List.",
"SymbolId": "5c5d855c-3167-40a3-b4c3-e7b27b0d61cf",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Builds a list of float values (e.g. a Cycle buffer) but collecting float values at the beginning of the list.",
"SymbolId": "32a1d28e-23bc-44a8-becc-b52972464526",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Picks a float value from the connected float list. \n\nAlso see [PickFloat].",
"SymbolId": "0841cdd4-0106-4f4e-826b-8de23bb5b5f0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the bass audio FFT buffer during soundtrack playback.\n",
"SymbolId": "cda108a1-db4f-4a0a-ae4d-d50e9aade467",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Takes in a list of Vector2 and picks the y component of the pair where X is closest to LoopupValue",
"SymbolId": "efb9ecfc-5aa2-45f1-87b0-1455d7702aa7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Smooths a list of value by applying a smoothing window.",
"SymbolId": "50bf9e01-6912-4ab7-b233-660ce67bca25",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Takes a <FloatList> and sums up the values of the given index range' limits.\nThis can be useful for Beat detection on an FFT-Analysys.\n\nAlso see [SoundInput], [DetectBpm], [DampPeakDecay]",
"SymbolId": "d3a19896-230f-458f-b4ba-e448f63f0d51",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper operator that counts evaluations as an integer. \nThis",
"SymbolId": "0e1d5f4b-3ba0-4e71-aa26-7308b6df214d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the seconds since 1970.",
"SymbolId": "0bee3ec6-7e0d-471b-9ef7-ab9c22c6883b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets the maximum integer of the connected inputs.",
"SymbolId": "f7fd7342-18d1-443a-98ec-758974891434",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Modulo for integers",
"SymbolId": "cf3268d7-4f3d-47bd-8cb5-0214c75432ec",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Substracts int B from int A.",
"SymbolId": "7934f11d-c95c-41ae-b282-6e568b9c5f30",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds two Int2 vectors.\n\nNote: Size2 is just another name for an Int2 where its dimensions are given in Height and Width.\n",
"SymbolId": "40f0b1c9-9f87-489c-a6b9-ff9a5bd263ec",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Finds the max extend of the connected size2 operators.",
"SymbolId": "8e9a45db-a631-4c92-aea9-c252ea6e9708",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the current resolution requested by the current output window.\nThis is stored in the render context.",
"SymbolId": "c0a26813-bc97-4c42-b051-53a9a5913331",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Smooths the incoming Vector2.",
"SymbolId": "fb801f10-8f84-4f69-9f7e-66cc7f6b7878",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts an index to a grid raster position and sizes that can be used to draw a [Layer2d].\nThis can be helpful for procedural graphical designs. \n\nPlease check the example below:\n",
"SymbolId": "310e174e-ea52-4c54-90e6-72dc8320118a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Select one Vector2 of many, like a switch.",
"SymbolId": "1cd2f5b1-bc54-4405-8ee6-d1acf59ebe14",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends (lerps) two vectors",
"SymbolId": "fc201df2-8b05-4567-9f24-0d9128aa8507",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts 3 euler angels headling, pitch, yaw into an axis and angle representation.",
"SymbolId": "185958a3-be54-499d-a105-cad22c0dd448",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends between two values (Lerp). \n\nAlso see...\n- [BlendVector3] to blend between more vector3s",
"SymbolId": "a40cb2a4-5e4c-41ef-b70d-40fa04adafbb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the length of a Vector3",
"SymbolId": "99ce9535-23a3-4570-a98c-8d2262cb8755",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Select one Vector3 of many, like a switch.",
"SymbolId": "19b91067-8a0f-4a3c-a68e-b353bffd9657",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Rotates a vector around an axis",
"SymbolId": "ce7c2103-3669-4c7a-ba61-a10428b9d467",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Round the incoming Vec3 value by the given precision and method. This can be useful for snapping positions onto a grid.",
"SymbolId": "baa8cd75-5621-42ba-a79c-b008b7caa141",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Computes the distance between two vectors",
"SymbolId": "4af1080c-3133-4070-a440-4cf2f4cc10a1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Defines a Vecor4 (I.e. a color) by combining 4 float values.\n\nThis is the opposite of [Vector4ToFloat4]",
"SymbolId": "f2e323bd-f881-41a8-81e2-e8f2ac1984dc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Picks a color of the connected inputs",
"SymbolId": "3539c3a0-73f1-412c-aad2-517810126ac6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends between two sets of mesh vertices. This only yields meaningful (I.e. predicatable results) for mesh with same vertex count and topology.",
"SymbolId": "93e2f11a-18a2-4dcb-86df-c452d340b409",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines multiple buffers of the same type (like points).",
"SymbolId": "4dd8a618-eb3b-40af-9851-89c50683d83e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Special effects operator that works nicely with [CollectSpawnPoints].",
"SymbolId": "ec8111b7-09d4-411e-9409-4e877d14371d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines to point buffers so they can be drawn with connection lines between points.",
"SymbolId": "ab6ab34f-4c6e-41ef-af69-48bb9393651b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines two lists of points into a buffer for rendering them as splines.\n",
"SymbolId": "5c7b6f3e-d3d5-4cfa-b30e-1a8cb6dbb4ad",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Switches between different point buffers.",
"SymbolId": "e9a0bdfd-6f6e-41e2-8c0c-cd5fee26e359",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws points and billboard or quads. This a operators is very flexible and allows for a large spectrum of effects.\n\nIts parameters are grouped into different section for various aspects of variations.\n",
"SymbolId": "18d3d929-e530-45fa-9131-658368060ae2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Connect Points",
"SymbolId": "44d57201-addf-455c-9e31-709b018ba29f",
"Id": "9e66b5de-dbdb-446a-bd20-822f4e249892"
},
{
"Type": 1,
"Text": "Draw Lines",
"SymbolId": "44d57201-addf-455c-9e31-709b018ba29f",
"Id": "14f9093f-8f13-4712-ab86-4d0a556e37b4"
},
{
"Type": 1,
"Text": "Buffer With Connection lines",
"SymbolId": "44d57201-addf-455c-9e31-709b018ba29f",
"Id": "43af9862-adc9-4869-bd15-3c4fb8c7dd7e"
},
{
"Type": 1,
"Text": "Clear Buffer",
"SymbolId": "44d57201-addf-455c-9e31-709b018ba29f",
"Id": "e9d4ff78-88e6-46e3-b697-86295fb6f36a"
},
{
"Type": 0,
"Text": "Renders incomming points are growing strokes. The points' W attribute has the encode the U progress of the the extend of the strokes. \n\nThis operator requires a texture with a [LinearGradient] that is transparent that the ends.\n\nAnother approach would be [SvgToPoints]->[PrepareSvgLineTransition]->[ListToBuffer]->[DrawLinesBuildup].\n",
"SymbolId": "66f5a6af-b4a5-46ef-b1e5-4cdd035b6539",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws the a point buffer as lines. The lines will be aligned to the camera, but their width will shrink with distance to the camera. You can override this with the ScaleWithDistance parameter. We use the points W attribute as a scale factor for the line width. If the W attribute of a point is NaN (Not a Number) that point is not being drawn and acts as a separator between the adjacent line segments. This allow a point buffer to contain multiple disconnected line segments.\nDrawLines ignores the orientation defined by the points. Consider using [DrawRibbons] if you need consistent orientation.\n\nSome caveats\n---------------\nLong line segments that intersect the camera plane (I.e. one point is in front of the camera and the other behind the camera) will not be rendered correctly. Please consider using [DrawRaypoints] for this.\n\nPerformance considerations\n---------------\nDrawing lines is fast. Depending on your graphics card, you can draw millions of lines per frame. Performance will by impacted by the length of your lines rather than point count. This is directly related to your render targets resolution and multi-sampling level (MSAA).\n",
"SymbolId": "836f211f-b387-417c-8316-658e0dc6e117",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Similar to [DrawBillboards] this operator draws meshes instead of images.\n",
"SymbolId": "065f6edb-6d3d-414b-ab36-4620a957a18c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws a point buffer as PBR shaded balls using the attributes defined by [SetMaterial].\n\nNote: This operator was previously called \"DrawMeshAsSpheres\".",
"SymbolId": "84a93ea9-98fb-4088-a1e9-87454f7292f1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws a point buffer with the set camera, transform and fog. The points are drawn as camera-facing billboards, ignoring the point orientation. The W attribute of the points is used for scaling. This can be controlled with the UseWForSize parameter.\n\nYou can connect a texture to override the round shape.\n\nThere are many Operators allowing you to create and manipulate point buffers in countless ways. Please have a look at the examples listed below.\n\nFor additional effects you can experiment with different blend modes or disable depth testing. Note however that the points are drawn in the order they are defined in the buffer and not sorted by distance to camera. This can introduce unwanted artifacts with transparent blending.\n\nAlthough drawing points is fast, drawing very large points can lead to high fill rates and can drastically impact render performance.\n\nAlso see: [HowToDrawThings], [HowToUsePoints]",
"SymbolId": "ffd94e5a-bc98-4e70-84d8-cce831e6925f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A special line renderer that draws camera facing 3d geometry lines without corner metering that can intersect the near plane.",
"SymbolId": "7f69a5e5-28e5-44c1-b3e3-74b05faa0531",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws a shaded 3d mesh for connected lines points",
"SymbolId": "c12cf584-f6db-4d24-a03a-7801736d2c50",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A single point. You can use [JoinLists] and [ListToBuffer] to convert to GPU points.",
"SymbolId": "9989f539-f86c-4508-83d7-3fc0e559f502",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates a buffer of GPU points distributed on a rectengular or hexagonal grid.\n\nTips:\n- Set any of the counts to 1 to create plane of points.\n- Switch the SizeMode to set if the scaling refers to the the padding between the points or the size of the volume.\n",
"SymbolId": "3ee8f66d-68df-43c1-b0eb-407259bf7e86",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Define points from a source position to a direction.",
"SymbolId": "4ae9e2f5-7cb3-40b0-a662-0662e8cb7c68",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper method to analyze meshes.",
"SymbolId": "2467e1ed-f7fc-4c90-8230-b80ba6b42a2d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses the image brightness to emit points.\n\nWARNING: this is extremely slow for high resolution. We recommend to set fixed resolutions like 512x512px.",
"SymbolId": "722e79cc-47bc-42cc-8fce-2e06f36f8caa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Emit Points",
"SymbolId": "722e79cc-47bc-42cc-8fce-2e06f36f8caa",
"Id": "35df41a3-4f88-4a08-b7c7-e886ab986224"
},
{
"Type": 1,
"Text": "Clear",
"SymbolId": "722e79cc-47bc-42cc-8fce-2e06f36f8caa",
"Id": "a1c901e5-dd90-4e4b-891f-e6584edb6d6e"
},
{
"Type": 1,
"Text": "Sum Rows",
"SymbolId": "722e79cc-47bc-42cc-8fce-2e06f36f8caa",
"Id": "cbf3f0ee-bce7-4a66-bb50-301cd42b7132"
},
{
"Type": 1,
"Text": "Sum Columns",
"SymbolId": "722e79cc-47bc-42cc-8fce-2e06f36f8caa",
"Id": "f79c9c15-c89c-4296-9ebe-acfc704c33b4"
},
{
"Type": 0,
"Text": "Get evenly distributed points on mesh. Note that the initial evaluation of the Mesh is extremely slow and should not be done on every frame.",
"SymbolId": "17188f49-1243-4511-a46c-1804cae10768",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Compute Cumulative Distribution Function. THIS IS VERY slow.",
"SymbolId": "17188f49-1243-4511-a46c-1804cae10768",
"Id": "54d3bbbf-bd30-4374-a969-c09e93b1f93e"
},
{
"Type": 1,
"Text": "Emit Points",
"SymbolId": "17188f49-1243-4511-a46c-1804cae10768",
"Id": "0a625795-2500-41f5-aadc-26eb9065716c"
},
{
"Type": 0,
"Text": "Keeps previous copies of points in a cycling buffer that can be used to draw trails and other effects.",
"SymbolId": "25db2a97-38b2-4503-8842-fab3922d7a6c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Clear buffer",
"SymbolId": "25db2a97-38b2-4503-8842-fab3922d7a6c",
"Id": "3120848f-c71d-4ff1-91e4-b7397bce08d8"
},
{
"Type": 0,
"Text": "A versatile generate of circual point sets that can create a variaty of circles, spirals, helixes, etc.\n\nTry the presets to get an overview.\n\nThe CloseCircleLine option is only required, when drawing lines. It will add an overlapping point and a seperator, so the number of cornes will be Count - 2.\n",
"SymbolId": "3352d3a1-ab04-4d0a-bb43-da69095b73fd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Repeats a list of GPU points at positions provided by another list of points. The orientation of the target points can be applied, so this operator can be used to create point instanciation.\n\nIf the .ApplyTargetScaleW parameter is activated, the .W attribute of the target points is used as a scale factor.",
"SymbolId": "780edb20-f83f-494c-ab17-7015e2311250",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a list of points by repeating a transform operation.\nThis can be very useful in combination with [DrawMeshAtPoints].\n\nAlso by driving the .Offset parameter with an LFO can\nproduce seamlessly animated endless scenes. This can\nbe useful for VJ-projects.",
"SymbolId": "73d99108-f49a-48fb-aa5d-707c00abb1c2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Inserts additional points between line points",
"SymbolId": "c7f100bf-05a0-44af-9cf4-c5a1b5937e33",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Provides a set of useful point lists that can be used to draw shapes or lines.",
"SymbolId": "353f63fc-e613-43ca-b037-02d7b9f4e935",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple helper that generates a point list for 3 crossing lines that be be used as a visual marker.",
"SymbolId": "037c89b0-f5d3-4509-b574-c34fa8ec21f3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Selects (I.e. picks) points by the given criteria.",
"SymbolId": "18251874-5d5a-4384-8dcd-fcf297e54886",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an OBJ point cloud file. These files can be generated with Blender or MeshLab and can contain color information.\n\nYou can use selected operators like [DrawBillboards] that can use the point rotation attribute (XYZW) as RGBA. This is a hack.\n\nYou can also use the [Lineertices] mode to import obj with line definitions and draw them as lines like so:\n[LoadObjAsPoints]->[PrepareSvgLineTransition]->[ListToBuffer]->[DrawLinesBuildup]\n\n\n ",
"SymbolId": "ad651447-75e7-4491-a56a-f737d70c0522",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Fetches a point-list from GPU to CPU. This can be useful for later exporting to file (e.g. with [ExportPointList])",
"SymbolId": "a5f4552f-7e25-43a5-bb14-21ab836fa0b3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very fast method of writing simple compute shaders to manipulate the connected points.\n\nEach point has the following properties:\n\np.Position //as float3\np.Rotation // as quaternion\np.W //for scaling and other effects\n\nThe following float values are initialized:\n\ni - index of the point\nf - a normalized float value of the index 0 ... 1\n\n\n",
"SymbolId": "3d958f08-9c0f-45eb-a252-de880b5834f3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies a displacement to the currenty point position.\nThis operator modifies the incoming buffer and thus can be used for simulations with [KeepPoints].\n",
"SymbolId": "9d6cc9a3-980f-46ae-bf79-02fc1f49c480",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A variation of [SamplePointAttributes] that uses the point index instead of texture mapping.",
"SymbolId": "bb4803d2-0c23-470a-94a8-c477e4f7dd8c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Simulates a selection of points by setting the W attribute.",
"SymbolId": "371d72b8-69d4-4ced-beda-271386ad2fd6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "A work around to pass a 4x4 matrix into a shader.",
"SymbolId": "371d72b8-69d4-4ced-beda-271386ad2fd6",
"Id": "faa2e40b-86eb-48bd-b33b-d0e17c9050e6"
},
{
"Type": 0,
"Text": "Sets the W attribute of points from a curve.\n\nDifferent modes allow to...\n- distribute the curve range along all points\n- or use different mapping ranges.\n\nYou can also connect a texture to provide override the curve.",
"SymbolId": "191e5057-4da4-447e-b7cf-e9e0ed8c5dd8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A force for the [ParticleSystem] that applies random accelerations toward an axis direction. This can lead to interesting results in motion design. If ApplyTrigger is true, a random selection ratio of particles is chosen and accelerated.\n\nUse the following options:\n\n- AxisDistribution to control the frequency of XYZ axis selection.\n- AddOriginalVelocity to control whether the original acceleration is replaced or mixed in.\n- Set Seed to a value greater than 0 to control randomness. If it's set to 0, the current frame number is used as the random seed.\n\nPlease note that the RotationAxis space may depend on the [ParticleSystem.OrientTowardsVelocity] parameter. You can also try combining this effect with [ParticleSystem.Damp] for enhanced results.\n\n",
"SymbolId": "2cc44046-2702-40d5-ab42-8b36ff3d6ca7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Note this operators has been deprecated by [ParticleSystem].\n\nIt collects emitted points into a buffer and increases their age over time. The age is stored in the W parameter of the points.\n\nThe returned points can be used particle simulations using Operators line...\n - [SimNoise], [SimDirectedForce]\n\n... drawing with Operators like...\n- [DrawBillboards], [DrawPoints], [DrawMeshAtPoints]\n\nYou can also use the [TrailPoint] operator to create ribbon-like effects.\n\n\nNote: This was previously called [ColledSpawnPoints].",
"SymbolId": "dc3d1571-ad9f-46aa-bed9-df2f4e1c7040",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies are directed force to points (acceleration stored in W). Use [SimForwardMovement] to move them as agents.\n",
"SymbolId": "87915d7b-f2aa-45da-80f9-bd1f6033d387",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates a simulation buffer for applying simulation like force fields, curl noise or flocking simulation. It initially creates a copy of the connected source point buffer. You can then reset to this initial state or constantly blend towards this original state. This can be very helpful to \"mix in\" a valid state and thus keeping a simulation under control.\n\nThe mix in factor controls how much of the original state is being restored:\n\n- 0 the simulation runs completely free\n- 0.03 a small percentage is constantly mixed into the simulation thus avoid too extreme deviations\n- 1 is equivalent of resetting to the source.\n\n\nFor experimental effects you can use mix values exceeding the range between 0 and 1.\n\nalso see: [SimulateBoidsExample], [HowToUsePoints]",
"SymbolId": "10507c42-1240-47cc-9569-5e3f1c733e99",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Blends the simulation particle points towards the original matchign emit points.\n\nNote: The effect is likely to produce unpredictable results if the number of emil points does not match the number of simulation points.",
"SymbolId": "eeec02e2-7db9-4132-935a-4caf03c828c6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Affects a point simulation by sampling a 2d texture.",
"SymbolId": "e85f0fcb-303e-4d21-b592-ad4578286336",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Repells particles of primitive volumes.",
"SymbolId": "fbe1a703-f372-4236-9f20-5d0b69183843",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Add a turbulence force to a ParticleSimulation",
"SymbolId": "3f8376f2-b89a-4ab4-b6dc-a3e8bf88c0a5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Gizmo Visualization",
"SymbolId": "3f8376f2-b89a-4ab4-b6dc-a3e8bf88c0a5",
"Id": "d936a21f-f51c-457c-8921-79dc40974917"
},
{
"Type": 0,
"Text": "Repells particles of primitive volumes.",
"SymbolId": "3849f1f8-7d5e-4c15-9e25-6761817b5038",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This will iterate over the length all line segments and compute offsets into W. \nDrawLines can then use this offset for animation effects.\n\nSpread: \n0 - ",
"SymbolId": "b7345438-f3f4-4ad3-9c57-6076ed0e9399",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Orients the rotation of points so that Z points towards a center. \n",
"SymbolId": "acc71a14-daad-4b36-b0bc-cf0a796cc5d9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Reprojects points from a rectangular space to radial coordinate system\n",
"SymbolId": "3d255f3e-d2e2-4f61-a03d-5af7043fabfc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a new point buffer with points snapped to other points if distance is below a threshold.",
"SymbolId": "5822b0d8-32ed-4db3-975b-0e8fb8d7dd17",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Transforms points inside a volume. Experimenting with different FallOff parameters can provide a wide variety of effects.\n\nWe provide the rotation not as 3 combined euler angles to allow multiple revolutions.\n\nThis Operator is almost identical to combining [SelectPoints] -> [TransformPoints]. \n",
"SymbolId": "697bbc2d-0b2e-4013-bbc3-d58a28a79f31",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "null",
"SymbolId": "697bbc2d-0b2e-4013-bbc3-d58a28a79f31",
"Id": "414b7c5b-16d4-4815-beee-980131492707"
},
{
"Type": 0,
"Text": "Transforms Point positions from world to clipspace.",
"SymbolId": "81377edc-0a42-4bb1-9440-2f2433d5757f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Transforms incoming points.\n\nTips: \n- Try to activate .WIsWeight and combine this operator with [SelectPoints].\n- Changing the Space to Point can be used to offset the points.\n\n\n",
"SymbolId": "7f6c64fe-ca2e-445e-a9b4-c70291ce354e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Transform some points",
"SymbolId": "20338d1c-e4d3-4208-8f65-e1b720b8b563",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Compute new buffer lenght if only keeping takes\nsee\nhttps://www.figma.com/file/TUnxf2ZJYSpPj3YIWhmjDV/T3-Interaction-and-Discussions-(Copy)?node-id=2735%3A13360&t=DYeh7Mq1Ozog4dCX-1",
"SymbolId": "20338d1c-e4d3-4208-8f65-e1b720b8b563",
"Id": "d011887a-d2a1-42fa-ad1a-a167c2522897"
},
{
"Type": 0,
"Text": "Wraps points within a boundary volume.",
"SymbolId": "b263a6a1-0872-4223-80e7-5e09f4aea19d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Samples a position of the incoming spline.",
"SymbolId": "688230de-a3fc-4740-a12d-9e2f98cad60a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Transforms a single point of cpu. this can be useful for camera animations or other interactive effects.",
"SymbolId": "5f2df291-4667-474e-9e84-3b64d4cc0555",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "You can use [PointCloudFromObj] to load an object and then get points on its surface.",
"SymbolId": "7d302c05-9898-4c56-a894-1f8f44b9b920",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Intersecs rays from a list of oriented points with geometry. This operation is slow!",
"SymbolId": "b5515341-24ef-48ff-b832-d40e8189c6a4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An experimental effect that moves points along the brightness levels of an input texture similar to contour lines of a map.\n\nThe \"zone\" defines a band of brightness within the input texture. This zone is devide into a set of \"targetLevels\".\n\nThe incoming point set divided into lines with \"step\" length. Each line has a target brightness within the \"zone\" it's trying to reach and then follow its contour.\n\nTry the presets. You can also experiment with PointSimluation and various distribution of input points (e.g. GridPoints, RadialPoints or Randomized Points).\n\n",
"SymbolId": "46749ae5-ef10-43e7-a712-5cbd7a1d4398",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal operator that gets the points of a selected sketch page.\nThis is required for onion skin rendering of sketch pages.",
"SymbolId": "271e397e-051c-473f-968f-a2251fed65d1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Internal implementation for Sketching.",
"SymbolId": "b238b288-6e9b-4b91-bac9-3d7566416028",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal operator that generates counts that can be used to combine multiple GPU buffers into a new buffer.",
"SymbolId": "7ad3a38a-9f04-43ba-a16f-6982b87dd2d4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Get the particle system components from the context. \nThis is an internal component that is only required for developing new particle simulation effects.",
"SymbolId": "e62c1fa0-6fcd-49f5-9cf8-d3081c8a5917",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper to combine multiple point modifiers like [ApplyNoise] or [ApplyForce] to the same Point buffer.",
"SymbolId": "62c89469-7194-486a-87cd-c3e6bc0cf5d2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Rounds (floors) the position of points onto a grid, e.i. snaps them to the position of a grid.\n\nThis can be useful to debug compute shader effecst that rely on a spatial grid.",
"SymbolId": "bc88304a-a2c7-4df9-93d8-b7dfecbce3de",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Can be used to wrap positions around a cubic volume, e.g. around the current camera position",
"SymbolId": "0814a593-80ab-416f-a3ca-eef78b0a9c0c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines to point buffers.\n\nThis operator has been deprecated. Consider using [CombineBuffer].",
"SymbolId": "9d3d0582-5e55-4268-9649-07d4dd11d792",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Building a spatial hashmap can be an important basis for complex simulations that require nearest neighbour search.\nThe implementation in based on work by Guillaume Boissé and involves a multiple compute buffers and calculating an exclusive prefix sum.\n\nSome documentation can be fould here: https://www.figma.com/file/wBNGUlaACjaCDOTdeBvBvR/ComputeShader-Ideas?node-id=8%3A0\n\n",
"SymbolId": "f61ceb9b-74f8-4883-88ea-7e6c35b63bbd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This is an early internal implementation that has been deprecated.\n\nConsider using [MixPoints].",
"SymbolId": "bdd982c4-dfc4-48d6-888a-f067081dbe8e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Offsets point positions in point space. This operator has been deprecated.\n\nPlease consider using [TransformPoints] with Space set to \"PointSpace\".",
"SymbolId": "3737cd30-c79a-4282-897a-7d2a44076c65",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds information about the current particle system to the context,\nis it can be access by particle effects operators.",
"SymbolId": "705df4fe-8f91-4b1e-a7d1-432011ffcb3f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Move grid-points towards and along a mesh surface",
"SymbolId": "5e3648c0-3446-4f8f-b7ce-32d4a54b39de",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets Sprite definition from a texture. \nThis can be used to colorize sprites.",
"SymbolId": "4670ff79-f630-478c-8f3f-513e1f2b5913",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Prints a formatted string counting down a duration or time to/since a fixed date",
"SymbolId": "e4a38f3c-bd4c-406a-9979-bb683d79b39b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Converts a DateTime into different float values like...\n- normalized time of day (between 0 ... 1)\n- day of the year\n- etc.",
"SymbolId": "10acf0aa-2cb3-446b-b837-b6abe24d44da",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the current system time.",
"SymbolId": "bd8d684c-96ae-4864-84fd-ca87f98ce1a4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Tries to parse the incoming string as a DateTime.",
"SymbolId": "a78a07f8-cf75-4a72-8952-b9ba40d6983f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Splits a string by the provided separation character.\nReturns a List<string> that can be parsed with [PickFromStringList].",
"SymbolId": "a0fcf7ed-1f14-4a8b-a57e-99e5b2407b1b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick experiment with feedback effect",
"SymbolId": "ff101c21-e166-466e-8582-84858789f3b6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Tests for an upcoming project.",
"SymbolId": "ee4065db-3b30-4b1f-95e1-127c41a9d185",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Repeats a mesh with copies along a tetraeder geometry.",
"SymbolId": "92cdd8e1-5f31-4636-9ed3-f59a1e018586",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Export conversion",
"SymbolId": "500ee741-bd04-4e13-9e40-53ec72af1bea",
"Id": "cab49783-dabe-40aa-8657-6f72790385d2"
},
{
"Type": 1,
"Text": "Data Driven",
"SymbolId": "500ee741-bd04-4e13-9e40-53ec72af1bea",
"Id": "64f1c310-5373-4dae-b2fa-1192fec849ec"
},
{
"Type": 1,
"Text": "Target Groups",
"SymbolId": "500ee741-bd04-4e13-9e40-53ec72af1bea",
"Id": "0f810c3b-9ed5-4edd-868e-5f2c0efbb427"
},
{
"Type": 1,
"Text": "Landscape Lines",
"SymbolId": "500ee741-bd04-4e13-9e40-53ec72af1bea",
"Id": "c642e0eb-29b1-4806-bde8-47e274ce3c09"
},
{
"Type": 0,
"Text": "Implements an optical flow effect that generates a motion vector field, which can be used to drive particle effects.\n\nThe effect requires successive image frames as input, which can be generated by using [KeepPreviousFrame].\nThe motion vectors are stored in the red and green channels of the result. The blue channel is used for the magnitude of the detected motion.\n\nParameters:\n\n OutputMethod: Switch between grayscale (neutral values: R 0.5, G 0.5, B 0) or signed (with ranges from -1 to 1).\n Amount: Controls the magnitude of the detected motion.\n Lod: Specifies which MipMap level of the input textures should be sampled. This results in a blurring of the effect.\n ClampRange: Can be used to clamp and normalize the results, preventing values from becoming too small or excessively large.\n\nThe shader implements the Lucas-Kanade flow algorithm: https://en.wikipedia.org/wiki/Lucas%E2%80%93Kanade_method\nIt builds upon a previous shader implementation by mds2 on Shadertoy: https://www.shadertoy.com/view/XlBcRV\"\n\nAlso check the example.",
"SymbolId": "0309e746-c356-4c7b-af05-93136a2607de",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "We can use this point's position to draw more points...",
"SymbolId": "ef1d5cd0-61fd-4b50-8e83-5b3ec1d40ec3",
"Id": "b5f247ac-36db-41f0-8c54-a26e613e98bb"
},
{
"Type": 1,
"Text": "...and these positions to draw even more line points at these positions.",
"SymbolId": "ef1d5cd0-61fd-4b50-8e83-5b3ec1d40ec3",
"Id": "47bcd5b9-b79e-4bd3-b440-821eac59ddaa"
},
{
"Type": 1,
"Text": "...or create another modified copy\nand draw mesh instances there...",
"SymbolId": "ef1d5cd0-61fd-4b50-8e83-5b3ec1d40ec3",
"Id": "2e2b0ab0-3239-4f3c-a88b-0fa71e7d1882"
},
{
"Type": 0,
"Text": "This is an attempt to create a cel shader\nIn fact it's more a gradient based shading as you need to use a gradient in order to define what colors will be used to shade your mesh. \nMake sure to use at least one [PointLight] and adjust the Brightness and the light intensity. \nYou can set the gradient interpolation to hold but you can still use the other interpolations then you'll have full controls for example if you don't want hard edges between colors. ",
"SymbolId": "dcacc281-92c6-4e47-8eea-91fa8954ed86",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders streaks onto the incoming image. You can use the threshold to limit the range that are used for streaks.\n\nAlso check out the presets.",
"SymbolId": "ecbb40c4-aef4-49a8-ac89-e82c3a09862f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick experiment with midi controllers",
"SymbolId": "c5d7b3e2-9030-455e-941f-3c550838b73a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines [PickSpawnPoints] with [GrowStrains]",
"SymbolId": "1c99e732-7fd7-4254-8ab2-3a9cf2325982",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Lets get inspired",
"SymbolId": "6f9126f8-fed5-4088-905a-7be8e800b968",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Let's practise",
"SymbolId": "604bd66e-f9ce-45f6-9fac-a8620418c73b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A example how to use the unsplash API and combine it with feed back effects.",
"SymbolId": "2872d93c-882e-42ee-8bcf-747c24f9b042",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An example how to combine SVG line animation with [FluidFeedback] to create a fire like simulation.",
"SymbolId": "cf1fdb46-72c0-4e3c-a00d-edef25ae955a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to sample attributes from a texture",
"SymbolId": "446d1664-5fcf-4792-874c-926450a900d7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to use AnalyzeSound and AudioReaction to drive visuals.",
"SymbolId": "f02d4cf2-4fb0-4964-8990-2360d2db7979",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A colletion of nice examples to show case tooll.",
"SymbolId": "cfdf9331-07e9-46ce-b62c-efec76fc9c9e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Example",
"SymbolId": "cfdf9331-07e9-46ce-b62c-efec76fc9c9e",
"Id": "99d7f9bf-d6d0-4b72-b669-7e63372208a4"
},
{
"Type": 1,
"Text": "Example",
"SymbolId": "cfdf9331-07e9-46ce-b62c-efec76fc9c9e",
"Id": "19e3ff07-9d94-438c-b274-aedb5cb6dff9"
},
{
"Type": 0,
"Text": "A small animated background for tutorial opening screens.",
"SymbolId": "b0248e6e-a82b-48d1-ac65-ee7b36038478",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to build a diagram from lines and texts.",
"SymbolId": "a8f108a4-4d0a-4335-a3b5-f723239c25d1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very fast fast challenge",
"SymbolId": "995cc9f3-b23a-42fb-ac0d-3f1037e3aeaa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A feedback effect that is seeded by Gemeotry like texts, etc.",
"SymbolId": "007b7ad9-e8f2-4830-be0f-d3f5f3444683",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Prototyping and an interaction",
"SymbolId": "61f2cf41-b520-4830-bc59-0d9b1d226274",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Connection line test",
"SymbolId": "61f2cf41-b520-4830-bc59-0d9b1d226274",
"Id": "07dc8002-6adf-4a51-80f4-b06ce3db032e"
},
{
"Type": 1,
"Text": "Map OSC Input",
"SymbolId": "1977060f-1f72-4829-96aa-3b96c81bbae0",
"Id": "c80cffe8-2b67-4c14-9017-5c9570e0375d"
},
{
"Type": 0,
"Text": "An experimental point effect",
"SymbolId": "97ded8ca-bdcf-4cb8-a791-a05ba4393888",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Experiments for the shadow map pipeline",
"SymbolId": "0fc6dc9f-713f-4f59-922b-3224454704c5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper for a quick interaction prototype.",
"SymbolId": "b3f34926-e536-439b-b47b-2ab89a0bc94d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick expieriment to create unique 8th wall markers.",
"SymbolId": "0bc39951-6eec-493c-b609-9e07a9a1dcee",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an image sequence from a folder.",
"SymbolId": "927a77d5-7bf0-477b-b288-4bb48d4980cd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick prototype how to highlight image regions with keying.",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Crop input image to full screen to align with mouse input range.",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "26a391e4-3e8e-4589-89f0-7e85c3a21608"
},
{
"Type": 1,
"Text": "Pick color and feed to keyer",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "e2be0c6a-0fa1-4f96-94db-77264a94ebaf"
},
{
"Type": 1,
"Text": "Flash outline on change",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "5272acd1-bca6-43c7-bad8-063f018ffed5"
},
{
"Type": 1,
"Text": "Lock to cropped input resolution and ignore output resolution",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "3eff1f7d-7dd6-4fef-a9db-81076554d9d9"
},
{
"Type": 1,
"Text": "A fallback image with generated mask",
"SymbolId": "14939a8d-8c42-4bd4-8271-8a083cfa4024",
"Id": "f28ba862-fe57-4c48-a526-17b9b0ddcf49"
},
{
"Type": 0,
"Text": "Visual exploration for a line transition.",
"SymbolId": "0fa509a8-086a-4b60-ab9a-ee979643a29e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A proof-of-concept on how to render to multiple render targets.",
"SymbolId": "15ec2cc2-8c9e-41b7-8b55-0f39532a0882",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Prevent multiple updates per frame",
"SymbolId": "15ec2cc2-8c9e-41b7-8b55-0f39532a0882",
"Id": "773230db-3b80-4b73-922e-2553c718dc0d"
},
{
"Type": 0,
"Text": "Experimenting with emitting points based on image brightness",
"SymbolId": "f68fd746-0b4f-4f51-8d7d-f271922c36e8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Plays the source region of a video source defined by the time clip container.",
"SymbolId": "0dbc4f3f-8fdb-402b-a7cb-6949cf21a98a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal visualization of sound levels.",
"SymbolId": "6bb3fc41-f1d4-467e-afc6-62b452ec36be",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This operator has been deprecated.\nPlease consider using [AudioReaction].",
"SymbolId": "112ea923-a349-412f-8dd3-4d9d9fc42dc6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that visualizes particle in the 2d collision simulation.",
"SymbolId": "6a978975-3996-4e0b-ae9b-782a49e17c73",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal experiment to use [Raster] to overlay subdivision grid.",
"SymbolId": "f15cc064-1d70-4945-ae60-35d884788c0f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An early exploration on how to convert YUV to RGB",
"SymbolId": "7845ec24-e249-4c6a-84e3-63422ede1a1d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Experimenting with physics simulation for points.",
"SymbolId": "7bc42ff0-2987-4dff-ab48-0eb4ab11f149",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Convert input parameters to into a buffer \nfor the shader.",
"SymbolId": "7bc42ff0-2987-4dff-ab48-0eb4ab11f149",
"Id": "e1ce4442-518c-4b67-8272-b033afc8b5fe"
},
{
"Type": 1,
"Text": "Setup the compute shader and calculate\nthe number of dispatches ThreadGroups\nand buffer length.",
"SymbolId": "7bc42ff0-2987-4dff-ab48-0eb4ab11f149",
"Id": "f2b30f56-fc20-4445-ae0a-9890f4b2eb6b"
},
{
"Type": 1,
"Text": "This is the shader you want to edit.\nSelect it, then click [Edit] in \nParameter Window...",
"SymbolId": "7bc42ff0-2987-4dff-ab48-0eb4ab11f149",
"Id": "6af48460-08ee-4fbe-8c73-1107230a7d27"
},
{
"Type": 0,
"Text": "Oh deer",
"SymbolId": "3664007f-9105-40b7-ba58-1466e4f6edbd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "null",
"SymbolId": "80908e49-b0da-4785-acd6-16bac1f51d09",
"Id": "132e501f-ef9d-450d-abb0-64f22565b4d4"
},
{
"Type": 0,
"Text": "A test with [ApplyNoise] on points and point trails.",
"SymbolId": "6c39dca3-8d0c-477f-923b-30f52f2b4efa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Playing with edge repeat and kaleidoscope",
"SymbolId": "b48e2f43-e87f-4cba-ab86-078e7cdd7444",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A small helper that sets LFO speed factor variables from MidiControllers into context.\n\nThis setup is highly customized for WAKE performances and probably not applicable to your situation.\nBut it might be a good starting point for tweaking your own setups.\n",
"SymbolId": "e14af8a3-8672-4348-af9e-735714c31c92",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Set Input midi input controls for LFO speed overrides and Beat Tapping",
"SymbolId": "e14af8a3-8672-4348-af9e-735714c31c92",
"Id": "cc77db97-a906-4175-b1ef-1d31239648f3"
},
{
"Type": 0,
"Text": "A weird clustering effect caused by apply non-curle noise.",
"SymbolId": "ff6d6856-c287-4f2c-9a9e-7dda8b4c2921",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A weird blurry VJ-Scene, that's quite versatile",
"SymbolId": "dda7898a-00c3-40c9-9fcd-020706969733",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Playing with mesh distort and simple geometry",
"SymbolId": "8f1bc36a-0206-4c35-900d-ced5dd30481b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combining to faces on beats",
"SymbolId": "9e967eb6-b336-4ffc-9be0-88205f8ea0f0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Weird experiment with FluidFeedback effect",
"SymbolId": "a9bd30b1-8b58-4b88-8c8e-5f14b425edec",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick experiment for visuals.",
"SymbolId": "a9e36415-58b3-4e2c-b42a-757000d5e337",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Font Overlay",
"SymbolId": "a9e36415-58b3-4e2c-b42a-757000d5e337",
"Id": "67a22cf3-cdd0-4c74-8ba4-a4b15f144c53"
},
{
"Type": 1,
"Text": "Feedback",
"SymbolId": "a9e36415-58b3-4e2c-b42a-757000d5e337",
"Id": "7b23ebb6-fd64-46b5-9f47-7a2c83bd39fc"
},
{
"Type": 1,
"Text": "Seeding Feedback",
"SymbolId": "a9e36415-58b3-4e2c-b42a-757000d5e337",
"Id": "94637fc9-2092-43de-ab93-b2cb4c7e3a33"
},
{
"Type": 1,
"Text": "Drumkit detection",
"SymbolId": "a9e36415-58b3-4e2c-b42a-757000d5e337",
"Id": "046ea86b-d529-42b3-b629-190a4a7d780f"
},
{
"Type": 0,
"Text": "An abstract experiment with [SetMeshUvs]. Requires correctly set audio input.",
"SymbolId": "70e3725d-42d9-450a-8068-58ef244d0e09",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A fast exploration in anaglyph (red cyan 3d) rendering demo for Deadline 2022.",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Random Camera",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "943ab62b-7356-46d5-9184-dc5f40e9d9c5"
},
{
"Type": 1,
"Text": "Wall points",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "c6f2a80c-b977-4134-a5e2-bac02e0a212d"
},
{
"Type": 1,
"Text": "Final Scene",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "fa22e8b8-bfcd-457e-9f68-78383d98cec3"
},
{
"Type": 1,
"Text": "Flicker Light",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "c25b0be9-3ee5-476f-9832-74cf3b256076"
},
{
"Type": 1,
"Text": "Cube",
"SymbolId": "442d40e3-7c00-4161-a606-79c2fe6c36c1",
"Id": "75d80ac3-371b-4001-9182-6f2e01560183"
},
{
"Type": 0,
"Text": "A demo. Winner PC-Demo of Evoke 2021.",
"SymbolId": "ce469ec7-708e-492f-8b6a-44eda127c28e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick render test",
"SymbolId": "3ddae933-ed91-4773-af39-a35c89dcec11",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick production for Evoke 2022. Ranked 3rd.",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Light Flashes",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "e83293ac-2ae0-49dd-8c3a-23ce07e10a00"
},
{
"Type": 1,
"Text": "Environment",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "d46db83c-0889-48dc-bb7f-52b6dc06e3cb"
},
{
"Type": 1,
"Text": "Fog Sprites",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "279d8bd9-b1e9-49c9-8c86-8e2bd137aea6"
},
{
"Type": 1,
"Text": "Intro Animation\n",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "9439ef1c-6c9d-4f99-9aa8-8bf27c11d7a1"
},
{
"Type": 1,
"Text": "Intro scene",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "fa1dea80-d955-4089-88c8-bdd2e015bdcc"
},
{
"Type": 1,
"Text": "Hair",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "4ffb94b6-9f99-4735-a8ba-14bbacb945d2"
},
{
"Type": 1,
"Text": "Light rays",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "d699249d-4214-4aa1-9e4e-660fb30db804"
},
{
"Type": 1,
"Text": "Chapters",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "2a1a045c-9c0a-449b-8e53-b538df2b3033"
},
{
"Type": 1,
"Text": "Bubble ZOom",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "d7622218-07bc-40ea-9957-3f15f611cab5"
},
{
"Type": 1,
"Text": "Main Cam with Shake",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "2c4bcfbe-3de3-4c8a-921c-484aa3e8e05a"
},
{
"Type": 1,
"Text": "Logo",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "8367f1cc-4292-464c-938f-03d657e92ad8"
},
{
"Type": 1,
"Text": "Reaper",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "e4934ad8-1a4f-4e61-b4e5-5174cf730c0b"
},
{
"Type": 1,
"Text": "Sphere",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "32318b8d-7468-48a0-85f6-ce3cef182f46"
},
{
"Type": 1,
"Text": "Outro",
"SymbolId": "f05356b6-3456-4a1b-988c-0c8f89fb4816",
"Id": "72400c29-9311-451f-a1a7-413fa6aa749f"
},
{
"Type": 0,
"Text": "A short and fast demo for deadline 2023",
"SymbolId": "bfa5b00c-e1f3-4b15-8fec-859156facfce",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Force main result to 16:9",
"SymbolId": "bfa5b00c-e1f3-4b15-8fec-859156facfce",
"Id": "028d9e2d-cb18-477f-ad8d-416f75fc0b99"
},
{
"Type": 1,
"Text": "Text overlays",
"SymbolId": "bfa5b00c-e1f3-4b15-8fec-859156facfce",
"Id": "cf94f2c0-229c-42f5-8204-fae74b23c732"
},
{
"Type": 1,
"Text": "Random de-focus",
"SymbolId": "bfa5b00c-e1f3-4b15-8fec-859156facfce",
"Id": "24e14bf6-4feb-4881-a4ff-a3d11d0c8ffd"
},
{
"Type": 0,
"Text": "Researching various scenes and effects.",
"SymbolId": "edf2f2fb-eaa3-4845-865d-679c5b1a0930",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Some visuals for the meteoriks ceremony.",
"SymbolId": "71ac2f3c-c85f-43d1-9929-a8445b797e68",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick contribution to fast challenge. Ranked 3rd at Inercia 2022.",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Audio Sync",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "271ee0e7-58d9-489b-b2da-3636e3ddf074"
},
{
"Type": 1,
"Text": "Cat Flood",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "49b8a8a5-c660-439e-b3a3-8465fa44d1e4"
},
{
"Type": 1,
"Text": "Intro",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "72976b22-aef9-4b1a-9073-e310436852d1"
},
{
"Type": 1,
"Text": "Debug Overlay",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "b68bd60c-a7a0-4fe3-9970-f3d91657fd3b"
},
{
"Type": 1,
"Text": "Running Cat",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "97e0fee0-fd3e-42ed-92e3-c4968cda5dc3"
},
{
"Type": 1,
"Text": "Yellow Floor",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "fab2a8b4-a033-475d-9e6c-695e79b8ccba"
},
{
"Type": 1,
"Text": "Main Camera",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "1bba89b7-04c7-4676-a1f9-425ecbda04bc"
},
{
"Type": 1,
"Text": "Flash Rings",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "26583409-ea91-40f8-a64e-66eefa564b63"
},
{
"Type": 1,
"Text": "Typo overlays",
"SymbolId": "ace28a0c-b71a-41eb-bd50-b57da38a23ce",
"Id": "199ca37e-f733-4720-848f-ae9cd5f2abac"
},
{
"Type": 0,
"Text": "A calm demo. Ranked 3rd at Revision 2022 PC demo competition.",
"SymbolId": "5ea8bc54-d1f6-4748-9839-e3e4415a5608",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a set of points that with decreasing to sizes that can be used to draw a Doyle spiral:\n\nIn the mathematics of circle packing, a Doyle spiral is a pattern of non-crossing circles in the plane in which each circle is surrounded by a ring of six tangent circles. These patterns contain spiral arms formed by circles linked through opposite points of tangency, with their centers on logarithmic spirals of three different shapes. ",
"SymbolId": "4895a804-84df-4642-a2d3-db34a268d887",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper that uses the mouse input to explore two parameter ranges.\n\nIt either returns are default value or a alternative ranges mapped to mouse x y.\n",
"SymbolId": "957961ad-797c-48ac-b9d6-7f2fa2ce17eb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Logos",
"SymbolId": "edc5e1e6-b850-485a-99e1-7eaa070cc301",
"Id": "ff0d217e-1697-4d32-aa25-065f38ad9758"
},
{
"Type": 1,
"Text": "Arrows",
"SymbolId": "edc5e1e6-b850-485a-99e1-7eaa070cc301",
"Id": "8e876be0-3fa2-4aa9-ad76-b9bd90d858bf"
},
{
"Type": 1,
"Text": "Title",
"SymbolId": "edc5e1e6-b850-485a-99e1-7eaa070cc301",
"Id": "0c8b2761-25b2-44af-9cf0-f317fb89bea2"
},
{
"Type": 1,
"Text": "Interaction and overlays",
"SymbolId": "edc5e1e6-b850-485a-99e1-7eaa070cc301",
"Id": "fbf1dfa3-8f38-4b7f-88c7-6c65bab61280"
},
{
"Type": 1,
"Text": "CONTENT SCENES",
"SymbolId": "edc5e1e6-b850-485a-99e1-7eaa070cc301",
"Id": "d501ac90-093c-431c-8fa0-3e30609dab89"
},
{
"Type": 1,
"Text": "Color Cycling Illusion",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "b38fd0f8-0125-42da-9eb2-b48d000bb26d"
},
{
"Type": 1,
"Text": "Spiral illusion",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "eb66908b-cb7a-4b76-8bed-8f22ca28ab34"
},
{
"Type": 1,
"Text": "Color Spiral",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "cb5a5073-615f-4f2c-8684-38073a7fbc62"
},
{
"Type": 1,
"Text": "Perspective shift",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "f9f2fa29-5f08-420f-aa12-9e6c96e976cc"
},
{
"Type": 1,
"Text": "Inverted tiles",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "7e1cf1ef-bf93-4985-9496-1ee9c47c0b10"
},
{
"Type": 1,
"Text": "Snakes",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "db73f00e-6eda-46ed-9a2d-62f6e71411f1"
},
{
"Type": 1,
"Text": "Tissues",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "4339696a-0a1e-4cb3-9724-412122f562bb"
},
{
"Type": 1,
"Text": "Exploration interaction / Prove of concept",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "df7e28de-e132-4a8c-9a98-3628f05bdbbf"
},
{
"Type": 1,
"Text": "Split Point spiral",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "619b6d43-94ec-4063-8c39-74691d6aa675"
},
{
"Type": 1,
"Text": "Another invert transition experiment",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "fadd6e4d-9fb3-49cc-906f-51142e498dd6"
},
{
"Type": 1,
"Text": "Split contrast 1",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "15e2be42-d2b0-475e-b781-18aa7fbf4930"
},
{
"Type": 1,
"Text": "Yellow scintilian illusion",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "be981353-2afe-4ee8-ab46-375412d96598"
},
{
"Type": 1,
"Text": "Color Spiral II",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "2638f647-223c-4137-a802-00be429df0d3"
},
{
"Type": 1,
"Text": "sharpness contrast",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "7a0de6dd-f421-4ba7-bab7-84717aaff0e7"
},
{
"Type": 1,
"Text": "Wobbling checkerboard",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "a062cfd8-223e-4d49-b16f-b343f12af941"
},
{
"Type": 1,
"Text": "Wobbling checkboard 2",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "0b411677-57d1-4fda-b59d-aec081f232d1"
},
{
"Type": 1,
"Text": "Fake brightness contrast",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "b1c8ec2d-b569-40ed-9569-408def2659b0"
},
{
"Type": 1,
"Text": "Bubble zoon",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "b01a29df-bfaf-4a86-bb27-c6fef021b7a0"
},
{
"Type": 1,
"Text": "Schooll TV-Clock",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "c38c40f2-a942-4423-ab4a-4375cc2a78f7"
},
{
"Type": 1,
"Text": "Research and Experiments",
"SymbolId": "00485ce8-d342-4c97-aac3-1af8a7f03897",
"Id": "42a95653-88e8-4869-b31c-64562e56f202"
},
{
"Type": 0,
"Text": "Checks if users hits key on right time and computes score.",
"SymbolId": "1dfc9f6d-effa-407b-8f8d-5adf62504205",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders a visual representation for the timing game",
"SymbolId": "3f7f8975-a7bb-47e6-96f7-061deb418e18",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Tissues",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "809e8817-d20a-493f-8e7e-3429a8938ab5"
},
{
"Type": 1,
"Text": "Snakes",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "44ab574a-4ff7-4f02-801c-85656d45cff6"
},
{
"Type": 1,
"Text": "Snakes 2",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "dd892b26-a224-4b22-811b-2115d222951d"
},
{
"Type": 1,
"Text": "Color Spiral",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "18dce85a-88a3-4866-9c65-9aa3507027d8"
},
{
"Type": 1,
"Text": "Analyze",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "deffe5c4-0dc3-4f85-b569-228a5ef8cc95"
},
{
"Type": 1,
"Text": "Rotating red flowers",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "1c5c7979-ea55-4706-af67-564b6cf4886b"
},
{
"Type": 1,
"Text": "Beans",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "774a5fdf-5422-402d-bacf-1bbc7ca645c2"
},
{
"Type": 1,
"Text": "Yellow Circles",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "f4874399-113d-4368-9ad2-e894df83297a"
},
{
"Type": 1,
"Text": "Blue Sun",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "a05c57d6-045f-4bd3-ae1f-997787e17081"
},
{
"Type": 1,
"Text": "Green dots",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "eb43f341-fe6c-470f-b3ff-7351721b89fb"
},
{
"Type": 1,
"Text": "Split Point spiral",
"SymbolId": "d3e1ff33-8e76-4348-ac4a-cd537dfeb33f",
"Id": "c9aa0470-26a4-47c5-9c48-2008c8769e55"
},
{
"Type": 1,
"Text": "Tissues",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "63c43ffa-a398-416d-823b-0010c69be12b"
},
{
"Type": 1,
"Text": "Snakes",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "676023bd-41c6-4873-8a4c-68410d98dac8"
},
{
"Type": 1,
"Text": "Snakes 2",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "03e8c9f0-f441-447b-91a2-bb4788b87ee1"
},
{
"Type": 1,
"Text": "Color Spiral",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "dea3756a-ed14-4f1a-b7ec-fffd8f7549ca"
},
{
"Type": 1,
"Text": "Analyze",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "a60c6aac-346f-4768-a8e6-d27ad35cc615"
},
{
"Type": 1,
"Text": "Rotating red flowers",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "5496e4be-29e2-42f4-8d0a-d74df1eda6e5"
},
{
"Type": 1,
"Text": "Beans",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "9f76e471-f6b6-4a8b-9629-60257054fe93"
},
{
"Type": 1,
"Text": "Yellow Circles",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "b4a5885f-74f9-4c69-88cd-84620fce2804"
},
{
"Type": 1,
"Text": "Blue Sun",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "816d2346-3222-44cb-948a-638bffcea62b"
},
{
"Type": 1,
"Text": "Green dots",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "6332267e-7731-460d-b882-6386325adc83"
},
{
"Type": 1,
"Text": "Split Point spiral",
"SymbolId": "8373fee8-b212-4118-8803-dd53b7c02bca",
"Id": "305bf107-e3ee-41a6-9ebb-2881bac0d9e8"
},
{
"Type": 0,
"Text": "An art animation project. Requires corect meshes and soundtrack.",
"SymbolId": "ba2a8670-e0c3-4e7b-9382-d1c0938ba2b3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An experiment displacing images fetched via the unsplash API. Used for WAKE Revision 2021 VJ set ",
"SymbolId": "18d9721b-e170-4f4d-b630-30445aba5e20",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A VJ-scene for WAKE revision 2021 set.",
"SymbolId": "fb5e9e3c-6ded-4e62-b456-28c8d5b29a1d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick VJ experiment.",
"SymbolId": "eb13f8e8-0fe1-47f0-8e86-45f85cf2f0f6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Flashing Notes",
"SymbolId": "eb13f8e8-0fe1-47f0-8e86-45f85cf2f0f6",
"Id": "0aa52ec1-63e5-4a7d-aee7-fa20683c3d3c"
},
{
"Type": 0,
"Text": "A visual VJ experiments with synced words. Requires correct soundtrack an playback timing.",
"SymbolId": "b23f04e1-a648-4734-9b8e-265c794a0811",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A part of the WAKE Revision 2021 VJ set. Needs correct soundtrack to work.",
"SymbolId": "e7821087-ec80-4c1c-907a-e3506dd345b3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An nice animation example that uses [SampleGridAttributes] and inverted blendmap to generate abstract patterns.",
"SymbolId": "d6304632-a8c5-4029-8087-dc992b1f899c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A VJ-set in the making",
"SymbolId": "5f305acf-4e8f-4bc8-945a-cbf4f325a9cd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Set Playback Time and BPM by Midi Message",
"SymbolId": "5f305acf-4e8f-4bc8-945a-cbf4f325a9cd",
"Id": "ca47fb3f-0c20-4c21-b191-b68c661d24e6"
},
{
"Type": 1,
"Text": "Old Stuff",
"SymbolId": "5f305acf-4e8f-4bc8-945a-cbf4f325a9cd",
"Id": "54fe7774-2427-4fea-a3c3-4e7f75d9db82"
},
{
"Type": 0,
"Text": "Intro part with some deplacement effects blended by snapshots.",
"SymbolId": "90b20942-810b-480c-a19e-a41296cac9e6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple setup with [AdvancedFeedback] and [FakeLight]",
"SymbolId": "88af0668-6aae-419c-ace8-845c92135915",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses Draw Billboards to generate an oldschool movie effect",
"SymbolId": "c1348a39-276f-4fe6-9210-f9f605cb0ece",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 2,
"Text": "We slightly adjust the radius and width...",
"SymbolId": "4f113e4a-eb27-4e40-8843-d15d54610f33",
"Id": "264e9fd5-ce72-470a-9d2c-8bfe31a60a17"
},
{
"Type": 2,
"Text": "Notice how we disabled CloseCircleLine. Since we don't draw lines we don't need to repeat the start and end points.\n\nWe also also adjust drive the orientation angle with an random axis.\nand adjust the orientation angle so that the Torus are aligned at the z-axis. ",
"SymbolId": "4f113e4a-eb27-4e40-8843-d15d54610f33",
"Id": "e5315f37-a88a-479a-88c3-f00f1e32affd"
},
{
"Type": 2,
"Text": "Notice how the Tori are aligned towards the blue z-axis of each point.",
"SymbolId": "4f113e4a-eb27-4e40-8843-d15d54610f33",
"Id": "aacdecb6-5db8-434c-8a1a-cf02e728b129"
},
{
"Type": 0,
"Text": "Shows a simple setup for using the godrays post render effect.",
"SymbolId": "4b8b7567-a9d2-4956-813d-91e542e1f661",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how [SliceViewPort] can be combined with [Loop] to achive different effects.",
"SymbolId": "81337795-7e15-4335-a067-6d2c54a7b4b8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates an potential setup for camera / media reprojection.\n\nIn compbination with [Spout] this could be used to render content matching the visual perspective of an audience.",
"SymbolId": "2bd99e05-9a54-4466-a220-0289939406bd",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Example scene",
"SymbolId": "2bd99e05-9a54-4466-a220-0289939406bd",
"Id": "121c253d-0801-4612-a80c-ec83e9ad86ef"
},
{
"Type": 1,
"Text": "Render example scene \nin overview context.",
"SymbolId": "2bd99e05-9a54-4466-a220-0289939406bd",
"Id": "5ab6ae28-26f5-4b5c-b044-a35bfbcd3740"
},
{
"Type": 1,
"Text": "This is just an example persective.\nYou should use the group and viewer camera.",
"SymbolId": "2bd99e05-9a54-4466-a220-0289939406bd",
"Id": "33963fa4-5bc2-4706-99c8-02a547ba925d"
},
{
"Type": 1,
"Text": "Draw an example scene to illustrate the spatial setup.\n\nNOTE: You can toggle gizmo display to show camera and content scene.",
"SymbolId": "2bd99e05-9a54-4466-a220-0289939406bd",
"Id": "3fc7f517-b115-40e5-a419-68243c66762f"
},
{
"Type": 0,
"Text": "Illustratoes how to use ColorGradeDepth to colorize points by distances to the camera.",
"SymbolId": "737a41db-bf35-4f66-8600-a083f0157cd5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple example of how to combine [DetectEdges] with a transparent output with [AdvancedFeedback].",
"SymbolId": "5f381544-0b6d-4e78-802a-c959c9686836",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick illustration of the [HexGrid] operator. ",
"SymbolId": "a2612284-7b74-449e-903e-536eaab4833f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Illustrates how to use the [OpticalFlowEffect] on a [PlayVideo] texture.",
"SymbolId": "db89bacd-db5a-4d52-a073-ed141f413f8d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Some experiments with the sort pixel effect.",
"SymbolId": "26aa6110-def1-4140-9d1e-de3621aeae10",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple example for not clearning a [RenderTarget].",
"SymbolId": "7d7c9abb-1742-407e-85c7-ba4f6e87f390",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Example of how to use the RyojiPattern as an animated texture.",
"SymbolId": "d71a564b-44c7-42a6-b0ca-05d5f512be14",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple example of a feedback effect.",
"SymbolId": "1fdd634f-4c6a-4615-b75a-0c46732c9826",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to playback muliple video files in a directory.\nSkip by clicking left/right.\n\nNote: this op needs timeline playback to run.",
"SymbolId": "1d56e2c6-9199-41e7-9404-24f4f6b75044",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Skip to next/previous on mouse clicks",
"SymbolId": "1d56e2c6-9199-41e7-9404-24f4f6b75044",
"Id": "8b566dcd-0039-4f3c-bc7a-3f7650963153"
},
{
"Type": 0,
"Text": "Well, that patch sounds strange.",
"SymbolId": "2fb5aaf5-125e-4081-99ca-08918e870ec1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to combine [Loop] with [GridPosition] to draw raster layout.\n\nAlso consider using [SliceViewPort]",
"SymbolId": "3dd015ed-5d7a-4b0e-a6da-958c58f716bb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Renders a camera shape that can be used for visualization.",
"SymbolId": "b601be85-fa85-4358-9541-7e97341bf6b3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates are Mesh that can be rendered with [DrawMesh].",
"SymbolId": "c47ab830-aae7-4f8f-b67c-9119bcbaf7df",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates a cylinder mesh with or without closing caps. You can use the Height, Fill, and RadiusOffset parameters to generate things like pie charts, torus diagrams, Cones and other shapes.\n\nCheck the presets.\n\nTip:\n- set the cap segments to 0 to skip drawing caps.\n\nAlso see [NGonMesh]",
"SymbolId": "5777a005-bbae-48d6-b633-5e998ca76c91",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a mesh by extrudes a set of points along a set of other points.",
"SymbolId": "816336a8-e214-4d2c-b8f9-05b1aa3ff2e2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates Vertex and Index buffers from obj file",
"SymbolId": "be52b670-9749-4c0d-89f0-d8b101395227",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a flat circular mesh with a joined center vertex.\n\nAlso consider using [CylinderMesh].",
"SymbolId": "1b9977be-70cf-4dbd-8af1-1459596b6527",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates are tesselated mesh.\n\nAlso known as: Plane, Quad",
"SymbolId": "9d6dbf28-9983-4584-abba-6281ce51d583",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Creates a new mesh that repeats the incoming mesh at each point.\nNote: With large meshes or point sets this can quickly result in excessively large meshes.\n\nAlso see: [DrawMeshAtPoints]",
"SymbolId": "ab496711-8b99-4463-aac9-b41fdf46608d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a UV sphere mesh with the given tesselation.\n",
"SymbolId": "5fb3dafe-aed4-4fff-a5b9-c144ea023d35",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a torus mesh with the given size and tessellation.\n\nYou can use [TransformMesh] to rotate or translate the geometry. \nPlease also check out the the presets.",
"SymbolId": "a835ab86-29c1-438e-a7f7-2e297108bfd5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combines the connected mesh buffers into a new mesh",
"SymbolId": "c276f4eb-f19c-405b-b247-3db159677571",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Combine Indices",
"SymbolId": "c276f4eb-f19c-405b-b247-3db159677571",
"Id": "9cfeb291-962b-4d28-8268-b7e0d738762b"
},
{
"Type": 1,
"Text": "Combine Vertices",
"SymbolId": "c276f4eb-f19c-405b-b247-3db159677571",
"Id": "d68dbe48-b64c-474e-ab2e-413ddb123770"
},
{
"Type": 0,
"Text": "Displaces a Mesh with a perlin noise.",
"SymbolId": "b5709297-c714-4019-9d0b-6982590b5590",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Reverses the normals of the input mesh. This can be useful for drawing shader \"inside\" surfaces of a mesh.",
"SymbolId": "0f61b638-7bda-4331-944a-50fdca401223",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets the UV coordinates of the mesh.",
"SymbolId": "97ffb173-f4cc-4143-a479-80cf3465cc7e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Deforms a mesh in world space origin along a line define by points.\n\nIt maps the geometry to the complete range of all points. Use the range parameter to squeeze the geometry to the correct ration.\nUse the Offset parameter to shift the object along the line.\nThe Scale parameter can help to adjust the overall scale of the geometry.\n",
"SymbolId": "c6dd42a7-d3a3-4405-b64a-159bcf3beab8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Switch between different mesh buffers",
"SymbolId": "845371ef-a5c2-4ca2-8315-ea2b62f63ee2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Reset and count neighbour faces",
"SymbolId": "68e0d0cb-1e57-4e9c-9f22-bd7927ddb4c5",
"Id": "4718650c-dde4-4281-b4ec-116ce4d21e8a"
},
{
"Type": 0,
"Text": "This op is similar to [DisplaceMesh]. However it uses faces centers instead of the vertices, to can \"scatters\" a mesh while keeping the size of the individual faces.\n\nPlease note that this effects works best with flat shader meshes created by [SplitMeshVertices], because this operator will generate artefacts for Meshes that use shared vertices.\n",
"SymbolId": "daacabd8-0338-4998-898f-94580abd8eac",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Sets the selection property of mesh vertices from a volume. This can later be used to selectively apply manipulations like displace.\n\nalso see: [ScatterMeshFaces]",
"SymbolId": "6184ac2d-c17d-47de-a314-15e1c670f969",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This can be relevant to \"scatter\" smooth shaded geometry or change shading to flat.",
"SymbolId": "3f0f0c40-482d-4d79-a201-b4651a0cd3a8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Build new vertex buffer.",
"SymbolId": "3f0f0c40-482d-4d79-a201-b4651a0cd3a8",
"Id": "69053100-817b-499a-afff-6d21b6476021"
},
{
"Type": 0,
"Text": "Uses a projected texture with a normal map to dispace the mesh. \n\nThis similar to [SamplePointAttributes].",
"SymbolId": "a368035f-2697-4ba5-a7bd-484eeb54c39b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generates a new set of transformed vertices for a mesh.",
"SymbolId": "026e6917-6e6f-4ee3-b2d4-58f4f1de74c9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses a set of reference points to warp a mesh geometry. This can be useful for adjust ing project mapping.",
"SymbolId": "99435f7a-4969-4a0e-83f5-404ee6a0cfa2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal helper that exposes count and size of mesh buffers. It's used by CombineMeshBuffers to iterate over the to be combined meshes.",
"SymbolId": "e43370a7-dafd-48b0-bac6-f30ea1bcf4cb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Loads an Obj mesh file to its edges can be used for artistic line rendering.\n\nIt can be used like this:\n\n[LoadObjEdges]->[ListToBuffer]->[DrawLines]",
"SymbolId": "dd3d7e16-f33e-4fb0-89c6-4d8cbc9d702f",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Visualizes mesh details like vertex indices, vertex-TBN spaces, wireframe and others.",
"SymbolId": "f8b12b4f-c10b-4e8b-9a69-344dbe8a063e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal operator that combines structed buffers for Vertice and FaceIndices into a MeshBuffer definition.\n\nIt's the reversal of [_MeshBufferComponents].",
"SymbolId": "e0849edd-ea1b-4657-b22d-5aa646318aa8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gives access to Vertex and Index-Buffers of a mesh.\n\nThe buffer can then be combined with [_AssembleMeshBuffers].",
"SymbolId": "5b9f1d97-4e10-4f31-ba83-4cbf7be9719b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Get constant buffers (e.g. for rendering parameters) from evaluation context.",
"SymbolId": "d32a5484-880c-41d4-88ea-6ee1a3e61f0b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple test setup",
"SymbolId": "d062c1c2-a7d1-4d4d-a9b1-e0e96df02385",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Gets properties of a camera operator further down (further left) in the render graph. This can be useful for effects like motion blur.",
"SymbolId": "843c9378-6836-4f39-b676-06fd2828af3e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Fetches the current render setting buffers from the context. This includes things like materials.",
"SymbolId": "ca4fe8c4-cf61-4196-84e4-d69dc8869a25",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal op that sets the prefilter specular map \nfor the environment to the context.",
"SymbolId": "944d1903-cd23-49ca-9b0d-2fc73bfcfd30",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws 2D Sprites defined in a sprite buffer. This can be used to render things like lense flare quads or other effects.\n\nAdditionally to a Point-buffer Sprites also contain attributes like UV and color.",
"SymbolId": "95558338-81a5-4ecc-9d5c-1c6fb5f6f4fa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applying a masked blur can be a very powerful effect for simulating tilt shift cameras (with [LinearRamp] or depth of field (with [Blob]). \nIt can be also useful for fade in transitions.\n\nTips:\n- Also try to apply it with animated patterns like [FractalNoise].\n- Some additional effects can be achived by increasing .MaskContrast and animating .MaskOffset.\n- MaskContrast of -1 will invert the mask.\n\n",
"SymbolId": "d40966c3-2369-40f2-8202-e5c8ab6d9cc0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses a fallback buffer if the primary input is not connected or not initialized. \nThid",
"SymbolId": "49549c3e-b09e-4633-86c6-1ac075f56b69",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Can be used to get a reference to a RenderTarget to implement feedback effects.",
"SymbolId": "fd5ac393-02a4-43ae-8cdf-64a947abbafa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal image processing step that adjusts and stabilizes the values of a feedback buffer. ",
"SymbolId": "d31a8463-0699-46d7-8e96-9abc6adb997d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Setup for a image effect with two incoming textures that does not have any animated references.\nThe used with a fixed resolution this can be cached automatically.",
"SymbolId": "cc34a183-3978-4b6b-8ef1-dd8102410816",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "GGX prefiltering for input cubemap. Different roughness prefilterings are store in mip levels.",
"SymbolId": "cc3cc712-9e87-49c6-b04b-49a12cf2ba75",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Combining 3 images...",
"SymbolId": "5b999887-19df-4e91-9f58-1df2d8f1440b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "This operator has been deprecated.\n\nIt uses a save JSON export of soundtrack levels to scan for beats.\n\nConsider using [AudioReaction]",
"SymbolId": "a9e77500-ccb5-45b9-9f17-0d9bf9b58fb5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Can be used to drive float parameters through audio reaction. This requires [SetAudioReaction] to be added first.",
"SymbolId": "f8aed421-5e0e-4d1f-993c-1801153ebba8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A helper op that forwards beat tapping to T3 interfaces. \nThis can be useful for tapping bpm rate with midi-controller.\n",
"SymbolId": "79db48d8-38d3-47ca-9c9b-85dde2fa660d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "DANGER: Overriding the BPM-rate will interfere with your playback and animation speed. \n\nOnly use this operator, if you know what you're doing (e.g. in VJ-set context where the bpm-rate is provided by an external source like MIDI or OSC)",
"SymbolId": "f5158500-39e4-481e-aa4f-f7dbe8cbe0fa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Speed factors are multiplied to most animation operators like [AnimValue] and [Counter].\n\nThis is an extremely powerful method to adjust the pace of visuals while staying beat synced.\n\nIn NormalizedRates mode...\n- ...0.5 means neutral (factor 1). \n- ...lower means slower: 1/2 1/4 1/8 1/16 frozen\n- ...larger means faster x2 x4 x8 x16 x32\n\nSpeedFactorA is applied to:\n[Counter]\n\nSpeedFactorB is applied to:\n[AnimValue]\n[AnimVec2]\n[AnimVec3]\n\nTo keep things flexible it supports Image and Commands types (but not crossing between them).",
"SymbolId": "61dc8ba5-8aa6-4003-8d8c-8bce27f56a67",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws points as animated camera aligned sprites. \nThe point's .W attributes control the lookup within the \"animation\" tracks for color and size.\n\nThis can be used for particle like animations or to generate procedural designs.\n\nThis operator has been deprecated. Consider using [DrawBillboards] instead.\n",
"SymbolId": "071c9aad-ecbf-47bf-b2f6-c43e8212d5b1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws 3d rotated quads at point positions.\n\nThis can be useful for drawing oriented sprite like shapes.\nPlease note that the oriention is not aligned towards the camera. \n\nNote: This operator has been deprecated. Consider using [DrawBillboards] with the rotation mode set seto point rotation.",
"SymbolId": "16d10dc8-63b9-4ddf-90b8-41caef99d945",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Draws instances at Point-positions with the W-attribute driving properties like Color, Size and Offset; This can be especially useful in compbination with [CollectSpawnPoints].\n\nNote: This operator has been deprecated. Please consider using [DrawBillboards].",
"SymbolId": "ffc0a7ed-fe61-4188-8db9-0b0f07c6b981",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Applies random steps to the position and rotation of points.",
"SymbolId": "f925e9b9-5c7a-4fbf-9572-b11fe2d54d6c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A test to get nearest neighbour search working.",
"SymbolId": "7246323c-5cd5-4db1-af25-3e96ce385c23",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Move Points as agents along grid lines. This can be useful in combination with [CollectSpawnPoints]",
"SymbolId": "32d3b742-3ca8-406c-91e4-3067d6b4d5d6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Uses CollectedSpawnPoints and lines to animate W\nas weights moving across the strain with the age of \nthe spawn point.\n\nWe use a look-up texture that defines the growth \nprogression as follows:\n\n- Age from left (birth) to right (death)\n- Strain-Length from bottom (root / spawn position) to top.\n- R - Width\n- G - Noise amount\n- B - Twist\n",
"SymbolId": "98df563e-fd59-4458-a490-b7b7604ec1f3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Sadly, the _BuildSpatialHashMap helper requires a point buffer, \nso we have to copy particles to point buffer :(\n\nFor optimization we could implement a Particle-version of the spatial hash map and also find some method of sharing this\nbetween Forces.",
"SymbolId": "ed0bc47a-31ef-400b-b4e4-5552a859b309",
"Id": "0a71289d-177f-4297-add3-5d5b7f281727"
},
{
"Type": 0,
"Text": "An updated version of [FollowMeshSurface] that applies the movement on the original buffer.",
"SymbolId": "03aa5f28-3f74-4feb-aa6a-36cdb2d7f0d9",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Simulates collisions with meshs.\n\nNot: this is VERY expensive with large meshes (I.e. with more than 100 faces).\n",
"SymbolId": "281b69e8-01ee-4a62-a9ed-8508c5355c6c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Adds perlin curl noise to a point buffer. \n\nNote: Different to [AddNoise] this effect modifies the original buffer and is therefore not deterministic.",
"SymbolId": "5f846187-e109-45d1-97e0-ae95e3e7d9ba",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Moves point similar to particles into the direction of their Orientation and with W as their current velocity.\n\nWith v3.8 the forward movement is done directly in the [ParticleSimulation] operator which makes this operator obsolete.",
"SymbolId": "69c3b4ce-490a-48d4-b1d0-56dd6bf7a9a8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An obsolete string experiment. \n\nPlease consider [RandomStringBuilder].\n",
"SymbolId": "bf76bc78-74e1-45c3-9c67-de50262a48ae",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows a list table for the connected StructuredList input",
"SymbolId": "bfe540ef-f8ad-45a2-b557-cd419d9c8e44",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A proof-of-concept / research operator that can be useful for exporting PointList to json files.",
"SymbolId": "d5607e3b-15e8-402c-8d54-b29e40415ab0",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns index and progress of iteration",
"SymbolId": "4c088b67-be47-4599-bd64-5f277abb0113",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Fetches a float from a list item attribute via Reflection. This is slow.",
"SymbolId": "37794826-a099-4af3-90f4-1e49092a09e1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns Position, Rotation and W from a point.\nThis can be useful if combined with [PointsToCPU].",
"SymbolId": "1de7b1be-cab6-4beb-a837-4c817562efb2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Iterates over the elements of a structured list",
"SymbolId": "8b285708-3f20-4957-9eb2-bb40e0d320ee",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Returns the current element of the [IterateList] ",
"SymbolId": "dd201330-6eab-43b9-b601-2e491ab18feb",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "An internal helper that renders and positions a page title.\nMight have transitions later.",
"SymbolId": "ffe6b076-f561-4230-a0c3-282fb4d58383",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Outline",
"SymbolId": "652a6c86-3af2-4bed-9370-912f57690a2c",
"Id": "eca07e64-c910-48f0-b3c1-e52b4d9736bf"
},
{
"Type": 0,
"Text": "lib`R\nA bunch of excerices\n\n\n",
"SymbolId": "108a0a0d-a8d9-4898-af04-0dea9eef8968",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Info system for CCamp",
"SymbolId": "8be91ab1-a61d-4352-baf6-e74838fb657c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A design exploration project.",
"SymbolId": "2442724b-5db8-4d3f-a888-9473070e4173",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "The state machine driving climate watch installation",
"SymbolId": "b0453fd5-e9c5-481a-aa6b-0040bd5c1318",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Second try with new soundtrack",
"SymbolId": "275b0dfd-be60-40f8-9e0f-5d1ebe0fe4b4",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Using a hash table algorithm to look for nearest neighbours and experiment with point to point interaction.",
"SymbolId": "8228a543-f725-41d9-8629-f6d85f9e858e",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Connect Points",
"SymbolId": "8228a543-f725-41d9-8629-f6d85f9e858e",
"Id": "241d8061-7312-446d-82a7-04cd367ce44a"
},
{
"Type": 1,
"Text": "Draw Cell Size",
"SymbolId": "8228a543-f725-41d9-8629-f6d85f9e858e",
"Id": "9c18f945-8294-4d1f-85fa-70b99de91eae"
},
{
"Type": 0,
"Text": "A logo animation using liquid simulation",
"SymbolId": "b849e7a2-2fee-4463-b964-67f5c2519fc5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A VJ effect part that can be driven by snapshots",
"SymbolId": "758e28e9-e149-4a41-be5a-dcaad705345c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A visual experiment for VJ stuff.",
"SymbolId": "ee425946-3c6f-4bac-ab25-0e30571e8ca6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A quick VJ experiment",
"SymbolId": "40a3acf4-4e8f-4728-9bc0-4e34a4c8cf8d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": " A quick experiment to visualize how cameras could be used with gizmos.",
"SymbolId": "ef88a1f2-a541-4c7d-a6c7-ce6f768db2f5",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Experimenting with surface crawling transit\nion",
"SymbolId": "0998c5a8-8771-4161-801d-e14507c2e89c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "The second parameter is random",
"SymbolId": "c6911113-9411-4706-ad16-9e7bf58ad6c6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "TestScene with stuff growing",
"SymbolId": "6681f137-c653-4b48-a7ca-504b0056d3fc",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Another attempt of syncing to flutes",
"SymbolId": "f56a981c-2080-4617-b9f1-d7a625a44b57",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows an overlay with timecode and title that can be useful to annotate WIP versions.",
"SymbolId": "b60f2321-0df5-42a7-bdcf-4660bbe549d6",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows title and credit of an artwork.",
"SymbolId": "cea732a4-c4c2-40df-a0ff-f209125e7c99",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Generate a set of lines points an optical illusion effect.",
"SymbolId": "4aaa90f5-b9ea-4654-957d-dace5850c776",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A internal scene that visualizes when playback has been slown down",
"SymbolId": "9df0e38e-ccf1-405a-ab18-6586e652cdf1",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Availibilty Indicator",
"SymbolId": "9df0e38e-ccf1-405a-ab18-6586e652cdf1",
"Id": "0f831f5f-f9af-49d1-82a5-de7917c4f0a7"
},
{
"Type": 1,
"Text": "Other pointers",
"SymbolId": "9df0e38e-ccf1-405a-ab18-6586e652cdf1",
"Id": "58d471af-dc34-4f46-8282-43a1cc9df793"
},
{
"Type": 0,
"Text": "Retro animation for Works for Everybody",
"SymbolId": "37b19195-5781-4f8d-af7b-c9ef6a4d146d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "This effect is really expensive. Let's only reuse it for the lines.\n",
"SymbolId": "37b19195-5781-4f8d-af7b-c9ef6a4d146d",
"Id": "1bb0d613-03a5-46fc-aca8-a6ca850c11fa"
},
{
"Type": 0,
"Text": "Requests an api",
"SymbolId": "5cc6cc51-75ab-474d-b0b8-aaa03ea77326",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A simple shader der creates a Cafe Wall optical illusion pattern.",
"SymbolId": "6854e04f-8b60-41b2-a369-ca0b715c4df3",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Saves a last score to the database",
"SymbolId": "40676c51-ecca-4bc3-bd4a-eeb80fc0b937",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A new implementation with loop interation count.",
"SymbolId": "7b18587a-e75a-47c0-88de-c92ac6442c4c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Sadly including the camera shift offset into the op didn't work.\nI still need to figure our what's breaking the update for this method.",
"SymbolId": "7b18587a-e75a-47c0-88de-c92ac6442c4c",
"Id": "fa9a1042-d480-4e0c-b646-06400f160ff6"
},
{
"Type": 0,
"Text": "An effect inspired by jaragin",
"SymbolId": "a5ec9aa9-73fc-44f9-8530-e62afc0b112d",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Color Cycling Illusion",
"SymbolId": "a5ec9aa9-73fc-44f9-8530-e62afc0b112d",
"Id": "47f3e572-8add-44a4-b4f5-d5d5458590a3"
},
{
"Type": 0,
"Text": "A very slow prototype. Needs to be redone with proper paramters.",
"SymbolId": "cb28de70-6111-4f64-b6ee-f52b1a35b44a",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A setup that allow to animate the TV scene setup with exposed parameters.",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Screen Object with UVs",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "93b7e16d-627c-46c1-bd4e-f49aa17c69ba"
},
{
"Type": 1,
"Text": "TV Model and shadow",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "009b77a2-8031-4f44-81b8-cf5b61478533"
},
{
"Type": 1,
"Text": "Class room",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "fbb0a180-92ad-45a0-aa86-dc0fcae42e95"
},
{
"Type": 1,
"Text": "Chairs",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "30f7ba19-acc1-470e-82ce-e00b53057173"
},
{
"Type": 1,
"Text": "Classroom",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "b5f18e54-6476-4ac3-9598-5f182d935f02"
},
{
"Type": 1,
"Text": "TODO: Fix later. This will cause problems with sequence rendering.",
"SymbolId": "1cdedb32-f23b-4649-b4d3-9e158ef9be40",
"Id": "7d7a10ea-829a-460d-88e5-fdeb3197708d"
},
{
"Type": 0,
"Text": "Still works for you Introscene",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Screen Object with UVs",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "3c479d98-6241-400a-ac10-c112a3db859e"
},
{
"Type": 1,
"Text": "TV Model",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "c70d4221-5bc8-4a20-8d01-f15181b1f2d5"
},
{
"Type": 1,
"Text": "Class room",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "ee95df08-71ca-4b78-a150-8c9bbb45ae76"
},
{
"Type": 1,
"Text": "Chairs",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "3168bae3-a9ed-44fd-ae1f-23e4d27c480d"
},
{
"Type": 1,
"Text": "Classroom",
"SymbolId": "d71f9aa0-687f-4537-9154-eed685a8ecc2",
"Id": "b1ca88cb-fb54-4175-930e-717639ac6c13"
},
{
"Type": 1,
"Text": "City Part",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "21da3e90-e12c-4c4c-a8fa-2db0f16a4159"
},
{
"Type": 1,
"Text": "Final scene and credits",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "1722af35-c7e7-44d4-ae69-34e4409caa0f"
},
{
"Type": 1,
"Text": "Color Rings",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "99b67239-20c8-4fd8-8f26-d68b51f18dc0"
},
{
"Type": 1,
"Text": "Scroller with Shadow",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "0ea3ee12-6930-4a35-b0b0-e43a9e3e24cf"
},
{
"Type": 1,
"Text": "Shadow Blob",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "07578d91-1d9e-4f41-ba35-7d5653bb1aa9"
},
{
"Type": 1,
"Text": "Dots",
"SymbolId": "1026538b-f021-43f0-b6bd-dda89c57de94",
"Id": "902e68d5-74e3-46fb-8405-5d7fdadc2061"
},
{
"Type": 1,
"Text": "Intro part",
"SymbolId": "224aa808-3aaf-4385-be16-0b723c33ab39",
"Id": "69d7b6b1-8b1a-47b2-ade8-466181ceba1f"
},
{
"Type": 1,
"Text": "Mock Intro Scene",
"SymbolId": "224aa808-3aaf-4385-be16-0b723c33ab39",
"Id": "401171e0-5c61-4440-90fe-0895aa471b7d"
},
{
"Type": 1,
"Text": "Zollner Illusion",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "825f705c-5d4d-4100-baff-da76d5e6c9e9"
},
{
"Type": 1,
"Text": "Point Size Effect",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "5d8efbf7-1eb7-445e-9047-8f550929d762"
},
{
"Type": 1,
"Text": "CafeWall Illusion",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "9796f818-3b14-4834-93d1-777d64527c9c"
},
{
"Type": 1,
"Text": "Scint Grid",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "22da426f-c097-45b7-972c-bb88e6206440"
},
{
"Type": 1,
"Text": "Entangled Spiral",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "02ab505c-288e-45ef-be75-127d46ed3685"
},
{
"Type": 1,
"Text": "Pinna Brelstaff",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "8373b1d3-7e46-409b-a940-3a3f5119f56c"
},
{
"Type": 1,
"Text": "New Spiral Illusion",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "542e5641-fb42-4996-b6ba-772ae9fa52f8"
},
{
"Type": 1,
"Text": "FraeserSpiral",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "d5b4725b-84e9-47f0-8fb5-16b63849e039"
},
{
"Type": 1,
"Text": "Waterfalls",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "f2bc7654-dd49-49c5-999f-6d7b0593a262"
},
{
"Type": 1,
"Text": "Transition into grid",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "eca4b309-5922-438a-a7f6-22b39d2c6e9b"
},
{
"Type": 1,
"Text": "Spine Drift",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "09068e97-04b1-4da5-b554-5227d560e545"
},
{
"Type": 1,
"Text": "Gabar Drift",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "db63b903-f8be-43ab-ac44-c64560044c45"
},
{
"Type": 1,
"Text": "Wobbling checker points",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "cb033259-b0c3-42a4-81a4-6f8ed4505185"
},
{
"Type": 1,
"Text": "Spinning wheel",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "6d00ceeb-d968-44de-a4db-599d8fe72e14"
},
{
"Type": 1,
"Text": "Amplify Fraser",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "371fe3db-47ee-4784-a590-04e8bc737d9a"
},
{
"Type": 1,
"Text": "Amplify Waterfalls",
"SymbolId": "5f5b787e-dc9b-4d0e-a826-13ce6fd38afd",
"Id": "9724157f-f16f-41ff-adbe-2d3efb34907f"
},
{
"Type": 1,
"Text": "Zollner Illusion",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "0ca20a12-2d7e-4199-876c-9c96fe41079c"
},
{
"Type": 1,
"Text": "Point Size Effect",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "7e94ddc6-8855-4018-ad0e-93dbc99219d2"
},
{
"Type": 1,
"Text": "CafeWall Illusion",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "7de1d224-d149-4790-9590-3bc503dc4984"
},
{
"Type": 1,
"Text": "Scint Grid",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "a1f698ab-f779-44ae-8d1b-f1796a9870fe"
},
{
"Type": 1,
"Text": "Entangled Spiral",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "28580d45-d2b0-481a-b690-ea070f9982e9"
},
{
"Type": 1,
"Text": "Pinna Brelstaff",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "c1a175d5-9d10-43e6-a2a9-56a19a0245a9"
},
{
"Type": 1,
"Text": "New Spiral Illusion",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "c3fe41d4-24c7-4836-96e2-9422acdd23b6"
},
{
"Type": 1,
"Text": "FraeserSpiral",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "aae3a921-2e91-438b-9f33-e009fb1a4f7e"
},
{
"Type": 1,
"Text": "Waterfalls",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "fb50b5c7-9694-4fd1-97ba-9199572b8b2b"
},
{
"Type": 1,
"Text": "Transition into grid",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "ba6af3fd-4c8a-45c3-bddb-f15195b8899e"
},
{
"Type": 1,
"Text": "Pine Drift",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "b38e68c0-b646-440e-a564-94c11d97683b"
},
{
"Type": 1,
"Text": "Gabar Drift",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "55b36587-7b36-4458-a661-f440417bd60b"
},
{
"Type": 1,
"Text": "Wobbling checker points",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "7748c27d-0b73-4c01-b640-8024e9f1837f"
},
{
"Type": 1,
"Text": "Spinning wheel",
"SymbolId": "6aa19380-e446-4b9d-a3d9-b275de97f374",
"Id": "ac17ea43-aa4c-4f53-8702-92c3170b1c04"
},
{
"Type": 0,
"Text": "A simple feedback examples",
"SymbolId": "73496aee-5c15-4cfb-9303-c5c66df7caff",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A scene for the WAKE vj show.",
"SymbolId": "814acb53-9a96-476f-b580-6eef174a318b",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Camera",
"SymbolId": "814acb53-9a96-476f-b580-6eef174a318b",
"Id": "c44292ed-6998-45a1-946b-716c450bbc6d"
},
{
"Type": 1,
"Text": "City structures",
"SymbolId": "814acb53-9a96-476f-b580-6eef174a318b",
"Id": "4be8b3a5-ccd7-409a-a720-31499c5cc11e"
},
{
"Type": 1,
"Text": "Squiggly trail",
"SymbolId": "814acb53-9a96-476f-b580-6eef174a318b",
"Id": "75368aa4-6520-4190-aa6e-afda8175f49e"
},
{
"Type": 0,
"Text": "A VJ expriments triggering boids",
"SymbolId": "46231897-662d-481c-97d9-1cea1fdb67be",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A cleaned up physarum simulation scene that come with set of Snapshots.",
"SymbolId": "74ddc8f9-831e-4a82-945d-a9f5c53c040c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows how to combine [SplitFaces], [SelectVertices] and [ScatterMesh] to create a noise distortion effect.",
"SymbolId": "a35676b8-bcbc-4806-845a-8853b57f8ec7",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Generate a custom HDR environment map.\nNotice how the Blob-Operator only has a resolution of 256px.",
"SymbolId": "a35676b8-bcbc-4806-845a-8853b57f8ec7",
"Id": "899fd67c-cac3-4c8c-aaee-e3a5025b342d"
},
{
"Type": 0,
"Text": "lCyclic cellular automata v01",
"SymbolId": "6d9cfb3f-805a-4f62-80b5-52e792b4af30",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "A very complex experimental setup that renders a parameter spread of physarum agent parameters as grid.\n\nIn its current state, this operator is pure research but it might be a valuable resource to see how to setup the required compute shaders.",
"SymbolId": "796a66ff-93e7-4bf7-81c0-0fee903262b8",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 1,
"Text": "Experimental Mouse Hover effect",
"SymbolId": "796a66ff-93e7-4bf7-81c0-0fee903262b8",
"Id": "604e1334-b958-46d7-9606-76b9dc3174c2"
},
{
"Type": 0,
"Text": "An adaptation",
"SymbolId": "8a3791db-8221-484b-8a0e-4e22399cdd9c",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows a pair of parameters as arc",
"SymbolId": "c6cf23b5-3085-4488-9e9e-5e09aa88a9fa",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Samples an animated texture and creates points for instancing.",
"SymbolId": "23ff34cd-7db7-4999-a0d1-bc3dfdb1f863",
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"Type": 0,
"Text": "Shows an resource distribution icon",
"SymbolId": "487dad15-abb2-4d8f-a66a-520af9739684",
"Id": "00000000-0000-0000-0000-000000000000"
}
]