isolines.lua
local cell = require('forma.cell')
local primitives = require('forma.primitives')
local multipattern = require('forma.multipattern')
local measure = cell.chebyshev
local sq = primitives.square(80,20)
local rn = sq:sample(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 = sq:filter(mask)
multipattern.new({noise:interior_hull()}):print({'#'}, sq)