Compare commits
No commits in common. "67e1d52a592a80ebff936170ee116a37dc0d7569" and "ecf7d0381de75a1cfb21ec3842311b06b4367939" have entirely different histories.
67e1d52a59
...
ecf7d0381d
20
README.md
20
README.md
@ -20,14 +20,6 @@ LJ has 5 main components :
|
|||||||
|
|
||||||
Important : for best performance LJ is meant to run in a dedicated computer especially with multiple lasers and highly multitasked load : if you watch video, use live webcam face recognition, webui simulator,... and run LJ on the same computer, well you need a bunch of cores. If you don't, spread the load : you can use webui on a tablet, the livecam on a phone, run pointlists generators on another computer,...
|
Important : for best performance LJ is meant to run in a dedicated computer especially with multiple lasers and highly multitasked load : if you watch video, use live webcam face recognition, webui simulator,... and run LJ on the same computer, well you need a bunch of cores. If you don't, spread the load : you can use webui on a tablet, the livecam on a phone, run pointlists generators on another computer,...
|
||||||
|
|
||||||
#
|
|
||||||
# Requirements
|
|
||||||
#
|
|
||||||
|
|
||||||
- Our old thinkpad with i5 (2.6 Ghz, 2 cores, 4 threads) works really fine if you run laser only related tasks.
|
|
||||||
- Etherdream DAC/ILDA laser. But you can develop your generators without actual lasers thanks to simu page.
|
|
||||||
- Wired network. Only the web GUI can be on wifi.
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Features among many others.
|
# Features among many others.
|
||||||
#
|
#
|
||||||
@ -303,19 +295,17 @@ Our "always working solution", as we regularly move our gear for different venue
|
|||||||
- Again, even if etherdreams are 100 Mbits, we use *gigabits* gear.
|
- Again, even if etherdreams are 100 Mbits, we use *gigabits* gear.
|
||||||
|
|
||||||
|
|
||||||
By default LJ listen on all network interfaces (0.0.0.0) :
|
By default LJ uses on 127.0.0.1 (localhost) :
|
||||||
|
|
||||||
|
- A websocket on port 9001 for WebUI interaction.
|
||||||
- The redis server on port 6379 ('ljayserverip').
|
- The redis server on port 6379 ('ljayserverip').
|
||||||
- An OSC server on port 8002 for remote control via OSC and plugins.
|
- An OSC server on port 8002 for remote control via OSC and plugins.
|
||||||
- Some OSC clients defined in LJ.conf to forward commands to defined plugins.
|
- Some OSC clients defined in LJ.conf to forward commands to defined plugins.
|
||||||
|
|
||||||
Obviously WebUI pages needs your LJ computer IP to connect to (websocket on port 9001).
|
|
||||||
|
|
||||||
You need to update LJ.conf to your network/etherdreams IPs (using configure script) and be sure to check command arguments : python3 main.py --help
|
|
||||||
|
|
||||||
The need for a dedicated computer to act as "laser server" usually depends on how many lasers you want to control and your main computer load. If you seen flickering with small point lists, try the dedicated computer idea and/or stop non laser activities or cpu intensive task like face tracking. WebUI can be open on another computer/tablet/phone.
|
|
||||||
|
|
||||||
|
You need to update LJ.conf to your network/etherdreams IPs and be sure to check command arguments : python3 main.py --help
|
||||||
|
|
||||||
|
The need for a dedicated computer to act as "laser server" usually depends on how many lasers you want to control and your main computer load. If you seen flickering with small point lists, try the dedicated computer idea and/or stop process interfering like redis monitoring,...
|
||||||
|
|
||||||
#
|
#
|
||||||
# Glitch art
|
# Glitch art
|
||||||
@ -401,7 +391,7 @@ python3 talk3.py -i etherdreamIP
|
|||||||
|
|
||||||
- Switch to simu page. If you don't see anything : check redis server or your points in redis doesn't respect pointlist formatting (see command reference).
|
- Switch to simu page. If you don't see anything : check redis server or your points in redis doesn't respect pointlist formatting (see command reference).
|
||||||
|
|
||||||
- If talk3 works but you don't see your points : click on the Grid icon in Align page. This will override your pointlist and display squares. If Grid works : recomputed points by tracers are "bad" with given values in LJ.conf.
|
- If talk3 works but you don't see your points : click on the Grid icon in Align page. This will override your pointlist and display squares. If Grid works : recomputed points by tracers are bad with given values in LJ.conf.
|
||||||
|
|
||||||
"Bad points" ?
|
"Bad points" ?
|
||||||
|
|
||||||
|
4
main.py
4
main.py
@ -264,8 +264,8 @@ def osc_thread():
|
|||||||
# last number of points sent to etherdream buffer
|
# last number of points sent to etherdream buffer
|
||||||
sendWSall("/points/" + str(laserid) + " " + str(r.get('/cap/'+str(laserid)).decode('ascii')))
|
sendWSall("/points/" + str(laserid) + " " + str(r.get('/cap/'+str(laserid)).decode('ascii')))
|
||||||
|
|
||||||
#print("Sending simu frame from",'/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser))
|
#print "Sending simu frame from",'/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser)
|
||||||
#print(r.get('/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser)))
|
#print r.get('/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser))
|
||||||
sendWSall("/simul" +" "+ str(r.get('/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser)).decode('ascii')))
|
sendWSall("/simul" +" "+ str(r.get('/pl/'+str(gstt.SceneNumber)+'/'+str(gstt.Laser)).decode('ascii')))
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,64 +143,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--
|
|
||||||
Scene choice Rack
|
|
||||||
-->
|
|
||||||
<div class="content">
|
|
||||||
<div class="Settingrid">
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>Scene</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="webaudiobut" align="center" style="width: 83px;">
|
|
||||||
<button type="button" class="navled" style="border: 1px solid #002020; text-align: middle;" onclick="onSubmit(this.id)" id="scene/0/start 1" >
|
|
||||||
0
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="webaudiobut" align="center" style="width: 83px;">
|
|
||||||
<button type="button" class="navled" style="border: 1px solid #002020; text-align: middle;" onclick="onSubmit(this.id)" id="scene/1/start 1" >
|
|
||||||
1
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="webaudiobut" align="center" style="width: 83px;">
|
|
||||||
<button type="button" class="navled" style="border: 1px solid #002020; text-align: middle;" onclick="onSubmit(this.id)" id="scene/2/start 1" >
|
|
||||||
2
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="webaudiobut" align="center" style="width: 83px;">
|
|
||||||
<button type="button" class="navled" style="border: 1px solid #002020; text-align: middle;" onclick="onSubmit(this.id)" id="scene/3/start 1" >
|
|
||||||
3
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
<div></div>
|
|
||||||
<div></div>
|
|
||||||
<div> </div>
|
|
||||||
<div></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Settings Rack
|
Settings Rack
|
||||||
|
-->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="Settingrid">
|
<div class="Settingrid">
|
||||||
|
|
||||||
@ -272,7 +218,7 @@
|
|||||||
<div></div>
|
<div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
Loading…
Reference in New Issue
Block a user