A graphics engine for laser projectors. (unfinished / work in progress)
This project aims to support runtime interactive laser projection.
I'm interested in finding collaborators for this project. Find my email and contact me!
Keywords: laser projector, projection, lasers, scanning, DAC, EtherDream, Ether Dream.
- DAC Support
- Ether Dream -- working (incomplete, inefficient)
- ...
- Point Streaming
- Frame Streams (frames contain point paths and can be replayed until a new frame is ready) -- working (incomplete, inefficient, buggy)
- Raw Point Streams -- no need currently; going to defer this for later
- 2D Graphics Engine / Pipeline
- Matrix Stack and Transforms -- mostly implemented, but awful code
- Clipping -- not yet started
- ...
- 3D Graphics Engine / Pipeline -- not yet started
- Vetorization
- Backface culling
- Clipping
- View frustum
- ...
- Projection Features -- Not yet started
- Multi-Dac projection
- Projection Control
- Projection Boundaries
- Projection Resizing
- Matrix Projection Mapping
- Spherical and/or Polygon Projection Mapping
- Algorithmically Optimized Realtime Streaming -- not yet started
- Dynamic Tracking (object to object)
- Topological Path Optimization (TSP, etc.)
- Dynamic Blanking
- Bindings / Scripting -- not yet started, may elect not to do
- Python bindings
- Lua scripting
See lasers.io for videos of my laser projection work.
- Laser Asteroids, my first Python laser projector game
- Laser Testbed, my earliest laser experiments in Python including interactive animations, OpenCV, Graffiti Markup Language, and more.
- Laser Client, simple laser shows that cycle. I actually wrote this to run "advertisements" or text displays. Some parts of the code are based on "Laser Testbed", and much remains to be backported.