Tinyland
emmasmith.me
emmasmith.me
Lots of work on dynamic image capture, lots of work on interpolating what’s going on due to the low (by our standards) capabilities of the camera. Except...
...the camera was, to say the least, badly documented. A research student going through the documentation (looking for something else) finally noticed the thing had been misconfigured the entire time. In fact, the camera was significantly more capable.
The camera got reconfigured, people continued to produce research papers and no-one died. It was, however, extremely funny.
In our group we wanted to see how dead easy it would be to build an interactive projection system, so we did it.. just mounted a projector and a camera above a table [2] -- can't believe it's already been 10 years since then. It was surprisingly simple -- we didn't bother with AR tags, just used silhouettes via simple video processing as inputs to vector field operations to generate movement and influence physics simulations and audio-generating algorithms. The advantage being that you literally just stick your hand in there and something happens, it was great for kids. But building the whole system was quite easy too, it would make a great "science project" for the right age.
Oh, another fun "tangible computing" project from the same era was "BeatBearing", dug up the video here... [3]
There's a lot you can do with a simple camera!
I'd be very interested to see what the author comes up as a substitute for RealTalk.
As for RealTalk, the author is also interested to see what she comes up with! In the past week I've been playing with the notion of "claims" and "wishes", inspired by a description of RealTalk by Tabitha Yong, seen in this fantastic post by Omar Rizwan: https://rsnous.com/posts/notes-from-dynamicland-geokit/
The "Programming with Spaces" project has also been a very helpful reference, especially this guideline for implementing a Linda-like tuplespace: https://github.com/pSpaces/Programming-with-Spaces/blob/mast...
[1] http://play.witheve.com/#/examples/quickstart.eve
[2] https://youtu.be/5V1ynVyud4M
I want a Tinyland for our house. Atti, Meg and I would have so much fun with this!
>Paper Programs recreates just a tiny part of what makes Dynamicland so interesting. To learn more about their system and vision, be sure to visit Dynamicland in Oakland -- and please consider donating, too! >Paper Programs is inspired by the projector and camera setup of the 2017 iteration of Dynamicland. I liked how you could physically hold a program in your hands, and then put on any surface in the building, where it would start executing, as if by magic. [...] >In contrast, Dynamicland is a community space designed around Realtalk. Realtalk is a research operating system (in development for several years) designed to bring computation into the physical world. It is more general than papers, projectors, and cameras. Dynamicland is intended as a new medium of human communication, and is designed to be learned and used by a community of people interacting face-to-face, not over the internet.
But also - I realize you know about the limitations, but being only able to interact with one static program at a time, and not being able to see the source code of the components is crucial, it's what makes it "not even a Dynamiclandish prototype" for me.
But I don't want to be a killjoy and kill your enthusiasm; I think it's great what you've done! But I'm just irked at namedropping Dynamicland like this.
> If people keep calling random programs 'a compiler', it will quickly lose meaning... A compiler is intended as a new medium of human-machine interaction, capable of transforming arbitrary source programs into machine code...I realize you know about the limitations, but only supporting static assignment, not being able to compile functions, it's what makes it "not even a compiler" for me.
Dynamicland was always Dynamicland, even when it was starting out as a tiny implementation.
That blog post was meant to document Step #1 in what I hope to be a much longer term project.
Step 1: Magic table: Tangible user interface. Interface is real-world, physical objects.
Step 2: Paper programs: Multiple programs running simultaneously. Code is visible to all. I got a basic implementation working about a week ago. You can see an experiment here: https://twitter.com/emmazsmith/status/1195544461897547776?s=...
Step 3: RealTalk: Still chewing on this one...
Perhaps I should have emphasized the "work-in-progress" aspect of the project. Point taken, lesson learned.