Optimized gimbal -- now at 60fps
[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 GLucose library extension. If you're an
19 * artist, you shouldn't need to worry about any of 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(GLucose glucose) {
27 return new LXPattern[] {
28
29 new SineSphere(glucose),
30 //new CubeCurl(glucose),
31
32 // Slee
33 // new Cathedrals(glucose),
34 new Swarm(glucose),
35 new MidiMusic(glucose),
36 new Pulley(glucose),
37
38 new ViolinWave(glucose),
39 new BouncyBalls(glucose),
40 new SpaceTime(glucose),
41 new ShiftingPlane(glucose),
42 new AskewPlanes(glucose),
43 new Blinders(glucose),
44 new CrossSections(glucose),
45 new Psychedelia(glucose),
46
47 new MultipleCubes(glucose),
48
49 new Traktor(glucose).setEligible(false),
50 new BassPod(glucose).setEligible(false),
51 new CubeEQ(glucose).setEligible(false),
52 new PianoKeyPattern(glucose).setEligible(false),
53
54 // AntonK
55 new AKPong(glucose),
56
57 // DanH
58 new Noise(glucose),
59 new Play (glucose),
60 new Pong (glucose),
61 new Worms(glucose),
62
63 // JR
64 new Gimbal(glucose),
65
66 // Alex G
67
68 // Tim
69 new TimMetronome(glucose),
70 new TimPlanes(glucose),
71 new TimPinwheels(glucose),
72 new TimRaindrops(glucose),
73 new TimCubes(glucose),
74 // new TimTrace(glucose),
75 new TimSpheres(glucose),
76
77 // Jackie
78 new JackieSquares(glucose),
79 new JackieLines(glucose),
80 new JackieDots(glucose),
81
82 // L8on
83 new L8onAutomata(glucose),
84 new L8onLife(glucose),
85 new L8onStripLife(glucose),
86
87 // Vincent
88 new VSTowers(glucose),
89
90 // Toby
91 new GlitchPlasma(glucose),
92 new FireEffect(glucose).setEligible(false),
93 new StripBounce(glucose),
94 new SoundRain(glucose).setEligible(false),
95 new SoundSpikes(glucose).setEligible(false),
96 new FaceSync(glucose),
97
98 // Jack
99 new Swim(glucose),
100 new Balance(glucose),
101
102
103
104 // Ben
105 // new Sandbox(glucose),
106 new TowerParams(glucose),
107 new DriveableCrossSections(glucose),
108 new GranimTestPattern2(glucose),
109
110 // Shaheen
111 //new HelixPattern(glucose).setEligible(false),
112
113 // Sam
114 new JazzRainbow(glucose),
115
116 // Arjun
117 new TelevisionStatic(glucose),
118 new AbstractPainting(glucose),
119 new Spirality(glucose),
120
121 // Basic test patterns for reference, not art
122 new TestCubePattern(glucose),
123 new TestTowerPattern(glucose),
124 new TestProjectionPattern(glucose),
125 new TestStripPattern(glucose),
126 new TestBassMapping(glucose),
127 new TestFloorMapping(glucose),
128 new TestSpeakerMapping(glucose),
129 // new TestHuePattern(glucose),
130 // new TestXPattern(glucose),
131 // new TestYPattern(glucose),
132 // new TestZPattern(glucose),
133
134 };
135 }
136
137 LXTransition[] transitions(GLucose glucose) {
138 return new LXTransition[] {
139 new DissolveTransition(lx),
140 new AddTransition(glucose),
141 new MultiplyTransition(glucose),
142 new OverlayTransition(glucose),
143 new DodgeTransition(glucose),
144 new SwipeTransition(glucose),
145 new FadeTransition(lx),
146 // new SubtractTransition(glucose), // similar to multiply - dh
147 // new BurnTransition(glucose), // similar to multiply - dh
148 // new ScreenTransition(glucose), // same as add -dh
149 // new SoftLightTransition(glucose), // same as overlay -dh
150 };
151 }
152
153 // Handles to globally triggerable effects
154 class Effects {
155 FlashEffect flash = new FlashEffect(lx);
156 BoomEffect boom = new BoomEffect(glucose);
157 BlurEffect blur = new BlurEffect(glucose);
158 QuantizeEffect quantize = new QuantizeEffect(glucose);
159 ColorFuckerEffect colorFucker = new ColorFuckerEffect(glucose);
160
161 Effects() {
162 blur.enable();
163 quantize.enable();
164 colorFucker.enable();
165 }
166 }
167