Sam cfc7c70d16 missing www 2023-06-03 14:43:53 +02:00
exports missing www 2023-06-03 14:43:53 +02:00
filters [fix] exceptions for redilisys colors filter 2020-10-13 22:06:02 +02:00
generators missing www 2023-06-03 14:43:53 +02:00
.gitignore [enh] adds a command line runner for clitools 2020-10-09 18:29:28 +02:00
README.md conf template and bugfixs 2020-09-29 22:40:10 +02:00
_run.sh [enh] adds a command line runner for clitools 2020-10-09 18:29:28 +02:00
runner.py [fix] clitools runner should work 2020-10-09 18:33:32 +02:00
runner_lib.py [fix] Many fixes to the clitools runner lib 2020-10-13 22:06:02 +02:00
runner_midi.py [fix] clitools midi runner should work with novation pad 2020-10-13 22:06:02 +02:00


Chaining Lasers In Submission Tools for LJ

Alright everybody, ready for some fun? Here comes The Piping And Plumbing Your Way To The Top Show!

You're going to push so many points to this laser it will hog and cry...


The basic loop

python3 generators/dummy.py -f 2 | python3 filters/kaleidoscope.py  | python3 exports/toRedis.py -v 
 ------------------------------     ---------------------      -------------------
             \/                              \/                        \/
          Generator                       Filter                      Export

1. The Generator

Use it to produce some points in any manner, orderly or total chaos.

Don't be that boring Sinusoids bugger! Flash Maps of Dooms, Disbitnic sprites, Dismorphic HexaFonts all over the walls!

2. The Filter(s)

These babies will modify data on the wire by passing around the points and modifying them in sequence.

Want your Double Heavy Laser Cannons to Bounce Together Like They Been Drinking Jagerbombs For Two Hours? That's the place.

3. The Exporter

Now, this IS the most boring part. Send your points to whatever output system. Yawn. Are we there yet?

Hacking around

Say what!? Why, this is exactly the place for that!

Take a seat and copy paste the "dummy.py" files, they present the basic structure you need to play around.

Just be cautious to use the debug method if you're the kind of miss that debugs by outputing data structures (who does not, yah know, sometimes?). Or you'll break the chain.


They must send list of points to standard out. Don't forget the "flush" argument, or the piping will be breaking, ain't no Mario lazering.

  • dummy.py : sends always the same list of points. The Monomaniac.
  • @todo : read texts from redis and others


These do listen and read on STDIN and do the same print'n'flush on STDOUT.

  • kaleidoscope.py : mirrors the points based on a pivot
  • @todo : fourier analysis and other realtime reaction


Read from STDIN and send to redis mostly

  • toRedis.py : provide a key, server IP, etc.

Common parameters

Every command can be called with a -h/--help flag to get some help

Every command has a -v/--verbose flag to send debug info to STDERR.

Generators have a -f/--fps param for FPS, to be fast but not so furious on your machine

Filters and Exports are their own beasts