Sound Galaxy is one of the most effective Hack Club workshops for beginners. It sounds super complicated—you make it rain particles on a website, and the particles are placed according to the sound intensity at various parts of the sound from your microphone—but it's actually super easy, and you can do it as a total beginner to coding in only 30-40 minutes.
One thing that adds some complexity to running Sound Galaxy is figuring out how to balance "magic" with your club members actually understanding the underlying concepts. Sound Galaxy is full of "magic"—as you run it, you'll quickly find that p5.js (the creative coding library used to build the project), as well as the strange "galaxyManager" file, do a lot of heavy lifting for you.
In moderation, magic can actually be a great thing—at its best, your club members leave your meeting feeling like they did something they didn't know was possible for them to do—but too much magic may accidentally have the opposite effect, leaving your club members feeling lost, confused, and like they didn't actually build anything real. It is possible to cross the line into "too much magic" when running Sound Galaxy if you're not careful. Avoiding this is a matter of how you present the concepts.
What Matthew does right
Broadly, Matthew does a few things to keep the magic in check and run a fun, high-energy meeting:
He goes very slowly, stops very frequently to check in, and strongly encourages questions.
The long explanation of script tags in HTML from to , followed by a period of waiting for people to copy/paste the script tags and making himself available for questions ( to )
The long explanation of p5's basic functions from to
He stops to check in with everyone every time after writing a section of code, even if it's only 2 lines of code ( to ).
There are lots of times throughout when he says "I'll write this whole chunk of code here, and then I'll stop to explain what each line does and give you time to add it" (e.g. to ).
When a "magic" concept comes up, he acknowledges that it's "magic", but keeps it accessible and encourages people to learn how the magic works.
When showing the demo of the final project (from to ), he sets expectations upfront: "...you may not totally get it at first, but as you make it yourself, you will begin to understand it." But then, he talks about how easy it will actually be: "...this stuff used to be so hard, but now it's super easy, and you're going to prove it right now by making your own sound visualization project." ( to )
After explaining the Fast Fourier Transform algorithm, he stops to clarify that he doesn't know how it works, but it's not important to know how it works, and it'll start to make sense later in the workshop ( to ).
Every time he adds a function from the galaxyManager, he introduces it the same way: "This next part is a little out of the scope of this workshop, so we're going to use a magic function. You can see the code for this function in galaxyManager.js, and I encourage you to play with it and figure out how it works after this workshop." ( to )
He is high-energy throughout the meeting.
The energy of the club leader always rubs off on their club members. If you are high-energy and excited during the meeting, your club members will be noticeably high-energy as well.
Wait for people to come in. If possible, have the demo already opened up and running as people come into the meeting. Play music in the background, make conversation with people as they arrive.
Once everyone arrives and the meeting begins, start by introducing the demo and the topic of the meeting.
Set expectations about the "magic" upfront, but be clear that nothing in the workshop is out of reach for anyone, and even if the topic don't immediately make sense, they will begin making sense throughout the course of the workshop.
Have the Sound Galaxy workshop opened on a separate device—it will serve as a "script" for you as you go thorugh it with your club.
Go through the workshop
Stop frequently for questions throughout. In most cases, you should stop and ask for questions after every block of code you write.
Start the hacking section
After you finish the workshop, you should have a little bit of time left in your meeting (usually somewhere between 20-35 minutes). Turn your club members loose and ask them to spend the rest of the meeting making their own hacks of the project. Show them the three demos at the bottom of the workshop for some inspiration.
Here, you should also give your club members some motivation. Say something along the lines of "If you don't totally understand how this workshop works, don't worry—now is the time when you will figure it out. Start by changing some of the numbers in the code. Then, go into the galaxyManager file and start changing those numbers. Find out what happens, and find the purpose of each of these numbers. Then, use this newfound knowledge to add your own things."
See to to see how Matthew encourages the club members to hack the project, including the galaxyManager functions.
Make yourself available for questions. If you're running the meeting in person, spend this time running around the room and checking in on your club members. Constantly offer to help. Don't sit down—you should be running around the room the entire time. If you're running this meeting online, do the online equivalent: check in with each of your club members constantly.
Play some music in the background to fill the silence.
(Optional) demo projects
If you have time left, pick 2 or 3 people to present their hack to the rest of the club.
Wrap up on a super positive note. Encourage people to keep hacking at home if they didn't finish hacking in the meeting.
Play music and make some final conversation as people start heading out.
While some workshops are best run fairly hands-off, Sound Galaxy is more effective for most clubs if you stand in front of the room and walk your club members through the workshop.
Err on the side of over-explaining and going slowly, even if your club members are fairly experienced.
Be careful when explaining some of the more advanced topics, such as Fast Fourier Transform and the galaxyManager functions. Make sure you emphasize that 1) they do not need to understand these concepts in order to be able to complete this workshop, but 2) understanding them is easier than it sounds, and they will be able to understand it in the hacking section, or later in the meeting.
It is a lot easier than you may think for your club members to feel tripped up and lose hope if they don't understand everything that's going on, especially if they're beginners. Make sure you keep them motivated and excited throughout, and turn some of the confusing magic into a positive instead of a negative.
Make sure to full-screen your browser window and type control + +, or command + +, a few times to zoom into the code on replit. It's easy to forget about this, but it will make your code a lot easier for your club members to read, especially if you're running your meeting online.