I had the good fortune of taking a field trip there in 2018.
The video is a very good overview of the project.
One interesting artifact of "the real world simulates itself" is version control. At Dynamicland, each version of a program is a sheet of paper (with a unique set of fiducials along the edges). If you want to edit a program, you grab a keyboard and point it at the program. A text editor comes up; you make your changes, and hit commit. When you do, it spits out a new piece of paper with your changes. Put it in the view of the camera to use the new version. Take it away and use the old paper to roll the change back.
I assume this hasn't been "released" yet, but still thought I'd ask if the source code for the operating system (or "computing environment", in Dynamicland-speak) is available anywhere and also if there yet exists any DIY hardware guides for building your own to play with at my own location (far from the Oakland/Berkeley Dynamicland facility).
I believe the FAQ confirms that this is not possible at the moment:
> Where can I get Realtalk?
>> At present, Realtalk exists in Dynamicland spaces and in the spaces of our collaborators, where we can carefully grow and tend in-person communities of practice. In the short term, additional spaces will be started by people who have contributed significantly to an existing space and have internalized the culture and its values. Long term, we intend to distribute the ideas in the form of kits+games which will guide communities through building their own computing environments that they fully understand and control. Long long term, computing may be built into all infrastructure as electric light is today. This would also require an extensive network of educational support.
If you're looking for something like this that's under more active development, (and with available source code,) check out Folk [0]. It's being developed by some folks who visited/worked at Dynamicland but this is entirely in the open. They even have an open house in Brooklyn monthly where you can visit and check everything out!
I spent quite a lot of time at Dynamicland Oakland. It's great fun and the people are just wonderful. I think of Realtalk as adding another layer to programs, the Physical Layer. Program behavior can be determined and controlled by physical layout as well as code. It's not completely unlike a frontend/backend distinction, and in fact you could make a Realtalk simulator using a javascript canvas much more easily than building the camera/projector setup.
Just like building full stack software, there's a large amount of nonobvious skill in dictating your separations of concerns between the physical layer and software layer. Good programs are flexible, remixable, modular, intuitive, and let non-programmers make nontrivial interactions and enhancements via the physical layer. Bad programs require you to have the physical objects in a particular configuration, or break completely if one piece of paper is lost. I found these programming design questions a really interesting part of playing at Dynamicland.
A solid limitation of the system is that the pieces of programs aren't actually modular. You can't take a Cat from one program and a Dog from another program and have the dog interact with the cat. This is obvious in software - that's why we design APIs - but it's frustrating when all your programs exist in the same space (that's the whole selling point) and when bringing part of Program A into Program B is so intuitive and, when you have dozens of these programs lying around the room, inevitable.
I'd love to see them explore (wait for it...) using AI. Incorporating object recognition could remove the need for pasting dots onto every object by defining rules like "when you see a car, color it Red". It could allow for inter-program interoperability via the shared language of object recognition. And it could even determining logical interactions in a fun and surprising way: what _should_ happen when I take the cactus from this program and put it on top of the balloon from that program?
I love the ambitions and values in this work: that programs are physical so are shared and discoverable, that things are learnable through play, that the goal is people together.
It's as if you asked someone to redesign the computer (as a concept) based on the technology and knowledge we have now, and designed around the tasks most fundamentally human.
Always inspiring, always a gut check if I'm doing work that's valuable.
bsimpson ·6 days ago
The video is a very good overview of the project.
One interesting artifact of "the real world simulates itself" is version control. At Dynamicland, each version of a program is a sheet of paper (with a unique set of fiducials along the edges). If you want to edit a program, you grab a keyboard and point it at the program. A text editor comes up; you make your changes, and hit commit. When you do, it spits out a new piece of paper with your changes. Put it in the view of the camera to use the new version. Take it away and use the old paper to roll the change back.
Show replies
reaperman ·6 days ago
I believe the FAQ confirms that this is not possible at the moment:
> Where can I get Realtalk?
>> At present, Realtalk exists in Dynamicland spaces and in the spaces of our collaborators, where we can carefully grow and tend in-person communities of practice. In the short term, additional spaces will be started by people who have contributed significantly to an existing space and have internalized the culture and its values. Long term, we intend to distribute the ideas in the form of kits+games which will guide communities through building their own computing environments that they fully understand and control. Long long term, computing may be built into all infrastructure as electric light is today. This would also require an extensive network of educational support.
Show replies
AlphaWeaver ·5 days ago
[0]: https://folk.computer
Show replies
thatguymike ·5 days ago
Just like building full stack software, there's a large amount of nonobvious skill in dictating your separations of concerns between the physical layer and software layer. Good programs are flexible, remixable, modular, intuitive, and let non-programmers make nontrivial interactions and enhancements via the physical layer. Bad programs require you to have the physical objects in a particular configuration, or break completely if one piece of paper is lost. I found these programming design questions a really interesting part of playing at Dynamicland.
A solid limitation of the system is that the pieces of programs aren't actually modular. You can't take a Cat from one program and a Dog from another program and have the dog interact with the cat. This is obvious in software - that's why we design APIs - but it's frustrating when all your programs exist in the same space (that's the whole selling point) and when bringing part of Program A into Program B is so intuitive and, when you have dozens of these programs lying around the room, inevitable.
I'd love to see them explore (wait for it...) using AI. Incorporating object recognition could remove the need for pasting dots onto every object by defining rules like "when you see a car, color it Red". It could allow for inter-program interoperability via the shared language of object recognition. And it could even determining logical interactions in a fun and surprising way: what _should_ happen when I take the cactus from this program and put it on top of the balloon from that program?
Show replies
gffrd ·6 days ago
It's as if you asked someone to redesign the computer (as a concept) based on the technology and knowledge we have now, and designed around the tasks most fundamentally human.
Always inspiring, always a gut check if I'm doing work that's valuable.