Currently, this is quite simple. It creates a side bar with the simulation
times, plus a set of tabs, one for each module, with numeric sliders.
Currently, this does not treat NA correctly.
Also, it is slow (shiny is not built to be fast out of the box).
There are two buttons, one to run the entire spades call, the other to
do just one time step at a time. It can be repeatedly pressed.
shine(sim, title = "SpaDES App", debug = FALSE, filesOnly = FALSE, ...) # S4 method for simList shine(sim, title = "SpaDES App", debug = FALSE, filesOnly = FALSE, ...)
| sim | A   | 
    
|---|---|
| title | character string. The title of the shiny page.  | 
    
| debug | Logical. If   | 
    
| filesOnly | Logical. If   | 
    
| ... | additional arguments. Currently not used  | 
    
Many module parameters are only accessed by modules at the start of a
  model run. So, even if the user changes them mid run, there won't be an
  effect on the model runs until Reset is pressed, and one of the Run
  buttons is pressed.
.plotInterval changes will only affect plots that are the base
  layer of a given plot image. If there are layers on top of a base layer
  (e.g., an agent on top of a raster layer), the .plotInterval of the
  overlaid layers is ignored.
if (FALSE) { library(SpaDES) library(SpaDES.shiny) mySim <- simInit( times <- list(start = 0.0, end = 20.0), params = list( .globals = list(stackName = "landscape", burnStats = "nPixelsBurned") ), modules = list("randomLandscapes", "fireSpread", "caribouMovement"), paths = list(modulePath = system.file("sampleModules", package = "SpaDES.core")) ) shine(mySim) # To publish to shinyapps.io, need files. This is not reliable yet. shine(mySim, filesOnly = TRUE) # if the user wants to see the events go by, which can help with debugging: shine(mySim, debug = TRUE) }