using NeutralLandscapes
using Plots

function demolandscape(alg::T) where {T <: NeutralLandscapeMaker}
    heatmap(rand(alg, (200, 200)), frame=:none, aspectratio=1, c=:davos)
end
demolandscape (generic function with 1 method)

No gradient

demolandscape(NoGradient())
Example block output

Planar gradient

demolandscape(PlanarGradient(35))
Example block output

Edge gradient

demolandscape(EdgeGradient(186))
Example block output

Wave surface

demolandscape(WaveSurface(35, 3))
Example block output

Rectangular cluster

demolandscape(RectangularCluster())
Example block output

Distance gradient

sources = unique(rand(1:40000, 50))
demolandscape(DistanceGradient(sources))
Example block output

Nearest-neighbor element

heatmap(rand(NearestNeighborElement(20, 1), (45, 45)))
Example block output

Voronoi

demolandscape(DiscreteVoronoi(40))
Example block output

Perlin Noise

demolandscape(PerlinNoise())
Example block output

Classify landscape

sources = unique(rand(1:40000, 50))
heatmap(NeutralLandscapes.classify!(rand(DistanceGradient(sources), (200, 200)), [0.5, 1, 1, 0.5]))
Example block output

Diamond Square

demolandscape(DiamondSquare())
Example block output

Midpoint Displacement

demolandscape(MidpointDisplacement())
Example block output