| CARVIEW |
WebPPL probabilistic programming for the web
WebPPL is a feature-rich probabilistic programming language embedded in Javascript.
Check out some demos or try it yourself in the editor below.
Features
- Runs on the command line with node.js or in the browser.
- Supports modular and re-usable code using packages built on top of the npm package system, and interoperates with existing Javascript packages in the npm ecosystem.
- Includes a large and expanding library of primitive distributions.
- Implements a variety of inference algorithms, including exact inference via enumeration, rejection sampling, Sequential Monte Carlo, Markov Chain Monte Carlo, Hamiltonian Monte Carlo, and inference-as-optimization (e.g. variational inference).
- Provides inference as a first-class operator in the language, allowing for nested inference (‘inference about inference’).
- Supports optimizable models with neural network components using adnn.
Demos
Browser-based applications powered by WebPPL.
- Procedural vines with shape constraints
- 3D procedural spaceships with shape constraints
(Note: the code in this demo is written in an older version of WebPPL)
Local install
Install WebPPL in two easy steps:
- Install node.js
- Run
npm install -g webppl
Now, the webppl command is globally available.
To upgrade to the latest version, run npm update -g webppl.
Documentation
To learn more about how to set up and use WebPPL, take a look at our documentation and the examples.
To learn more about how WebPPL works under the hood, check out our web book, The Design and Implementation of Probabilistic Programming Languages.
For probabilistic modeling in general, our other web book, Probabilistic Models of Cognition, might be of interest.
License
The WebPPL code base is open source and freely available for commerical and non-commercial use under the MIT license.
Contributions
We encourage you to contribute to WebPPL! Check out our guidelines for contributors and join the webppl-dev mailing list.
Pronunciation
Say “web people”.
Citing
If you use WebPPL in academic projects and papers, please cite as:
https://dippl.org. [bibtex]
@misc{dippl,
title = {{The Design and Implementation of Probabilistic Programming Languages}},
author = {Goodman, Noah D and Stuhlm\"{u}ller, Andreas},
year = {2014},
howpublished = {\url{https://dippl.org}},
note = {Accessed: }
}
Publications
If you publish a paper using/extending WebPPL, let us know and we'll add it to this list:
https://gscontras.github.io/ESSLLI-2016.
https://agentmodels.org.
https://probmods.org.
https://dippl.org.
Acknowledgments
The WebPPL project is supported by grants from DARPA, under agreement number FA8750-14-2-0009, and the Office of Naval Research, grant number N00014-13-1-0788.