On Embark and Lude

Hello all,

Some of you have expressed an interest in knowing more about what’s going on at the lab—wish granted!

First, a quick re-introduction in case you’re not sure how you wound up here. Ink & Switch is an independent research lab exploring the future of tools for thought. Our goal is to invent a computer that helps its users think more clearly, collaborate more effectively, and never gets in your way.

As of today we have three active research tracks: local first software, programmable ink, and malleable software. We’re about a dozen researchers around the world, mostly spread across North America and Europe. We have a mixture of industry veterans and academic researchers and we view our output primarily as knowledge: a clearer understanding of the problems and opportunities in tools for thought.

In this first dispatch, we want to share some of our recent work on Malleable Software with Embark, talk a bit about our Researchers-in-Residence program, and introduce you to Mary Rose Cook.


Embark - Dynamic documents for making plans

On the Malleable Software track our goal is to design software environments that people can mold to their unique needs by pushing personal computing beyond the boundaries of siloed apps.

Recently, we’ve been exploring a potential solution to this problem: dynamic documents that let you gradually enrich text with interactive behavior. Last year we shared Potluck, a dynamic document environment for text notes and recipes. It felt like we had found a valuable thread worth pursuing for making software that’s more personal, but we also found challenges with some aspects of Potluck’s design, and we also wanted to find deeper, more authentic uses for this new kind of document.

So, this year, Paul Sonnentag and Geoffrey Litt from the Malleable Software track teamed up with independent researcher Alexander Obenauer to design another take on dynamic documents. This time around, they focused on travel planning as a use case. Planning a trip typically requires juggling many apps and manually coordinating between them. It can involve booking flights and hotels, researching restaurants, scheduling meetings, planning routes, etc. Different pieces of information are spread across multiple web applications, and it’s left to us to collect and keep track of them all in one place. How could we simplify and improve this process with a new kind of dynamic document?

Using a text outline and a map view to plan a team summit in Embark.
Using a text outline and a map view to plan a team summit in Embark.

The result of this exploration is a research prototype called Embark. It lets you write a text outline augmented with three features: mentions of structured data like places and dates, spreadsheet-like formulas to compute weather forecasts and routes, and rich views like maps and calendars. Together these primitives enrich a planning document into a live, interactive surface that goes beyond text content.

In our new essay, we share what we learned from using Embark to plan many of our own real trips. We also delve deeper into why travel planning with apps is difficult in the first place, and the design thinking behind Embark. We’re now more convinced than ever that dynamic documents are a powerful foundation for personal software. We hope you find the essay thought-provoking and look forward to hearing your thoughts and feedback.

Read the essay →

Watch Paul’s presentation at the LIVE workshop.


Solo independent researchers we know often discuss the challenge of working alone. Being part of a research group can create community, social accountability, provide feedback, and just give you someone to talk to when you’re feeling stuck or bored. This is why we started our Researchers-in-Residence program.

We invited a few independent researchers to come and join our virtual lab and work on their own projects being a part of our little community. They come to our weekly meetings to talk about their plans, give or get feedback on their work, and get their own “office” (read: Discord channel) where they can post what they like.

In the current rotation, we have Mary Rose Cook who has been working on Lude and Alexander Obenauer who is exploring the future of computing with the Itemized OS.

As Mary just presented Lude at LIVE 2023, we wanted to introduce you to her and what she’s been working on.

Lude by Mary Rose Cook

Building software takes an awful lot of time; this is partially because we don’t have better structures for expressing software other than code. Code remains the best way to express software but writing code is incredibly laborious. As a software maker, testing a simple idea can take longer than it should. Mary’s research aims to address these limitations—she’s making tools for building software quickly.

Using Lude to build a version of the game Breakout.
Using Lude to build a version of the game Breakout.

Lude is a tool for building video games quickly which materialized during Mary’s residency at Ink & Switch. Video games are an interesting use case because “building games faster” is basically the hardest version of the problem Mary is tackling—games often require defining complex behavior. So, how does Lude make it quicker to build games?

1—Direct manipulation of live objects in the running game. Traditionally, level editors are not in sync with the running game. The game designer makes edits in one window, then runs the game in a separate window for testing. The magic in Lude comes from syncing the editor with the running game, so that all changes are reflected in both environments. In other words, when you’re making changes in the editor, you’re actually directly manipulating the live game objects.

2—Expressive, fast code generation. Generating code via prompts is often faster than coding by hand and straightforward, but how can this experience be improved for the game designer? The key is generating code that matches what the designer intended it to do. Lude is designed to capture the expression of the designer’s intent implied in the prompts. (If you’re curious of how exactly this is achieved, read more in Mary’s research blog.) And what makes the expressive code generation fast? Lude allows fragments of code to be generated and integrated into the codebase, as opposed to regenerating an entire code base following a change.

Where next?

The goal of Lude wasn’t necessarily to invent something new, it was to discover and test useful concepts for faster software development. Following Lude, Mary is looking to take these learnings and direct her research focus onto better prototyping tools.

What’s a few more open tabs?

Sorry, we couldn’t let you go without a few more links to things.

That’s it for now

We have so much more to talk about: conference recaps, ongoing ink work, new experiments with local-first…but it will all have to wait for another day.

Is there anything in particular you’d like to know more about via our dispatches? Let us know.