A compiler and scenario generator for Scenic, a domain-specific probabilistic programming language for modeling the environments of cyber-physical systems. Please see the documentation for installation instructions, as well as tutorials and other information about the Scenic language, its implementation, and its interfaces to various simulators.
For an overview of the language and some of its applications, see our 2022 journal paper on Scenic 2, which extends our PLDI 2019 paper on Scenic 1. The new syntax and features of Scenic 3 are described in our CAV 2023 paper. Our Publications page lists additional relevant publications.
Scenic was initially designed and implemented by Daniel J. Fremont, Tommaso Dreossi, Shromona Ghosh, Xiangyu Yue, Alberto L. Sangiovanni-Vincentelli, and Sanjit A. Seshia. Additionally, Edward Kim made major contributions to Scenic 2, and Eric Vin, Shun Kashiwa, Matthew Rhea, and Ellen Kalvan to Scenic 3. Please see our Credits page for details and more contributors.
If you have any problems using Scenic, please submit an issue to our GitHub repository or start a conversation on our community forum.
The repository is organized as follows:
- the src/scenic directory contains the package proper;
- the examples directory has many examples of Scenic programs;
- the assets directory contains meshes and other resources used by the examples and tests;
- the docs directory contains the sources for the documentation;
- the tests directory contains tests for the Scenic tool.