Clone your own

Posted on by Ari Bader-Natal

Follow on Twitter

Anil Dash argues that forking is a feature, and I whole-heartedly agree. Wikis are great tool for online collaboration when the goal is to arrive at a shared understanding or common resource, but it's important to remember that not all collaborations have this goal of converging on the One True Version. Especially with creative endeavors. The musician who refines their own version of a Bob Dylan song, the chef who "reinvents" the common cheeseburger, and the DIYer who builds an electric shoebox guitar just a little bit differently -- each of them knows the joy of taking something that's already out there, and making it their own. For me, this has been half the fun of building Studio Sketchpad: I started with Etherpad, cloned my own copy, and took it in an entirely new direction.

When you start talking about { forking | riffing | branching | copying | cloning | recreating }, I see at least three dimensions to the process: technical, legal, and social. Technically, how easily can the work be forked, and how easily can it be rejoined? Legally, when is it or is it not allowed to make a variation to an existing work? Socially, how does forking affect the community of people involved in the process? For Sketchpad, the answers are remarkably straightforward. Technically, a simple GET request is enough to fork a work, but the branches cannot (currently) be merged back together. Legally, the CC-BY-SA licensing adopted platform-wide supports this pattern. Socially, riffing doesn't fracture community when the goal is creative production.

The most critical view I've read about this remix paradigm was in Jaron Lanier's book You Are Not a Gadget. It's an eye-opening argument, and absolutely worth reading. Even after taking in his argument, I'm still quite excited to introduce the remix functionality on Sketchpad. While it may not result in original work, I believe that it does act as a precursor to creating original work. As your learning how to code with Processing.js, you can find a canvas that looks interesting, view the source code of that sketch, step through the evolution of that sketch, and now stop at any point in that evolution to see what happens when you tweak some variables and add something new. It makes the process of understanding how code works even more hands-on and interactive, and I like that. Do this a few times, and I bet you'll be ready to start creating original work.

From now on, you'll see a "clone" option next to the "view source" link in the footer of each Sketchpad canvas. Try it out, and let me know what you think!

Scott G Newson wrote on September 26, 2010
That's great, Thanks!