Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write User Stories #31

Open
JLBegin opened this issue Sep 16, 2021 · 1 comment
Open

Write User Stories #31

JLBegin opened this issue Sep 16, 2021 · 1 comment
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@JLBegin
Copy link
Contributor

JLBegin commented Sep 16, 2021

Brainstorm a list of what a user aims to do with our software.

@JLBegin JLBegin added the documentation Improvements or additions to documentation label Sep 16, 2021
@JLBegin
Copy link
Contributor Author

JLBegin commented Sep 22, 2021

Ordered for a potential production schedule

1. JONES Calculus

  • Create a JonesVector of any desired polarization state
  • Create a JonesMatrix
  • Obtain output JonesVector when multiplied with a JonesMatrix
  • Access JonesVector properties like Ex, Ey and phase.
  • Rotate a JonesMatrix
  • Access built-in polarization components (as JonesMatrix) like waveplates, polarizers and materials. [At this point a birefringent material is created for a single set wavelength, i.e. static material. See story Wavelength-sensitive]

2. STOKES Calculus

  • Create a StokesVector of any desired polarization state
  • Obtain StokesVector from a JonesVector
  • Create MuellerMatrix

3. WAVElength *

  • Create a JonesVector of any wavelength
  • Calculate the effect of a birefringent material on an arbitrary JonesVector

4. BEAM *

  • Create a group of JonesVector (or StokesVector?) with different polarization states (or depolarized) and/or wavelengths
  • Apply a JonesMatrix over a group of JonesVector (Beam)
  • Calculate DOP, etc.

5. SHOW

  • Display a Cartesian view of a polarization state
  • Display a Poincare view of a polarization state
  • Display a Beam [If you were to measure vertical and horizontal intensity, you would get...]
  • Display a partially polarized beam (electric field probability map?)

6. Optical PATH *

  • Create an optical path with an input polarization state and polarization components
  • Propagate a JonesVector or a collection (beam) through an optical path
  • Display a graph of a desired metric as a function of a desired component parameter
  • Display an optical path (probably of a few wavelengths) [But this won't be very informative before interactivity...]

7. Interactivity (PLAY) *

  • Display an interactive view of a polarization state
  • Display an interactive view of an optical path
  • GivenAnInteractiveView, allow to rotate components, change their thicknesses, birefringence, and other properties.
  • Display a 3D animation where we see how the electric field orientation evolves?

Other feature/plugin ideas

  • Scattering
  • Tissue: Create and interact (propagateThrough and backscatter) with heterogeneous birefringent materials (current Tissue API)
  • Systems: PS-OCT, polarimetry, interferometer
  • Monte-Carlo
  • Optical fibers, PMD?
  • Polarization BeamSplitter?
  • Reflections at normal incidence, transmission (beam intensity)
  • Material database with all coatings
  • Incidence angle and refraction
  • DOP, depolarization, intensity
  • Calculate dispersion ?

We could also release Display, OpticalPath and Interactivity before Pulse and Wavelength-Sensitivity stories.
*New features that no other polarization API offer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

4 participants