{
  "format": "field",
  "version": 1,
  "meta": {
    "name": "Stellar Nursery Nebula",
    "author": "Infinite",
    "description": "Volumetric turbulent cosmic gas cloud with newborn star clusters and ionization fronts. Bass compresses the dense core, mids wave the gas filaments, highs ignite coronal sparks.",
    "domain": "pixel"
  },
  "device": {
    "code": "param float density = 1.4 [0.2, 3.0];\nparam float swirl = 2.4 [0.0, 6.0];\nparam float coreHeat = 1.8 [0.5, 4.0];\nparam float filament = 0.85 [0.1, 2.0];\nparam float starSeed = 0.75 [0.0, 1.0];\n\np = vec2((uv.x - 0.5) * aspect, uv.y - 0.5);\nr = length(p);\nang = atan2(p.y, p.x);\n\nw1 = sin(p.x * 4.0 + t * 0.4 + sin(p.y * 3.0)) * 0.35;\nw2 = cos(p.y * 5.0 - t * 0.3 + cos(p.x * 4.0)) * 0.25;\nturbP = p + vec2(w1, w2) * swirl * 0.2;\n\ndist = length(turbP);\ngas1 = exp(-dist * 3.2 * density) * (0.8 + 0.4 * sin(ang * 3.0 + t * 0.5));\ngas2 = exp(-abs(turbP.y + sin(turbP.x * 6.0) * 0.18) * 8.0 * filament) * 0.65;\ncloud = gas1 + gas2;\n\ncore = exp(-r * 8.0) * coreHeat;\nstarSparks = max(0.0, sin(p.x * 24.0 + sin(p.y * 18.0) * 4.0)) * starSeed;\nsparkGlow = pow(starSparks, 8.0) * exp(-r * 2.5) * 1.5;\n\ncGround = vec3(0.082, 0.098, 0.188);\ncSignal = vec3(0.655, 0.694, 1.0);\ncEmber = vec3(1.0, 0.42, 0.21);\ncEmerald = vec3(0.306, 0.949, 0.722);\n\ncGas = mix(cSignal, cEmber, clamp(cloud * 1.2, 0.0, 1.0));\ncGas = mix(cGas, cEmerald, clamp(gas2 * 1.4, 0.0, 1.0));\n\ncol = cGround + cGas * cloud * 1.4 + cEmber * core + vec3(1.0) * (core * 0.6 + sparkGlow);\nalpha = 1.0;\n",
    "params": {
      "density": 1.4,
      "swirl": 2.4,
      "coreHeat": 1.8,
      "filament": 0.85,
      "starSeed": 0.75
    },
    "nodeSettings": {
      "width": 1280.0,
      "height": 720.0,
      "animate": 1.0
    }
  }
}
