File Exchange

image thumbnail


version 1.0.0 (42.8 MB) by Moubarak Gado
In this repository, we implemented and trained the SciNet network described in arXiv:1807.10300v3.


Updated 11 Jun 2021

From GitHub

View license on GitHub

Discovering physical concepts with neural networks (SciNet)

View <File Exchange Title> on File Exchange

In this repository, we implemented and trained the SciNet network described in: Iten, R., Metger, T., Wilming, H., Rio, L., & Renner, R. (2020). Discovering Physical Concepts with Neural Networks. Phys. Rev. Lett., 124, 010508. [arXiv:1807.10300v3]. SciNet attempts to formalize a simplified view of physical modelling thinking process and translate it into a neural network architecture.

Unlike other deep-learning approaches to the description of physical systems, in addition to the input-output mapping SciNet automatically provides information on the number of independent underlying physical parameters given the data at hand.

The network architecture is that of modified variational autoencoder that allows the user to provide data and ask questions about the physical problem at hand. The code provided allows the user to train a deep neural network on time series describing the damped oscillations of a linear oscillator. Training is performed by providing to the network:

  • A set of observations of the oscillator positions for different values of the key physical parameters (namely, the damping and stiffness coefficients)
  • A set of questions, i.e. the time instant at which the amplitude of the oscillation should be predicted
  • A corresponding set of answers, i.e. the actual values of the amplitude

Once trained, the network is used as follows:

  • A time series for the same oscillator is provided as an input to the encoder, to compute the latent space variables
  • A question is fed to the decoder, together with these latent variables, to predict the answer


The repository contains MATLAB® implementation code as well as MATLAB trained models. The demo is implemented as a MATLAB project. The project will manage all paths and shortcuts you need. To Run:

  1. Open the MATLAB project Scinet.prj
  2. (optional) run "Read instructions" from project shortcuts panel

MathWorks Products (

Requires MATLAB release R2019b or newer

Getting Started

  • Run "1-trainAndTestScinetPendulum" from project shortcuts panel or use trainAndTestScinetPendulum.mlx livescript to train and test the SciNet network for a damped linear oscillator.
  • Run "2-postProcess" from project shortcuts panel or use the livescript postProcess.mlx to load trainings results, test the model prediction on new data and compare the latent neuron activations with the findings of the paper ( (page 12).
  • Optionally, for a complete list of all files and additional instructions you can run "Read instructions" from project shortcuts panel or open Instructions.mlx livescript.


The license for Discovering physical concepts with neural networks is available in the LICENSE.TXT file in this GitHub repository.

Community Support

MATLAB Central

Copyright 2021 The MathWorks, Inc.

Cite As

Moubarak Gado (2021). Physical-Concepts-Scinet (, GitHub. Retrieved .

Comments and Ratings (0)

MATLAB Release Compatibility
Created with R2021a
Compatible with R2019b and later releases
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!