X,Y Coordinates

Some of the tools I’ve accumulated over the years lend themselves particularly well for teaching. I’ve gotten better at swooping in a classroom with some plotters and talking about math or machine drawing topics. I can make it very interactive.

One tool in particular is https://draw.mandalagaba.com.

It started not so much for teaching, but rather for collaborative art. Very much inspired by r/Place, I created a tool with real estate scarcity, but with my usual focus on drawing. The kicker would be that the art is rendered live on a plotter somewhere in the world, maybe in front of you in a public place, maybe a video stream and you know your pen strokes are executed by a machine thousands of miles away. You claim a square, coordinate with others to make bigger pieces, and a collaborative art piece is born. That was the idea at least. I’ve tried several permutations of this experiment, in public, on a stream, with various rules and online communities, and it simply never generated the enthusiasm I thought it would. I have 95% given up on the idea of a collaborative art piece of the sort. The big plotter still has me wondering hence the remaining 5%, but it is tedious and expensive to deploy for an experiment that has shown no promise at every iteration.

What this website became great for however is teaching as it allows for time sharing a drawing machine across several students. We can explore one concept or other, and then apply it and have the great motivator that we’ll get to control the machine by doing so. 3 years ago I taught a module on X,Y coordinates with the local 5th graders, I didn’t have this site then and it went fine. But the following year I figured I might as well use this dumb collaborative art website I made for something so I integrated it into the coursework. Now that second year The machine’s made an enormous difference in how students engage. Recently I ran this course for the 3rd year with the website and the magic happened again. Both times, kids were very much willing to go through teeth grinding (light X,Y coordinate based coding), and help each other out to see their work realized in the world by a cool machine. The first student that submits a drawing on the site inevitably has everyone jumping off their seat to see the machine move up close. Then they’re even more motivated to do it themselves. I help them with the mistakes they make at first, and once they get it I have a good half an hour of walking around and seeing the cool stuff they draw. During this time I might send one drawing machine on a more intricate plot that can finish quick. Having that plotter wield a pen expertly inevitably draws 2 or 3 kids who just sit and stare at the machine non-stop. I know what they’re going through. The whole experience has them asking so many questions, and I love interacting with the different ways in which they see the world. I also love the opportunity to get to know every kid in town a little better when they go through 5th grade.

I’m quite glad that these tools found a place in education. Sometimes I think of pushing further, there’s definitely something to this formula, and I know teachers often purchase various curricula or interventions that meet a standard or other. But I can’t push all the projects, and so far I’ve refused to let money taint anything plotter related.

Funnily enough, I even had an opportunity to guest lecture in the same way with college art students. Of course we don’t talk about 5th grade X,Y coordinates, and I’m not there to talk about art either. Rather we learn and employ tools and techniques for line art and single instrument machines. It’s only funny because I’m ashamed to admit I’ve been very dismissive of art (except music) my whole life. I never understood it and wasn’t a fan of the carefree personalities gravitating to it. I’ve seen the light now, and I do feel apologetic for the times someone showed me a something they had made and it went completely above my head. But I can’t say I was particularly impressed by the students. I’m definitely curious to try again and see if I can bridge more understanding. In the meantime, I have no issues resonating with 5th graders so I’ve got that going for me :). Except for keeping them focused, that is insanely hard.

And Handwriting for All

I wrote something pretty neat for Plottybot, and for the longest time I thought I should make it available on its own, and detached from the project. Then the most excellent Stuff Made Here guy made a writing machine, and ran into all the issues I ran into which drove me to write my own algorithms for capturing and replaying handwriting. My stuff wasn’t online then and that’s a shame, it was only available by building a Plottybot, or at least using its Pi image. Oh well.

As is tradition, I captured my kids’ handwritings as I do every year some time in the Winter. But this time I made sure to have the new site ready before Thanksgiving so that people could use it as they went and met with loved ones.

So here, this site serves the purpose of capturing one’s handwriting. It supports cursive, character variations, saving, and finally exporting to SVG & GCode. Hopefully this means you can use it with your favorite craft machine for the coolest of personalized projects.


Mindstorm Gondola Plotter

So out of nowhere Robin designed a gondola plotter with his Lego Mindstorms. There are many crazy pants projects I hear about every day. A lot aren’t attempted, most scratch an itch and finish half baked, few make it to top notch level. When Robin talked to me about his plotter, I was excited but skeptical it would turn into much. I also expressed some of the issues he might have with the early model. Lo and behold he finished the day with a very well made machine he threw together in 1 shot. We both got very excited when it moved for the first time.

I was on a mission to try and explain to him the double pythagorean theorem that gives these machine a cartesian coordinate system. We launched into it the next day so that he could translate it into Scratch, it was a good back and forth where we both managed to bridge each other’s understanding. I was very impressed by his ability to understand what was going on and problem solve bugs, he totally got it.

We ended up with this ugly code block, I have no idea if there’s a better way to code this in Scratch:

The machine became perfectly addressable on a cartesian system. Seeing this many first try successes, we got all the more excited and I told him I’d find a way to import SVGs in there. He didn’t believe that I could, and I tooted my own horn a bit saying I used to be a very good hacker. I had to deliver now… I couldn’t find a way to import anything in the neutered version of Scratch that Mindstorms run so I’d have to figure out a way to programmatically edit the *.lms file that is the project to inject the code blocks. Turns out, it’s just a bunch of files zipped up, including one called scratch.sb3, itself a bunch of files zipped up, including project.json. Browsing around at the data structure in that file, I found the doubly linked lists of objects which represent sequences of commands.

Trying to inject my own

I write some code to create these JSON blocks so that I can inject as many go_to function calls as there are instructions in my GCode converted SVG. Zip everything back up and we are in business. Robin totally thinks I can hack the FBI now.

So I convert an SVG into 32,000+ commands, and well, the Mindstorm app crapped its pants. I went a little easier with about 1800 and it had to think a while but it did it. Resulting in a hardly manageable project with a large go_to vomit in the middle of it. But it worked!

If you stream the commands… There isn’t enough room on the brick otherwise.

Finally, again with few obstacles, the Mindstorm Gondola Plotter gets to work on a simple Millenium Falcon.

It doesn’t make the calls to pen_up and pen_down yet, that’ll be a formality. It also has the very classic issue with moving on motor after another. Robin understands that we can simply break down the paths into more coordinates, but he may try other approaches.

For posterity, the first actual drawing (it looks a lot better than my first plotter drawings)

I absolutely love the design where all the logic is contained in the drawing apparatus, and the plotter is hanging on 2 fixed point. This was a bit forced by Lego in that you can’t have your motors too far away, but it’s really slick.

tel père tel fils

He was very proud of himself and I was too. I always prime him for the engineering process where a merciless series of failures precede any progress, but this project was very friendly at every step. Robin did spend a LOT of time working on various lego guns. I thought it was educational because of how long he had to spend on the fine mechanisms for moving, spring loading and releasing missiles. Clearly he learned from it given how easily he threw a complex machine together.