AI Engineer World's Fair 2025
AI and Human Whiteboarding Partnership
Read the talk
AI and Human Whiteboarding Partnership
Excalidraw’s path from blog illustrations to AI-generated diagrams shows why useful automation depends on the right representation—and on leaving people something they can edit.
From a talk by Christopher Chedeau
A drawing tool born from postponed performance reviews
On January 1, 2020, Christopher Chedeau was working at Facebook and avoiding performance reviews. He needed to write feedback for colleagues and his manager, but knew he would leave it until the deadline. Instead of spending the intervening time scrolling on his phone, he turned to a blog post he had wanted to write. He called this active procrastination: if the required work was not going to happen yet, something useful could still happen.
The post needed handwritten illustrations. In Chedeau’s recollection, the drawing website Zwibbler was down, so the side project acquired a side project: how hard would it be to build a replacement? He opened CodeSandbox and used Rough.js to make a drawing prototype. Chedeau recalls about 200 likes on the first tweet about the demo, along with enthusiastic replies. That prototype became Excalidraw.
Today, he would begin that experiment with a coding agent. At an Anthropic keynote two weeks before the talk, a Claude agent had been demonstrated implementing an Excalidraw table layout—what Chedeau described as the most requested feature. A demonstration was not yet a contribution to the project, however: at talk time, he was still waiting for a pull request.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A virtual whiteboard need not inherit physical constraints
Three months after Excalidraw began, COVID sent people home. Teams that had collaborated around office whiteboards needed a replacement. Users started telling Chedeau that his tool worked well for online whiteboarding, which surprised him: he had built it for blog illustrations. Their use of the product prompted him to investigate what existing whiteboarding tools offered.
In his retrospective account, the tools he encountered reproduced physical whiteboard limitations too literally. These had been small, lightly used projects before the sudden demand for remote collaboration. Excalidraw’s ordinary digital editing operations removed several constraints at once:
| Task | Physical constraint reproduced online | Excalidraw interaction |
|---|---|---|
| Find more space | A fixed board boundary | Pan to another part of the canvas |
| Add text | Trace letters with a mouse | Type into a text box |
| Erase something | Remove individual pixels | Select and delete an object |
| Draw a circle | Trace an accurate outline | Use a shape tool |
| Reuse a drawing | Draw it again | Select, copy, and paste |
The improvement was not simply putting a board on a screen. It was making the board behave like editable digital content.
A change of medium creates an opportunity to change the interaction. Chedeau sees AI integration at a similar stage: teams often take an existing workflow and add AI without reconsidering how the task should work. The difficulty is that established digital editing conventions already offered a guide for virtual whiteboards, while useful AI interaction patterns are still being discovered. Excalidraw’s experiments provide concrete examples of what that discovery entails, including capabilities that worked technically but did not belong in the product.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
An impressive image generator meets the wrong task
The first experiment came from Görkem at fal.ai. A sketch containing objects such as a palm tree and a sun drove live image generation: as the drawing changed, the generated picture reacted. The compelling part was the immediate connection between a rough sketch and a realistic image.
But when the team explored integrating it into Excalidraw, the intended use did not match what people came to do. Users generally were not drawing realistic pictures. A model could perform its task well and still add little value to this particular editor. Model capability is not product fit. Under pressure to add AI, it is easy to ship a feature because the model exists; Chedeau’s warning is that an irrelevant integration can make the overall experience worse.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Mermaid provides a bridge to native diagrams
People did draw diagrams, so generating diagrams looked like a better fit. The team first tried direct generation, with poor results. The house illustration shown in the talk was generous compared with the actual outputs, which Chedeau says did not even resemble a house. That was a finding from their experiments, not a permanent limit: the day before the talk, someone working on Gemini had shown him a demo producing Excalidraw files, giving him reason to revisit the approach.
The approach that had worked for the team used Mermaid, a textual language for describing diagrams. Instead of asking the model to produce the final drawing directly, they asked it to express the diagram’s structure. The small example connects AI to Engineer in a left-to-right flowchart:
mermaid
flowchart LR
A[AI] --> B[Engineer]
Here, LR specifies direction, A and B identify nodes, the bracketed text supplies their labels, and --> connects them. In the team’s experiments, LLMs could generate this kind of syntax successfully. The diagram’s meaning could therefore travel through a compact textual representation.
There was still an output mismatch. As Chedeau describes it, Mermaid produced SVG or Canvas output, while the editor needed Excalidraw objects. An Excalidraw backend for Mermaid supplied the missing conversion step. The resulting path was:
- Accept a prompt describing the desired diagram.
- Have the LLM generate its Mermaid representation.
- Convert that representation into Excalidraw content.
The simple prompt starts with AI and an engineer, but Chedeau also reports people creating organization charts, TCP and network-request diagrams, and architecture diagrams involving classes and inheritance. The intermediate language let the model describe relationships while the conversion handled the application’s output format.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The generated diagram is the beginning of editing
The useful result is an actual Excalidraw component that the user can manipulate. A generated image can look almost right yet leave the person stuck with details they cannot change directly. Native diagram content gives them a practical next step: use the editor. In the demonstration, that means moving elements to change the layout, then adding colors to make the result match the intended presentation.
Editable output makes an approximate draft useful. The interaction no longer depends on obtaining a perfect answer in one request. AI provides a starting point, and the person finishes it with familiar tools. At talk time, this was a one-way handoff from generation to manual editing. Chedeau’s proposed next step was to send the edited work back to the AI for further changes, alternating between the two; that repeated revision loop was not yet available.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Wait for content before suggesting a name
Another integration addresses a less spectacular but familiar problem. Excalidraw’s SaaS offering manages multiple files and synchronizes them in the cloud. Without deliberate naming, the file list fills with documents such as Untitled one, Untitled two, and Untitled three. An LLM can use the document’s content to suggest a more useful name.
The timing is part of the design. The application waits until the user stops working, so there is content to name, and then presents candidate titles. The user clicks a suggestion to accept it. This removes much of the naming burden without requiring the person to interrupt drawing to write a prompt, and without treating a generated title as automatically approved.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Visual assistance that belongs inside a diagram
The earlier realistic-image experiment did not rule out image generation altogether. Users wanted illustrations and infographics inside their diagrams and slides. Generating those supporting visuals served a different task from turning a canvas into a realistic picture. The illustration feature was in closed alpha at talk time, with plans to open source it and ship it within a few weeks. The displayed example shows a hand-drawn brain connected by curved cables to four server racks.
Logo preparation was another concrete source of friction. Chedeau regularly wanted to place logos in diagrams and slides but could not find a reliable way to remove their backgrounds. His example began with a screenshot of the AI Engineer World’s Fair logo from the event website. He challenged the audience to build reliable logo background removal that could run in the browser, offering to integrate and ship a working contribution in Excalidraw. This was an open request with a deployment condition, not a demonstration of a completed feature.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Give the model a language the application can use
The transition from physical to virtual whiteboards succeeded by changing what users could do: type instead of trace, select instead of erase pixel by pixel, and copy instead of redraw. AI presents another opportunity to discover interactions suited to a new capability. But the criterion remains the customer’s task. A model belongs in the product when it helps people accomplish what they came to do, not merely because it can be integrated.
The technical lesson Chedeau closes with is to give the model a structured target. Find a domain-specific language that represents the problem, have the LLM generate that language, and use ordinary code to turn it into the application’s native output. In Excalidraw’s experiments, Mermaid supplied that bridge. The broader recommendation is an engineering strategy rather than a guarantee: let the model express the structure, let non-AI code perform the conversion, and deliver an artifact the person can continue working on.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
A JavaScript graphics library for drawing shapes with a sketch-like appearance.
Define flowcharts using text, including nodes, arrows and left-to-right layouts.
Convert Mermaid diagram definitions into Excalidraw elements and files.
The open-source whiteboard editor, with native drawing data, shape tools and integration instructions.
Further reading
- Reflections on ExcalidrawArticle
Chedeau’s contemporary account of Excalidraw’s first two weeks and the community that helped build it.
Updates since the talk
Cat Wu reflects on testing successive Claude models with an Excalidraw table-tool task.
Read the complete timestamped transcript
- 0:00
[upbeat music] [audience applauding] Thank you so much for the intro.
- 0:17
I'm so excited to be here, uh, talking about, like, figuring out, like, how do we, like, AI and human, like, work in the world of whiteboarding. And, uh, I built Excalidraw, and if you v- don't know about it, like, you'll see, like, many, uh, thing about it.
- 0:30
And one of th- the expectation you probably have, uh, about a speaker at the AI engineer conference is that I talk about AI on every single sentence for the entire talk.
- 0:40
So I'm just going to give you a warning, I'm only going to do it for the second half of the talk. But the first half is going to be a good setup, and I...
- 0:50
You should, like, pay close attention because it's going to be, uh, really interesting content. So let's get started. So we are, uh, five years ago. Uh, I'm working at Facebook January 1st, and as you...
- 1:01
If you've been at any, like, big company, there's, like, the performance review process. And so we, uh, you have to, uh, give feedback around, like, all the people you've been working with, like, how good or bad you've been doing, and same for your manager.
- 1:14
And one thing that's, uh, like, I'm probably not unique in this room, but there's this little devil in me that is like, "Nope, you're not going to do it until the very, very last minute."
- 1:26
And this is called procrastination, and I'm really bad at this, and I've tried, like, many techniques over the years. And the one, uh, at that time that I, uh, worked on is c- what I call active procrastination.
- 1:38
So I know I'm not going to be able to write the performance reviews until, like, the last minute, so may as well do something actually useful, uh, in the meantime.
- 1:46
Otherwise, I would be, like, doom scrolling on my phone- [laughing]
- 1:50
... and, uh, not be productive. And so what I ended up doing is, uh, I wanted to write a blog post for a long time, and so I was like, "Okay, I'm going to write a blog post."
- 1:58
And so I used a tool called Zwibbler in order to, uh, draw, draw, like, this kind of like handswritten, like, illustrations. And unfortunately at the time, the website Zwibbler was down. [chuckles]
- 2:11
And I was like, "No, come on." I've wanted to procr- to not procrastinate and everything, and then it's still down. And so what did I do? I'm like, "Okay, we're going to go, like, one level deeper.
- 2:22
What would it take to actually re-implement Zwibbler? How hard would it be?" And so I opened the code sandbox, and I, like, drew, like, uh, wrote some code to use rough.js.
- 2:33
And now, hey, we- I got a demo. And the thing I didn't expect is I posted about it on Twitter, and, like, it exploded. Like, 200 likes on this first tweet, and, like, so many people, like, replied and commented and were excited about it.
- 2:46
And I was like, "Oh, this is so cool." And so this was the beginning of Excalidraw. Now, one of the thing is if I were to do this again, uh, in the future, uh, like right now, I would not, like, start, uh, writing code myself.
- 2:59
I would probably do, uh, use any of the coding agent that we've seen. And the good thing is I'm not the only one. So if you look at two weeks ago, uh, during the Anthropic keynote, uh, when they were- wanted to demo Claude's, uh, AI agents, they actually used, uh, Excalidraw for this.
- 3:17
And they actually had the agent re-implement, uh, the most popular request, which is a table layout. Unfortunately, they haven't sent a PR yet. So if you... anybody's working at Claude here- [laughing] ...
- 3:28
we welcome pull requests. Anyway, so one thing you probably have noticed is I've said AI multiple times, so I knew you were not going to last the entire half of the talk without it.
- 3:37
So now let's get back to the non-AI part of this. So, uh, this was, uh, like, uh, in the story, we are, like, in, uh, January 1st, 2020. And three months later, uh, you probably all know what happened:
- 3:50
COVID. And so everybody had to go home and now had to figure out, like, how are you working from home? Like, what's life like? And a lot of people, one of the big thing that they try to figure out is whiteboarding.
- 4:06
And so when you're in the office, you have a physical whiteboard, and you can draw stuff, and you can collaborate with people. But when you're, uh, at home, you don't have any of this.
- 4:14
And I was very confused because, uh, a lot of people, like, started coming to me around like, "Oh, actually Excalidraw is a really good, uh, whiteboarding, uh, solution." And I was, like, very confused because I built Excalidraw for drawing, uh, illustration for my blog post.
- 4:31
And why-- what does it have to do with whiteboarding? And then I started, uh, being interested around, like, okay, what are the other people doing whiteboarding, like, other tools doing?
- 4:42
And one thing I quickly realized is that all of the tools at the time basically took the physical limitation of whiteboarding and mapped them one-to-one, uh, with the online versions.
- 4:53
So for example, uh, a f- a whiteboard, like a physical whiteboard, has a fixed size. And so what everybody did, they created a fixed size A, create a new whiteboard.
- 5:04
And then if you run out of space, then, like, you're out of luck. Now with Excalidraw, you can just, like, scroll around and, like, write-- start writing somewhere else, and it just works.
- 5:12
Then the next one is, uh, drawing text. And so on a physical whiteboard, you have to trace every single letter. And on the mouse, it's actually very, very hard.
- 5:22
And so on Excalidraw, I was like, "Eh, like, we have a text box. Like, you can select, uh, and this is fine." And when I did the dry run for this talk, like, the people were telling me, like, there's no way.
- 5:32
Like, even MS Paint in, like, 30 years ago had, like, uh, keyboard support. But this was the state of, of the arts, uh, at the time. And one thing to, uh, to remember is nobody, like, thought about online whiteboarding, uh, at the time.
- 5:48
So, like, all the project were pretty small and, like-
- 5:50
N-not very used. And, uh, now all of a sudden there's been a huge influx. So this is why it was so bad. And then the, it c- like the list keeps going on.
- 5:59
So if you want to start erasing, uh, they would actually have you, like, erase every single pixel. But on Excalidraw, you can select and delete and just, just works.
- 6:07
And then, uh, like, I don't know if you've seen, like the, like the Reels, TikTok video, where, like, people, like, draw, like, perfect circles like this, uh, on a blackboard.
- 6:16
And this is, like, what you had to do, uh, for, like, doing this online. But with Excalidraw, you can just, like, select a shape, like a circle, and, like, you just draw it, and it just works fine.
- 6:27
And finally, there are things you cannot do, uh, on a physical whiteboard. So for example, like copy-pasting is, like, just doesn't work. But if you're working online, like this is the baseline expectation that you're able to, like, select and copy-paste.
- 6:40
And so this is, like, all of this, like, really was a big breakthrough in my mind around the idea of, uh, the physical versus virtual whiteboard. And this is, I feel, like, the same place and time we're in with AI integration right now.
- 6:55
So in practice, what, uh, a lot of the AI integrations today, they're basically taking, like, whatever we're doing right now and then, like, sprinkling AI or re-implementing with, with AI.
- 7:05
And the end result is, like, pretty bad because, like, A, you don't know how it works. But the thing is, unlike Excalidraw and the online, like, where we had the experience, right now with AI, like, nobody has experience.
- 7:17
And so this is why I'm super excited about this conference, where, like, all of the people, like, trying things out are actually sharing the lessons to the other with, uh, with each other.
- 7:26
And so hopefully, like, as we keep doing these conferences, now we're going to bring the state of the world, uh, with AI to be much more, uh, much better.
- 7:34
So now I talked a lot about, like, Excalidraw, the early days and everything. And so a lot of people have been asking us, like, "H-how do you integrate AI with Excalidraw?"
- 7:44
And we've tried a bunch of things. So now for the second part, I'm going to walk through what are the things we've tried, what are the things that have worked, what are the things that haven't worked.
- 7:52
So the first one is actually not us, but Görkem, who is, I think, is in the room somewhere, uh, working at fal.ai. And so he discovered this, uh, really cool machine learning model that takes, uh, an Excalidraw diagram, uh, with like a palm tree or like a sun, and then he's able to gener- uh, to generate real-time,
- 8:12
uh, live picture, like, bit of the image, uh, uh, in, uh, in reaction to this. And so this is, like, what's mind-blowing to me, where like, oh, now like machines can actually generate, uh, images and the model is working really well.
- 8:28
And, like, the, I think the demo is still working, so if you, uh, if you want, like, you should try it. But one of the issue is when we started, like, integrating with Excalidraw, we realized that people don't actually draw realistic images on Excalidraw.
- 8:43
And so this is one, like, the first, like, key lesson that we found, is that just because there's a model that exists doesn't mean that it should be within your product.
- 8:52
And I know right now, like, there's a huge pressure for all of us to, like, just add whatever kind of AI into our product that, uh, like, in order to be, like, AI first and whatever.
- 9:03
But I really, like, want you to think about, like, what are the actual AI integrations that actually make sense rather than, like, "Hey, I just put in AI and that's it."
- 9:11
And in practice, if you do that, uh, then actually, like, the whole product experience is going to be, like, way worse than if you didn't have any AI at all.
- 9:19
So this was, like, the first, uh, learning. Now, people do not draw realistic images on Excalidraw, but they do draw, uh, diagrams. And so now the question is, okay, so LLMs are magical and, like, they're going to generate diagrams, so let's try it.
- 9:34
And so we tried, and that didn't work out. And so this is an illustration, but in practice it was even worse. Like, there was not, there was no resemblance of a house or anything.
- 9:45
It was just, like, bad. And this is where, like, we started, uh, realizing that, like, just doing this wasn't going to cut it. So we need to, like, uh, be, uh, like, a bit better.
- 9:55
But one thing is yesterday I was chatting, uh, with, uh, somebody at, working at Gemini, and he showed me a demo of, like, Gemini actually outputting Excalidraw files. So my talk is already outdated, and, uh, we probably need to get back and, like, start coding on this.
- 10:10
But anyway, let's continue. So the thing though that, uh, we found out is, uh, LLMs were actually able to generate something called MermaidJS. And so the, the name of the product is super weird, but in practice, it's a way to describe a diagram.
- 10:26
And so in this case, you're just, um, writing flowchart LR A AI to B Engineer, and then, uh, it draws, uh, this specific diagram. And so LLMs were able to, like, realistically generate, uh, this kind of, uh, like, MermaidJS syntax.
- 10:45
And this was really exciting because now what we are able to do is to, like, encode the knowledge of, uh, like, uh, the diagram and Mermaid supports like many different types of diagram.
- 10:57
And so now we're able to, like, encode all of this and, like, all of the prompts can actually generate the diagrams. Now the challenge is, like, this output SVG or Canvas and not Excalidraw files.
- 11:09
So what do we do? So in practice, I can check at work. And so she implemented an Excalidraw backend for MermaidJS, and now we finally have our very, uh, first very, very successful integration of AI within Excalidraw.
- 11:24
So now what you can do is to, like, uh, set a prompt and, like, put in anything that you want. So in this case, a flowchart starts with AI and an engineer.
- 11:32
But, uh, we've seen people, like, uh, draw, like, org charts, diagram or TCP or the network request, uh, kind of diagram or architecture diagram, uh, where you can see like classes and inheritance, those kind of things.
- 11:44
And then you get, uh, a result, which is an actual Excalidraw, uh, component that you can play with. And one of the thing that's is the, like, the title of my talk is the human and AI, uh, partnership.
- 11:58
One of the thing that you've probably been very frustrated is, like, you start and you generate something that, like, looks ninety percent like what you want. But then you're like, "Eh, this is an image, I can do anything with it."
- 12:08
And this is, like, the magic of this integration with Excalidraw, is now this is just Excalidraw, and you can use Excalidraw to, like, make it however you want. And so, for example, you can get to something like this, where you start modifying, uh, the layout, just moving things around.
- 12:22
You start adding colors, and you really make it to where and to what you want to be. And so, I think this is the, the mindset that we're going to see more and more with successful AI integrations.
- 12:32
It's no longer going to be like one shot, "Hey, I'm asking the AI something, and the AI give me, like, something perfect." But how do you get something that's close enough, and then you as a human can start modifying?
- 12:44
And so right now, this is, like, a just one way, uh, like, one round trip operation. But I foresee a future where, like, now you're going to be able to go back to the AI and say, "Hey, modify this," and then, like, go to the merge folder.
- 12:55
We don't have this right now, but, uh, this is what I think the future is going to look like. So now this is, uh, one integration, so I'm going to go through a few other AI integration that we've been, uh, working on within Excalidraw.
- 13:08
So the next one is, uh, one of the things you can do with the SaaS offering of Excalidraw is managing file, creating a bunch of different files and sa- syncing in the cloud.
- 13:18
And as if you've been using this, most of your, like, documents are going to look like Untitled one, Untitled two, Untitled three, Untitled four. And one of the thing that, uh, LLM can actually really good at is generating names for these documents.
- 13:34
And so now, whenever you're creating a document, we wait until you stop working on this, so we actually have content, and then we're going to prompt you, "Hey, these are, like, all of the, uh, name that we think would match."
- 13:45
And then you just click, and then you're done. And so this way, like, it actually removes the burden on you to do it, and AIs are really good at this.
- 13:53
Next one is, while, uh, people are not using Excalidraw to generate, like, good-looking, uh, like, wall, uh, painting kind of things, they... People tend to, like, want to have, like, a lot of infographics, a lot of illustrations within their, like, within their slides or, like, uh, their diagrams.
- 14:12
And one thing that we are doing, which is in, uh, like, alpha, like, uh, closed right now, but we're going to open source and to, uh, ship in a few weeks, is the ability to generate, uh, illustrations.
- 14:25
And so we are really hyped about this because I think it's going to help, uh, a lot of people. And finally, the thing that, like, kills me the most, I'm using Excalidraw every day, and I usually want to integrate logos within my, uh, diagram or my slides, those kind of things, and I cannot find a reliable way
- 14:42
to remove the background from all of the Spacekey logos. So I just took a screenshot of the AI Engineer Warfare, uh, from the website, and I'm like, "Hey, please, like, how do I remove the background?"
- 14:53
And the thing that I wanted to do is to challenge all of you, like, you're all AI engineers, and probably some- someone f- from all of you can create a model that, uh, removes the background for logos.
- 15:07
And if you're able to make it work within the browser, send it to me, and we'll make it, uh, happen, and we'll, like, ship it within Excalidraw. So I'm really excited that, uh, some of you are going to be able to help us, uh, with this and help all of the people using Excalidraw.
- 15:22
So this is, uh, the end of my talk, and I have a few conclusions for you. So the first one is, right now, as I mentioned, we're in the, like, physical whiteboard to virtual, uh, whiteboard, like, kind of moments, uh, happening within, like, all of the product, but specifically, like, for the design products.
- 15:41
And now we need to figure out, like, what is the AI-native way, uh, to implement those interactions. And so really excited about this conference to, like, start showing, like, all of the potential.
- 15:50
The second one is please, please, please resi- resist the urge to actually ship all of the random model that exists within your app, and really only ship the one that, like, you feel like are actually adding to the product and helping, uh, your, uh, customers, uh, getting...
- 16:06
Like, doing what they actually want to do. And the last one is LLMs love structure. So if you're able to take your problem domain, problem space, and find a way to represent it in some kind of a domain-specific language, now it's going to be most like, uh, most likely, uh, going to work way better to, like, have
- 16:27
the LLM target this domain-specific language. And then you take this language, and without AI, you actually output it to your own system. So this is the end of my talk.
- 16:37
I'm really excited, uh, that we have this, uh, event and conference, and I'm also excited that, like, Steve, uh, is going to be talking next about tldraw. Like, we've been working together for a long time, and, like, he's probably going to blow your mind with all his, uh, examples.
- 16:51
So thank you. [audience applauding] [upbeat music]