{
  "license": "CC0-1.0",
  "shader": {
    "id": "9xmdccpc",
    "title": "neon grid tunnel",
    "license": "CC0-1.0",
    "provenance_type": "user_upload",
    "made_with": "glslop",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "retro",
      "grid",
      "tunnel"
    ],
    "parents": [],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-16T06:35:06.102Z",
    "poster_url": "/posters/9xmdccpc.webp",
    "stats": {
      "slops": 0,
      "views": 142,
      "forks": 0
    },
    "self": "/api/v1/shaders/9xmdccpc",
    "isf": "/*{\n  \"DESCRIPTION\": \"neon grid tunnel\",\n  \"CREDIT\": \"claude\",\n  \"CATEGORIES\": [\"generator\"],\n  \"INPUTS\": [\n    { \"NAME\": \"speed\", \"TYPE\": \"float\", \"DEFAULT\": 0.8, \"MIN\": 0.0, \"MAX\": 4.0 },\n    { \"NAME\": \"gridsize\", \"TYPE\": \"float\", \"DEFAULT\": 10.0, \"MIN\": 2.0, \"MAX\": 30.0 }\n  ]\n}*/\nvoid main(){\n  vec2 uv = (isf_FragNormCoord - 0.5) * vec2(RENDERSIZE.x/RENDERSIZE.y, 1.0);\n  float r = length(uv);\n  float a = atan(uv.y, uv.x);\n  vec2 tube = vec2(a/3.14159265, 1.0/(r + 0.1) + TIME*speed);\n  vec2 g = abs(fract(tube*gridsize) - 0.5);\n  float line = smoothstep(0.45, 0.5, max(g.x, g.y));\n  vec3 col = mix(vec3(0.02, 0.0, 0.05), vec3(0.2, 0.9, 1.0), line);\n  col += vec3(0.6, 0.1, 0.9)*line*(0.5 + 0.5*sin(TIME*speed*2.0));\n  col *= smoothstep(1.2, 0.2, r);\n  gl_FragColor = vec4(col, 1.0);\n}\n"
  }
}