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