<p align="center">
  <a href="https://strawberryfields.ai">
    <img width=80% src="https://raw.githubusercontent.com/XanaduAI/strawberryfields/master/doc/_static/strawberry-fields-text.png">
  </a>
</p>

<p align="center">
  <!-- Tests (GitHub actions) -->
  <a href="https://github.com/XanaduAI/strawberryfields/actions?query=workflow%3ATests">
    <img src="https://img.shields.io/github/workflow/status/XanaduAI/strawberryfields/Tests/master?logo=github&style=flat-square" />
  </a>
  <!-- CodeFactor -->
  <a href="https://www.codefactor.io/repository/github/xanaduai/strawberryfields">
    <img src="https://img.shields.io/codefactor/grade/github/XanaduAI/strawberryfields/master?style=flat-square" />
  </a>
  <!-- CodeCov -->
  <a href="https://codecov.io/gh/XanaduAI/strawberryfields">
    <img src="https://img.shields.io/codecov/c/github/xanaduai/strawberryfields/master.svg?style=popout-square" />
  </a>
  <!-- ReadTheDocs -->
  <a href="https://strawberryfields.readthedocs.io">
    <img src="https://img.shields.io/readthedocs/strawberryfields.svg?style=popout-square" />
  </a>
  <!-- PyPI -->
  <a href="https://pypi.org/project/StrawberryFields">
    <img src="https://img.shields.io/pypi/v/StrawberryFields.svg?style=popout-square" />
  </a>
  <!-- PyPI - Python Version -->
  <a href="https://pypi.org/project/StrawberryFields">
    <img src="https://img.shields.io/pypi/pyversions/StrawberryFields.svg?style=popout-square" />
  </a>
</p>

<p align="center">
  <a href="https://strawberryfields.ai">Strawberry Fields</a> is a full-stack Python library for
 designing, simulating, and optimizing continuous-variable quantum optical circuits.
</p>


## Features

<img src="https://raw.githubusercontent.com/XanaduAI/strawberryfields/master/doc/_static/StateLearning.gif" width="300px" align="right">


* Execute photonic quantum algorithms directly on
  [Xanadu's next-generation quantum hardware](https://strawberryfields.ai/photonics/hardware/index.html).

* [High-level functions](https://strawberryfields.ai/photonics/applications.html) for **solving
  practical problems** including **graph and network optimization**, **machine learning**, and
  **chemistry**.

* Includes a suite of world-class simulators—based on cutting-edge algorithms—to compile and
  simulate photonic algorithms.

* [Train and optimize](https://strawberryfields.ai/photonics/demonstrations.html#optimization-and-machine-learning)
  your quantum programs with our end-to-end differentiable TensorFlow backend.


## Installation

Strawberry Fields requires Python version 3.7, 3.8, 3.9, or 3.10. Installation of Strawberry Fields, as
well as all dependencies, can be done using pip:

```console
pip install strawberryfields
```


## Getting started

To get started with writing your own Strawberry Fields code, begin with our [photonic circuit
quickstart guides](https://strawberryfields.readthedocs.io/en/stable/introduction/introduction.html),
before exploring our many [tutorials](https://strawberryfields.ai/photonics/demonstrations.html) and
[applications](https://strawberryfields.ai/photonics/applications.html).

<a href="https://strawberryfields.ai/photonics/demonstrations.html">
  <img src="https://raw.githubusercontent.com/XanaduAI/strawberryfields/master/doc/_static/readme_panel1.png" width="900px">
</a>

Next, read more about using Strawberry Fields with
[photonic hardware](https://strawberryfields.ai/photonics/hardware/index.html), including code
demonstrations and an overview of Xanadu's quantum photonic hardware.

Developers can head to the
[development guide](https://strawberryfields.readthedocs.io/en/stable/development/development_guide.html)
to see how they can contribute to Strawberry Fields.


## Contributing to Strawberry Fields

We welcome contributions — simply fork the Strawberry Fields repository, and then make a
[pull request](https://help.github.com/articles/about-pull-requests/) containing your contribution.
All contributors to Strawberry Fields will be listed as authors on the releases.

We also encourage bug reports, suggestions for new features and enhancements, and even links to cool
projects or applications built on Strawberry Fields.

See our [contributions page](https://github.com/XanaduAI/strawberryfields/blob/master/.github/CONTRIBUTING.md)
and [changelog](https://github.com/XanaduAI/strawberryfields/blob/master/.github/CHANGELOG.md)
for more details, and then check out some of the Strawberry Fields
[challenges](https://github.com/XanaduAI/strawberryfields/blob/master/.github/CHALLENGES.md)
for some inspiration.


## Authors

Strawberry Fields is the work of
[many contributors](https://github.com/XanaduAI/strawberryfields/graphs/contributors)

If you are doing research using Strawberry Fields, please cite our papers:

> Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, and
> Christian Weedbrook. "Strawberry Fields: A Software Platform for Photonic Quantum Computing",
> [Quantum, 3, 129](https://quantum-journal.org/papers/q-2019-03-11-129/) (2019).

> Thomas R. Bromley, Juan Miguel Arrazola, Soran Jahangiri, Josh Izaac, Nicolás Quesada,
> Alain Delgado Gran, Maria Schuld, Jeremy Swinarton, Zeid Zabaneh, and Nathan Killoran.
> "Applications of Near-Term Photonic Quantum Computers: Software and Algorithms",
> [Quantum Sci. Technol. 5 034010](https://iopscience.iop.org/article/10.1088/2058-9565/ab8504/meta) (2020).


## Support

- **Source Code:** https://github.com/XanaduAI/strawberryfields
- **Issue Tracker:** https://github.com/XanaduAI/strawberryfields/issues

If you are having issues, please let us know by posting the issue on our Github issue tracker.

We also have a [Slack channel](https://u.strawberryfields.ai/slack) and a
[discussion forum](https://discuss.pennylane.ai/) — come join the discussion and chat with our
Strawberry Fields team.


## License

Strawberry Fields is **free** and **open source**, released under the Apache License, Version 2.0.
