Date: | Thu, 9 Jul 2015 00:04:57 -0700 |
From: | Glen Chiacchieri |
Subject: | Re: Laser painting (was: "serengeti") |
On Wed, Jul 1, 2015 at 7:53 PM, Glen Chiacchieri wrote:On Bret's prodding, I made some of the less dynamic interface elements of the painting physical:While I think it demonstrates the ideas behind the room system better ("look, any old thing can have behavior!"), I'm actually a little annoyed by this physicalization. I feel like I lost a lot of the expressiveness of the virtual environment. Especially in prototyping the interface when I didn't know exactly what I was making or how it would work, I feel like it was important to precisely and easily play with the sizes, colors, fonts, arrangements, and other properties that are quickly changeable in a virtual environment, but not in the physical. (One day, we may have physical dynamic material, in which case my complaint won't apply. But for now, light is much easier to manipulate than matter.)The thing I gained by using physical materials was the well-known properties of physical things. Don't have a piece of black paper? Make one with marker! (although all this paper seems to reflect laser light poorly)And the behavior became much simpler this way, too. Now there's no code—all the objects just have a name that is the color you want and a family.
In this scheme, if you don't know how the painting works and you want to add a color, you just tape your paper on the wall, copy from one of the other colors and change the name, and you're done.——However, if you want to figure out which objects are listening for and setting colors, right now I don't think the system will help you much. I could imagine lots of ways to deal with this, but here's one. Maybe when you inspect a color tile you see this (note the new "Variables this object is involved in modifying" section):
Click the "view" button and you're taken to the variable's database entry:
This tries to show you what objects are involved in reading and writing this variable (or collection or whatever), and attempts to show you the code that does it.Thinking about it now, it would also be interesting if you could see a variable's history in this view.
Hovering over an entry (yellow) might try to show you the exact line of code that caused the variable to change. Lines that caused errors could be highlighted in red. And you could do queries and transformations on this data to understand its shape (typical values, rare values, etc). Nicer to work more empirically with program data.Could some of this already be accomplished with the room system as it stands now? Should these things be first-class operations? I'm not sure. I'm probably still thinking too much in terms of the screen, though. Also, I realize that trying to generalize from this one painting app may not make sense and a more sensible solution might make itself clear as we make more stuff.Till then!–GlenOn Sat, Jun 27, 2015 at 1:33 AM, Glen Chiacchieri wrote:A picture of the laser-only interface I did today:I'm still really shaky with the room api stuff—I couldn't figure out how to save paintings into a collection when the "clear drawing" button is lasered—but I'm continually surprised by how easy and fast it is to put this stuff together.Still, I'd love to start discussing how this stuff can be programmed outside the screen.On Thu, Jun 25, 2015 at 9:40 PM, Glen Chiacchieri wrote:Oh and here's Bret painting in an interesting way:
On Thu, Jun 25, 2015 at 9:32 PM, Glen Chiacchieri wrote:I feel like we've been getting a billion emails, so sorry for adding another to the pile.Paula, Emily, and I made a physical color palette with the MakeyMakey and some play-doh:
See the attached video for how it works.Despite the wires everywhere and obtrusive playdoh bracelet, the physical controls felt good. Even if you were just tapping them, all that objects had a shape, texture, give in the material, momentum, and physical location that couldn't be matched on the ipad.That said, Emily remarked and I agree that it seems like for this particular application having a laser color palette might be the way to go. Maybe I'll try it out.In the meantime, I put the physical palette in a plastic bag so the playdoh doesn't dry out. If you want to play with it, come find me and I'll set it up for you—it should only take a minute.---------- Forwarded message ----------
From: Glen Chiacchieri
Date: Wed, Jun 24, 2015 at 6:27 PM
Subject: Re: serengeti
To: May-Li Khoe
Cc: Bret Victor , Dynamic MediumSee the video for a demo.The new setup has the quasi-modes bret describes. Point a laser at the wall and get a cursor with an indication of the brush size:
Press a color on the ipad while lasering to paint color on the canvas:
I also added a laser-controlled brush size adjuster:One thing that's interesting to me is what to make laserable and what to put in your hands. For example, using the brush size adjuster feels pretty good. Everyone (including the person drawing) can see how they're changing the brush size and what it will be when they draw. The only downside is that getting an exact brush size, especially when it's small, is pretty difficult.Compare this to the ipad controls, which in addition to feeling confusing (maybe this will get better with practice?) make it so there's a private control that only you can see and use. It also makes it so you can't just point a laser at the wall and have it draw immediately, which feels kind of bad for this very shared, graffiti-like application.Two things I'd like to try:1. Put the color palette on the wall and just live with the lack of precision.2. Make the color palette physical. Touching an ipad with no feedback when your attention is elsewhere is really not good.I encourage everyone to try it out and see if you have any observations. You may need to refresh the ipad page.
On Tue, Jun 23, 2015 at 10:31 AM, Glen Chiacchieri wrote:In the case of a wall-painting app, I might use a quasimode.Sounds good. Maybe I'll try it.That way people still get the satisfaction of having generated something without the wobbliness-potential of freehand drawing.Makes sense, though I think in this case I would rather be able to draw anything (a rainbow, for example) even if it doesn't look the best (wobbliness is because of my skills, not because of an inherently wobbly and feedback-free laser) than to have a limited palette of nice given shapes. Although I could imagine somehow "imprinting" physical shapes onto the wall rather than using virtual ones.For example, hold up the physical triangular prism and its outline is shown projected on the wall. Hit "freeze" and it stays stuck on the wall, kind of like Paula's TinkerCad.---While we're at it, the major "paint by laser" project I can think of is Graffiti Research Lab's LASER Tag:It definitely seems like there's something satisfying about painting on huge surfaces.My rainbow app started as an intuition that kids would find it fun to paint all over something big, like the walls of their house. I suspect that there's something neat about being able to reach and affect things that are usually out-of-reach—this happens all the time for kids (young ones especially), and even happens for adults as we see in GRL's project and our own spatial media experiments. It reminds me of something I think Claire Latané said in her Indiecade talk about playgrounds, that the feeling of control[0] over your environment seems important for children growing up. Of course, it's probably also important for adults, but we don't really think about it. Hopefully spatial media will let us start exploring that.–glen[0] It's easy to go too far and dominate your environment. c.f. climate change, fragile western agricultural practices described in Seeing Like a StateOn Tue, Jun 23, 2015 at 8:55 AM, May-Li Khoe wrote:If you play with quasi-modes, another thing to try could be drawing with pre-existing shapes. That way people still get the satisfaction of having generated something without the wobbliness-potential of freehand drawing. I could see this being really nice to use in conjunction with a conversation.Another option could be interpretation of the wobbly stroke into basic shapes and lines, like the new stuff released in paper by 53 that will adjust a rough circle into a perfect one etc.
On Jun 23, 2015, at 8:42 AM, Bret Victor wrote:I feel like I hit what I'm aiming at maybe half the time when I turn a laser on.That's why all of the laser UI is designed so you can point in the general direction of something, and then correct to where you meant to point. Almost all objects respond to the laser entering them or going up in them, not the laser going down in them.In the case of a wall-painting app, I might use a quasimode. The laser would only leave paint while you're holding down a button on the iPad. For example, the iPad would have a color palette that you could reach from your left thumb, and you would have to hold your thumb down on a color while painting. (Like photoshop, it would probably show the outline of the brush as a "cursor" even when you're not holding down the button, so you can see where the paint would appear.)I wanted the precision of drawing with your hand vs. the shakiness and imprecision of the laser.Our laser tracking is pretty crude right now, but there's a lot you can do to smooth the signal in something like a painting app. Heavily time-averaging the point would give you a slow but precise line that would "chase" the laser point.On Jun 22, 2015, at 9:27 PM, Glen Chiacchieri wrote:I thought that didn't even need saying! :PTo answer your question: because I don't know how to interact with the laser system :). Also, I wanted the precision of drawing with your hand vs. the shakiness and imprecision of the laser. I feel like I hit what I'm aiming at maybe half the time when I turn a laser on.On Mon, Jun 22, 2015 at 9:17 PM, Bret Victor wrote:Why not draw directly on the wall with lasers, using the iPad as a color/tool palette?On Jun 22, 2015, at 8:56 PM, Glen Chiacchieri wrote:I was wondering what it would be like to draw on the wall:<demo.png>
Perhaps unsurprisingly, it doesn't feel good to draw in one place and see the effects in another. Oh well.See the attached video for what the drawing process looks like. (Ignore the laggy drawing.)<demo-small.m4v>On Wed, Jun 17, 2015 at 9:26 PM, Bret Victor wrote:Here is the "wall audio player".[IMG_7891.mov]It's a little silly (the whole project is a little silly, which is nice), but it's getting at some general ideas --- every process should have a place in the world- you can think about it in that place- you can bring other people over to that place- you can get to it by pointing to that place- every process should indicate when it is working- every process should indicate when it has been working (history timeline)The daemons on the "engine room" board don't do 2 and 3 yet, but they should.