Particles moving around a Perlin Noise field
(1). From the point of style I'd recommend you not to mix the level of details in a function. For example.

Instead of writing something like this:

void setup() {
  background(0);
  size(1000, 500); 
  for (int i = 0; i &lt; pAmt; i++) { // this is bad
    p[i] = new Particle(random(width), random(height), i);
  }
}


You should write something like this. The same is applicable for other functions.

void setup() {
  background(0);
  size(1000, 500); 
  fillArray(); // there goes the loop and it's load easier to read.
}


(2). As for naming conventions I'd recommend you to use a verb as a first part for the function's name. Code like this looks unusual.

background(0);
size(1000, 500); 


(3). You should be consistent with names for your variables. For example in your update() function you can see a mix of full and short names like stride, target, chaos vs accel, vel, pos. It really makes me think a lot more about names than I should.

(4).If you have to call this "normalize()" method a lot after construction of the object I'd recommend to think about adding this method to consturctor for example with the flag called "shouldNormalize".

PVector dir = new PVector(x - pos.x, y - pos.y);
dir.normalize();


vs

PVector dir = new PVector(x - pos.x, y - pos.y, true); 
//or make it to normalize the vector by default and pass false when you don't need it
//but I guess that you should normalize it quite often after creation  


(5). I would strongly recommend to make Particle class immutable. It would save you from a lot of hacks like this and make your code cleaner:

 void update(float stride, PVector target, float chaos) {
 this.stride = stride;
 ... }