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 Godot — in-engine compiler + RenderingDevice, 30s evolved
Noisemaker for Godot rendering the flagship program
Download the Godot project
noisemaker-for-godot-hero.zip · 0.7 MB · addon included
Godot
4.7 or newer, Forward+
GPU
Vulkan, Metal or D3D12 — not OpenGL
Network
none — the DSL is compiled in-engine
  1. Unzip and open the folder in Godot (Import → pick project.godot).
  2. Press Play. It compiles hero.dsl, renders 30 stills across the program's first 30 seconds, and loops them.
  3. The render takes about a minute and blocks the window while it runs. That is the sim, not a hang: the flagship pushes ~1M agents through 1800 frames, which costs the same at 256×256 as at 512×512, so there is nothing to turn down.
Must run with a window, on a Vulkan/Metal/D3D12 backend. RenderingDevice is null under --headless and under the OpenGL driver, which is also why there is no web build of this port. The flagship feeds particles into a fluid solver, so this renders a different instance of the same chaos as the other ports rather than a pixel-identical frame — the adapter's docs/CHAOS-GATE.md covers why that is expected.