badbadc0ffee / LX

Core library for 3D LED lighting engines

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI

BY DOWNLOADING OR USING THE LX SOFTWARE OR ANY PART THEREOF, YOU AGREE TO THE TERMS AND CONDITIONS OF THE LX STUDIO SOFTWARE LICENSE AND DISTRIBUTION AGREEMENT.

Please note that LX is not open-source software. The license grants permission to use this software freely in non-commercial applications. Commercial use is subject to a total annual revenue limit of $25K on any and all projects associated with the software. If this licensing is obstructive to your needs or you are unclear as to whether your desired use case is compliant, contact me to discuss proprietary licensing: mark@heronarts.com


LX Overview

LX is a software library for real-time procedural animation, primarily designed for pixel-based LED lighting systems. It is the foundation of the LX Studio application.

The modular engine design contains a variety of components:

  • Generic parameter and time-based modulation APIs
  • Geometric model and matrix transformations
  • MIDI interactivity
  • Real-time audio analysis
  • Color composition and blending

Output via a variety of lighting protocols is supported, including:

LX differs from many other lighting/VJ software packages in that it is designed to support non-uniform 3D pixel layouts, rather than dense 2D screens. Whereas many applications are capable of video mapping LED pixel arrays, LX functions more like a sparse vertex shader. The rendering engine takes into account the discrete spatial position of each pixel.

GUI

A companion library, P3LX, makes it simple to embed LX in the Processing 3 environment with modular UI controls and simulation, the most typical use case. This core library is kept separate, free of any dependency on the Processing libraries or runtime.

LX Studio is a fully-featured digital lighting workstation with a rich UI for visualization and control.

Headless

LX may be run in headless mode on any Java-enabled device (such as a Raspberry Pi).

cd LX-example-headless
ant
./LXHeadless

or via maven:

mvn package
java -jar LX-example-headless/target/headless.jar

By default, the provided headless example outputs OPC formatted data via TCP on localhost:7890. This data can be viewed using the emulator that comes with openpixelcontrol as follows...

git clone git://github.com/zestyping/openpixelcontrol.git
cd openpixelcontrol
make
bin/gl_server -l layouts/freespace.json

Alternatively, you could monitor raw network output with netcat: nc -l 7890

Contact and Collaboration

Building a big cool project? I'm probably interested in hearing about it! Want to solicit some help, request new framework features, or just ask a random question? Open an issue on the project or drop me a line: mark@heronarts.com


HERON ARTS MAKES NO WARRANTY, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SOFTWARE.

Building with Maven

Install Maven for your platform. Google is your friend.

To compile, package, and make available via local Maven repository:

mvn install -pl LX

mvn install -pl LX creates the following artifacts:

in LX/target:

  1. fat jar (with dependencies): LX.jar
  2. thin jar for distribution via maven repository publishing
  3. source jar for distribution via maven repository publishing
  4. javadoc jar for distribution via maven repository publishing
  5. javadoc html files for publishing to web: apidocs

About

Core library for 3D LED lighting engines

License:Other


Languages

Language:Java 99.6%Language:CSS 0.4%Language:Shell 0.0%