{
  "name": "Roaring Fireball",
  "dimension": "3d",
  "slot": "action_bar",
  "width": 256,
  "height": 128,
  "textBaseline": 128,
  "placement": {
    "x": 0,
    "y": 0
  },
  "shapes": [],
  "texts": [],
  "heads": [],
  "images": [],
  "bars": [],
  "triggers": [],
  "world": {
    "glsl": "float fireNoise(vec3 p) {\n    vec3 cell=floor(p);\n    vec3 f=fract(p);\n    f=f*f*(3.0-2.0*f);\n    float h=dot(cell,vec3(1.0,57.0,113.0));\n    vec4 a=fract(sin(h+vec4(0.0,1.0,57.0,58.0))*43758.5453);\n    vec4 b=fract(sin(h+vec4(113.0,114.0,170.0,171.0))*43758.5453);\n    vec4 v=mix(a,b,f.z);\n    return mix(mix(v.x,v.y,f.x),mix(v.z,v.w,f.x),f.y);\n}\nvec4 object(vec3 ro, vec3 rd, float t0, float t1, float time, vec3 light, inout float depth) {\n    vec3 col=vec3(0.0);\n    float alpha=0.0;\n    float ds=(t1-t0)/28.0;\n    bool found=false;\n    for(int i=0;i<28;i++) {\n        float t=t0+(float(i)+0.5)*ds;\n        vec3 p=ro+rd*t;\n        float r=length(p);\n        if(r>0.94) continue;\n        vec3 q=p*vec3(7.5,4.0,7.5)-vec3(0.0,time*2.8,0.0);\n        q.xz+=0.42*sin(vec2(p.y*6.0-time*2.0,p.y*7.0-time*1.6));\n        float n=fireNoise(q);\n        float curl=sin(p.x*18.0+p.y*8.0-time*4.0)*sin(p.z*17.0-p.y*11.0+time*3.0);\n        float body=length((p-vec3(0.0,-0.06,0.0))/vec3(0.88,0.98,0.88));\n        float tongue=smoothstep(-0.15,0.65,p.y);\n        float f=0.64-body+(n-0.48)*(0.39+0.24*tongue)+0.035*curl;\n        float dens=smoothstep(-0.04,0.12,f)*(1.0-smoothstep(0.86,0.945,r));\n        float heat=clamp(0.24+f*2.0+n*0.18-0.11*p.y+0.07*curl,0.0,1.0);\n        vec3 c=mix(vec3(1.0,0.025,0.001),vec3(1.8,0.30,0.006),smoothstep(0.05,0.40,heat));\n        c=mix(c,vec3(2.1,1.12,0.09),smoothstep(0.35,0.75,heat));\n        c=mix(c,vec3(2.4,2.0,0.8),smoothstep(0.70,1.0,heat));\n        float a=1.0-exp(-dens*ds*7.0);\n        col+=(1.0-alpha)*c*a;\n        alpha+=(1.0-alpha)*a;\n        if(!found && alpha>0.3) {depth=t;found=true;}\n        if(alpha>0.99) break;\n    }\n    return vec4(col/max(alpha,0.0001),alpha);\n}",
    "prompt": "a roaring ball of fire",
    "size": 4,
    "summary": "A blazing three-dimensional ball of fire with a golden core, deep orange folds, and turbulent flame tongues that continuously rise and curl."
  }
}