You might not be aware of it, but my
Perlin (C extension gem) already does Simplex/Classic Perlin noise and has a simple gosu-based visualiser. I'm sure your implementation is fine, but I'm guessing it is about 100x slower if it is pure Ruby ;(
Ashton also supports noise-generation via shaders which I'm guessing is 100x faster than even Perlin can manage. Perlin is better if you don't want to just generate a noisey-image (for example Ashton is great for creating dynamic textures, but less so for heightmaps).
Sorry, Github is down right now, so I can't confirm how your gem works. It is possible you might be adding heightmap-specific stuff that isn't supplied by Perlin, in which case you might consider using the Perlin gem as a backend for the grunt-work...?