Dynamicland 2024
https://dynamicland.org/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.
That’d be pretty funky.
I suspect each piece of paper, if examined with a good enough camera, has a unique fingerprint, like a snowflake, and perhaps this could be used in the future for an "Isomer Addressed Filesystem". In other words, all pieces of paper ship with a UUID already, woven into their atoms.
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.
there's something ominous, weird, and sort of damning about being protective of your "culture and values" in this way and to this extent. If Dynamicland offered a truly novel computing paradigm, it should be one that is accessible by other cultures. If it offers a valuable culture and worthwhile values, those values should be viral on their merits. They should be broadcast, rather than kept closely guarded.
If you have to carefully indoctrinate new users into your culture in order to protect it and keep out the Others who might ruin your culture with wrongthink, maybe what you actually have is a cult.
Yes, AND it may also be because it's kind of innovation in the open, before it's really ready or that all the critical angles are fixed, and they might not want spoil specifics they would like to make flourish and present to the whole world, and see them ... let's say half-assed, or misunderstood enough that it does not "jell".
In the end, it will be embraced in some way. But it's understandable that they have a specific idea in mind.
See it as a trailer for a movie where post-prod is not yet fully done, perhaps.
Still, they've been working on this for yeeeears.
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 also thought this, but learned that what I needed was an Alan Kay style "change of perspective".
The key for me was understanding the "wish" and "claim" concepts in Realtalk. In your example above, you would need to separate your "Dog" program into two programs: One that was simply a program claiming "I am a dog" and another that would encode dog behavior, something like "I wish that a bark sound would play when a dog is near a house" - then you'd leave it up to Realtalk to make that happen. Adding "Cat" behavior would mean adding two new programs: one to claim "I am a cat" and another "I wish that a meow sound would play when a cat is near a house". To make the "Dog" and "Cat" interact, you'd add a program that said "I wish that a growl sound would play when a dog is near a cat" and so on.
Another example that might help is how I learned this myself: I made a set of playing cards. What I ended up with was 52 pieces of card stock, each one had a program that was simply "Claim that I am card X" - and then I made separate programs the give those cards meaning. For example a program to give the cards a style would be something like "I wish that card 1 will have the Ace of Spaces printed on it, etc" and another program would be something like "I wish that the sum of all face values of the cards on this line is printed next to the line"
It took me several days to internalize this, but once I did things started getting fun pretty quickly. For example, I was able to make a program to "clone" a real world image onto a playing card by having Realtalk take a picture of a rectangle and then always project that image onto a particular card when it was face up. Because the cards just made claims about their identities, this let me separate the designs on the cards from the rules as well as add "training mode" programs to help teach basics. And they were all decoupled!
Well, you know what, whenever someone invents such a thing, it would be great. But it doesn't exist yet and there's good reason to think it never will.
What is 100% certain is that LLMs are not intelligent and never will be. They are just very good at producing totally stupid, mindless output that convinces some people it's real and was produced by humans.
It isn't, and it won't be.
Bret's take on being a visionary/futurist is fascinating. He imagines the near-future world he wants to live in, prototypes enough of it to write a talk about, and gives the talk with the hopes that someone in the audience will be inspired to make it a reality. He gives ideas away with the hope that he'll be paid back with a world where those ideas have been realized.
like countless hundreds of quotes on execution vs ideas, here is one: "Ideas don’t make you rich. The correct execution of ideas does."
anyways, i'm gonna spend a little more time this evening to really dig in.
I am unaware of any of the ideas having been picked up and productized. I might be mistaken.
However, if I'm correct, then the thing that could be better is picking ideas that have a high chance of being selected, everything else being equal.
For example, this is Vlad Magdalin, one of the founders of Webflow:
> But I won’t claim credit that it was some magical insight that I had. It was a specific video that I saw that I think every maker and every creator should see called “Inventing on Principal” by Bret Victor. Seeing that talk, it’s a maybe 50-minute talk around creating games and doing animation and this broader concept of direct manipulation, but more importantly the principal behind why you do the work you do, what drives you.
> Seeing that video and being a designer and a 3D animator and a developer all at once, it just sparked that idea of, “holy crap.” The kinds of tools that we can have in animation land, the kind of tools we already have for game design and level design, the tools we have in digital publishing, all those things can be married together to front end and back end development and make it a much more human type of interface. That’s when it was boom, this has to be a product and a thing.
(source: https://www.indiehackers.com/podcast/144-vlad-magdalin-of-we...)
What makes you think this?
A 2.0 version could even merge the two versions slightly, tracking irl people into the virtual space (with pose and position estimates?) and programs (? I don't know the lingo off hand, but I mean the paper sheets everything revolves around) and in the opposite direction project the programs from VR onto the real table.
I've been interested in it for years so I'm very glad to see it's still moving forwards and alive. There were years where I couldn't find any actual new information coming out of the project.
That would be something entirely different.
Many of the ideas can be worked on and improved without requiring the expensive physical space so the OS and the concepts of the composed tools they talk about for the future of the project can all be improved and played with in a virtual space too separate from the physical presence.
I’ve heard various people give roundabout excuses, but none of them hold water. They often fall into one of the following categories:
- “People won’t get the core ideas and will use it to make things that go against the core ideas” — People who care about Bret Victor’s work will take the time to learn the ideas. People who don’t might try and make something Bret doesn’t like, but currently the world is full of things Bret doesn’t like, so I don’t get how that would be different than the status quo.
- “It’s actually ‘anti-internet’, reimagining computers as objects in physical space, without the intangible connections provided by the internet” — Cool! I’d like to use it to make an airgapped little lab thing for people in my city to play and experiment in, but I can’t do that unless it’s released to the community.
- “Yeah but remember it’s ‘anti-internet’, releasing it open source on the internet would violate the core principles.” — This feels too cute by half. I don’t consider this a legitimate objection.
- “Just come to Oakland, you’ll understand when you get here and use it.” — That’s way out of many people’s budgets. I also get the feeling that I wouldn’t come around just by seeing it, I think I’d want one in my city even more.
- “You’re not entitled to other people’s work.” — True, but most stuff done in this sort of research space is done with the intent of spreading an idea or increasing the public good. It seems kind of odd that the Dynamicland folks keep talking about what a revolutionary concept it is while preventing 99.9% of people from actually experiencing it.
Overall it just seems like such a weird attitude. I get that they’re worried about the world misunderstanding their ideas, but at this point there are tons of people who have been eating up Bret Victor’s work and have immense respect for his ideas, and would gladly watch, listen to or read whatever instructions would be necessary to help someone who’s already bought in “play by the rules” and get the best possible experience.
I think the problem is like what happened to "agile" after the manifesto. People took a term with a meaning, and ignored that meaning in promoting their own stuff, thus confusing the terminology and messing up discussion of the concepts.
I know this comment will seem pedantic, but I hope it also communicates that the goals of this research project are different than you seem (at least to me) to consider. Bret Victor's goal isn't to design a system of projectors and cameras that run code on pieces of paper (just like Engelbart's goal wasn't to design the mouse). At a certain level, Bret Victor wants to explode our concept of computing.
The source code isn't the idea, the idea is. That's what needs to be communicated.
The web page is huge, though, with an unbelievable amount of information if you want to build your own.
If what they want is for people to try and reimplement Dynamicland without their guidance, then they’re certainly doing the right things. But if their goal is to convert people to a new way of thinking about computing, this is not a great approach.
What a low opinion you have of yourself. On the contrary, you're likely to learn a lot more (and of course, spend orders of magnitude more time) recreating something interesting from the ground up than you are simply copying the source code.
The source code isn't the interesting part.
>Anyone can change any program at any time, and see the changes immediately
Not sure what programming language Bret implementing the system but recently there's discussion how difficult and how slow to parse/compile some of the popular programming languages including C++ and Rust. In this case D is a unique anomaly where it has immediate rdmd REPL facility although it's a complex and a compiled language [1].
For creative, inventive, intuitive and comprehensive programming cyber physical system that involve hardware with fast sensing, control and immediate responses, D language is hands down the best programming there is [2]. The D authors however don't believe in any killer applications but this Dynamicland of communal computing most probably the niche that D is looking for to propel it for more wider adoption.
[1] Parsing Awk Is Tricky:
https://news.ycombinator.com/item?id=41422283
[2] D Features Overview: