Hi, thank you for your interest. Agent based model is a term refers to an interaction between multiple object (called agent) with its own property.
The triangle is one agent in this case and in this example it moves along a random trajectory (just like people in a crowd). Each triangle also has its own color of its population so agents in the same population will have the same color.
Are the agents independent or are they affected by neighbors? It would be nice to see some classic ABM examples like wolf-sheep population, flocking, and wildfire spread to demonstrate the utility of this.
Super cool, curious to see where you take this! I did some work on GPGPU for agent simulations for an RTS years ago ( https://www.youtube.com/watch?v=P4fKJIrv0J8 ). Doing things like pathfinding on the GPU gets tricky, especially taking into account how agents affect paths of other agents. Happy to jam anytime if you're brainstorming applications.
If you want to create some pretty effects, add the concept of a velocity-texture which is added to agents velocity as they pass over it. Then let the user draw on the texture. Very cheap way to get interactivity. My own version from before compute shades were a thing (https://moritonal.github.io/force-particles/)
Are the entities interacting in any way here? That's pretty critical for agent based models as they enable complicated/unexpected emergent behavior from simplified rules due to the interactions of the entities.
I have played with this a fair amount and put a couple of my experiments in a repo- both slime mold simulation and "particle life".
Here's the repo: https://github.com/jasonjmcghee/compute-shaders
And a video of the slime mold: https://twitter.com/_jason_today/status/1663378736098738177?...
https://youtu.be/dSkxvi9igqQ
https://github.com/chrxh/alien/
https://stackoverflow.com/questions/48228192/webgl-compute-s...
https://github.com/conda-forge/glfw-feedstock/blob/main/reci...
pyglfw: https://github.com/conda-forge/pyglfw-feedstock/blob/main/re...
- [ ] glfw recipe for emscripten-forge: https://github.com/emscripten-forge/recipes/tree/main/recipe...
Emscripten porting docs > OpenGL ES 2.0/3.0 *, glfw: https://emscripten.org/docs/porting/multimedia_and_graphics/...
WebGPI API > GPUBuffer: https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API
gpuweb/gpuweb: https://github.com/gpuweb/gpuweb
https://news.ycombinator.com/item?id=38355444 :
> It actually looks like pygame-web (pygbag) supports panda3d and harfang in WASM
Harfang and panda3d do 3D with WebGL, but FWIU not yet agents in SSBO/VBO/GPUBuffer.
SSBO: Shader Storage Buffer Object: https://www.khronos.org/opengl/wiki/Shader_Storage_Buffer_Ob...
/? WebGPU compute: https://www.google.com/search?q=webgpu+compute
"WebGPU Compute Shader Basics" https://webgpufundamentals.org/webgpu/lessons/webgpu-compute...