{
  "name": "Bloody Tremble",
  "dimension": "text",
  "slot": "action_bar",
  "width": 256,
  "height": 128,
  "textBaseline": 128,
  "placement": {
    "x": 0,
    "y": 0
  },
  "shapes": [],
  "texts": [],
  "heads": [],
  "images": [],
  "bars": [],
  "triggers": [],
  "effect": {
    "glsl": "vec4 effect(Fx f) {\n    float seed = h2(f.o);\n    float tick = floor(f.t * 12.0);\n    float shiver = smoothstep(0.2, 0.85, sin(f.t * 2.4 + seed * 6.28318));\n    float jx = floor((h2(vec2(seed * 73.0, tick)) - 0.5) * (1.3 + shiver) + 0.5);\n    float jy = floor((h2(vec2(seed * 91.0 + 7.0, tick)) - 0.5) * 1.55 + 0.5);\n    vec2 src = f.p - vec2(jx, jy);\n    vec2 q = floor(src) + 0.5;\n    float a = G(src);\n    float rim = N8(src);\n    float trail = 0.0;\n    float drop = 0.0;\n    float shine = 0.0;\n    float dripShadow = 0.0;\n    for (int i = 0; i < 2; i++) {\n        float fi = float(i);\n        float x = floor((0.23 + fi * 0.52) * max(f.w, 1.0)) + 0.5;\n        float bottom = -1.0;\n        for (int y = 0; y < 8; y++) {\n            float yy = float(y) + 0.5;\n            if (G(vec2(x, yy)) > 0.5) bottom = yy;\n        }\n        float cycle = fract(f.t * 0.29 + seed + fi * 0.47);\n        float len = 0.6 + 3.6 * smoothstep(0.0, 0.76, cycle);\n        float fade = 1.0 - smoothstep(0.73, 0.87, cycle);\n        float yy = q.y - bottom;\n        float stem = step(abs(q.x - x), 0.1) * step(0.5, yy) * step(yy, len) * fade;\n        float fall = max(cycle - 0.76, 0.0) / 0.24;\n        float beadY = bottom + 4.0 + fall * fall * 4.2;\n        float bead = step(abs(q.x - x), 0.1) * step(abs(q.y - beadY), 0.75) * step(0.76, cycle);\n        float shStem = step(abs(q.x - 1.0 - x), 0.1) * step(0.5, yy - 1.0) * step(yy - 1.0, len) * fade;\n        float shBead = step(abs(q.x - 1.0 - x), 0.1) * step(abs(q.y - 1.0 - beadY), 0.75) * step(0.76, cycle);\n        if (bottom >= 0.0 && (i == 0 || (f.w > 3.0 && seed > 0.38))) {\n            trail = max(trail, stem);\n            drop = max(drop, bead);\n            dripShadow = max(dripShadow, max(shStem, shBead));\n            shine = max(shine, stem * step(len - 1.2, yy));\n        }\n    }\n    vec3 blood = mix(vec3(0.79, 0.018, 0.044), vec3(0.43, 0.003, 0.022), clamp((q.y - 1.0) / 7.0, 0.0, 1.0));\n    float top = 1.0 - G(src - vec2(0.0, 1.0));\n    blood = mix(blood, vec3(1.0, 0.09, 0.13), top * 0.68);\n    float glint = sin((f.o.x + q.x) * 0.65 - f.t * 1.6 + q.y * 0.9);\n    blood = mix(blood, vec3(1.0, 0.36, 0.34), top * smoothstep(0.90, 1.0, glint) * 0.68);\n    vec4 col = vec4(0.055, 0.0, 0.009, max(max(rim * 0.96, G(src - 1.0)), dripShadow * 0.92));\n    vec3 dripColor = mix(vec3(0.58, 0.005, 0.026), vec3(0.91, 0.043, 0.064), max(shine, drop) * 0.65);\n    col = over(vec4(dripColor, max(trail, drop)), col);\n    return over(vec4(blood, a), col);\n}",
    "pad": [
      2,
      2,
      2,
      11
    ],
    "prompt": "creepy blood red text that shakes and trembles with dripping blood",
    "sample": "Blood Curse"
  }
}