Hello! I just listened to the AgentSheets episode ...
# share-your-work
n
Hello! I just listened to the AgentSheets episode and wanted to share that I’m working on a PBE + block programming educational tool. It’s a work in progress but the vision is of something like “a macro recorder for Kid Pix” that lets you switch between drawing and code editing. https://motifdesigner.netlify.app/ Target audience is elementary school age kids, though it’s also meant to be fun for adults to tinker with. I’m excited that there seems to be a bit more traction (or at least interest?) around PBE again. I thought it was an interesting point in the paper/episode that it hasn’t necessarily gone out of fashion because it wasn’t a good idea, but because other solutions emerged to some of the problems it was trying to solve.
Related work: Jennifer Jacob’s DressCode system, Nicky Case’s Joy.js, Leogo (a PBE Logo system), the concept of “Self Disclosing Design Tools.”
j
I love this idea, and the vibe of the prototype! Something that’s not clear to me from my quick look: Are the programs you make with this fully “static”, so far? That is, is this currently like the Illustrator history view: a reification of concrete actions which can be manipulated, but without “computation” in the form of parameterization, repetition, etc? What are your plans for these? Also curious how you’d relate your plans to Bret Victor’s “Drawing Dynamic Visualizations” (https://vimeo.com/66085662). It certainly seems like you’re aiming for a different audience, but I’m curious how that’s reflected in the system’s design.
j
There are definitely some programmatic brushes! I was able to get a repeat-along-path construct from 'random repeat', and just figured out how to clone the brush onto a new path using 'draw'.
My impression is that both Motif Designer and NodeBox are to Illustrator as Victor's proposed system is to Vega?
In any case, despite using self-disclosing design tools since forever, DiGiano and Eisenberg 1995 is new to me. Thanks very much!
j
Woah! That kind of repetition and randomized parameterization are definitely the kinds of things I was talking about. I’ll have to go back and take another look later.
n
(going to answer this a little at a time! thank you for the awesome questions and for trying it!) The "repeat along path" aka "draw with" loops also let you compose and then draw with your own brushes.
There are proto-variables in the color palette to parametrize the color scheme for a design (but currently, no way to manipulate those variables in code, eg. you can't programmatically create a rainbow)
There are named groups (currently wrestling with what they should do to relative positions of the shapes, since I'm using absolute coordinates Processing style rather than turtle graphics)
Re. goals of the system: I would say Kid Pix is a closer (aspirational!) comparison than Illustrator, with a side of being a research tool about children's reasoning rather than the most complete/composable system possible (though eventually I would also like it to be something teachers and kids can use!) So it's meant to be a playful tool that celebrates the process of making. It's also bitmap-based, so it's not fully two-way the way that some of the vector-based tools like this are. Ie. you can't click on a shape on the canvas directly and move it around because that wouldn't make sense if the shape had already been sliced up with other tools. In exchange you get some fun bitmap operations, and my hunch is that you get to see something about how kids reason between the two ways of operating on their designs.
I’m especially interested in looking at workflows / practices that move between direct manipulation and coding, shifted out of the context of learning programming for its own sake. For example, the “draw” button copies any line of code to the active brush, which means you can shift from editing parameters in the code to drawing it anew, and sometimes you might choose one mode over the other. You can also create wonky hand-drawn repeat patterns and then use them with programmed brushes. And it’s all in the context of printing and fabricating something physical (will get back to that!)