4 ms·
Hi! I was asked to repost this (a la https://news.ycombinator.com/item?id=11662380 https://news.ycombinator.com/item?id=11662380), so here goes. I'm JP, and I c
by janpaul123 9y ago
Hi! I was asked to repost this (a la https://news.ycombinator.com/item?id=11662380 https://news.ycombinator.com/item?id=11662380), so here goes. I'm JP, and I created this project after visiting Dynamicland a couple of times. I wanted to capture some of the magic there in my living room, and decided to implement the "programs running on pieces of paper" part.
It was super fun implementing this. I ended up using OpenCV.js, which has only just been released, reimplementing an OpenCV algorithm and learning about computer vision, learning about OffscreenCanvas, which is so experimental that it crashes periodically (a bug I was able to isolate and submit to the Chrome dev team), learning about how to mount a projector facing downward, and so on.
Few things are as satisfying as a piece of paper rolling out of a printer literally onto the floor, where it starts executing. And then cutting it up with a pair of scissors to change its shape.
I hope you have as much fun with this as I do!!
PS: If you want more inspiration for building cool stuff with projectors and cameras, check this out: http://tangible.media.mit.edu/project/pico/ http://tangible.media.mit.edu/project/pico/ :) They have a ton more interesting projects like that!
- nni 9y agoI've been seeing folks get excited about this, and haven't yet been able to see why it is so interesting. However, the people behind it (Bret Victor et al) and who I've seen playing with it are too interesting for me to ignore this...
- shakna 9y agoI'm excited, because it fits my current workflow. I do very little of my coding on a computer. Instead, I build up all the discrete parts of my code using sticky notes, that kind of get constantly re-organised while I'm writing. So my desk ends up as a mess of sticky notes that get pushed and pulled around, which seems a lot like what you can do with this - except you can also run each part of this code, instead of relying solely on your memory.
- theon144 9y agoIt's a very different kind of interaction than with code on the screen, and fits the way one thinks in a much more concrete way. It's like an embodied metaphor, one that people are intimately familiar with, and the immediacy of it allows you to iterate quickly as you have direct feedback, and the whole structure is made visible for everyone to see, enabling a kind of collaboration unusual for computer programming (image the dynamic of a group of people trying to build a tent together compared to a group of people all staring at a static view of an IDE). Of course, it's nothing groundbreaking just yet, but I can't help but get excited at the possibilities of this sort of medium.
- vanderZwan 9y agoI wouldn't be surprised if tangible coding could be a lot better of an environment for debugging. Something with real physical space makes it much easier for me to follow the flow of things than scrolling things on a screen.
- TeMPOraL 9y agoI still don't see how this is true, either in this case or in Dynamicland - neither of those seem to OCR programs from the piece of paper. So you still do classical programming alone, and only get to play with the results. A piece of paper may contain the actual program behind system's reaction to it, or it may contain a picture of a cat - the contents are irrelevant; it's the dots that matter.
- janpaul123 9y agoIf you write small programs that interact with other programs, then rearranging them on the floor/table becomes a form of programming (similar to how combining UNIX-style programs in shell scripts is a high-level form of programming). So even when playing just with the papers, you can be programming.
- meemoo 9y agoThere's also the interplay of arranging papers, and live-editing the code in a particular piece of paper. In Dynamicland, the projector highlights printed code in green/red to visualize diffs. You can sketch a UI element on the paper (eg a rectangle and token for a numerical slider), then go back to code the interactivity. Units in the code are inches on the table. Subtle things like that break you free from the laptop. When you want to "commit" your code changes, you print a new version.
- vitovito 9y agoSeeing the Dynamicland tweets made me rethink all of Bret Victor's previous work, and I wrote up why it's interesting from a design perspective here: http://vitor.io/on-dynamicland http://vitor.io/on-dynamicland
- Kiro 9y agoWhat project are you referring to that Bret Victor is involved in? I don't see his name anywhere.
- verytrivial 9y agoProjector added to my Amazon basket immediately! Thanks for sharing.
- pault 9y agoThe title made me think it was js running on printed arm chips: https://venturebeat.com/2015/01/21/thinfilm-teams-with-xerox-so-it-can-print-a-billion-chips-a-year-for-the-internet-of-things/ https://venturebeat.com/2015/01/21/thinfilm-teams-with-xerox...
- eerikkivistik 9y agoI am eagerly awaiting the Bobby Tables (https://xkcd.com/327/ https://xkcd.com/327/) version for eval()
- genmon 9y agoRespect for the fact you give generous credit to Dynamicland while also saying honestly how your project is differentiated. It would have been easy not to
- zestyping 9y agoHi, I'm honestly confused by the statement "Paper Programs is not a clone of Dynamicland". All the ideas about how it works seem to come from Dynamicland, and everything it does seems to be designed to work exactly the way it does in Dynamicland. So, how is it not a clone? If I had to describe it to someone based on what I learned from the website, I would say "Paper Programs is a browser-based JS clone of Dynamicland's paper programming system." Is that incorrect?
- meemoo 9y agoI think that section is clear. It's not a clone because Dynamicland is a building in Oakland. An open-source software project can port some of the experience, but to clone it you would need to establish a large physical space. I'm excited about Paper Programs. I got to spend an afternoon in Dynamicland, and after exploring a couple hours I was sure that I wanted access to the system back home. Their response was "wait a couple years." Not everybody can make it to Oakland! Dynamicland focuses on in-person collaboration. Maybe Paper Programs will explore tangible computing with remote collaboration.
- janpaul123 9y agoAlso, Dynamicland uses Realtalk, a programming language / operating system / protocol for physical computing that is more general than projectors/cameras/papers.