Switch to threaded mode by default, run engine at 120FPS
[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 // Basic test patterns for reference, not art
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),
128
129 };
130 }
131
132 LXTransition[] transitions(LX lx) {
133 return new LXTransition[] {
134 new DissolveTransition(lx),
135 new AddTransition(lx),
136 new MultiplyTransition(lx),
137 new OverlayTransition(lx),
138 new DodgeTransition(lx),
139 new SwipeTransition(lx),
140 new FadeTransition(lx),
141 };
142 }
143
144 // Handles to globally triggerable effects
145 class Effects {
146 FlashEffect flash = new FlashEffect(lx);
147 BoomEffect boom = new BoomEffect(lx);
148 BlurEffect blur = new BlurEffect(lx);
149 QuantizeEffect quantize = new QuantizeEffect(lx);
150 ColorFuckerEffect colorFucker = new ColorFuckerEffect(lx);
151
152 Effects() {
153 blur.enable();
154 quantize.enable();
155 colorFucker.enable();
156 }
157 }
158