A Creative Tool for Everyone
Dave Pagurek
Everyone has the capacity to be creative.
For six years at Butter, we’ve been building a creative tool around this idea. In that time, a lot has changed, and you’ve probably seen lots of products pop up with similar proclamations, built around letting you prompt images or videos. If those have felt disappointing, frustrating to use, or like they miss the point, we agree: we don’t think that’s the future of creativity. We have an alternate vision of what it means to let everyone be creative: give you the power to make creative choices, and let you do so on your own terms using the unique properties of code as a medium.
What does a creative tool do?
The creative process is often misunderstood to be one where you have a perfect idea in your head and it’s just a matter of getting it out onto a canvas. Instead, it’s often exploratory and iterative, sometimes feeling as much like discovery as creation. A blank canvas with no constraints is hard to start with! It helps to have some scaffolding to guide and inspire you; a good creative tool provides that scaffolding. An example we keep coming back to is the character creation process in video games. Exploring the options and deciding what you want is part of the fun. That’s a creative process!
There are different levels of scaffolding you might prefer to work at. Sometimes your ideas flow most freely when you are not bogged down by details; other times you prefer not having to grapple with a grand overarching concept, focusing instead at the fine level of an individual brush stroke. Your preferred level might shift over the course of a project. Creative tools, at their best, let you move freely between those levels.
Creativity flourishes when you can get into a flow state, where you can just do. Your best ideas are allowed to come out when you are one with your tools and you can iterate freely, fearlessly, and at the speed of thought. It is the job of the tool to encourage experimentation so that you may test out ideas without worrying about doors closing along the way.
It’s hard to achieve all that with nothing but a text box to describe your entire output!
Playing with blocks
Butter’s take, instead, is to make sure there’s level of detail where it feels like you can play. You should have controls that are easy to understand, where you never feel lost, where there are things to explore, and where you feel you have control.
We divide a project up into blocks that you can arrange, stack, combine, and customize on a variety of different levels of detail. You might start at the top level, arranging blocks on a canvas or in time. Maybe that’s by hand, or maybe it’s prompted, but that’s not the end of the process. You then might move to the level of a single block, refining it, or experimenting with what it can do. You could play around with sliders, like it’s a video game character creator. You might animate them over time. You might decide that you want to create your own block with its own controls. That could start with a prompt, which gives you not just a visual but also controls to refine it with. That could start with code, if you are interested in even more specific control.
Butter’s goal is to be with you across all those levels. You can jump between them to find the spot that feels fun to use.
Code as a creative medium
Key to making all of that work is to treat code as the base building block, not just static assets like images and videos. Those are just inputs for code to draw something with! And code may present even more controls to customize its output. There are no “flat” pixels in Butter; with code, everything able to animate and update and respond to inputs.
Blocks in Butter are programmed in p5.js, a tool designed for learning to code and making art. It is designed around similar ideas of an exploratory creative process with scaffolding levels of detail you can interact with. A growing number of artists, from new learners to professionals, use it as their tool of choice for making visuals, animations, and interactive experiences. You can bring those visuals into Butter, combine them with others, iterate on the code, edit them together in a timeline, and export videos.

People have made incredible creative works with p5.js and tools like it. Butter strives to be a place where that community can flourish: where people can inspire and learn from each other, and where their unique skills are valued and fostered.
In addition to working hard over the years on building a system to enable all of the above, we also contribute back to the community and the p5.js project. We have open-sourced a number of libraries to help make it easier to create visuals, and help develop and test p5.js itself.
The future of creative tools
We think code is the common medium that can combine visuals and interactivity, regardless of the technology. This way, everything can come together into one digital mixed media canvas. We’re a team of programmers and artists eager to try these new ideas out. If you’re a creative coder, we’d love for you to try making blocks and seeing what new things you can do with it too!