Skip to content

Commit

Permalink
Extend boids examples to include env props within visualisation
Browse files Browse the repository at this point in the history
Also unified model naming of examples (in particular Circles Spatial3D was listed as bruteforce).
  • Loading branch information
Robadob committed Sep 12, 2022
1 parent 89e6620 commit e7878e8
Show file tree
Hide file tree
Showing 10 changed files with 89 additions and 14 deletions.
16 changes: 14 additions & 2 deletions examples/boids_bruteforce/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ FLAMEGPU_AGENT_FUNCTION(inputdata, flamegpu::MessageBruteForce, flamegpu::Messag
}

int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("Boids_BruteForce");
flamegpu::ModelDescription model("Boids BruteForce");

{ // Location message
flamegpu::MessageBruteForce::Description &message = model.newMessage("location");
Expand Down Expand Up @@ -398,8 +398,20 @@ int main(int argc, const char ** argv) {
circ_agt.setForwardXVariable("fx");
circ_agt.setForwardYVariable("fy");
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(flamegpu::visualiser::Stock::Models::ICOSPHERE);
circ_agt.setModel(flamegpu::visualiser::Stock::Models::STUNTPLANE);
circ_agt.setModelScale(env.getProperty<float>("SEPARATION_RADIUS")/3.0f);
// Add a settings UI
flamegpu::visualiser::PanelVis ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDrag<float>("INTERACTION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("SEPARATION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDrag<float>("TIME_SCALE", 0.0f, 1.0f, 0.0001f);
ui.newEnvironmentPropertyDrag<float>("GLOBAL_SCALE", 0.0f, 0.5f, 0.001f);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDrag<float>("STEER_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("COLLISION_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("MATCH_SCALE", 0.0f, 10.0f, 0.001f);
}
visualisation.activate();
#endif
Expand Down
19 changes: 17 additions & 2 deletions examples/boids_bruteforce_dependency_graph/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ FLAMEGPU_AGENT_FUNCTION(inputdata, flamegpu::MessageBruteForce, flamegpu::Messag
}

int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("Boids_BruteForce_DependencyGraph");
flamegpu::ModelDescription model("Boids BruteForce (DependencyGraph)");

{ // Location message
flamegpu::MessageBruteForce::Description &message = model.newMessage("location");
Expand Down Expand Up @@ -392,8 +392,23 @@ int main(int argc, const char ** argv) {
visualisation.setCameraSpeed(0.002f * envWidth);
auto &circ_agt = visualisation.addAgent("Boid");
// Position vars are named x, y, z; so they are used by default
circ_agt.setModel(flamegpu::visualiser::Stock::Models::ICOSPHERE);
circ_agt.setForwardXVariable("fx");
circ_agt.setForwardYVariable("fy");
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(flamegpu::visualiser::Stock::Models::STUNTPLANE);
circ_agt.setModelScale(env.getProperty<float>("SEPARATION_RADIUS")/3.0f);
// Add a settings UI
flamegpu::visualiser::PanelVis ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDrag<float>("INTERACTION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("SEPARATION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDrag<float>("TIME_SCALE", 0.0f, 1.0f, 0.0001f);
ui.newEnvironmentPropertyDrag<float>("GLOBAL_SCALE", 0.0f, 0.5f, 0.001f);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDrag<float>("STEER_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("COLLISION_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("MATCH_SCALE", 0.0f, 10.0f, 0.001f);
}
visualisation.activate();
#endif
Expand Down
16 changes: 14 additions & 2 deletions examples/boids_rtc_bruteforce/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ FLAMEGPU_AGENT_FUNCTION(inputdata, flamegpu::MessageBruteForce, flamegpu::Messag
)###";

int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("Boids_BruteForce");
flamegpu::ModelDescription model("Boids BruteForce (RTC)");

{ // Location message
flamegpu::MessageBruteForce::Description &message = model.newMessage("location");
Expand Down Expand Up @@ -443,8 +443,20 @@ int main(int argc, const char ** argv) {
circ_agt.setForwardXVariable("fx");
circ_agt.setForwardYVariable("fy");
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(flamegpu::visualiser::Stock::Models::ICOSPHERE);
circ_agt.setModel(flamegpu::visualiser::Stock::Models::STUNTPLANE);
circ_agt.setModelScale(env.getProperty<float>("SEPARATION_RADIUS")/3.0f);
// Add a settings UI
flamegpu::visualiser::PanelVis ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDrag<float>("INTERACTION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("SEPARATION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDrag<float>("TIME_SCALE", 0.0f, 1.0f, 0.0001f);
ui.newEnvironmentPropertyDrag<float>("GLOBAL_SCALE", 0.0f, 0.5f, 0.001f);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDrag<float>("STEER_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("COLLISION_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("MATCH_SCALE", 0.0f, 10.0f, 0.001f);
}
visualisation.activate();
#endif
Expand Down
14 changes: 13 additions & 1 deletion examples/boids_rtc_spatial3D/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ FLAMEGPU_AGENT_FUNCTION(inputdata, flamegpu::MessageSpatial3D, flamegpu::Message
)###";

int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("Boids_BruteForce");
flamegpu::ModelDescription model("Boids Spatial3D (RTC)");

/**
* GLOBALS
Expand Down Expand Up @@ -447,6 +447,18 @@ int main(int argc, const char ** argv) {
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(flamegpu::visualiser::Stock::Models::STUNTPLANE);
circ_agt.setModelScale(env.getProperty<float>("SEPARATION_RADIUS")/3.0f);
// Add a settings UI
flamegpu::visualiser::PanelVis ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDrag<float>("INTERACTION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("SEPARATION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDrag<float>("TIME_SCALE", 0.0f, 1.0f, 0.0001f);
ui.newEnvironmentPropertyDrag<float>("GLOBAL_SCALE", 0.0f, 0.5f, 0.001f);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDrag<float>("STEER_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("COLLISION_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("MATCH_SCALE", 0.0f, 10.0f, 0.001f);
}
visualisation.activate();
#endif
Expand Down
16 changes: 14 additions & 2 deletions examples/boids_spatial3D/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ FLAMEGPU_AGENT_FUNCTION(inputdata, flamegpu::MessageSpatial3D, flamegpu::Message
}

int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("boids_spatial3D");
flamegpu::ModelDescription model("Boids Spatial3D");

/**
* GLOBALS
Expand Down Expand Up @@ -408,8 +408,20 @@ int main(int argc, const char ** argv) {
circ_agt.setForwardXVariable("fx");
circ_agt.setForwardYVariable("fy");
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(flamegpu::visualiser::Stock::Models::ICOSPHERE);
circ_agt.setModel(flamegpu::visualiser::Stock::Models::STUNTPLANE);
circ_agt.setModelScale(env.getProperty<float>("SEPARATION_RADIUS")/3.0f);
// Add a settings UI
flamegpu::visualiser::PanelVis ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDrag<float>("INTERACTION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("SEPARATION_RADIUS", 0.0f, 0.05f, 0.001f);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDrag<float>("TIME_SCALE", 0.0f, 1.0f, 0.0001f);
ui.newEnvironmentPropertyDrag<float>("GLOBAL_SCALE", 0.0f, 0.5f, 0.001f);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDrag<float>("STEER_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("COLLISION_SCALE", 0.0f, 10.0f, 0.001f);
ui.newEnvironmentPropertyDrag<float>("MATCH_SCALE", 0.0f, 10.0f, 0.001f);
}
visualisation.activate();
#endif
Expand Down
2 changes: 1 addition & 1 deletion examples/circles_bruteforce/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ FLAMEGPU_STEP_FUNCTION(Validation) {
int main(int argc, const char ** argv) {
NVTX_RANGE("main");
NVTX_PUSH("ModelDescription");
flamegpu::ModelDescription model("Circles_BruteForce_example");
flamegpu::ModelDescription model("Circles BruteForce");

const unsigned int AGENT_COUNT = 16384;
const float ENV_MAX = static_cast<float>(floor(cbrt(AGENT_COUNT)));
Expand Down
2 changes: 1 addition & 1 deletion examples/circles_spatial3D/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ FLAMEGPU_STEP_FUNCTION(Validation) {
printf("%.2f%% Drift correct\n", 100 * driftDropped / static_cast<float>(driftDropped + driftIncreased));
}
int main(int argc, const char ** argv) {
flamegpu::ModelDescription model("Circles_BruteForce_example");
flamegpu::ModelDescription model("Circles Spatial3D");

const unsigned int AGENT_COUNT = 16384;
const float ENV_MAX = static_cast<float>(floor(cbrt(AGENT_COUNT)));
Expand Down
2 changes: 1 addition & 1 deletion examples/game_of_life/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ int main(int argc, const char ** argv) {
const unsigned int AGENT_COUNT = SQRT_AGENT_COUNT * SQRT_AGENT_COUNT;
NVTX_RANGE("main");
NVTX_PUSH("ModelDescription");
flamegpu::ModelDescription model("Game_of_Life_example");
flamegpu::ModelDescription model("Game of Life");

{ // Location message
flamegpu::MessageArray2D::Description &message = model.newMessage<flamegpu::MessageArray2D>("is_alive_message");
Expand Down
2 changes: 1 addition & 1 deletion examples/sugarscape/src/main.cu
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ int main(int argc, const char ** argv) {
submodel.addExitCondition(MovementExitCondition);
}

flamegpu::ModelDescription model("Sugarscape_example");
flamegpu::ModelDescription model("Sugarscape");

/**
* Agents
Expand Down
14 changes: 13 additions & 1 deletion examples/swig_boids_spatial3D/boids_spatial3D.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ def clampPosition(x, y, z, MIN_POSITION, MAX_POSITION):
}
"""

model = pyflamegpu.ModelDescription("Boids_BruteForce");
model = pyflamegpu.ModelDescription("Boids Spatial3D (Python)");

"""
GLOBALS
Expand Down Expand Up @@ -434,6 +434,18 @@ def clampPosition(x, y, z, MIN_POSITION, MAX_POSITION):
circ_agt.setForwardZVariable("fz");
circ_agt.setModel(pyflamegpu.STUNTPLANE);
circ_agt.setModelScale(env.getPropertyFloat("SEPARATION_RADIUS") /3.0);
# Add a settings UI
ui = visualisation.newUIPanel("Environment");
ui.newStaticLabel("Interaction");
ui.newEnvironmentPropertyDragFloat("INTERACTION_RADIUS", 0.0, 0.05, 0.001);
ui.newEnvironmentPropertyDragFloat("SEPARATION_RADIUS", 0.0, 0.05, 0.001);
ui.newStaticLabel("Environment Scalars");
ui.newEnvironmentPropertyDragFloat("TIME_SCALE", 0.0, 1.0, 0.0001);
ui.newEnvironmentPropertyDragFloat("GLOBAL_SCALE", 0.0, 0.5, 0.001);
ui.newStaticLabel("Force Scalars");
ui.newEnvironmentPropertyDragFloat("STEER_SCALE", 0.0, 10.0, 0.001);
ui.newEnvironmentPropertyDragFloat("COLLISION_SCALE", 0.0, 10.0, 0.001);
ui.newEnvironmentPropertyDragFloat("MATCH_SCALE", 0.0, 10.0, 0.001);
visualisation.activate();

"""
Expand Down

0 comments on commit e7878e8

Please sign in to comment.