Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

SciMLTutorials.jl: Tutorials for Scientific Machine Learning and Differential Equations

Join the chat at #sciml-bridged Stable Global Docs

Build status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

SciMLTutorials.jl holds PDFs, webpages, and interactive Jupyter notebooks showing how to utilize the software in the SciML Scientific Machine Learning ecosystem. This set of tutorials was made to complement the documentation and the devdocs by providing practical examples of the concepts. For more details, please consult the docs.


To view the SciML Tutorials, go to By default, this will lead to the latest tagged version of the tutorials. To see the in-development version of the tutorials, go to

Static outputs in pdf, markdown, and html reside in SciMLTutorialsOutput.

Video Tutorial

Video Tutorial

Interactive Notebooks

To generate the interactive notebooks, first install the SciMLTutorials, instantiate the environment, and then run SciMLTutorials.open_notebooks(). This looks as follows:

]add SciMLTutorials#master
]activate SciMLTutorials
using SciMLTutorials

The tutorials will be generated at your pwd() in a folder called generated_notebooks.

Note that when running the tutorials, the packages are not automatically added. Thus you will need to add the packages manually or use the internal Project/Manifest tomls to instantiate the correct packages. This can be done by activating the folder of the tutorials. For example,

using Pkg

will add all of the packages required to run any tutorial in the models folder.


All of the files are generated from the Weave.jl files in the tutorials folder. The generation process runs automatically, and thus one does not necessarily need to test the Weave process locally. Instead, simply open a PR that adds/updates a file in the "tutorials" folder and the PR will generate the tutorial on demand. Its artifacts can then be inspected in the Buildkite as described below before merging. Note that it will use the Project.toml and Manifest.toml of the subfolder, so any changes to dependencies requires that those are updated.

Reporting Bugs and Issues

Report any bugs or issues at the SciMLTutorials repository.

Inspecting Tutorial Results

To see tutorial results before merging, click into the BuildKite, click onto Artifacts, and then investigate the trained results.

Manually Generating Files

To run the generation process, do for example:

]activate SciMLTutorials # Get all of the packages
using SciMLTutorials

To generate all of the files in a folder, for example, run:


To generate all of the notebooks, do:


Each of the tuturials displays the computer characteristics at the bottom of the benchmark.