[wip] Revamps in progress
This commit is contained in:
parent
d37efeb0fa
commit
499bde0d84
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
A basic exporter
|
A basic exporter
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
A basic exporter
|
A basic exporter
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
A basic exporter
|
A basic exporter
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
Attempts to create a valid 3D-glasses structure
|
Attempts to create a valid 3D-glasses structure
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
A simple effect : cycle colors
|
A simple effect : cycle colors
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
A simple effect : mirror a quadrant of the input
|
A simple effect : mirror a quadrant of the input
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by Sam Neurohack
|
by Sam Neurohack
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ A complex effect that depends on redis keys for audio analysis
|
|||||||
see https://git.interhacker.space/teamlase/redilysis for more informations
|
see https://git.interhacker.space/teamlase/redilysis for more informations
|
||||||
about the redilysis project
|
about the redilysis project
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ A complex effect that depends on redis keys for audio analysis
|
|||||||
see https://git.interhacker.space/teamlase/redilysis for more informations
|
see https://git.interhacker.space/teamlase/redilysis for more informations
|
||||||
about the redilysis project
|
about the redilysis project
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
2407
generators/159.gml
2407
generators/159.gml
File diff suppressed because it is too large
Load Diff
2791
generators/160.gml
2791
generators/160.gml
File diff suppressed because it is too large
Load Diff
17
generators/README.md
Normal file
17
generators/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Generators
|
||||||
|
|
||||||
|
## Turtle
|
||||||
|
|
||||||
|
```
|
||||||
|
# turtle-example.py
|
||||||
|
from turtle import *
|
||||||
|
|
||||||
|
pencolor((255,0,0))
|
||||||
|
|
||||||
|
for i in range(4):
|
||||||
|
forward(100)
|
||||||
|
right(90)
|
||||||
|
|
||||||
|
done()
|
||||||
|
#EOF
|
||||||
|
```
|
@ -8,46 +8,40 @@
|
|||||||
Send only black points
|
Send only black points
|
||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
Use it to test your filters and outputs
|
Use it to stop showing anything i.e. visual silence
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import time
|
|
||||||
import argparse
|
|
||||||
import sys
|
import sys
|
||||||
name="generator::dummy"
|
from os import path, getcwd
|
||||||
|
abspath, filename = path.split(path.realpath(__file__ ))
|
||||||
|
sys.path.insert(0, path.join(abspath,"../lib"))
|
||||||
def debug(*args, **kwargs):
|
from clitools import Clitools
|
||||||
if( verbose == False ):
|
|
||||||
return
|
|
||||||
print(*args, file=sys.stderr, **kwargs)
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
argsparser = argparse.ArgumentParser(description="dummy generator")
|
argsparser = argparse.ArgumentParser(description="dummy generator")
|
||||||
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
|
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
|
||||||
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
|
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
|
||||||
args = argsparser.parse_args()
|
args = argsparser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
fps = args.fps
|
fps = args.fps
|
||||||
verbose = args.verbose
|
verbose = args.verbose
|
||||||
optimal_looptime = 1 / fps
|
looptime = 1 / fps
|
||||||
debug(name+" optimal looptime "+str(optimal_looptime))
|
shape = [[400,400,0],[400,400,4],[400,400,0]]
|
||||||
|
name = "generator::dummy"
|
||||||
|
cli = Clitools({
|
||||||
shape = [[400,400,0],[400,400,64],[400,400,0]]
|
"verbose" : verbose,
|
||||||
|
"looptime" : looptime,
|
||||||
|
"name" : name
|
||||||
|
})
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
start = time.time()
|
cli.startFrame()
|
||||||
print(shape, flush=True);
|
print(shape, flush=True);
|
||||||
looptime = time.time() - start
|
cli.endFrame()
|
||||||
if( looptime < optimal_looptime ):
|
|
||||||
time.sleep( optimal_looptime - looptime)
|
|
||||||
debug(name+" micro sleep:"+str( optimal_looptime - looptime))
|
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,54 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xml:space="preserve"
|
|
||||||
height="53"
|
|
||||||
width="299.96875"
|
|
||||||
version="1.1"
|
|
||||||
id="svg2"
|
|
||||||
inkscape:version="0.48.0 r9654"
|
|
||||||
sodipodi:docname="brmlab1.svg"
|
|
||||||
inkscape:export-filename="/home/prusnak/work/scm/laserdisplay/svglaser/templates/template3.svg.png"
|
|
||||||
inkscape:export-xdpi="200"
|
|
||||||
inkscape:export-ydpi="200"><defs
|
|
||||||
id="defs2988" /><metadata
|
|
||||||
id="metadata78"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
objecttolerance="10"
|
|
||||||
gridtolerance="10"
|
|
||||||
guidetolerance="10"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-width="1024"
|
|
||||||
inkscape:window-height="689"
|
|
||||||
id="namedview76"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="-2.5851173"
|
|
||||||
inkscape:cy="-55.600814"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="25"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg2"
|
|
||||||
inkscape:snap-bbox="true"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0" />
|
|
||||||
<path
|
|
||||||
id="path20"
|
|
||||||
style="fill:none;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="m 137.17375,22.4425 c 0,-1.815 5.24,-4.345 13.73375,-4.345 3.94875,0 7.73,0.59 10.37875,1.62 2.085,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0188,30.05375 0.0188,30.05375 l 5.87245,-0.004 c 0,-10e-4 -0.0175,-20.97875 -0.0175,-30.05 0,-2.035 -0.9175,-5.805 -7.0725,-8.2 -3.35125,-1.3025 -7.7925,-2.01875 -12.50875,-2.01875 -4.71625,0 -9.15875,0.71625 -12.50875,2.01875 -1.7975,0.7 -3.16375,1.50625 -4.175,2.3625 -1.01,-0.8475 -2.3675,-1.66875 -4.15,-2.3625 -3.34875,-1.3025 -7.79125,-2.01875 -12.50875,-2.01875 -4.715,0 -9.15625,0.71625 -12.50625,2.01875 -6.15625,2.395 -7.075,6.165 -7.075,8.2 0,9.8775 -0.0163,30.04875 -0.0163,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.815 5.215,-4.345 13.70625,-4.345 3.94875,0 7.73125,0.59 10.38,1.62 2.08375,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0175,30.0575 0.0175,30.0575 l 5.87375,-0.005 c 0,0 0.009,-20.98125 0.009,-30.0525 M 93.61125,18.3922 c -1.0075,-1.47125 -2.7675,-2.98 -5.79125,-4.15625 -3.35,-1.3025 -7.79375,-2.02 -12.50875,-2.02 -4.715,0 -9.15875,0.7175 -12.5075,2.02 C 56.64875,16.63 55.73,20.4 55.73,22.435 c 0,9.87875 -0.0175,30.04875 -0.0175,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.81375 5.21375,-4.345 13.7075,-4.345 3.9475,0 7.73,0.59 10.37875,1.62125 1.58875,0.6175 2.6875,1.355 3.1225,2.0675 l 4.79875,-3.38625 z m 86.2125,34.1 5.874,0 0,-52.0075 -5.874,0 0,52.0075 z m 24.45,-33.325 c -0.89625,0 -1.91375,1.24375 -2.725,3.32875 -1.03,2.64875 -1.62125,6.43125 -1.62125,10.37875 0,8.4925 2.53125,13.7075 4.34625,13.7075 7.19625,0 24.94,0.0225 31.975,0.0313 l 0,-27.44625 -31.975,0 z m 37.84875,33.32875 -2.94,-0.004 c 0,0 -25.83625,-0.035 -34.90875,-0.035 -2.035,0 -5.80625,-0.91875 -8.2,-7.07375 -1.3025,-3.35125 -2.02,-7.7925 -2.02,-12.50875 0,-4.715 0.7175,-9.1575 2.02,-12.5075 2.39375,-6.155 6.165,-7.075 8.2,-7.075 l 34.9125,0 2.91979,0.006 0.0165,39.198 z m 49.85125,-9.24125 c -0.80875,2.085 -1.82875,3.32875 -2.7225,3.32875 -7.1975,0 -24.94125,0.0225 -31.97625,0.0313 l 0,-27.4475 31.97625,0.001 c 1.81375,0 4.345,5.215 4.345,13.7075 0,3.94625 -0.5925,7.73 -1.6225,10.37875 M 297.45,20.3687 c -2.39375,-6.155 -6.165,-7.075 -8.19875,-7.075 l -31.97625,-0.002 0,-12.80625 -5.87375,0 0,52.0125 2.94125,-0.004 c 0,0 25.83625,-0.0362 34.90875,-0.0362 2.03375,0 5.805,-0.9175 8.19875,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075 M 41.07375,43.255 c -0.80875,2.085 -1.82875,3.32875 -2.725,3.32875 -7.195,0 -24.94,0.0225 -31.97375,0.0313 l 0,-27.4475 31.97375,0.001 c 1.815,0 4.34625,5.215 4.34625,13.7075 0,3.94625 -0.5925,7.73 -1.62125,10.37875 m 5.475,-22.88625 c -2.39375,-6.155 -6.16375,-7.075 -8.2,-7.075 l -31.97375,-0.002 0,-12.80625 -5.875,0 0,52.0125 2.9425,-0.004 c 0,0 25.835,-0.0362 34.90625,-0.0362 2.03625,0 5.80625,-0.9175 8.2,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.6 KiB |
@ -1,53 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xml:space="preserve"
|
|
||||||
height="78.96875"
|
|
||||||
width="78.96875"
|
|
||||||
version="1.1"
|
|
||||||
id="svg2"
|
|
||||||
inkscape:version="0.48.0 r9654"
|
|
||||||
sodipodi:docname="brmlab2.svg"
|
|
||||||
inkscape:export-filename="/home/prusnak/work/scm/laserdisplay/svglaser/templates/template4.svg.png"
|
|
||||||
inkscape:export-xdpi="200"
|
|
||||||
inkscape:export-ydpi="200"><defs
|
|
||||||
id="defs2994" /><metadata
|
|
||||||
id="metadata78"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
objecttolerance="10"
|
|
||||||
gridtolerance="10"
|
|
||||||
guidetolerance="10"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-width="1024"
|
|
||||||
inkscape:window-height="689"
|
|
||||||
id="namedview76"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="25.043829"
|
|
||||||
inkscape:cy="5.6960585"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="25"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg2"
|
|
||||||
inkscape:snap-bbox="true"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0" />
|
|
||||||
<path
|
|
||||||
id="path3237"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:1"
|
|
||||||
d="m 20.26276,45.39193 c -1.816875,0 -3.293437,-1.4775 -3.293437,-3.29344 0,-1.81593 1.476562,-3.29437 3.293437,-3.29437 1.816875,0 3.294375,1.47844 3.294375,3.29437 0,1.81594 -1.4775,3.29344 -3.294375,3.29344 M 39.480011,0.50605 C 17.985519,0.50605 0.5,17.99425 0.5,39.48874 c 0,10.41205 4.0546519,20.20071 11.416975,27.56304 7.363668,7.36232 17.15099,11.41697 27.563036,11.41697 21.494491,0 38.982697,-17.48686 38.982697,-38.98001 C 78.461408,17.99291 60.974502,0.50605 39.480011,0.50605 m -0.09362,68.75171 c -5.945327,0 -11.681286,-1.74473 -16.588197,-5.04528 l -0.998709,-0.67022 0.765276,-0.92531 c 1.473999,-1.78685 1.350062,-4.36785 -0.289986,-6.0079 -0.844692,-0.84469 -1.96854,-1.31035 -3.163381,-1.31035 -1.037214,0 -2.046752,0.36218 -2.843313,1.01916 l -0.926513,0.76407 -0.670218,-0.9963 C 6.757481,44.32012 8.3000651,28.49238 18.341303,18.45235 c 4.199391,-4.2018 9.490142,-7.02345 15.299501,-8.16174 l 1.179198,-0.22982 0.115514,1.19484 c 0.220197,2.30425 2.13459,4.04176 4.452076,4.04176 2.317487,0 4.23188,-1.73751 4.45328,-4.04176 l 0.115513,-1.19484 1.177996,0.22982 c 5.806952,1.13829 11.098906,3.95994 15.299501,8.15933 10.040034,10.04124 11.583822,25.87018 3.668751,37.63569 l -0.670218,0.9963 -0.92531,-0.76527 c -0.798967,-0.65698 -1.807302,-1.01796 -2.845719,-1.01796 -1.194841,0 -2.317486,0.46446 -3.163381,1.30915 -1.638845,1.64005 -1.762781,4.22225 -0.289986,6.0091 l 0.764072,0.92531 -0.996302,0.67022 c -4.90691,3.30055 -10.644073,5.04528 -16.5894,5.04528 m -7.130784,-26.72605 14.281498,0 0,-6.00112 -14.281498,0 0,6.00112 z M 24.122448,30.11568 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344 m 34.387656,15.27625 c -1.815937,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.478438,-3.29437 3.294375,-3.29437 1.816875,0 3.294375,1.47844 3.294375,3.29437 0,1.81594 -1.4775,3.29344 -3.294375,3.29344 m -26.905937,15.1875 c -1.815938,0 -3.292501,-1.4775 -3.292501,-3.29344 0,-1.81593 1.476563,-3.29437 3.292501,-3.29437 1.816875,0 3.294374,1.47844 3.294374,3.29437 0,1.81594 -1.477499,3.29344 -3.294374,3.29344 M 54.647291,30.11568 c -1.816874,0 -3.294374,-1.4775 -3.294374,-3.29344 0,-1.81593 1.4775,-3.29437 3.294374,-3.29437 1.815938,0 3.292501,1.47844 3.292501,3.29437 0,1.81594 -1.476563,3.29344 -3.292501,3.29344 m -7.474843,30.46375 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344 m -7.775,-30.46375 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344"
|
|
||||||
inkscape:connector-curvature="0" /></svg>
|
|
Before Width: | Height: | Size: 4.5 KiB |
@ -10,23 +10,22 @@ v0.1.0
|
|||||||
|
|
||||||
Use it to test your filters and outputs
|
Use it to test your filters and outputs
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import time
|
|
||||||
import argparse
|
|
||||||
import sys
|
import sys
|
||||||
|
from os import path, getcwd
|
||||||
|
abspath, filename = path.split(path.realpath(__file__ ))
|
||||||
|
sys.path.insert(0, path.join(abspath,"../lib"))
|
||||||
|
from clitools import Clitools
|
||||||
|
|
||||||
name="generator::dummy"
|
name="generator::dummy"
|
||||||
|
|
||||||
|
|
||||||
def debug(*args, **kwargs):
|
import argparse
|
||||||
if( verbose == False ):
|
|
||||||
return
|
|
||||||
print(*args, file=sys.stderr, **kwargs)
|
|
||||||
|
|
||||||
argsparser = argparse.ArgumentParser(description="dummy generator")
|
argsparser = argparse.ArgumentParser(description="dummy generator")
|
||||||
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
|
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
|
||||||
@ -37,7 +36,13 @@ args = argsparser.parse_args()
|
|||||||
fps=args.fps
|
fps=args.fps
|
||||||
verbose=args.verbose
|
verbose=args.verbose
|
||||||
optimal_looptime = 1 / fps
|
optimal_looptime = 1 / fps
|
||||||
debug(name+" optimal looptime "+str(optimal_looptime))
|
cli = Clitools({
|
||||||
|
"verbose" : verbose,
|
||||||
|
"looptime" : looptime,
|
||||||
|
"name" : name
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
color = 16777215
|
color = 16777215
|
||||||
square = [[100.0, 100.0, color], [100.0, 500.0, color], [500.0, 500.0, color], [500.0, 100.0, color], [100.0, 100.0, color]]
|
square = [[100.0, 100.0, color], [100.0, 500.0, color], [500.0, 500.0, color], [500.0, 100.0, color], [100.0, 100.0, color]]
|
||||||
line =[]
|
line =[]
|
||||||
@ -75,11 +80,6 @@ shape = mire
|
|||||||
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
start = time.time()
|
cli.startFrame()
|
||||||
print(shape, flush=True);
|
print(shape, flush=True);
|
||||||
looptime = time.time() - start
|
cli.endFrame()
|
||||||
if( looptime < optimal_looptime ):
|
|
||||||
time.sleep( optimal_looptime - looptime)
|
|
||||||
debug(name+" micro sleep:"+str( optimal_looptime - looptime))
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,182 +0,0 @@
|
|||||||
#!/usr/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# -*- mode: Python -*-
|
|
||||||
|
|
||||||
|
|
||||||
'''
|
|
||||||
|
|
||||||
example, based on custom
|
|
||||||
v0.1.0
|
|
||||||
|
|
||||||
A copy of square.py you can modify to code your plugin.
|
|
||||||
custom1 has necessary hooks in LJ.conf, webui and so on.
|
|
||||||
|
|
||||||
|
|
||||||
LICENCE : CC
|
|
||||||
|
|
||||||
by Sam Neurohack
|
|
||||||
|
|
||||||
|
|
||||||
'''
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
ljpath = r'%s' % os.getcwd().replace('\\','/')
|
|
||||||
|
|
||||||
# import from shell
|
|
||||||
sys.path.append(ljpath +'/../../libs/')
|
|
||||||
|
|
||||||
#import from LJ
|
|
||||||
sys.path.append(ljpath +'/libs/')
|
|
||||||
print(ljpath+'/../libs/')
|
|
||||||
|
|
||||||
import lj23layers as lj
|
|
||||||
|
|
||||||
sys.path.append('../libs')
|
|
||||||
import math
|
|
||||||
import time
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
|
|
||||||
print ("")
|
|
||||||
print ("Arguments parsing if needed...")
|
|
||||||
argsparser = argparse.ArgumentParser(description="Custom1 example for LJ")
|
|
||||||
argsparser.add_argument("-v","--verbose",help="Verbosity level (0 by default)",default=0,type=int)
|
|
||||||
args = argsparser.parse_args()
|
|
||||||
|
|
||||||
# Useful variables init.
|
|
||||||
white = lj.rgb2int(255,255,255)
|
|
||||||
red = lj.rgb2int(255,0,0)
|
|
||||||
blue = lj.rgb2int(0,0,255)
|
|
||||||
green = lj.rgb2int(0,255,0)
|
|
||||||
|
|
||||||
width = 800
|
|
||||||
height = 600
|
|
||||||
centerX = width / 2
|
|
||||||
centerY = height / 2
|
|
||||||
|
|
||||||
# 3D to 2D projection parameters
|
|
||||||
fov = 256
|
|
||||||
viewer_distance = 2.2
|
|
||||||
|
|
||||||
# Anaglyph computation parameters for right and left eyes.
|
|
||||||
# algorythm come from anaglyph geo maps
|
|
||||||
eye_spacing = 100
|
|
||||||
nadir = 0.5
|
|
||||||
observer_altitude = 30000
|
|
||||||
map_layerane_altitude = 0.0
|
|
||||||
|
|
||||||
# square coordinates : vertices that compose each of the square.
|
|
||||||
vertices = [
|
|
||||||
(- 1.0, 1.0,- 1.0),
|
|
||||||
( 1.0, 1.0,- 1.0),
|
|
||||||
( 1.0,- 1.0,- 1.0),
|
|
||||||
(- 1.0,- 1.0,- 1.0)
|
|
||||||
]
|
|
||||||
|
|
||||||
face = [0,1,2,3]
|
|
||||||
|
|
||||||
#
|
|
||||||
# LJ inits
|
|
||||||
#
|
|
||||||
|
|
||||||
layer = 0
|
|
||||||
|
|
||||||
# Define properties for each drawn "element" : name, intensity, active, xy, color, red, green, blue, layer , closed
|
|
||||||
Leftsquare = lj.FixedObject('Leftsquare', True, 255, [], red, 255, 0, 0, layer , True)
|
|
||||||
Rightsquare = lj.FixedObject('Rightsquare', True, 255, [], green, 0, 255, 0, layer , True)
|
|
||||||
|
|
||||||
# 'Destination' for given layer : name, number, active, layer , scene, laser
|
|
||||||
Dest0 = lj.DestObject('0', 0, True, 0 , 0, 0) # Dest0 will send layer 0 points to scene 0, laser 0
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Anaglyph computation : different X coordinate for each eye
|
|
||||||
#
|
|
||||||
|
|
||||||
def LeftShift(elevation):
|
|
||||||
|
|
||||||
diff = elevation - map_layerane_altitude
|
|
||||||
return nadir * eye_spacing * diff / (observer_altitude - elevation)
|
|
||||||
|
|
||||||
def RightShift(elevation):
|
|
||||||
|
|
||||||
diff = map_layerane_altitude - elevation
|
|
||||||
return (1 - nadir) * eye_spacing * diff / (observer_altitude - elevation)
|
|
||||||
|
|
||||||
|
|
||||||
def Proj(x,y,z,angleX,angleY,angleZ):
|
|
||||||
|
|
||||||
rad = angleX * math.pi / 180
|
|
||||||
cosa = math.cos(rad)
|
|
||||||
sina = math.sin(rad)
|
|
||||||
y2 = y
|
|
||||||
y = y2 * cosa - z * sina
|
|
||||||
z = y2 * sina + z * cosa
|
|
||||||
|
|
||||||
rad = angleY * math.pi / 180
|
|
||||||
cosa = math.cos(rad)
|
|
||||||
sina = math.sin(rad)
|
|
||||||
z2 = z
|
|
||||||
z = z2 * cosa - x * sina
|
|
||||||
x = z2 * sina + x * cosa
|
|
||||||
|
|
||||||
rad = angleZ * math.pi / 180
|
|
||||||
cosa = math.cos(rad)
|
|
||||||
sina = math.sin(rad)
|
|
||||||
x2 = x
|
|
||||||
x = x2 * cosa - y * sina
|
|
||||||
y = x2 * sina + y * cosa
|
|
||||||
|
|
||||||
|
|
||||||
""" Transforms this 3D point to 2D using a perspective projection. """
|
|
||||||
factor = fov / (viewer_distance + z)
|
|
||||||
x = x * factor + centerX
|
|
||||||
y = - y * factor + centerY
|
|
||||||
return (x,y)
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Main
|
|
||||||
#
|
|
||||||
|
|
||||||
def Run():
|
|
||||||
Left = []
|
|
||||||
Right = []
|
|
||||||
counter =0
|
|
||||||
try:
|
|
||||||
while True:
|
|
||||||
Left = []
|
|
||||||
Right = []
|
|
||||||
x = vertices[0][0]
|
|
||||||
y = vertices[0][1]
|
|
||||||
z = vertices[0][2]
|
|
||||||
|
|
||||||
# lj tracers will "move" the laser to this first point in black, then move to the next with second point color.
|
|
||||||
# for more accuracy in dac emulator, repeat this first point.
|
|
||||||
|
|
||||||
# generate all points in square.
|
|
||||||
for point in face:
|
|
||||||
x = vertices[point][0]
|
|
||||||
y = vertices[point][1]
|
|
||||||
z = vertices[point][2]
|
|
||||||
left.append(proj(x+leftshift(z*25),y,z,0,counter,0))
|
|
||||||
right.append(proj(x+rightshift(z*25),y,z,0,counter,0))
|
|
||||||
|
|
||||||
|
|
||||||
lj.polylineonecolor(left, c = leftsquare.color , layer = leftsquare.layer, closed = leftsquare.closed)
|
|
||||||
lj.polylineonecolor(right, c = rightsquare.color , layer = rightsquare.layer, closed = rightsquare.closed)
|
|
||||||
lj.drawdests()
|
|
||||||
time.sleep(0.1)
|
|
||||||
counter += 1
|
|
||||||
if counter > 360:
|
|
||||||
counter = 0
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Gently stop on CTRL C
|
|
||||||
finally:
|
|
||||||
lj.ClosePlugin()
|
|
||||||
|
|
||||||
|
|
||||||
Run()
|
|
@ -14,7 +14,7 @@ Support the gml spec="1.0 (minimum)"
|
|||||||
and header/client/name
|
and header/client/name
|
||||||
and maybe one day drawing/brush/color
|
and maybe one day drawing/brush/color
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
by cocoa and Sam Neurohack
|
by cocoa and Sam Neurohack
|
||||||
|
|
||||||
Heavy use of : https://github.com/kgn/pygml
|
Heavy use of : https://github.com/kgn/pygml
|
||||||
|
@ -12,7 +12,7 @@ output CLI in CLI points format : [x,y,color]
|
|||||||
|
|
||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by Cocoa, Sam Neurohack
|
by Cocoa, Sam Neurohack
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ v0.1.0
|
|||||||
Use it to create feedback loops by writing to the same frame
|
Use it to create feedback loops by writing to the same frame
|
||||||
or to copy the frame from someone else
|
or to copy the frame from someone else
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ fromild
|
|||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
Read/display once an .ild animation file and quit ??
|
Read/display once an .ild animation file and quit ??
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa and Sam Neurohack
|
by cocoa and Sam Neurohack
|
||||||
|
|
||||||
|
@ -12,19 +12,24 @@ END POINT Format : (x,y,color)
|
|||||||
|
|
||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by Cocoa, Sam Neurohack
|
by Cocoa, Sam Neurohack
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from OSC3 import OSCServer, OSCClient, OSCMessage
|
|
||||||
import sys
|
import sys
|
||||||
|
from os import path, getcwd
|
||||||
|
abspath, filename = path.split(path.realpath(__file__ ))
|
||||||
|
sys.path.insert(0, path.join(abspath,"../lib"))
|
||||||
|
from clitools import Clitools
|
||||||
|
|
||||||
|
from OSC3 import OSCServer, OSCClient, OSCMessage
|
||||||
from time import sleep
|
from time import sleep
|
||||||
import argparse
|
|
||||||
import ast
|
import ast
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
|
import argparse
|
||||||
argsparser = argparse.ArgumentParser(description="osc2redis generator")
|
argsparser = argparse.ArgumentParser(description="osc2redis generator")
|
||||||
argsparser.add_argument("-i","--ip",help="IP to bind to (0.0.0.0 by default)",default="0.0.0.0",type=str)
|
argsparser.add_argument("-i","--ip",help="IP to bind to (0.0.0.0 by default)",default="0.0.0.0",type=str)
|
||||||
argsparser.add_argument("-p","--port",help="OSC port to bind to (9002 by default)",default=9002,type=str)
|
argsparser.add_argument("-p","--port",help="OSC port to bind to (9002 by default)",default=9002,type=str)
|
||||||
|
@ -13,7 +13,7 @@ Add a line on every frame and scroll
|
|||||||
see https://git.interhacker.space/teamlaser/redilysis for more informations
|
see https://git.interhacker.space/teamlaser/redilysis for more informations
|
||||||
about the redilysis project
|
about the redilysis project
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
v0.1.0
|
v0.1.0
|
||||||
|
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Font list :
|
|||||||
'markers', 'mathlow', 'mathupp', 'meteorology', 'music', 'rowmand', 'rowmans', 'rowmant',
|
'markers', 'mathlow', 'mathupp', 'meteorology', 'music', 'rowmand', 'rowmans', 'rowmant',
|
||||||
'scriptc', 'scripts', 'symbolic', 'timesg', 'timesi', 'timesib', 'timesr', 'timesrb'
|
'scriptc', 'scripts', 'symbolic', 'timesg', 'timesi', 'timesib', 'timesr', 'timesrb'
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa and Sam Neurohack
|
by cocoa and Sam Neurohack
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ v0.1.0
|
|||||||
|
|
||||||
Get all points fom redis /trckr/frame/WSclientID points
|
Get all points fom redis /trckr/frame/WSclientID points
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa and Sam Neurohack
|
by cocoa and Sam Neurohack
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ v0.1.0
|
|||||||
|
|
||||||
Use it to test your filters and outputs
|
Use it to test your filters and outputs
|
||||||
|
|
||||||
LICENCE : CC
|
Licensed under GNU GPLv3
|
||||||
|
|
||||||
by cocoa
|
by cocoa
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Turtle library laser emulation
|
|||||||
v0.1b
|
v0.1b
|
||||||
|
|
||||||
by Sam Neurohack
|
by Sam Neurohack
|
||||||
from /team/laser
|
from proton photon
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# -*- mode: Python -*-
|
|
||||||
|
|
||||||
'''
|
|
||||||
|
|
||||||
Example using experimental Laserized Turtle graphics library
|
|
||||||
|
|
||||||
'''
|
|
||||||
|
|
||||||
from turtle import *
|
|
||||||
|
|
||||||
pencolor((255,0,0))
|
|
||||||
|
|
||||||
for i in range(4):
|
|
||||||
forward(100)
|
|
||||||
right(90)
|
|
||||||
|
|
||||||
done()
|
|
32
lib/clitools.py
Normal file
32
lib/clitools.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
from __future__ import print_function
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
class Clitools:
|
||||||
|
|
||||||
|
def __init__(self,*initial_data, **kwargs):
|
||||||
|
for dictionary in initial_data:
|
||||||
|
for key in dictionary:
|
||||||
|
setattr(self, key, dictionary[key])
|
||||||
|
for key in kwargs:
|
||||||
|
setattr(self, key, kwargs[key])
|
||||||
|
|
||||||
|
if not hasattr(self, 'name'):
|
||||||
|
self.name = "undefined"
|
||||||
|
def debug(self, *args, **kwargs):
|
||||||
|
if( self.verbose == False ):
|
||||||
|
return
|
||||||
|
print(*args, file=sys.stderr, **kwargs)
|
||||||
|
|
||||||
|
def startFrame(self):
|
||||||
|
self.timer = time.time()
|
||||||
|
|
||||||
|
def endFrame(self):
|
||||||
|
if not self.looptime :
|
||||||
|
self.debug( "No looptime provided at init.")
|
||||||
|
return
|
||||||
|
elapsed = time.time() - self.timer
|
||||||
|
if( elapsed < self.looptime ):
|
||||||
|
delta = self.looptime - elapsed
|
||||||
|
time.sleep( delta )
|
||||||
|
self.debug(self.name + " micro sleep:" + str( delta ))
|
@ -9,7 +9,7 @@ import tty,termios
|
|||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import runner_lib as runner
|
from lib import runner
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import re
|
import re
|
||||||
import redis
|
import redis
|
||||||
import runner_lib as runner
|
from lib import runner
|
||||||
import time
|
import time
|
||||||
|
|
||||||
novationRows = [
|
novationRows = [
|
||||||
|
Loading…
Reference in New Issue
Block a user