# Overview

The **robomimic** framework consists of several modular components that interact to train and evaluate a policy: - **Experiment config**: a config object defines all settings for a training run - **Data**: an hdf5 dataset is loaded into a dataloader, which provides minibatches to the algorithm - **Training**: an algorithm object trains a set of models (including the policy) - **Evaluation**: the policy is evaluated in the environment by conducting a set of rollouts - **Logging**: experiment statistics, model checkpoints, and videos are saved to disk These modules are encapsulated by the robomimic directory structure: - `examples`: examples to better understand modular components in the codebase - [`robomimic/algo`](./algorithms.html): policy learning algorithm implementations - [`robomimic/config`](./configs.html): default algorithm configs - [`robomimic/envs`](./environments.html): wrappers for environments, used during evaluation rollouts - `robomimic/exps/templates`: config templates for experiments - [`robomimic/models`](./models.html): network implementations - `robomimic/scripts`: main repository scripts - `robomimic/utils`: a collection of utilities, including the [SequenceDataset](./dataset.html) class to load datasets, and [TensorUtils](../tutorials/tensor_collections.html#tensorutils) to work with nested tensor dictionaries