;;
;; Available-acceleration should probably be 1.0, but I've set it a little higher to
;; avoid have to readjust the weighting factors for all of the acceleration requests.
;;
(vlet* ((composite-acceleration (prioritized-acceleration-allocation 1.3 ;; 1.0
avoid-obstacles
avoid-flockmates
velocity-matching
centering-urge
migratory-urge
course-leveling
course-damping))
- this implementation, unlike the p5js version it's based on, caps the acceleration _twice_ - before adding the contributions and after https://github.com/LauJensen/practical-quadtree/blob/7f5bdea... (this is the 'after' bit) print(frameRate(), boids.length);
if (frameRate()>50) {
boids.push(new Boid(random(width), random(height)));
} else if (frameRate() < 40) {
boids.pop()
}
... and the two loops below it to use 'boids.length' not 'num'. Then the thing will dynamically adjust the number of boids to give you an acceptable framerate.
We have both Claude and Cursor here, as well as agents running GPT, things in AWS Bedrock, etc and its my team handle the bills...when people use Cursor on auto, costs are under control, but there's always a dozen or so whale users who'll switch models manually and blow through the budget like it's not there.
Another thing: "better cost controls". There was for example no way for us to disable Fable in Claude, but we could in Cursor. Again, the opposite experience.