diff --git a/docs/about.md b/docs/about.md new file mode 100644 index 0000000..222b63d --- /dev/null +++ b/docs/about.md @@ -0,0 +1,32 @@ +# About + +## What is Playground? + +PlayGround is a safe building operating system (SBOS), that incorporates a structured semantic representation of the building (based on [Brick](brickschema.org)) to inform the safe, multi-tenant execution of untrusted applications. We use the semantic representation to implement (a) a novel graph-based capability mechanism for fine-grained and expressive access control management, and (b) a resource isolation mechanism with preemptive interventions and passive telemetry-based live resource monitoring. + +## Why does this matter? + +Despite technological and standardization victories, the pace of innovation and the adoption rate of smart building applications in the real world remains low due to safety reasons. + +> I bet very few have used a real building application in the wild. + +Building managers are naturally reluctant to deploy third party building applications which are unvetted and possibly buggy. The inability of modern buildings to properly restrict an application's permissions also makes the application's execution generally opaque to the manager, unless intensive manual effort is invested to monitor them. + +Playground, is designed to tackle these issues. The goal of Playground is to encourage innovation and exploration of how modern building applications can provide value to occupants, managers, and other stakeholders while avoiding the intensive manual effort required to deploy them *safely*. + + +## Citation + +A [paper](https://ieeexplore.ieee.org/abstract/document/10571633) describing the design philosophies and techinical contributions of Playground was published in 2024 ACM/IEEE 15th International Conference on Cyber-Physical Systems (ICCPS) and was awarded as one of the 🏆best paper finalists🏆. If you find Playground to be helpful, please consider cite +```latex +@INPROCEEDINGS{10571633, + author={Fu, Xiaohan and Liu, Yihao and Koh, Jason and Hong, Dezhi and Gupta, Rajesh and Fierro, Gabe}, + booktitle={2024 ACM/IEEE 15th International Conference on Cyber-Physical Systems (ICCPS)}, + title={Playground: A Safe Building Operating System}, + year={2024}, + volume={}, + number={}, + pages={111-122}, + keywords={Smart buildings;Costs;Operating systems;Buildings;Semantics;Programming;Maintenance;Brick;building;isolation;capability}, + doi={10.1109/ICCPS61052.2024.00017}} +``` \ No newline at end of file diff --git a/docs/tutorial/buildsys2024.md b/docs/tutorial/buildsys2024.md index e69de29..7641aa0 100644 --- a/docs/tutorial/buildsys2024.md +++ b/docs/tutorial/buildsys2024.md @@ -0,0 +1,10 @@ +# Tutorial@BuildSys24 (Hangzhou!) + +## More details on the plan and schedule will be online shortly. Stay tuned!!! + +Smart building applications have shown potential to reduce building energy consumption while also maintaining occupant comfort and increasing productivity. Prior research on building operating systems and standardized building representations lays the foundation of developing portable and adaptable building applications. Despite technological and standardization victories, the pace of innovation and the adoption rate of these smart building applications in the real world remains low due to safety reasons. Building managers are naturally reluctant to deploy third party building applications which are unvetted and possibly buggy. The inability of modern buildings to properly restrict an application's permissions also makes the application's execution generally opaque to the manager, unless intensive manual effort is invested to monitor them. + +Playground is an open-source ``safe'' operating system (OS) abstraction for buildings that enables the execution of untrusted, multi-tenant applications in modern buildings. Playground is integrated with the Brick representation of the underlying buildings and features flexible and extensible access control and resource isolation mechanisms. These novel mechanisms of Playground avoid the intensive manual effort required to deploy building apps safely. + +In this tutorial, we will cover the design of Playground, and introduce how to develop and deploy building apps with Playground as well as how to ensure the safe executions of them with the mechanisms we provide. Ideally, attendants will be able to write their first own building application, deploy it on a real building, and write customized access control and resource isolation policies to regulate it. The goal is to encourage innovation and exploration of how modern building applications can provide value to occupants, managers, and other stakeholders in the real world with Playground. + diff --git a/docs/index.md b/docs/tutorial/write_an_app.md similarity index 100% rename from docs/index.md rename to docs/tutorial/write_an_app.md diff --git a/mkdocs.yml b/mkdocs.yml index 84ac7d4..2221243 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,7 +24,7 @@ theme: # Palette toggle for light mode - media: "(prefers-color-scheme: light)" scheme: default - primary: black + primary: indigo toggle: icon: material/weather-sunny name: Switch to dark mode @@ -54,14 +54,15 @@ plugins: - include-markdown not_in_nav: /generated/**/*.md nav: - - Home: index.md + - Home: about.md - Getting started: - Deployment: deployment.md - Initialization: init.md - Configuration: - - config/index.md + # - config/index.md - Database: config/db.md - Authorization: config/auth.md - Backend: config/backend.md - - Tutorial: - - BuildSys 2024: tutorial/buildsys2024.md + - Tutorials: + - Tutorial@BuildSys24!: tutorial/buildsys2024.md + - Write a Brick based building app: tutorial/write_an_app.md