The dust2
package provides an engine for running dynamical systems in discrete or continuous time and where the processes are stochastic or deterministic. We focus on Markov models where the problem reduces to describing how model state changes as a function of its current state (and possibly time) but without reference to where it has come from. Superficially, the problem is not very hard (see vignette("design")
), but dust2
takes care of many practical and bookkeeping details such as:
- Running systems in parallel on multi-core machines, even those involving random numbers
- Providing useful verbs for efficiently working with groups of simulations (different parameters, starting conditions or stochastic realisations)
- Comparing simulations to time-series of data, and implementing sequential Monte Carlo methods such as a bootstrap particle filter
Get started
-
vignette("design")
describes the problemsdust
tries to solve (read on package website) -
vignette("dust2")
describesdust
by example, showing two simple systems and the methods that can drive them (read on package website) - If you have used
dust
version 1 before, see the migration guide to see what has changed. -
odin2
is the way mostdust2
systems are written - The odin & monty book shows how the package works in context
-
vignette("writing")
shows how to write adust2
system by hand in C++ -
vignette("packaging")
describes how to package a system for easy reuse
Roadmap
This package is a ground-up rewrite of dust
and will eventually become version 2.0.0 of dust
, which we will then release to CRAN. It exists separately for now to facilitate development and use alongside the original dust
, and is being developed in parallel with odin2
and monty
(previously mcstate
). Some of the functionality here was originally found in mcstate
and some of the previous version of dust
can now be found in monty
(e.g., the random number library).