local Sin = {} Sin.__index = Sin function Sin.new() local result = {} setmetatable(result, Sin) return result end function Sin:noise( x, y, z ) -- local value = math.sin(x) local value = (math.sin(x) + math.sin(y) + math.sin(z)) / 3 -- Rescale from -1 - +1 to 0 - 1 return (value + 1) / 2 end return Sin