Merge branch 'processing-2'
[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 // Basic test patterns for reference, not art
123 new TestCubePattern(lx),
124 new TestTowerPattern(lx),
125 new TestProjectionPattern(lx),
126 new TestStripPattern(lx),
127 // new TestHuePattern(lx),
128 // new TestXPattern(lx),
129 // new TestYPattern(lx),
130 // new TestZPattern(lx),
131
132 };
133 }
134
135 LXTransition[] transitions(LX lx) {
136 return new LXTransition[] {
137 new DissolveTransition(lx),
138 new AddTransition(lx),
139 new MultiplyTransition(lx),
140 new OverlayTransition(lx),
141 new DodgeTransition(lx),
142 new SwipeTransition(lx),
143 new FadeTransition(lx),
144 };
145 }
146
147 // Handles to globally triggerable effects
148 class Effects {
149 FlashEffect flash = new FlashEffect(lx);
150 BoomEffect boom = new BoomEffect(lx);
151 BlurEffect blur = new BlurEffect(lx);
152 QuantizeEffect quantize = new QuantizeEffect(lx);
153 ColorFuckerEffect colorFucker = new ColorFuckerEffect(lx);
154
155 Effects() {
156 blur.enable();
157 quantize.enable();
158 colorFucker.enable();
159 }
160 }
161