What is this?

I am going to make a series of toys to play around with three.js and the concept of boids.

While I expect these to be toys, I want to make sure I can write automated tests to verify behavior.

I am going to do this in a few stages

Stage 1


Having not done 3d programming in over a decade, I am starting off by refamiliarizing myself with the math and getting to know three.js and the other tools. While I will try to do things efficiently, I will also try to stay way form using things like shaders/GPU computations myself.

Going into this, I have the following goals:

  1. Freshen up on the math.
  2. Learn how to work with three.js, how to think about testing in the space, etc.
  3. Somehow adjust the number of objects in the system based on the system performance.
  4. Implement some patterns/flight paths that I might like to see.
  5. Implement multiple flocks, potentially with different behaviors/flight paths.

(NYI) Stage 2


In this stage, I am going to see if I can use the GPU to make a lot more boids. The idea here will be to produce something very similar in behavior to the first stage.

I have the following goals for this stage:

  1. Learn how to work in shaders, how to think about testing in the space, etc.
  2. Produce something with similar behavior to the first stage.
  3. Get more objects/better performance.




For the 2nd stage, since behavior and math should largely live in shader files, testing things will get more complicated, though, if I have the tests running in the browser, I could get the results from the shaders and check their data buffers.