Notebook Tutorials and Demonstrations
This is a collection of tutorial notebooks and demonstrations for the
self-driving-lab-demo! First, you should get started with the main, public-facing tutorial. Just click
the following “Open in Colab” badge:








All Tutorials
Note
Tutorials from sections 1, 2, and 3 are deprecated due to changes in hardware and software design of the demo (i.e., dropping “Blinkt!” in favor of built-in RGB LED on Maker Pi Pico base, and dropping a web server interface in favor of MQTT). Since they are instructive and show parts of the behind-the-scenes development process, they are kept here for reference and provenance.
1. Blinkt! Getting Started (deprecated)
1.0-sgb-blinkt-as7341-basic.ipynb
Let’s flash the LED and print out the sensor data!
2. Search Algorithms using Blinkt! (deprecated)
-
🚗 Let’s run a test drive of 100 random search iterations! 🚗
2.1-bayesian-optimization-blooper.ipynb
💥Bayesian optimization is worse than random search and grid search… Wait what?💥
-
🕵️ Time to troubleshoot! Running simulations can help us to troubleshoot the source of the discrepancy. SPOILER: Oh! It was an issue with data processing 🤦 (but was that all? 🤨)
2.3-bayesian-optimization.ipynb
🔁 Back to the algorithm comparison experiments! Lo and behold, Bayesian optimization is the most efficient. 😌
3. Pico W with a Web Server (deprecated)
3.1-random-vs-grid-vs-bayesian.ipynb
🥑 Algorithm comparison using the Pico W that’s running a local web server 🥑
3.2-random-vs-grid-vs-bayesian-simulator.ipynb
🥑 Algorithm comparison using a vamped up simulation based on the NeoPixel (as opposed to DotStar) LED 🥑
IoT-style control of Pico W
4.0-paho-mqtt-colab-sdl-demo.ipynb
📡 Control the Pico W remotely using MQTT (The Standard for IoT Messaging) 📡
4.1-paho-mqtt-colab-sdl-demo-search.ipynb
🔁 Run the same algorithm comparison experiments controlled from the cloud! 🔁
4.2-paho-mqtt-colab-sdl-demo-test.ipynb
🌎 Remotely access a free, public test demo from anywhere in the world 🌍
Wired control of Pico W
-
No PicoW? No problem! 🤖 Run the same algorithm comparison experiments using a nonwireless Pico! 🤖
Advanced optimization
6.0-olympus-benchmarking-basic.ipynb
🏋️ Let’s run some benchmarking experiments using the Olympus simulator! 🏋️
-
🎯 When more than one property is important (meaning virtually all real-world tasks 😉) 🎯
-
📈 Optimization using multiple information sources of varying cost and quality 📈
6.2.1-multi-fidelity-continuous.ipynb
📈 Optimization using continuous fidelities (e.g., runtime of a molecular dynamics simulation) 📈
6.2.2-multi-fidelity-discrete.ipynb
(WIP)📈 Optimization using discrete fidelities (e.g., finite number of allowed grid sizes in a simulation) 📈
6.2.3-multi-task.ipynb
(WIP)📈 Optimization using multiple, correlated information sources (e.g., simulations and experiments) 📈
-
📦 Optimization using batches of samples. Don’t forget to condition your batches! (handled automatically via Ax platform 😁) 📦
Data ecosystem
7.0-data-ecosystem.ipynb
(WIP)📊 Overview of notebooks in this section 📊
-
📊 Read data from MongoDB 📊
7.2-robust-data-logging.ipynb
(WIP)📊 Robust data logging 📊
7.2.1-hivemq-openssl-certificate.ipynb
📊 Generate an OpenSSL certificate for HiveMQ 📊
7.3-benchmark-dataset-generation.ipynb
📊 Generate a benchmark dataset 📊
eScience 2022
See also a set of tutorials prepared for the eScience 2022 conference. Video tutorials corresponding to these notebooks are published on YouTube in Taylor Sparks’ Optimization playlist.
2.8-ax_service_existing_data.ipynb
see also 2.8.0.* notebook variations (e.g., SAASBO, MOO, batch, etc.)
More to come!
discrete multi-fidelity optimization (simulation and experiments)
asynchronous/batch optimization using network of experiments
Grid search vs. random vs. Sobol vs. stochastic gradient descent vs. genetic algorithm vs. Bayesian optimization (e.g. via Olympus benchmarking platform)
Repeat experiments for high-variance or failure-prone experiments via RayTune Repeater
Combinations of above
External evaluation of simulation functions (e.g. FuncX, Slurm, AWS, Google Cloud)
Experimental orchestration software via Bluesky
Storing experiments in a database backend (e.g. SQL, MongoDB)
Combinations of above
Any requests? Post on the issue tracker 😉