src/main/java/com/flowpowered/noise/Noise.java
public static int intValueNoise3D(int x, int y, int z, int seed) {
        // All constants are primes and must remain prime in order for this noise
        // function to work correctly.
        int n = (X_NOISE_GEN * x + Y_NOISE_GEN * y + Z_NOISE_GEN * z + SEED_NOISE_GEN * seed) & 0x7fffffff;
        n = (n >> 13) ^ n;
        return (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
    }
public static int intValueNoise3D(int x, int y, int z, int seed) {
        // All constants are primes and must remain prime in order for this noise
        // function to work correctly.
        int n = (X_NOISE_GEN * x + Y_NOISE_GEN * y + Z_NOISE_GEN * z + SEED_NOISE_GEN * seed) & 0x7fffffff;
        n = (n >> 13) ^ n;
        return (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
    }
Generates an integer-noise value from the coordinates of a three-dimensional input value.

@param x The integer @a x coordinate of the input value.
@param y The integer @a y coordinate of the input value.
@param z The integer @a z coordinate of the input value.
@param seed A random number seed.
@return The generated integer-noise value.
<p/>
The return value ranges from 0 to 2147483647.
<p/>
A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it.