Skip to main content

Automation framework for the scientific method in R&D

Project description

docs/_static/logo-banner.png

Usage

pepy-downloads pypi-version supported-pythons os-supported

Release

ci-analysis-master ci-coverage-master

Development

ci-analysis-devel ci-coverage-devel

Miscellaneous

GitHub License doi docs maintenance

What is SIERRA?

Running large-scale computational experiments is mostly engineering: writing scripts, managing configuration files, wrangling outputs, and rebuilding the same pipeline for every new project.

SIERRA automates this entire workflow.

SIERRA (reSearch pIpEline for Reproducibility, Reusability, and Automation) is a command-line tool and plugin framework that automates the full experimental workflow — generating experiment inputs, executing experiments across heterogeneous computing environments, processing results, and producing analysis artifacts such as plots, videos, and comparative summaries.

https://raw.githubusercontent.com/jharwell/sierra/master/docs/figures/architecture.png

SIERRA architecture, organized by pipeline stage (left to right).

Pipeline Stages

SIERRA organizes experiments into a fixed pipeline:

  1. Input generation — Create experiment configurations from templates

  2. Execution — Run experiments locally, on clusters, etc.

  3. Postprocessing — Parse raw outputs into structured datasets

  4. Product generation — Generate plots, summaries, and derived artifacts

SIERRA is built around three design goals:

  • Reproducibility — every result is fully described by its path on disk, which encodes the project, controller, scenario, and batch criteria used to produce it. Re-running the same invocation always produces the same layout.

  • Automation — experiment generation, execution, post-processing, and product generation are handled by the pipeline; no scripting required.

  • Reusability — the plugin architecture means a project written for one simulator or execution environment requires minimal changes to run on another.

Features at a Glance

All categories below are extensible via plugins.

Feature

Details

Supported simulators

ARGoS, ROS1+Gazebo, ROS1+Robot

Execution environments

Local machine, HPC clusters (SLURM, PBS), AWS Batch, Prefect server

Parameter sweeps

Numeric, categorical, or mixed combinations

Output formats

CSV, Arrow, GraphML, graphs (PNG, HTML), video (mp4)

Model framework

Overlay analytical models on empirical results

Reproducibility

Fully archived, citable experiment configurations

Python version

3.9+

Quick Start

Install:

pip3 install sierra-research

Minimal Example

Run a small parameter sweep locally using the built-in sample project.

sierra \
  --sierra-root=$HOME/exp \
  --project=sierra_sample_project \
  --platform=platform.argos \
  --exec-env=hpc.local \
  --template-input-file=exp/argos/template.argos \
  --scenario=LowBlockCount.10x10x1 \
  --batch-criteria population_size.Log8 \
  --n-runs=2 \
  --pipeline 1 2 3 4

This generates all experiment inputs, runs them locally, and processes results into graphs. See the getting started guide for a full walkthrough including expected output.

Why SIERRA?

SIERRA changes the paradigm of running experiments from manual and procedural to declarative and automated. Instead of:

"I need to write a script to run the experiment, another script to
process the data and a 3rd script to generate the graphs I want."

you describe:

"Here is the environment and/or simulator I want to use, the deliverables
I want to generate, and the data I want on them — GO."

SIERRA acts as a backend compiler for research: turning a description of what you want into a fully executed experiment with processed results.

Key advantages:

  • Deep parameter sweep support — numeric, categorical, or any combination thereof, with no boilerplate. A sweep that would require ~200 lines of brittle, non-reusable bash takes one SIERRA invocation.

  • Broad platform coverage — mix and match simulators (ARGoS, ROS1+Gazebo), execution environments (local, SLURM, PBS), and output formats with little to no code changes between them.

  • Maximum reusability — designed so that no copy-pasting is ever needed across projects or platforms.

  • Rich model framework — run analytical models, generate synthetic data, and overlay it on empirical results automatically on the same figure.

  • Research-domain focus — built for the scientific workflow, with native concepts for experiments, runs, batch criteria, and replication.

Why SIERRA over Prefect, Dagster, or Airflow?

General-purpose workflow tools like Prefect, Dagster, and Airflow require you to build your own research pipeline from scratch. SIERRA provides a battle-tested pipeline with first-class support for the patterns that matter most in R&D: parameter sweeps, simulator integration, reproducible archiving, and model-vs-empirical comparison.

The trade-off: SIERRA is more opinionated and less feature-complete than those frameworks for general data engineering workloads. For most research use cases, that gap doesn’t matter.

Limitations

SIERRA is purpose-built for the scientific experiment workflow. It is not the right tool if:

  • You need a general-purpose DAG runner for arbitrary data engineering tasks — use Prefect, Dagster, or Airflow instead.

  • Your experiments are highly irregular and cannot be expressed as systematic variations on a template.

  • You need ROS2—ROS1 is supported; ROS2 support is planned.

If you are unsure whether SIERRA fits your use case, check the use cases page or open a discussion thread.

Citing

If you use SIERRA and have found it helpful, please cite the following paper:

@inproceedings{Harwell2022a-SIERRA,
author = {Harwell, John and Lowmanstone, London and Gini, Maria},
title = {SIERRA: A Modular Framework for Research Automation},
year = {2022},
isbn = {9781450392136},
publisher = {International Foundation for Autonomous Agents and Multiagent Systems},
booktitle = {Proceedings of the 21st International Conference on Autonomous Agents and Multiagent Systems},
pages = {1905–1907}
}

To cite a specific version of SIERRA (recommended for reproducibility), use the DOI badge in the Miscellaneous row of the badge table above.

Troubleshooting

If you encounter problems using SIERRA, please open an issue or post in the GitHub Discussions forum. Please include your SIERRA version, OS, and a minimal reproducible example where possible.

Contributing

Contributions of all sizes are welcome — bug fixes, documentation improvements, new plugins, or larger features.

A good first contribution is adding a storage plugin or a simple processor plugin — both are typically under 100 lines and have clear contracts defined in the plugin developer guide.

If you have an idea to discuss before diving in, open a discussion thread at any point. See the contributing guide for the full procedure.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sierra_research-1.5.9.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sierra_research-1.5.9-py3-none-any.whl (291.1 kB view details)

Uploaded Python 3

File details

Details for the file sierra_research-1.5.9.tar.gz.

File metadata

  • Download URL: sierra_research-1.5.9.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sierra_research-1.5.9.tar.gz
Algorithm Hash digest
SHA256 05d04d08dae31658c5e47cbbf89adb541c045a4c2209dc186450039fd2dcf9d8
MD5 c0a6aa3ee3eaf38886da2bed9febe314
BLAKE2b-256 49525beb3f43f5a4581f7c51730e3435b36f49cfac1c3a2df0de82136e341d6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sierra_research-1.5.9.tar.gz:

Publisher: publish.yml on jharwell/sierra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sierra_research-1.5.9-py3-none-any.whl.

File metadata

  • Download URL: sierra_research-1.5.9-py3-none-any.whl
  • Upload date:
  • Size: 291.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sierra_research-1.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 39d1fca56155c2db92b83965aaa207b480de92290a113235c7bbfaf8a762ecf7
MD5 ea376b2a4e318a177d221f1352e8d854
BLAKE2b-256 4383224cf56dbf12dfcf9b3142cef49631675fd6f9d3d91f4219e23d618eeb7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sierra_research-1.5.9-py3-none-any.whl:

Publisher: publish.yml on jharwell/sierra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page