Home

Welcome to Lyceum, a framework for developing reinforcement learning, trajectory optimization, and other algorithms for continuous control problems in Julia. The primary goal of Lyceum is to increase research throughput and creativity by leveraging the flexible, performant nature of Julia and its cutting-edge ecosystem.

We hope the community can build on these tools to produce more creative (and performant!) methods.

The Lyceum ecosystem is organized into several core packages:

  • LyceumBase, a lightweight package consisting of common interface definitions and utilities used throughout Lyceum, such as the AbstractEnvironment type that provides a (PO)MDP-like environment abstraction for robotic control.
  • LyceumAI, a collection of trajectory optimization, reinforcement learning, and other algorithms for robotic control.
  • LyceumMuJoCo, a variety of environments implementing the AbstractEnvironment interface built on the MuJoCo physics simulator.
  • LyceumMuJoCoViz, a feature-rich interactive visualizer for LyceumMuJoCo.
  • Shapes, a high-performance library for viewing flat (e.g. vector) data as structured data.
  • UniversalLogger, a small package that implements Julia's logging interface and provides a general key-value store for logging experimental data.
  • MuJoCo, a low-level wrapper for the MuJoCo physics library.
  • Lyceum, a meta-package combining all of the above.

Initial Setup

Julia can be downloaded for Windows, Mac, and Linux. We recommend the newest version. Lyceum tests against all three platforms, but the authors primarily use Linux so your mileage may vary.

As Lyceum is still under heavy development, all Lyceum packages are currently registered in the LyceumRegistry. Note that in the future, Lyceum will migrate to Julia's General registry. For now, however, we can add LyceumRegistry by first entering the ] key into the REPL to enter "Pkg Mode":

julia> ]
(v1.3) pkg> registry add https://github.com/Lyceum/LyceumRegistry
   Cloning registry from "https://github.com/Lyceum/LyceumRegistry"
     Added registry `LyceumRegistry` to `~/.julia/registries/LyceumRegistry`

Now you can add the Lyceum packages to your environment:

(v1.3) pkg> add LyceumBase

For more information on registrys and packaging, checkout the Julia Pkg.jl docs.

Supporting and Citing

The Lyceum ecosystem was developed as a part of academic research. If you found Lyceum helpful and would like to support further development, please star the repository(s) as such metrics may help secure further funding in the future. If you use Lyceum as part of your research, teaching, or other engagements, we would be grateful if you could cite our work:

Lyceum: An efficient and scalable ecosystem for robot learning

@misc{summers2020lyceum,
    title={Lyceum: An efficient and scalable ecosystem for robot learning},
    author={Colin Summers and Kendall Lowrey and Aravind Rajeswaran and Siddhartha Srinivasa and Emanuel Todorov},
    year={2020},
    eprint={2001.07343},
    archivePrefix={arXiv},
    primaryClass={cs.RO}
}