Dynamicland
dynamicland.org
dynamicland.org
Definately the visions/goals are differently motivated, but interesting to see more examples of adding tangible control to computing.
In his talk - https://vimeo.com/115154289 - Bret has a footnote reference to Radical Atoms group (Hiroshi's group)
I'm very curious if DynamicLand code can be created without touching keyboard, and actually printing new sheets by just moving and interacting with other sheets, making it actually self-hosting.
Also, their examples are very visual and quite complicated (car aerodynamics flow). Doing this from scratch might be quite challenging, unless building blocks are very smart.
---
Sidenote: I'm surprised to learn that code printed on these sheets is Lua-based. Lua does not have a lot of syntax, but does have some, and I would think that any language that is meant to be created in physical space should aim for the most minimal syntax, almost none if possible. Lisp comes to mind, as I can image a physical representation of S-expressions much better than Lua code.
Regular folks who don't program in their daily life connect best with things they can read: presenting them with lisp is a bit like presenting them with mathmatical notation: even if those that are marginally familiar with them will say it's simple, it's exactly too difficult to be accessible for people who have _no_ familiarity with them at all. You actually want that verbosity of added syntax, because it lets people recognize something in what is inherently alien to them.
Don't think about (Lisp (notation)) -- think about the fact that the entire syntax is "this is enclosing box" (can easily be done with paper by putting smaller sheets on larger ones) and "this is the order of items within the box" (very natural to re-arrange these blocks). Lisp doesn't have lines, in that sense, and lines don't make a lot of sense in physical world.
Just to be clear, I'm not disagreeing about the fact that Lisp is a bit complicated to be first programming language _when writing text_. But its design is great for physical manipulation.
A primary design principle at Dynamicland is that all running code must be visible, physically printed on paper. Thus whenever a program is running, its source code is right there for anybody to see and modify. Likewise the operating system itself is implemented as pages of code, and members of the community constantly modify and improve it.
That said, the pages of code physically in Dynamicland are not in a git repository. The community organizes code spatially — laying it out on tables and walls, storing it in folders, binders, and bookshelves.
<erno> hm. I've lost a machine.. literally _lost_.
it responds to ping, it works completely,
I just can't figure out where in my apartment it is.Dynamicland introduces a 1:1, persistent mapping between virtual and tangible. won't this kill a lot of trees?
The space and resource requirements definitely stifle it for ubiquitous application but hey, it's an early tech and it'll certainly improve in time.
From the pictures, it looks like they've set up some kind of system to translate certain physical movements into changes in the projected images. It seems like a non-technical user can only make superficial changes within a limited set of pre-defined behaviors. But from the description it sounds like there's a lot more to it than that...
For me, the impressive part of Dymanicland is how physical everything is. Want to see how something works? Find the paper that the code is printed on. Need help understanding some code? Bring somebody over to the wall, table, or couch where the code is. You can annotate the paper, draw diagrams on it, cut it, fold it, tear it, put it in a book to help others learn how it works. Want to edit some code? Point an "editor" token at the paper program you want to modify, then start changing the code.
Dynamicland isn't a room with a computer, it's a room that is a computer.
The important thing to keep in mind is that everything in Dynamicland is, well, dynamic. Right now, editor tokens are just normal Realktalk programs printed on paper, but in the future the might be a different physical object. Right now you edit the coded using a text editor, but in the future you might use a pen to write code directly on paper, or perhaps you'd re-arrange physical objects that represented blocks of code, etc ...
> Want to edit some code? Point an "editor" token at the paper program you want to modify, then start changing the code.
If you edit a paper program, then won't the source on the paper be obsolete? Will that be indicated somehow? If I'm looking to see what a piece does, how can I tell if the source code on it can be trusted?
When a program is changed, Realtalk will print a red line over the lines that have been modified or removed. It looks a lot like the output that you'll see from a "git diff" on a file.
You mean like, from the projector?
for your right
to compute
Dynamicland is a communal computer,
designed for agency, not apps,
where people can think like whole humans.
It's the next step in our mission to
incubate a humane dynamic medium
whose full power is accessible to all people.
Just take "designed for agency, not apps" for example. It's a nice rhetorical technique to contrast apps with agency like this, suggesting that apps somehow deprive one of agency and that Dynamicland can restore it—but it feels pretty disingenuous if you think about it for a minute. (There's a section on the page also titled "Agency, not apps", which brings me no closer to feeling that the use of 'agency' is justified.) In actuality each platform (traditional computing, Dynamicland) has tradeoffs in terms of what one's agency is applicable toward. I can see no reason to think Dynamicland is an increase in agency over traditional computing rather than a lateral (and perhaps complementary) change. I agree it's nice to use your body rather than just fingers, but unless I can do the same things with the 'alternative medium' (and there is no material I've found suggesting a level of generality even in the same realm as traditional computing), I'll complement my computer use with other physical activities and face the reality of fingers for input until a true alternative comes along.I agree the problem they are addressing is epic, and their language is suitable for describing it, but from what I'm able to glean about the project, the solution so far is on the level of 'neat,' and maybe important for introducing new users to programming—but, if that's what it's for, just say it! Instead we see that the aim of the project is to 'reinvent computing for the 21st century'. So am I going to do my taxes with this? Am I going to use it write novels? To design 3D models? To conduct research? To build artificial intelligence? To discover new medicines? To call an Uber? Is there any reason to think it might attain the level of generality where it could at any point be an actual alternative to contemporary computing? Or are we supposed to take this on faith because of the people involved? How could this compete with similar systems designed in AR? It seems to me like there's more 'agency' in AR since a system like this could be replicated within it, but with AR we'd likely have a number of alternative 'physical computing platforms' like it (Of course not soon, but they're talking about a timeline of at least 50 years for this project).
It's definitely refreshing to be able to interact with 'real' objects ('physical' would be less rhetoric-laden), but I feel like the novelty and suggestive language here may tempt readers into forgetting how much power was gained through computation specifically because it didn't require fiddling with physical objects. It's a big deal, and I'm pretty sure that a legitimate alternative computational medium will require deep theoretical breakthroughs, of which I've seen no suggestion here.
That would be one the most obvious thing to do with such a system, as writing a novel used to be a very spatial task, and current text editors are not good at helping writers organizing their novel, identifying patterns, etc.
> AR
This is AR, but with projectors —which is not novel in itself, as it has been explored in labs, during prototyping events like Museomix and by digital artists for several decades now. HP even tried to commoditize the technique with the Sprout all in one computer.
You are right that the next step is most probably to do without projectors and replace them with AR glasses.
But the manipulation techniques, the collaborative aspect need to be developed and iterated, be it with or without AR glasses, and my understanding is that’s the goal here.
If you ever get a chance to visit Dynamicland, do not pass it up.
This software is no more liberating than a "free" windows product given and taught to kids in a hope to encourage vendor lockin. They use words like "lift all people" or "agency not apps": nah, only those people who live nearby in one of the most expensive places in the world. The system is confined to their magic building, will they charge fees? are only those wealthy enough to travel and live near one be able to experience it? can anyone set up these buildings (around 2040 no less), or is there a franchise fee or agreement that is required? where is the code (scanners are a thing; what about the bootstrap code running on the servers)?
They claim to be basing the model off of the internet. Decentralized agreed upon protocols. How can I talk to their system if nothing is published? If there is no code to read? How in the world is that an open decentralized protocol? How can people iterate - provide feed back - when they don't even have RFCs or any published material at all. They are promoting exactly the walled garden behavior that is the antithesis of the open model of the internet.
The whole thing is suspect. I realize they are a non-profit, great. But that doesn't mean they support the ideals of a public commons like a free and open source project. It doesn't mean donations to this project will truly be helpful to everyone. Yet they are "beyond" open source. It reeks of arrogance and entitlement to claim such things. It rubs me the wrong way. Especially because it seems so cool.
[0] For those who forget: (0) to run the program, (1) to study and change the program in source code form, (2) to redistribute exact copies, and (3) to distribute modified versions.
Given that it's a physical space... you go to the physical space. You can pick up the source code for the entire thing there - it's self-hosting, so you can read it like any other object in Dynamicland. You can also copy it physically, using a scanner.[0] Actually finding a suitable physical space and building a community might be the the hardest part of replicating it.
It's also a very early project - the first Dynamicland space opens next year. I'm sure we'll learn more about it, but the entire point of it is that it's not online - it's a physical space and a community meeting in real life, and if you want to learn about it and maybe try to replicate it, you'll have to go there.
> are only those wealthy enough to travel and live near one be able to experience it? [...] where is the code (scanners are a thing; what about the bootstrap code running on the servers)?
A project can't claim to be "beyond" open source by having printed (unless they are using a printing press, that code was digital at some point) pieces of paper, especially while only being available to a couple of - by absolute standards - wealthy people.
[1] From the Laser Socks write-up — a great example of a game that came out of Dynamicland: http://glench.com/LaserSocks/
http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesi...
Like, what did you do? Design the home screen? Design the vision of the machine itself? It's ambiguity taken to its highest extreme.
I really respect his work and publications though, no doubt that he made important contributions to the products he shows on his slides.
Almost everything that's good and powerful about software comes precisely because it's non-physical. It's probably just a failure of imagination on my part, but I can't see a path where re-introducing a bunch of physical representations of virtual things makes things better for those trying to create, maintain, or understand complex systems.
Is Dynamicland open source?
Dynamicland shares many core values with the open source movement and in some ways goes beyond them.
A primary design principle at Dynamicland is that all running code must be visible, physically printed on paper. Thus whenever a program is running, its source code is right there for anybody to see and modify. Likewise the operating system itself is implemented as pages of code, and members of the community constantly modify and improve it.
That said, the pages of code physically in Dynamicland are not in a git repository. The community organizes code spatially — laying it out on tables and walls, storing it in folders, binders, and bookshelves.
I can also see it being useful as a very general _and_ powerful prototyping tool, one of the demos shows someone making an input controller from a physical spring and a colored piece of clay.
When it becomes so easy to integrate your environment with the computer, I can only begin to imagine what's possible.
Not as many people meet strangers in chat rooms or games these days, but it'd be sad if the baby of connecting people anywhere was thrown out with the bathwater of big social panopticons and glass screen prisons.
Given that this comes from research directly connected to Alan Kay, he at least is well aware of the values of the people who pushed computers from simple calculating machines to things that we create with.
They also repeatedly refer to the research of Douglas Engelbart and his desire for computers to augment humans. So they are at least trying to bring forward ideas from a time when the core values of the personal computer were being considered.
I’m sure there were people who were against the concept of syntax highlighting when it began for similar reasons but I would hazard a guess that most people who code regularly find it invaluable.
I grant you that this probably won’t be useful for say, kernel programming, but it is also extremely new and an experiment. The worst thing we can do is ossify our ways of thinking and not be open to new and experimental ideas.
I think what they are doing at DynamicLand is trying to similar experiments as Douglas Engelbart back in the 60s to try and find ways to bring more of the other innate skills we have into a computer that is not via a keyboard.
So like the mouse, it might seem like a toy but it has the potential to be combined with pure programming.
Also especially with neural networks that are learning how to code, we may be able to give more physical input to a neural network and it will produce the program.
All this is looking far into the future, so they don't know what the final outcome is either, but they're experimenting to find what works.
Tablets on the other hand... literally just consumption devices, even creative applications in them are locked up and siloed unable to inter-operate.
Andy Hertzfeld
Mitch Kapor
Patrick Collison
Drew Houston
Alex Payne
Josh Elkes
Carlin Wiegner
Notion
UCSFHoly crap. This is really, really cool. Actual magic.
But most importantly — programs are real. You touch them. You see them everywhere — they can only run when visible. You can change anything and see what happens. No black boxes.
I think I'm in love.
The computer of the future is not a product, but a place.
From the reverse: if something happens, how can I tell which piece of paper somewhere in the room made that happen?
In practice, when I wanted to see how something worked, I would just ask somebody in the room and get pointed to where the dependency was.
Other than the ones hiding behind the projector in the ceiling you mean?
Kind of like the Wizard of Oz I suppose...
Do you see yourself using this as an alternative to your current computer/phone? For the things I use computers for, it seems that Dynamicland would not be applicable, so I'm having a hard time understanding why some are finding this so exciting.
(Don't get me wrong, I think it looks neat, and the problem it's addressing is important—but it does not appear to be an actual general-purpose alternative computing platform. And I've seen/read most everything put out related to the project if I'm not mistaken. Feel free to suggest me new things if someone thinks it has general-purpose computing capabilities.)
In it's early stage there are still many utilities and performance improvements it needs before it can replace your MacBook pro, but it is tangibly exciting to actually work collaboratively rather than stare at a screen at the same time as someone else is staring at a different screen.
The magic moment is in how different it feels to compute with your whole body in a social environment. It really does make a screen feel like a cage that has trapped your mind.
It will never replace my MacBook pro - I don't want to have to set up a board game every time I sit down in the park to work on something! It's a cool educational tool for young kids, but we're going to have to wean them off of fun tactile interfaces and on to text eventually. (The biggest problem with visual programming environments is that they force the programmer to solve large-scale graph problems in order to make their programs not look like a mess - this wouldn't be solved by escaping the screen.)
Hello, humans in 20 years when this comment is being used as a humorous example of what people thought in 2017. ;)
We can infer that having to teach a computer won’t be easier than straight on telling it what to do with a formal language and getting feedback. The hard part is designing the problem space.
Of course better, continuous feedback would greatly improve the ease of programming.
1. If you want to maximize composibility, then you want the "units" (here, the units would be the sheets of paper they're using) as general and uniform as possible. Think lego blocks.
2. If you want to maximize expressivity, then you want the "units" that encapsulate (probably turing complete) code. Think flowcharts or diagrams where each descriptor references a method, or a library, or eve an entire subsystem.
The problem with #1 is that it's extremely difficult to build large, complex projects that way.
A problem with #2 is that the "visual programming" aspect eventually gets revealed to be merely a stepping stone to "real programming" of writing in code.
This project looks to be an example of #2. Am I right? If that is so, does that mean that creating complex projects would naturally lead to larger and larger amounts of code on a single sheet?
With the physical environment of Dynamicland, "code" can be re-represented using physical objects, and we may not even need it. That's a really exciting idea!
You can still have programming without text-based coding.
And most importantly (and probably the most work) the user interface for this would have to be extremely polished and well-thought-out.
But programming by putting A4 sheets side by side? I only see that being useful as an education tool.
The latter is true - it would be nice if there were academic style papers describing the system, or reference source code, etc. - but I understand that right now, their time is mostly dedicated to building+fundraising, and the goal of this website is to have something rather than nothing online.
That being said, Dynamicland inherits a lot from many previous subfields in computing.
If anyone wants to get deeper, and try to wrap their head around what Dynamicland aims to be, here are what I think a few starting points:
- Alan Kay's STEPS paper, the goal of which is to have a fully implemented OS + base libraries etc in a few thousands of lines of codes at most, by using modern patterns and abstractions.
http://www.vpri.org/pdf/tr2011004_steps11.pdf
- Bret Victor's "Seeing Spaces" is pretty much the precursor to Dynamic Land
http://worrydream.com/SeeingSpaces/
- Ishii & Ullmer's seminal paper "Tangible Bits: Towards Seamless Interfaces between People, Bits and Atoms" (which precedes Dynamicland by 20 years, but I think many core goals are shared)
https://trackr-media.tangiblemedia.org/publishedmedia/Papers...
This paper kickstarted the whole "tangible interaction" subfield of Human Computer Interaction. If you wish to dive even deeper, I recommend:
- reading Ullmer's PhD thesis, of which the previous paper is essentially a TL;DR
http://alumni.media.mit.edu/~ullmer/thesis/full-noblanks.pdf
- checking out the proceedings of TEI, the ACM conference for Tangible & Embodied Interaction (sadly you'll need an ACM digital library membership, but if you are a computer scientist it is very much worth it and you should get your job/school to pay for it if you can).
https://dl.acm.org/event.cfm?id=RE271
I have no ties to Dynamicland besides having visited it, but I have done my graduate studies under one of the aforementioned authors and shared workplaces with people from Bret's group, so I'm happy to talk more about the whole "tangible interaction" aspect of it all.
> Every scrap of paper has the capabilities of a full computer, while remaining a fully-functional scrap of paper.
this is probably a false statement...
Maybe boring ASCII code is simply the correct, inescapable tool for the job. Maybe expanding the range of human thinking is impossible inside a system that can't modify itself.
(But maybe I'm completely wrong!)
EDIT: One of the other comments mentioned that Realtalk is self-hosted on pieces of paper. Hmm, that makes this a whole lot more interesting!
Source: https://twitter.com/redblobgames/status/907253802931126272
Abandon your virtaul dreams hackers.. start to socalize and group think. And use paper.
Of course, that doesn't mean the project is bad, just that it's profoundly unsuited to me personally. But I'm probably not the only person like that on this forum...
Also, regarding books, there is, historically, a lot of content.
For example: I learned how to use the graphics system in Realtalk with a physical booklet that I could have taken home and studied. The booklet had the code printed out on it, as well as hand written annotations from previous readers. The "magical" part was putting the booklet in a space running Realtalk and seeing live examples of the code projected onto each page as I flipped through the book.