Notes from Dynamicland: Geokit
rsnous.com
rsnous.com
> A lot of what's new about Dynamicland is that it's a programming system!
We've had projection mapping, physical UIs, gestures, etc for years, but this is the first system that puts them together in a user-programmable editing environment.An analogy might be Xerox PARC in the 70s and early 80s. Alan Kay and his team saw hardware shrinking and becoming cheaper, saw powerful UIs demo'd in research settings, and had the spark of creativity to combine these elements synergistically into Smalltalk, a programming system to support a brand new expressive medium.
Similarly, the research vision of Dynamicland / Realtalk is to make a more humane and accessible dynamic medium. This is only the first version, with (hopefully, depending on funding) many more versions to come.
For a bit more information about the vision see my own demo made in the precursor to Dynamicland, a sweaty game called Laser Socks: http://glench.com/LaserSocks/
I think it would be really cool if the Dynamicland UI technology (projection and object recognition) could work with e.g. 3d printed objects, especially if they could be embedded with motion tracking sensors in the case that your hand occludes the computer vision trackers. Is anyone working on that sort of thing?
I know hololens can do some of that, but not to a terribly great extent (better at just bringing virtual 3D objects into your environment).
How does Paper Programs work? Programs are stored on a server (using Node.jsand PostgreSQL), hosted on paperprograms.org. Each program has a number, and the dots on the paper encode that number. Currently each corner is uniquely identified with 5 dots of 5 possible colours, which means you can have about 600 unique papers currently (this is a significant limitation). A camera detects the dots and retrieves the program associated with each paper. This is done in a browser, using OpenCV compiled to WebAssembly, and some custom Javascript code. Calibration happens manually, using a UI built in React. Program code and configuration are stored in the browser’s local storage. Projection and execution of programs happens in a separate browser window. Each program runs asynchronously in a Web Worker, and can request access to a canvas, coordinates of other programs, and so on. Then there is an editor page, which anyone in the space with a laptop or tablet can use to edit programs, using Monaco. When having created a new program, you can click a print button to print out a new paper that runs that program. It has the program text printed on the paper itself. Any edited program can be reverted to its original state.