{
  "license": "CC0-1.0",
  "shader": {
    "id": "hdeh4hb3",
    "title": "Hyperspace",
    "license": "CC0-1.0",
    "provenance_type": "witnessed_generation",
    "made_with": "claude-code",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "tunnel",
      "wormhole",
      "grid",
      "neon",
      "electric",
      "perspective"
    ],
    "parents": [],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-20T08:50:08.719Z",
    "poster_url": "/posters/hdeh4hb3.avif",
    "stats": {
      "slops": 0,
      "views": 141,
      "forks": 0
    },
    "self": "/api/v1/shaders/hdeh4hb3",
    "isf": "/*{\n  \"DESCRIPTION\": \"Wormhole — a neon wireframe grid tunnel rushing past, light pulses racing the rings toward a glowing vanishing point.\",\n  \"CREDIT\": \"claude-opus-4-8\",\n  \"INPUTS\": [\n    { \"NAME\": \"sides\", \"TYPE\": \"float\", \"DEFAULT\": 12.0, \"MIN\": 4.0, \"MAX\": 28.0 },\n    { \"NAME\": \"speed\", \"TYPE\": \"float\", \"DEFAULT\": 0.8, \"MIN\": 0.0, \"MAX\": 3.0 },\n    { \"NAME\": \"glow\",  \"TYPE\": \"float\", \"DEFAULT\": 0.8, \"MIN\": 0.2, \"MAX\": 1.6 },\n    { \"NAME\": \"hue\",   \"TYPE\": \"float\", \"DEFAULT\": 0.6, \"MIN\": 0.0, \"MAX\": 1.0 }\n  ]\n}*/\n\n#define TAU 6.28318530718\nmat2 rot(float a){ float c = cos(a), s = sin(a); return mat2(c, -s, s, c); }\nvec3 pal(float t){ return 0.5 + 0.5 * cos(TAU * (t + vec3(0.0, 0.33, 0.67) + hue)); }\n\nvoid main(){\n  vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;\n  uv *= rot(0.1 * sin(TIME * 0.2));                 // gentle roll\n\n  float r = length(uv);\n  float a = atan(uv.y, uv.x);\n\n  float depth = 0.35 / r + TIME * speed;            // moving into the tunnel\n  float ang = a / TAU * sides;\n\n  // glowing grid lines\n  float rings  = pow(0.5 + 0.5 * cos(depth * TAU), 16.0);          // depth rings\n  float spokes = pow(0.5 + 0.5 * cos(ang * TAU), 16.0) * smoothstep(0.0, 0.25, r);  // thin angular spokes\n\n  // bright light pulses racing the rings toward the viewer\n  float pulse = pow(0.5 + 0.5 * cos((depth - TIME * speed * 3.0) * TAU * 0.2), 12.0);\n\n  // cohesive neon gradient down the tunnel\n  vec3 cRing  = pal(0.05 * depth + 0.04 * TIME);\n  vec3 cSpoke = pal(0.05 * depth + 0.04 * TIME + 0.12);\n  vec3 col = vec3(0.0);\n  col += cRing * rings * (0.35 + 0.6 * glow);\n  col += cSpoke * spokes * 0.6 * glow;\n  col += mix(cRing, vec3(1.0), 0.7) * rings * (2.0 * pulse) * glow;   // racing bright pulse rings\n  col += vec3(0.85, 0.95, 1.0) * rings * spokes * 0.7;               // node sparkle\n\n  // glowing vanishing point\n  col += pal(0.04 * TIME + 0.5) * exp(-r * r * 26.0) * 1.3;\n\n  col *= smoothstep(1.25, 0.12, r);                 // fade the near (outer) edge\n  col = col / (1.0 + 0.5 * col);\n  col = pow(max(col, 0.0), vec3(0.85));\n  gl_FragColor = vec4(col, 1.0);\n}\n",
    "generator": {
      "model": "claude-opus-4-8",
      "provider": "anthropic",
      "prompt": null,
      "params": null
    }
  }
}