Closed ptheywood closed 1 year ago
work in progress, will likely finish tomorrow AM
This document briefly summarises the purpose of each example model provided, and links to any additional resources.
The examples directory has four subdirectories, corresponding to different model language options:
cpp
: Pure c++ models.cpp_rtc
: C++ models with agent functions implemented as runtime compiled CUDA.python_native
: C++ models with agent functions implemented as runtime transpiled and compiled agent python.python_rtc
: Python models with agent functions implemented as runtime compiled CUDA.The Boids example is a classic agent based model, first published by Craig Reynolds in 1986. Agent's represent birds flying in a flock according to three simple rules:
As a classic model, this has been implemented in many frameworks and provides a means of comparison.
This example is available using both brute force and spatial messaging, and is only available in 3 dimensions.
cpp/boids_bruteforce
: 3D, BruteForce messaging, Bounded environmentcpp/boids_spatial3D
: 3D, Spatial messaging, Bounded environmentcpp_rtc/boids_bruteforce
: RTC, 3D, BruteForce messaging, Bounded environmentcpp_rtc/boids_spatial3D
: RTC, 3D, Spatial messaging, Bounded environmentpython_native/boids_spatial3D_wrapped
: RTC, 3D, Spatial messaging, Wrapped environmentpython_rtc/boids_spatial3D_bounded
: RTC, 3D, Spatial messaging, Bounded environmentThe Circles example was developed as a simple agent model for benchmarking communication strategies. It is an improvement over the version published in 2017, which smooths agent movement to reduce jitter.
cpp/circles_bruteforce
: 3D, BruteForce messaging, Bounded environment.cpp/circles_spatial3D
: 3D, Spatial messaging, Bounded environmentThe pedestrian navigation example implements a copy of the original FLAME GPU 1 pedestrian navigation example.
It was created to demonstrate keyframe animation and user interface support within FLAME GPU. Previously in FLAME GPU 1 much of this visualisation functionality had to be hand coded.
Pedestrian agents walk between pairs of entrances whilst avoiding collisions with one another.
The pedestrian navigation exists as a C++ model in a standalone GitHub repository.
Within this repo, the purposes of each example and what they do is unclear to someone out of the loop.
I.e. there is nothing which says "the circles readme is this model. This version shows spatial comms" etc.
It might be nice to add this, either as
examples/readme.md
describing all of them in very little detail, or adding a per example readme with more info?