llspy-slm 0.2.1
Lattice Light Sheet SLM Pattern Generator
License: BSD 3-clause
Requires Python: >=3.7

####################################################
llspy-slm: Lattice Light Sheet SLM Pattern Generator
####################################################

|license_shield| |python_shield| |travis_shield|

.. |license_shield| image:: https://img.shields.io/badge/License-BSD%203--Clause-brightgreen.svg
   :target: https://opensource.org/licenses/BSD-3-Clause

.. |python_shield| image:: https://img.shields.io/badge/Python-2.7%2C%203.5%2C%203.6-brightgreen.svg

.. |travis_shield| image:: https://img.shields.io/travis/tlambert03/llspy-slm/master.svg
   :target: https://travis-ci.org/tlambert03/llspy-slm

|

.. image:: http://cbmf.hms.harvard.edu/wp-content/uploads/2015/07/logo-horizontal-small.png
    :target: http://cbmf.hms.harvard.edu/lattice-light-sheet/


.. |copy|   unicode:: U+000A9

Copyright |copy| 2017 Talley Lambert, Harvard Medical School.

|

**llspy-slm** is a simple python app for generating binary masks to drive
the spatial light modulator (SLM) on Lattice Light Sheet microscopes.
It can generate both *square lattices* and *hex lattices*, and includes
the ability to automatically set various parameters such as wavelength
dependent beam-spacing (fully manually control is also available).
Additionally, there is a batch square lattice feature that can be used
to generate a large number of parameter permutations easily.

See complete usage notes in the `documentation <http://llspy-slm.readthedocs.io/>`_.

.. image:: img/slmgen_gui.png
   :alt: LLSpy SLM Pattern Generator GUI

Requirements
============

* Compatible with Windows (tested on 7/10), Mac or Linux (tested on
  Ubuntu 16.04)
* Python 3.7, 3.6, 3.5, or 2.7

Installation
============

#. Install `Anaconda <https://www.anaconda.com/download/>`_
#. Launch a ``terminal`` window (OS X, Linux), or ``Anaconda Prompt`` (Windows)
#. Install llspy-slm (note: as of version 0.2.0, you now must install
   either pyside2 or pyqt explicitly):

    .. code:: bash

        > conda create -n slmenv
        > conda activate slmenv
        > conda install -c talley -c conda-forge llspy-slm pyqt

    The ``create -n slmenv`` line creates a virtual environment.
    This is optional, but recommended as it easier to uninstall cleanly
    and prevents conflicts with any other python environments.
    If installing into a virtual environment, you must source the
    environment before proceeding, and each time before using llspy-slm.

#. The gui can be launched with ``slmgen``.  You can create a bash script
   or batch file to autoload the environment and launch the program if desired.

    .. code:: bash

        # Launch Anaconda Prompt and type...

        > conda activate slmenv

        # launch the gui
        > slmgen


See complete usage notes in the `documentation <http://llspy-slm.readthedocs.io/>`_.


Bug Reports, Feature requests, etc...
=====================================

Pull requests are welcome!

To report a bug or request a feature, please `submit an issue on github <https://github.com/tlambert03/llspy-slm/issues>`_

LLSpy Release History
#####################

`0.1.1`_
========

**Changed:**

* renamed main funcs in slm.py
* increased crop precision in gui to 0.001

**Fixed:**

* on windows, the batch write function creates unpredictable output files due to weird windows multi-threading.  For now, restricting batch write to a single thread on windows... will make things slower than Mac or Linux.
* Fix bug that that prevented writing Hex patterns to file
* Fix bug when batch shift/tilt ranges have a single number <= 0

`0.1.0`_
========

First release as independent package (independent from main LLSpy package)

**Added:**

* Hex pattern generator added to SLM Pattern Generator
* Ronchi-ruling pattern generator added to SLMgen
* Batch SLM pattern generation
* Docs for SLM generator GUI
* Option to dither SLM preview in SLM Pattern Generator
* User-adjustable LUTs for SLM pattern previews

**Changed:**

* SLM pattern generator moved into seperate package: *slmgen*
* Better multi-threading when batch-writing SLM patterns

**Fixed:**

* SLM pattern generator now writes 1-bit file usable on SLM, instead of 8-bit png (thank you for reporting Felix!)


.. _0.1.0: https://github.com/tlambert03/llspy-slm/releases/0.1.0

Copyright (c) 2017 - President and Fellows of Harvard College.
All rights reserved.

Developed by:  Talley Lambert, PhD
Cell Biology Microscopy Facility, Harvard Medical School
http://cbmf.hms.harvard.edu/
Harvard University case number HU 7053 - Lattice Light Sheet Software (LLSpy)

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal with the
Software without restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions, and the following disclaimers.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimers in the documentation
  and/or other materials provided with the distribution.

* Neither the names of the Cell Biology Microscopy Facility, Harvard Medical School,
  Harvard University, the Harvard shield or logo, nor the names of its contributors
  may be used to endorse or promote products derived from this Software without
  specific prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.