Skip to content
This repository has been archived by the owner on Apr 11, 2020. It is now read-only.
/ nannou_laser Public archive

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

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

nannou-org/nannou_laser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTICE: nannou_laser has been moved here.


nannou_laser Build Status Crates.io Crates.io docs.rs

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.

About

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

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages