Great article!
I think there's a small problem with intermediate values in this code snippet:
const maxValue = Math.max(...samplingVector) samplingVector = samplingVector.map((value) => { value = x / maxValue; // Normalize value = Math.pow(x, exponent); value = x * maxValue; // Denormalize return value; })
Good catch, thanks! I’ll push a fix once I’m home