Switch to threaded mode by default, run engine at 120FPS
[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
254d34c0 119 // Basic test patterns for reference, not art
dde75983
MS
120 new TestCubePattern(lx),
121 new TestTowerPattern(lx),
122 new TestProjectionPattern(lx),
123 new TestStripPattern(lx),
124 // new TestHuePattern(lx),
125 // new TestXPattern(lx),
126 // new TestYPattern(lx),
127 // new TestZPattern(lx),
f3f5a876 128
49815cc0
MS
129 };
130}
131
dde75983 132LXTransition[] transitions(LX lx) {
49815cc0 133 return new LXTransition[] {
3f8be614 134 new DissolveTransition(lx),
a22015f4
MS
135 new AddTransition(lx),
136 new MultiplyTransition(lx),
137 new OverlayTransition(lx),
138 new DodgeTransition(lx),
139 new SwipeTransition(lx),
3f8be614 140 new FadeTransition(lx),
49815cc0
MS
141 };
142}
143
75e1ddde 144// Handles to globally triggerable effects
24fc0330
MS
145class Effects {
146 FlashEffect flash = new FlashEffect(lx);
a22015f4
MS
147 BoomEffect boom = new BoomEffect(lx);
148 BlurEffect blur = new BlurEffect(lx);
149 QuantizeEffect quantize = new QuantizeEffect(lx);
150 ColorFuckerEffect colorFucker = new ColorFuckerEffect(lx);
24fc0330
MS
151
152 Effects() {
153 blur.enable();
154 quantize.enable();
155 colorFucker.enable();
156 }
49815cc0 157}
24fc0330 158