Polymorphic DSL
search synth, filter, render, points, mixer

perlin(
  scale: 100,
  octaves: 2,
  dimensions: 3,
  seed: 48
)
  .subchain(name: "flow field particles", id: "lkjw") {
    .pointsEmit(stateSize: x1024)
    .flow(
      behavior: chaotic,
      stride: 51,
      strideDeviation: 0.5,
      kink: 5.4
    )
    .pointsRender(
      density: 100,
      intensity: 74.59,
      inputIntensity: 21.46
    )
    .pointsBillboardRender(
      shapeMode: soft,
      depositOpacity: 100,
      pointSize: 33.19,
      sizeVariation: 100,
      seed: 0,
      density: 0.78,
      intensity: 44.72,
      inputIntensity: 18.23
    )
  }
  .blur()
  .write(o0)

navierStokes(
  tex: read(o0),
  zoom: x4,
  iterations: 40,
  smoothing: bSpline4x4,
  speed: 145,
  dyeDecay: 97.52,
  velocityDecay: 100,
  inputForce: 1,
  inputDye: 1,
  inputIntensity: 6.01
)
  .palette(
    index: solaris,
    offset: 25,
    alpha: 0.67
  )
  .lighting(
    normalStrength: 5,
    smoothing: 1.8,
    specularIntensity: 0.7,
    shininess: 130,
    reflection: 21.8,
    refraction: 23,
    aberration: 18.4
  )
  .adjust(brightness: 1.9, contrast: 0.8)
  .subchain(name: "lens effects", id: "dpxp") {
    .temporalAberration(
      redDelay: 4.7,
      greenDelay: 1.8,
      blueDelay: 0,
      _skip: true
    )
    .bloom(taps: 15)
    .lens(displacement: -0.28)
    .vignette(brightness: 0.36, alpha: 0.45)
  }
  .grain(alpha: 0.18, _skip: true)
  .write(o1)

render(o1)
Noisemaker for TouchDesigner — TOP network, 1024×1024, 30s evolved
Noisemaker for TouchDesigner rendering the flagship program
Download the .toe
0.0 MB · one file, no sidecar folder
TouchDesigner
2025.32820 or newer
Licence
free Non-Commercial is enough (1024×1024 is under its cap)
Python
none — the network carries its own shaders
  1. Open the .toe. The network builds nothing on load — it is already built.
  2. It starts from an empty fluid and agent sim and evolves as it runs. Give it ~30s at 60fps to reach the state in the still above.
  3. Every effect is a GLSL TOP whose shader is inline in a Text DAT. Open any of them and read the port's actual output.
TouchDesigner's free Non-Commercial licence needs a one-time activation with a Derivative account on first launch.

This renders a different instance of the same chaos as the other ports, not a pixel-identical frame: the flagship feeds ~1M particles into a fluid solver, and TD rasterizes points natively where the reference uses ANGLE. Point rasterization is not bit-specified across implementations, and the solver amplifies a ~1-ULP difference into a visibly different — equally correct — fluid. The adapter's docs/CHAOS-GATE.md documents this as expected behaviour.