isolines.lua
local cell = require('forma.cell')
local subpattern = require('forma.subpattern')
local primitives = require('forma.primitives')
local measure = cell.chebyshev
local sq = primitives.square(80,20)
local rn = subpattern.random(sq, 20):cell_list()
local mask = function(tcell)
local sortfn = function(a,b)
return measure(tcell, a) < measure(tcell, b)
end
table.sort(rn, sortfn)
local F1 = measure(rn[1], tcell)
local F2 = measure(rn[2], tcell)
return F2 - F1 > 1
end
local noise = subpattern.mask(sq, mask)
subpattern.print_patterns(sq, {noise:surface()}, {'#'})