VIPR Framework Documentation

What is VIPR?

VIPR (Versatile Inverse Problem Software Framework) is a modular machine-learning framework for scientific inverse problems in physics.

It provides a plugin-based architecture for configurable inference workflows: domain-specific code for data loading, model loading, preprocessing, prediction, postprocessing, visualization, and result storage can be combined through declarative YAML configuration and executed either from the command line or through the web application.

Inference Pipeline Overview

At the core of VIPR is a domain-agnostic, five-step inference pipeline. The same workflow structure can be adapted to concrete scientific domains through plugins, handlers, filters, and hooks.

  1. Load Data - read experimental input files and standardize them into a DataSet

  2. Load Model - load and prepare the configured model for inference

  3. Preprocess - transform the input data for model consumption

  4. Predict - run the model and produce predictions

  5. Postprocess - format results and generate artifacts such as plots, tables, and summaries

Quick Installation

For local CLI usage, install vipr-core together with the domain plugins you need:

python3.10 -m venv myenv
source myenv/bin/activate
pip install git+https://codebase.helmholtz.cloud/vipr/vipr-core.git
pip install git+https://codebase.helmholtz.cloud/vipr/vipr-reflectometry-plugin.git

After installation, the packaged PTCDI-C3 reflectometry example can be run directly from the CLI:

vipr --config @vipr_reflectometry/reflectorch/examples/configs/PTCDI-C3.yaml inference run

This configuration loads PTCDI-C3 reflectometry data, applies the configured preprocessing filter, runs the Reflectorch predictor, and stores the generated result artifacts in the VIPR storage directory.

For the full web application stack, use the Docker deployment:

git clone https://codebase.helmholtz.cloud/vipr/vipr-framework.git
cd vipr-framework
cp docker-compose.override.yml.example docker-compose.override.yml
mkdir -p storage
docker compose up --wait

For details, see CLI Installation and Docker Deployment.

Plugins

System Overview

VIPR is a modular ML framework with:

  • vipr-frontend - Web interface (Nuxt.js)

  • vipr-api - REST API backend (FastAPI) with async processing (Celery)

  • vipr-core - Extensible plugin framework (Python CLI)

Component Repositories

Project Partners

The VIPR Framework is developed by the VIPR Project Consortium with contributions from:

For more information, visit vipr-project.de.

License

The VIPR Framework is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0).

For details, see the LICENSE.txt file in each repository (for example vipr-framework/LICENSE.txt).