<li><strong>"Plugins"</strong> : points generators (to one or more lasers). Lot examples comes with LJ : planetarium, 3D anaglyph animations,... See plugins <ahref="plugins.html"id="contact-link"class="skel-layers-ignoreHref">page</a>.</li>
<li>A <strong>"tracer"</strong> per etherdream/laser : take its given point list, correct geometry, recompute in laser controller coordinates, send it and report the etherdream status to the "manager". </li>
<li>A <strong>"manager"</strong> that talk to all tracers (which point list to draw, new geometry correction, setup parameters,...), handle I/Os (UI functions, OSC commands,...) and manage plugins (launch, checks,...)</li>
<li>A <strong>web GUI</strong> in html, css, and vanilla js. No html server or js framework here : it's complex enough. This GUI has a simulator, but one can used a builtin python simulator (pysimu) or an included etherdream/laser emulator ("visualiser" from nannou) to work without physical lasers !!</li>
<li>A <strong>network available database</strong> (redis) as backbone. "Plugins" send directly their points lists to redis and each "tracer" is instructed to get one of the available points list in redis.</li>
<spanstyle="font-size: 0.9em;">Add polylines to layers</span><br/><br/>
<ul>
<li>
<strong>Sprites</strong> : "Polyline" (i.e : 4 closed points to draw a square) or "rPolyline" (with built in parameters to resize, rotate, translate,...).</li>
<li>
<strong>"Layers"</strong> : Store multiple Polylines or rPolylines. No layers limits. "Layer" = "Point List".</li>
<li>
<strong>"Destinations"</strong> : To what Scene/laser send a given layer. One layer can have multiple destinations (to duplicate content on different lasers). Destinations can be <strong>fixed</strong> or <strong>relative</strong> (like rPolyline with builtin resize, rotations,...).
<spanstyle="font-size: 0.9em;">Virtual scenes with different or same layers.</span><br/><br/>
<ul>
<li>
Up to 4 <strong>Virtual scenes</strong> for up to 4 lasers. You choose at anytime wich scene is actually drawn by lasers. Look, scene 3 uses the exact same man on one layer, but this layer is registered on 4 "relative destinations"(with different builtin resize parameter, one destination per laser).
</li>
<li>
<strong>"Objects"</strong> : Store parameters for a category. Imagine in a game suddenly all NPC turn to red. A<strong>"FixedObject"</strong>store parameters used in polylines, a<strong>"RelativeObject"</strong> store also additionnal parameters like rPolylines parameters.<br/>