nannou_laser Documentation

A cross-platform laser DAC API featuring detection, streaming and frame optimisation in Rust.

20 stars Rust Rust 1 file ยท ~788 tokens
RAW Doc

Technical Documentation: nannou-org/nannou_laser

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`README.md`)

NOTICE: nannou_laser has been moved [here](https://github.com/nannou-org/nannou/tree/master/nannou_laser).


nannou_laser [](https://travis-ci.org/nannou-org/nannou_laser) [](https://crates.io/crates/nannou_laser) [](https://github.com/nannou-org/nannou_laser/blob/master/LICENSE-MIT) [](https://docs.rs/nannou_laser/)

A cross-platform laser DAC detection and streaming API.

nannou_laser aims to be a higher-level API around a variety of laser protocols
providing a unified interface for detecting DACs and streaming data to them.

Features

  • DAC Detection: Detect all DACs available to the system.
  • Specify maximum latency: Choose how much latency you wish to allow for
    achieving the right balance between stream stability and low-latency to suit
    the DAC.
  • Frame Streams: Stream data to the DAC as a sequence of 2D vector images
    without worrying about details like path optimisation, etc.
  • Raw Streams: While frame streams are convenient, sometimes direct access
    to the lower-level raw DAC stream is required (e.g. when visualising a raw
    audio stream). This can be accessed via the RawStream API.
  • Frame Optimisation: nannou_laser implements the full suite of
    optimisations covered in Accurate and Efficient Drawing Method for Laser
    Projection
    by Purkhet Abderyim et al. These include Graph optimisation, draw
    order optimisation, blanking delays and sharp angle delays. See the
    paper

    for more details.
  • Custom frame rate: Choose the rate at which you wish to present frames.
    nannou_laser will determine the number of points used to draw each frame
    using the connected DAC's points-per-second.

Note: Higher level features like pattern generators and frame graphs are out of
scope for nannou_laser, though could be built downstream. The priority for this
crate is easy laser DAC detection and high-quality, high-performance data
streams.

Supported Protocols

Currently, nannou_laser only supports the open source Ether Dream
DAC
protocol. The plan is to progressively add
support for more protocols as they are needed by ourselves and users throughout
the lifetime of the project.

License

Licensed under either of

at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.


--- METRICS ---