15 comments

[ 3.1 ms ] story [ 13.2 ms ] thread
I have read about Dynamicland before and really like the idea of an interactive program/computer. However, I still do not understand what they are actually doing. For example this quote:

> "Each one of these was made by a different person at a different time, yet Bret was able to combine them without making a single code change, he just placed them next to each other."

What exactly are they programming? Writing that face from scratch would take a LOT of code. Or is it like a high level framework they are all using which combines visuals together? The idea seems very fun, wholesome, and educational. However, they do not explain what is actually happening from a programmer point of view.

I visited, but did not write any code. There's an overarching system that loosely couples everything together. E.g., the system provides drawing/sound primitives, controls how different pieces interact according to a fixed set of rules, and reads/displays the results of computations via cameras and projectors.

People write the bits of code, print them out on paper, with barcodes included that encode the contents of the program for the cameras to be able to see. Each program, then, specifies directives for its own behavior with "anything else" that wants to interact with it.

For example, one program might specify a "wish" to have a number n as input, and then it would produce as output a drawing with a flower that has n petals. Any program that provides a number (maybe by, say, asking the camera to see how many red blocks are on the table) can emit that number in a direction (the papers are oriented) and if you point it at the first program, the system connects the emitted number with the wish of the target program in the obvious way.

So it's like each program is its own independent agent with a really simple behavior, and when you combine a bunch you get some nice emergent system.

AFAIK currently the process of learning/writing the programs still happens on a laptop by yourself. I guess the picture of the young woman typing on a keyboard with the screen projected onto the table is a step beyond that.

Some of us are intrigued but can't pay a visit to the lab in person. I would love to see some videos that illustrate what you're describing and better understand how they would eventually synthesize into real life productivity
I get the sense the end goal here isn't in productivity but more for education and creating environments that foster a programming mindset and/or nourish more emergent creativity from being able to code at a higher level (probably the most consistent theme in all of Bret Victor's forays).

In a sense, it's basically just a framework with a text editor that isn't based in an OS but instead a 2d surface that you interact with, using your hands and interacting in a more social medium than something like, say, git.

> I get the sense the end goal here isn't in productivity but more for education and creating environments that foster a programming mindset and/or nourish more emergent creativity from being able to code at a higher level

While those uses are certainly easy to see and imagine in Dynamicland, the mission statement for Dynamicland is to "incubate a humane dynamic medium whose full power is accessible to all people."

The researchers at Dynamicland take this mission statement quite seriously and are making a new medium. Like any medium, this one isn't explicitly limited to one kind of use.

That's fine. Right now I've seen several accolades on Hacker News which to a website that has pictures and videos of dancing lights and spinning paper with lots of hand waving around how all of this actually works. It's natural that people who like to Tinker would like to better understand I have all these impressive things come together to build something practical
Dynamicland is amazing, it needs to be seen in person. I encourage everyone to visit and donate
I'd really like to see some examples of the kind of code people actually write for this system. It seems strange that the dynamicland site avoids this entirely.
To borrow from the show "Halt and Catch Fire": The programming language isn't the thing, it's the thing that gets you to the thing.

In my talks with the researchers at Dynamicland, it's become clear the programming language is, well, dynamic. It's in flux and not what the main research is being done on.

At a high level, the focus at Dynamicland is on what a "humane dynamic medium" is and can be, which is slightly orthogonal to programming language design.

At a low level, the language used right now is a modified version of Lua, though I have seen GLSL and JavaScript used on some of the programs. The thing is, once you have enough programs, one tends to spend more time using the physical space to experiment rather than spending time in a text editor.

I really like how this socializes the aspect of creation with software and I know that it would drive about 90% of the software engineers that I currently work with absolutely insane
Show me the code (of the bootstraping system). This project is no more "beyond open source" than a History channel documentary about aliens. This is no more than a tax haven and toy for the wealthy and privileged. Put up or shut up (about claims of being open source or for everyone).

I'm only angry because it's a good project.

> Virginia has no prior programming experience but has started combining code she finds around the space into her own creations. Here's part of a birthday surprise she left me over winter break. Even our visiting ethnographer Goetz created a great spatial music game in Dynamicland (also no prior programming experience).

> Like learning French by going to France, people in Dynamicland learn programming through immersion.

Imagine a meeting with designers where you bring a stack of pages representing neatly refactored code for the prototype as it is put together now, plus a bunch of extra code snippets of possible changes to make or things to explore.

I'm pretty sure that this could make certain types of brainstorming about what a product needs a lot more productive.

EDIT: And now for some trouble in paradise: if we envision this immersive computing environment of the future, what about people bringing malicious snippets of code into the building? imagine we have the ability to print, and to guide robots to disperse the printed text. A quine in dynamicland then becomes a virus, a fork-bomb.

As far as I can tell, the pieces of paper are just pointers into a database. If you physically carried in a new sheet of paper it would be inert (or maybe the system would confuse it with some other piece of paper with the same dot-code).

I can't help but think that the paper metaphor, while convenient for immediate manipulation, is ultimately a really clumsy way to store programs, especially given that it is an artificial abstraction around an ordinary filesystem on a Dynamicland server somewhere.