Skip to content

v0.3.0

Choose a tag to compare

@ichristen ichristen released this 28 Sep 20:24
· 151 commits to main since this release

New Features

Hardware Interfaces

  • Added a new interface for Meadowlark that is compatible with the different types of SDKs (HDMI, PCIe, ...). Thanks to @darikoneil , @nobias , and Anna at Meadowlark.
  • Completed the interface for Holoeye SLMs. Thanks to @mkm2 .
  • Added a USB interface for Hamamatsu SLMs. Thanks to @ninovarde .
  • Polished the Basler camera interface. Thanks to @EiseZ , @Elenamr01 , @philip-rk , and @sumiya-kuroda .
  • Some polish and improvements to the MindVision camera interface.
  • Added WOI support for the AlliedVision camera interface. Thanks to @bodokaiser .
  • Some changes to Webcam, including a woi interface and embedded sleeps which circumstantially seem to improve reliability.
  • Added remote interface where a Server can host cameras and SLMs which clients can connect to with RemoteCamera and RemoteSLM. For instance, we had a 20 MP camera that for whatever reason wasn't playing nicely with the computer with the GPU and SLMs, so this feature allows that camera to be hosted on a different computer. This feature was inspired in part by slmpy's server.
  • Made Camera and SLM explicitly abstract as a resolution to #92 .
  • Some polish to camera and SLM plots.
  • Crosshair feature for live cameras. (Also centroiding thanks to @bodokaiser ).

Other Changes

  • Modified binary to accept vectors with coordinate larger than 1, which are interpreted as instead pixel_periods for the gratings.
  • Added quadrant and bahtinov alignment masks. Thanks to @bodokaiser for suggesting quadrant.
  • Started the process of typehinting (this will continue to the rest of the package if it looks alright) and autodocing the types.
  • Fixes and upgrades to CompressedSpotHologram, including refine_offset() and refactoring of the CUDA kernels.
  • Readded a default value for .spot_integration_width_ij which is the integration size on the camera. The user should overwrite this default as needed.
  • take_tile to tile a stack of images into a grid. Faster useful alternative to and within take_plot.
  • New imaging functions image_centroids and image_std which are light wrappers for image_positions and image_variances.
  • New imaging functions image_remove_blaze, image_vortices_remove, image_reduce_wraps to help with processing numerical phase patterns (e.g. wavefront calibration results).
  • Improvements and helper functions for wavefront calibration. wavefront_calibrate_zernike_smooth provides nearest-neighbor filtering of the multipoint Zernike results to reduce noise. This should be applied intermittently throughout a calibration as desired. Future work will provide the user with a more structured interface for multipoint Zernike wavefront calibration.
  • Performance improvements to Lloyd's algorithm: previously this algorithm operated by blitting a polygon onto an image and calculating the centroid numerically (inefficient). Now the centroid of the polygon is calculated analytically.
  • Updated package citation and badges.
  • Assorted documentation.

Bugfixes

  • Fixed a bug with Thorlabs for 0.2.0+. Thanks to @calebrich .
  • Fixed a bug with PIL not being imported in SLM vendor phase upload. Thanks to @ymelul-ibec .
  • Bugfix to take which would erroneously take every other pixel on occasion.
  • Minor bugfixes with datatyping, documentation.

Pull Requests

New Contributors

Full Changelog: v0.2.1...v0.3.0