add grainSize parameter