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: RenderingDevice render, frame at 30 seconds
Noisemaker for Godot rendering the demo program
Download the Godot project
noisemaker-for-godot-hero.zip · 1.0 MB · add-on included
Godot
4.7 or newer, Forward+
GPU
Vulkan, Metal, or D3D12 (OpenGL is not supported)
Network
none (the DSL is compiled in Godot)
  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 one minute. The window does not respond until it finishes. The program simulates about 1M particles for 1800 frames, so a lower resolution does not make it faster.
Godot must run with a window on Vulkan, Metal, or D3D12. RenderingDevice is not available with --headless or the OpenGL driver, so this port has no web build. The program feeds particles into a fluid simulation, which amplifies small numeric differences. The output looks like the other ports but is not pixel-identical. See the adapter's docs/CHAOS-GATE.md.