Is noise() broken?

On my iPad (air 2), the this code print(noise(0,5.6,-0.3)) outputs -1.1665666103363, but the reference states that noise Outputs values between -1 and 1.

Is this a bug or am I missing something?

@Coder It’s possible that noise is broken, but I don’t have access to the code to say for sure one way or the other. Here’s a program that takes the values of x,y,z in a range from -1 to 1 in increments of .1 . The green line show a valid noise value where z is 0 for each value of x,y. So when z is 0, the noise value is in the -1 to 1 range for all values of x,y. The diagonal line shows z values from -1 to 1 (lower left to upper right). It’s white where the noise value is in the range from -1 to 1 and red if the noise value is less than -1 or greater than 1. As you can see, there aren’t very many x,y,z values where the noise value stays in the -1 to 1 range.

supportedOrientations(LANDSCAPE_ANY)
displayMode(FULLSCREEN)

function setup()
    xOffset=500
    yOffset=400
    xSize=340
    ySize=340
end

function draw()
    background(0)
    for x=-1,1,.1 do
        for y=-1,1,.1 do
            for z=-1,1,.1 do
                v=noise(x,y,z)
                fill(255)
                if z>-.05 and z<.05 then
                    fill(39, 255, 0, 255)
                    ellipse(x*xSize+xOffset,y*ySize+yOffset,30,2)
                else
                    fill(255)
                    if v<-1 or v>1 then
                        fill(255,0,0)
                    end
                    ellipse(x*xSize+xOffset+(z*8)*-1,y*ySize+yOffset+(z*16)*-1,5,5)
                end
            end
        end
    end
    fill(255)
    for v=-1,1,.1 do
        text(string.format("%.1f",v),v*xSize+xOffset-5,yOffset-370)
        text(string.format("%.1f",v),xOffset-370,v*ySize+yOffset)
    end
end

@dave1707 Thanks for the example - I’ll just stick to 2d noise then :slight_smile: