{
  "schema": "portable-shader-material/v1",
  "id": "2026-06-09-signal-rain-wavefield",
  "title": "Signal Rain Wavefield",
  "version": "0.1.0",
  "created": "2026-06-09",
  "description": "Rain-like scanline interference field designed for mouse, weather, audio, and VJ control inputs.",
  "formats": {
    "web": {
      "entry": "./index.html",
      "runtime": "web-material-player"
    },
    "isf": {
      "entry": "./signal-rain-wavefield.fs",
      "isfVersion": "2"
    }
  },
  "inputs": [
    {
      "name": "pointer",
      "type": "point2D",
      "default": [
        0.5,
        0.5
      ],
      "range": [
        [
          0,
          1
        ],
        [
          0,
          1
        ]
      ],
      "role": "primary-position",
      "description": "Primary normalized 2D position for the wave attractor."
    },
    {
      "name": "pointerVelocity",
      "type": "point2D",
      "default": [
        0,
        0
      ],
      "range": [
        [
          -1,
          1
        ],
        [
          -1,
          1
        ]
      ],
      "role": "motion-force",
      "description": "Directional drift for signal/rain bands."
    },
    {
      "name": "intensity",
      "type": "float",
      "default": 0.92,
      "min": 0,
      "max": 2,
      "role": "interaction-strength",
      "description": "Wave contrast and rain brightness."
    },
    {
      "name": "heat",
      "type": "float",
      "default": 0.34,
      "min": 0,
      "max": 1,
      "role": "color-temperature",
      "description": "Cool cyan to warm amber palette blend."
    },
    {
      "name": "speed",
      "type": "float",
      "default": 0.86,
      "min": 0,
      "max": 2,
      "role": "time-scale",
      "description": "Animation speed multiplier."
    },
    {
      "name": "density",
      "type": "float",
      "default": 0.72,
      "min": 0,
      "max": 1,
      "role": "pattern-density",
      "description": "Rain and scanline density."
    }
  ],
  "renderDefaults": {
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "durationSeconds": 8,
    "loop": true
  },
  "tags": [
    "webgl",
    "glsl",
    "isf",
    "vj",
    "interactive",
    "audio-reactive",
    "weather",
    "wavefield"
  ]
}
