f218ccc3d3979e9f2e0064d330c8092f7e0d62a9
[SugarCubes.git] / SugarCubes.pde
1 /**
2 * +-+-+-+-+-+ +-+-+-+-+-+
3 * / /| |\ \
4 * / / + + \ \
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
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.
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 */
25
26 LXPattern[] patterns(LX lx) {
27 return new LXPattern[] {
28
29 //new SineSphere(lx),
30 //new CubeCurl(lx),
31
32 // Slee
33 // new Cathedrals(lx),
34 new Swarm(lx),
35 new MidiMusic(lx),
36 new Pulley(lx),
37
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),
46
47 new MultipleCubes(lx),
48
49 new Traktor(lx).setEligible(false),
50 new BassPod(lx).setEligible(false),
51 new CubeEQ(lx).setEligible(false),
52 new PianoKeyPattern(lx).setEligible(false),
53
54 // AntonK
55 new AKPong(lx),
56
57 // DanH
58 new Noise(lx),
59 new Play (lx),
60 new Pong (lx),
61 new Worms(lx),
62
63 // JR
64 new Gimbal(lx),
65
66 // Alex G
67
68 // Tim
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),
76
77 // Jackie
78 new JackieSquares(lx),
79 new JackieLines(lx),
80 new JackieDots(lx),
81
82 // L8on
83 new L8onAutomata(lx),
84 new L8onLife(lx),
85 new L8onStripLife(lx),
86
87 // Vincent
88 new VSTowers(lx),
89
90 // Toby
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),
97
98 // Jack
99 new Swim(lx),
100 new Balance(lx),
101
102 // Ben
103 // new Sandbox(lx),
104 new TowerParams(lx),
105 new DriveableCrossSections(lx),
106 new GranimTestPattern2(lx),
107
108 // Shaheen
109 // new HelixPattern(lx).setEligible(false),
110
111 // Sam
112 new JazzRainbow(lx),
113
114 // Arjun
115 new TelevisionStatic(lx),
116 new AbstractPainting(lx),
117 new Spirality(lx),
118
119 // Micah
120 new Rings(lx),
121
122 // Open pixel control server
123 new OpenPixelControl(lx, this),
124
125 // Basic test patterns for reference, not art
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),
134
135 };
136 }
137
138 LXTransition[] transitions(LX lx) {
139 return new LXTransition[] {
140 new DissolveTransition(lx),
141 new AddTransition(lx),
142 new MultiplyTransition(lx),
143 new OverlayTransition(lx),
144 new DodgeTransition(lx),
145 new SwipeTransition(lx),
146 new FadeTransition(lx),
147 };
148 }
149
150 // Handles to globally triggerable effects
151 class Effects {
152 FlashEffect flash = new FlashEffect(lx);
153 BoomEffect boom = new BoomEffect(lx);
154 BlurEffect blur = new BlurEffect(lx);
155 QuantizeEffect quantize = new QuantizeEffect(lx);
156 ColorFuckerEffect colorFucker = new ColorFuckerEffect(lx);
157
158 Effects() {
159 blur.enable();
160 quantize.enable();
161 colorFucker.enable();
162 }
163 }
164