In the Tinkering Studio, we like to think of code as material. And like any material, our team makes conscious decisions about what to offer workshop participants. Activity materials are curated to offer learners tools that are suggestive of rich explorations of scientific phenomena. So when we started thinking about creating an environment for programming hand-drawn projections, we wanted to include a curated programming experience in Scratch so learners could focus on the Scratch blocks that would be most helpful for their explorations.
One of our ongoing R&D projects this summer is the combination of programming and projections. We brought the activity Playful Programmable Projections to this year's Maker Faire for visitors to add their own handmade sea creature to an collaborative scene. The immersive underwater environment was filled with fish and sea creatures, and participants interacted with their scene by casting shadows on their screen and projecting on white objects (like umbrellas!).
What is a microworld?
Microworlds are curated Scratch experiences that use a subset of blocks for a specific theme or activity. They are meant to be more focused around an open-ended promt. Current and former MIT Media Lab students Carmelo Presicce and Kreg Hanning were incredibly generous with their time and knowledge and helped me bootstrap my way to make my first microworld.
How to make a microworld (sort of...)
To remove these 15 blocks from the Scratch editor, the blocks hidden (not deleted) through an programming action called "commenting." Here, I use a local copy of the Scratch code (available for download here) and comment out the blocks of code that I want to remove for my microworld.
In this example, I'm removing the point towards mouse-pointer block by using specific syntax that hides the lines of code during publishing.
Similarly, it's possible to remove entire categories of blocks for a microworld. Here, I remove all of the motion blocks using a different syntax.
You can find the final projection microworld here.
To test out this environment, we asked local educators attending a Playful Programmable Projections workshop this month to give us any feedback they had. Overall, their feedback was positive and constructive. One comment that stood out to me was that they loved the idea of having agency over the Scratch environment and curating the blocks for the activity at hand. We benefited using the microworld with a large group of educators, each on their own computers. We made a work-a-round for getting their hand-drawn sprites into the collaborative Scratch projection using Google Drive, which is something I plan to think more about to try out a more elegant solution. Another drawback that challenged our workflow with museum visitors was that the microworld is not logged into a specific account, so we could not share a common backpack for easy sprite transfer.
However, as an educator and activity developer, this tool is invaluable. I love the fact that code can be curated toward an activity without limiting the possible directions a learner can take a project. Curating coding blocks aligns nicely with creating an ideal environment for tinkering. We can make informed decisions as to which blocks to include or hide based on the problem space we're defining for learners. It will take a bit of tinkering to know what blocks to provide and hide, so that will be ongoing R&D for the summer.
So where to next?
I'd love to see more activities that would benefit from a Scratch microworld tested out in the Tinkering Studio. This is a very new tool for the Tinkering Studio and we have a lot to learn about its benefits and drawbacks. This summer, we will continue to refine Playful Programmable Projections in preparation for the 2019 Connected Learning Summit at UC Irvine and for visitors to the Exploratorium during #MoonMonth. Join us in our exploratorions with programmable projections in the Tinkering Studio and over Twitter!
This work was supported by a grant from Science Sandbox, an initiative of the Simons Foundation