From 615bf79f3027bcf6247ca4cb34bc6fd9cee259da Mon Sep 17 00:00:00 2001 From: Robert Garrett Date: Wed, 29 Oct 2025 16:33:11 -0500 Subject: [PATCH] First draft of page structure, basic styling I'll revise the text at some point, and the styling is *extremely* basic, but it's a start. --- www/index.html | 91 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/www/index.html b/www/index.html index c9928e09..045d4e70 100644 --- a/www/index.html +++ b/www/index.html @@ -1,8 +1,97 @@ - + + + +

+ Another Boids in Rust +

+
+
+

Description

+

+ This is my implementation of the Boids flocking algorithm. It is written in Rust, built on the Bevy game engine, and compiled to WASM to run in the browser. +

+

+ The algorithm consists of just 3 rules: +

    +
  • Separation - Boids steer apart to avoid colliding.
  • +
  • Alignment - Boids fly in the same direction as their neighbors.
  • +
  • Cohesion - Boids clump together so as not to fly off alone.
  • +
+ From these rules, the flocking behavior emerges naturally. +

+

+ My version of this program has some extra rules governing speed. In short: things below some threshold are sped + up, and things above are slowed down. This is to keep an appropriate amount of kinetic energy in the system. + Since the boids start in a circle with the same speed, the sum of all velocity vectors is vec2(0, 0). + Technically, floating-point rounding errors would likely mean the system always has some energy, but never + enough for an interesting simulation. +

+
+
+

Controls

+ + + + + + + + + + + + + + + + + + + +
InputEffect
MouseThe scanner circle is attached to the mouse cursor. Move it to scan boids within the radius.
Left mouse buttonPut scanner into center-of-mass mode
Right mouse buttonPut scanner into average velocity mode. (There's a window focus bug. This button doesn't work quite right!)
+
+ +