First cut at an Open Pixel Control server
[SugarCubes.git] / SugarCubes.pde
CommitLineData
49815cc0
MS
1/**
2 * +-+-+-+-+-+ +-+-+-+-+-+
3 * / /| |\ \
0e3c5542 4 * / / + + \ \
49815cc0
MS
5 * +-+-+-+-+-+ | +-+-+-+-+ | +-+-+-+-+-+
6 * | | + / \ + | |
7 * + THE + / / \ \ + CUBES +
8 * | |/ +-+-+-+-+-+-+-+ \| |
9 * +-+-+-+-+-+ | | +-+-+-+-+-+
10 * + +
11 * | SUGAR |
12 * + +
13 * | |
14 * +-+-+-+-+-+-+-+
15 *
16 * Welcome to the Sugar Cubes! This Processing sketch is a fun place to build
17 * animations, effects, and interactions for the platform. Most of the icky
b9b7b3d4
MS
18 * code guts are embedded in the HeronLX library, or files prefixed with
19 * an underscore. If you're an artist, you shouldn't need to worry about that.
49815cc0
MS
20 *
21 * Below, you will find definitions of the Patterns, Effects, and Interactions.
22 * If you're an artist, create a new tab in the Processing environment with
23 * your name. Implement your classes there, and add them to the list below.
24 */
75e1ddde 25
dde75983 26LXPattern[] patterns(LX lx) {
4861d6c4 27 return new LXPattern[] {
2815b690 28
b5d6d7a0 29 //new SineSphere(lx),
dde75983 30 //new CubeCurl(lx),
1a92d73a 31
d1dcc4b5 32 // Slee
dde75983
MS
33 // new Cathedrals(lx),
34 new Swarm(lx),
35 new MidiMusic(lx),
36 new Pulley(lx),
fa1767c1 37
dde75983
MS
38 new ViolinWave(lx),
39 new BouncyBalls(lx),
40 new SpaceTime(lx),
41 new ShiftingPlane(lx),
42 new AskewPlanes(lx),
43 new Blinders(lx),
44 new CrossSections(lx),
45 new Psychedelia(lx),
6a4882dd 46
dde75983 47 new MultipleCubes(lx),
4c006f7b 48
dde75983
MS
49 new Traktor(lx).setEligible(false),
50 new BassPod(lx).setEligible(false),
51 new CubeEQ(lx).setEligible(false),
52 new PianoKeyPattern(lx).setEligible(false),
4c006f7b 53
b9b7b3d4 54 // AntonK
dde75983 55 new AKPong(lx),
69f25521 56
d1dcc4b5 57 // DanH
dde75983
MS
58 new Noise(lx),
59 new Play (lx),
60 new Pong (lx),
61 new Worms(lx),
4c006f7b 62
58888c69 63 // JR
dde75983 64 new Gimbal(lx),
58888c69 65
0b1785e3 66 // Alex G
1d414e45 67
b9b7b3d4 68 // Tim
dde75983
MS
69 new TimMetronome(lx),
70 new TimPlanes(lx),
71 new TimPinwheels(lx),
72 new TimRaindrops(lx),
73 new TimCubes(lx),
74 // new TimTrace(lx),
75 new TimSpheres(lx),
fa1767c1 76
37ab5878 77 // Jackie
dde75983
MS
78 new JackieSquares(lx),
79 new JackieLines(lx),
80 new JackieDots(lx),
4a60ba58 81
4861d6c4 82 // L8on
dde75983
MS
83 new L8onAutomata(lx),
84 new L8onLife(lx),
85 new L8onStripLife(lx),
2815b690 86
20e7c94f 87 // Vincent
dde75983 88 new VSTowers(lx),
4c006f7b
MS
89
90 // Toby
dde75983
MS
91 new GlitchPlasma(lx),
92 new FireEffect(lx).setEligible(false),
93 new StripBounce(lx),
94 new SoundRain(lx).setEligible(false),
95 new SoundSpikes(lx).setEligible(false),
96 new FaceSync(lx),
b6641090
MS
97
98 // Jack
dde75983
MS
99 new Swim(lx),
100 new Balance(lx),
1c56d2f1 101
b6641090 102 // Ben
dde75983
MS
103 // new Sandbox(lx),
104 new TowerParams(lx),
105 new DriveableCrossSections(lx),
106 new GranimTestPattern2(lx),
51227786 107
fa1767c1 108 // Shaheen
dde75983 109 // new HelixPattern(lx).setEligible(false),
fa1767c1 110
b6641090 111 // Sam
dde75983 112 new JazzRainbow(lx),
80785186 113
0208d845 114 // Arjun
dde75983
MS
115 new TelevisionStatic(lx),
116 new AbstractPainting(lx),
117 new Spirality(lx),
a7c8d80a 118
918da6fe 119 // Micah
b85e32c7 120 new Rings(lx),
918da6fe 121
3ffd6241
MES
122 // Open pixel control server
123 new OpenPixelControl(lx, this),
124
254d34c0 125 // Basic test patterns for reference, not art
dde75983
MS
126 new TestCubePattern(lx),
127 new TestTowerPattern(lx),
128 new TestProjectionPattern(lx),
129 new TestStripPattern(lx),
130 // new TestHuePattern(lx),
131 // new TestXPattern(lx),
132 // new TestYPattern(lx),
133 // new TestZPattern(lx),
f3f5a876 134
49815cc0
MS
135 };
136}
137
dde75983 138LXTransition[] transitions(LX lx) {
49815cc0 139 return new LXTransition[] {
3f8be614 140 new DissolveTransition(lx),
a22015f4
MS
141 new AddTransition(lx),
142 new MultiplyTransition(lx),
143 new OverlayTransition(lx),
144 new DodgeTransition(lx),
145 new SwipeTransition(lx),
3f8be614 146 new FadeTransition(lx),
49815cc0
MS
147 };
148}
149
75e1ddde 150// Handles to globally triggerable effects
24fc0330
MS
151class Effects {
152 FlashEffect flash = new FlashEffect(lx);
a22015f4
MS
153 BoomEffect boom = new BoomEffect(lx);
154 BlurEffect blur = new BlurEffect(lx);
155 QuantizeEffect quantize = new QuantizeEffect(lx);
156 ColorFuckerEffect colorFucker = new ColorFuckerEffect(lx);
24fc0330
MS
157
158 Effects() {
159 blur.enable();
160 quantize.enable();
161 colorFucker.enable();
162 }
49815cc0 163}
24fc0330 164