WWCode Talks Tech #5: Creative Coding to Inspire
Written by Ann Kilzer
Ann Kilzer, Software Engineer at Mercari, Japan, and Director at Women Who Code, Tokyo presents Creative Coding to Inspire. She works on the US product at Mercari. She has been combining math,computer science, and art for a long time. In college, she majored in three different things, but got a Master's degree in Computer Science. One of Ann’s primary reasons for moving to Japan is that the art culture is very deep.
There are a couple of things that I just have to share under the Fair Use statement, this talk is for teaching purposes. This conference is international, but Women Who Code is based in the US.
What is creative coding? What if I can't draw? What if I don't know JavaScript? Let's be honest with JavaScript, lots of people do it without knowing it. Anyone can do this. The goal is to create something expressive instead of something functional. It could be producing art with code. It could be making images, music, video, or an immersive experience. You could be using an artistic medium to teach about coding. You could be doing hardware-related things where you're sort of coding, but you're maybe soldering too. I think of it more as a mindset. You're using whimsy, humor, and creativity. You're using both your left and right brain at the same time. It's not a particular programming language, there are no required skills, just an open mind, and curiosity.
Why should we do it? One idea is you want to make a portfolio project. There are plenty of calculators, Twitter clones, and basic calendars out there. What if you made something that really stood out? You can do something that's one of a kind. Another reason is to overcome boredom. We often have jobs that are not the most exciting. Our jobs don't always have to be perfectly exciting or perfectly our passion. You can do it on a solo project and have free artistic control. I like to do creative coding. Also, cross-disciplinary work is another great reason. Maybe you're excited about biology, and music, or you really like cooking and you want to incorporate that into code or software. Maybe you want to use data science to calculate something. It's a really great way to bridge disciplines. Check out the hashtag creative-coding channel inside the Women Who Code Slack. We've been sharing a lot of stuff there.
It's very interesting where artists draw inspiration. What is the origin of ideas? What does this mean in code? When is it okay to use another’s ideas? We're part of a global organization, a non-profit, and we're trying to be a force for good in the world. I'm not trying to tell you to go out there and just take whatever you want. There are ethical ways of stealing, so here are some things to consider. There are open-source licenses that give you permission to take and reuse stuff, so the MIT license is an example of a very permissible license that lets you do things as long as you cite the sources. There are two laws in the US that are very helpful. One is the Fair Use Law. Another one is Parody Law. Check with your own country and in your own jurisdiction laws, but there are ways you can borrow things.
Another principle is to change things enough and make it your own. Make sure you're bringing something genuinely new and not just ripping something off. Consider power dynamics such as cultural appropriation. Do you have more or less social standing than the party you're taking things from? Are you part of a large corporation and taking something from a small individual creator? There's no one-size-fits-all answer, but these are some guidelines that can help you make a good choice.
I really recommend checking out CodePen.io to get inspired here. You can start with simple things, building up shapes with circles, squares, and arcs, doing different colors and transparency. It's really incredible what people can build just using HTML and CSS. Also, get creative with your developer tooling. We're using our computers every day and why not make it your own? Consider customizing your terminal IDE or keyboard. The keyword is an expensive hobby, so choose wisely. Customizing the terminal is free. I was inspired by a creator named Sally Lait, who helped me come up with my own terminal keyboard. I use a Mac, so I used Eye Term 2, which gives more accessible colors beyond the default terminal, so I can set a nice color scheme. I'm using Z-shell, so I used Oh My Zsh, the custom theme, and I tweaked it a little bit. Check out the ZHS themes, you can either install one someone else made or make your own.
Use emoji. One of my favorite projects for this is darksky.com. This is a weather service. They have a weather map that's just made out of emojis. There are a couple of open-source emoji libraries, so those are good to use. Twitter's emoji set are open source and open emoji. These can be tools that you can use freely. Use artificial intelligence. But instead of using it to solve a problem, do it for high jinks, train a neural net to do something unexpected. Janelle Shane runs a whole blog called AI Weirdness, so please check it out, it's very good.
Use the Processing framework. Processing is a programming language and framework for visual artists. It's free and open source, you can download it. There are alot of different tools. It's like a blank canvas, you can make all sorts of stuff with it. One thing when you're working with code is you can do really mathematical stuff. I was really inspired by this Penrose tile generation. Penrose tiles are cool because they're an aperiodic pattern. It's always changing infinitely, but it has this sort of order to it. It's really neat to see this sort of stuff that you can do when you use code as your drawing implementation.
Use color. We've all played with color in the physical world on paper. Maybe you learned the primary colors as red, blue, and yellow. There are many different ways of representing color on a computer screen. I'll go over two of the systems. One is called Red, Blue, and Green, and it's additive. Why is it called additive? When we add all three of them together, we get white, which is pure light. The other one, the subtractive system is CMYK, which K stands for key or black. It comes from the printing world, which is usually using cyan, magenta, yellow ink, and then a black layer or a key image to kind of lock it all together. Historically, this is how newspapers were printed. When you buy a printer cartridge, you've probably got magenta, cyan, yellow and black. When you add the colors together, you get black, which is the absence of light. That's just two systems. You can do a lot with color.
Use zines. This is an example of things that are coding adjacent. There are several creators who use zines to teach about coding. Zines are kind of a punk style of communicating where you're using low-tech printing. Maybe you're using a copy machine, just simple black and white copies like with toner. Maybe you're using a silk screen. You can also just make one digitally and distribute it as a PDF. These can be done in lots of places, but one cool application is to teach about coding. Julia Evans does wizard zines, which are deeply technical, but very cute. Code Art is an open submission zine, the editor is Sy Brand. They've released several different versions online. It's about coding or just things that are made with coding or poetry and art. It's really interesting.
Do something retro. Consider using an old-school programming language, maybe you could write something in BASIC, COBOL, Pascal or C. These languages are a little rarer now, but they still have some really great fundamentals. Maybe you can make something that's new, but it still feels retro, so perhaps you use Pixel Art, you use MIDI music, something that feels from a different decade. Hardware hacking is a really great place. You might be a little more software adjacent if you're getting into physical devices, but there's often similar logic and it could help reinforce your software.
Connect and get inspired. Seeing who's out there can help you get inspired along this journey. One of the things I love about the creative coding community is it just feels like naturally a very diverse group of people. There's gender diversity, there are people from different countries, from different races, it's just really awesome to see that.
That is basically creative coding. If you want to learn more, please check out the Git book that I'm working on. It is a living document, I'm updating it all the time. My goal is to go through one of these prompts every month with Women Who Code Tokyo. Because it's online, it's open to anyone. You can follow me on Twitter, I'm Stone Cold Kilzer. You can contact me, my email address is annkilzer@womenwhocode.com.