We could not for the life of us figure out how to make this a meaningful productivity tool. Yes, we had meetings here, and yes, drawing all over someone else's screenshare was actually useful - And building islands of data was an interesting mental model. It descended into messy chaos no matter what you did, and anything you would do to try and combat that undid some of the benefits of the canvas to begin with.
It was a lot of fun to hang out in as a multiplayer live video room, though, so we leaned into that with (relatively) more success.
This is why librarians, janitors, lab managers, document controllers etc. are essential to make spaces functional and organized.
This would need a lot of work to feel frictionless but I like the concept.
Answer: you get a mess.
That's why browsers weren't built like that, and also why I think this will not work.
But happy to be proven wrong of course.
I use virtual desktops, where each desktop contains a single thing that I am working on, and everything related to it. Then any good window manager can switch between them quickly and even give you a spatial sense of where you are. I organize them as a priority stack, so the topmost priority is in top position and then it goes downward from there
There's a lot that this "campus" product does that isn't present in such a set up (multi user, zooming, etc...) but virtual desktops give you a lot of the benefit and come built in to most of our operating systems
He made his own virtual 3D office where he could whip up new screens whenever and wherever needed, IIRC, these computers in the virtual world were virtual machines with some very bare bones Linux distros. He argued that it was a very good replacement for having to buy and mount new physical monitors.
Can't remember how long he actually used that solution, but it did look cool.
They mostly do not gain a lot of users. Good luck!
The 3d demos are similar to what you experience when using a VR headset with desktop emulation software. I ran experiments with that for several months and while the concepts were interesting, context switching in a simulated physical space was actually a lot slower than alt+tabbing between things.
I don't use agents at all and I think that building agent/Ai-first is gonna push away people like me (who don't want to deal with agents or any related concept or even git tbh). I'd genuinely say generalise into a Virtual Desktop typer thing.
In your blog, you mentioned that each tile is sorta like a computer (sandbox?) in itself actually containing AND running the work. That's brilliant! Now, if you could make it possible that one single tile could fill the entire screen, like a typical desktop view, on demand. Incase I just want absolute focus on one thing (I'm not always looking across all three monitors) and not be in 'Canvas mode' seeing all my Virtual Desktops.
I could also see myself working across three (or more) tiles where I've got docs in chrome, vs-code open in another and something else (more docs? Terminal? Doesn't matter). Fact is that the infinite canvas literally replaces me having to buy two - three monitors to get the same feel. I could now buy a single large curved one and have infinite monitors.
I had an inkling of this feeling when I saw Omarchy (A tile-based Linux distro from Basecamp / 37signals). What I thought was missing was infinite-ness and a little spatial something? I actually literally thought, what if those tiles didn't squish together like that and the BG were a 2D infinite canvas?
If you pull this off just right and actually focus on getting the desktop version right first (I believe that's where your users are), I believe you may have stumbled onto a different kind of operating system paradigm for a workflow issue we try to solve with even more physical monitors.
I never shut off my PC so I can imagine long lived virtual monitors wayyy off in the canvas ether with all that work still open and waiting until I'm ready for that frame of mind.
I don't have anything to say about the disappearing message except that it's cool as a way to ping or get someone's attention but a dedicated chat box? window? Just a little foldable flourish in the bottom left or right corner so yu can directly 'chat' with someone persistently who's in your space (or you're in theirs) is way more healthy for a serendipity than a disappearing message where it's kinda like an implicit race condition and loses the asynchronous nature of letting me consider a text before I reply especially in work settings. I'd also not want to give access to my entire canvas ether as opposed to selectively allowing access to specific virtual desktop lol
As for 3D? Meh I don't know. Don't need that but other people may like it. I'm just approaching this from a workflow angle. Love the whimsy regardless.
I absolutely want this, I would absolutely pay for this, I think this is a great product in the Figma range and I absolutely wish you all the best of luck because this is awesome. Just focus on the operating system /workflow angle for a desktop use-case first. I couldn't try it (don't have a Mac) but I got the idea from the video.
Good luck, guys! And ykw? I wonder if I could fork around with Omarchy and give it infinite canvas since it's already 95% there. Never mind the social feature or 3D graphics yet.
I didn't understand the purpose at the time, but then I landed at a company that had no documented schemas for any dataset and kept adding columns and it drove me mad.
I think this is where AI could be put to work. Before, what would be a toilsome digital clean up process (eg git commits) is now an instruction to an LLM to clean it up. If the chaos was clean-up-able, would your product have worked?
Having 20 work-trees with 20 terminals (for running the server) with 20 browser tabs open became a pain to organize; with campus I can visually lay them out and know which one is linked to which one (this was near impossible before so im sold)
Seems there's more to this.
Would explore more.. Might be cool to see integrations soon
> Answer: you get a mess.
> That's why browsers weren't built like that
But people frequently go out of their way to put their tabs into two dimensions.
There are tab trees: https://chromewebstore.google.com/detail/tabtree/afejdkkhibi...
There are tab groups: https://support.mozilla.org/en-US/kb/tab-groups
There are tab containers: https://addons.mozilla.org/en-US/firefox/addon/multi-account...
It seems pretty clear that people want their tabs to be organized in multiple dimensions.
Windows, Linux and even web versions are planned!
I liked a hierarchy of context switching devices. Open tabs, windows, workspaces, for me are distracting clutter, scaled by some distance metric. Having to physically carry a laptop to elsewhere in a room had "I've left work for home" nicely strong context switching vibes. Followed by resumable-but-not-currently-live VMs/workspaces, etc, down to, well, gazing at a different window. So variety in costs and benefits.
I wanted a drawing-like experience for a laptop keyboard, eyes-on-screen hands-on-tablet, so kbd as touch surface (and 3D tracking above it), with the screen showing, in faint shallow-3D offset, hand position and a dynamic kbd UI. Meh. But shallow-3D UI, something 3D one can live with all day without VAC eyestrain, seemed intriguing but little explored.
With current AI, even with small 1080p laptop/HMD viewports encouraging manual packing, I'd be tempted to try escaping the whole decades-long "how do I arrange windows" mess, and tool up a personal-assistant-like "knowing what you're currently up to, here's a screens/canvases/workspaces/windows tasteful layout for that, arranged in ways you've liked".
Ever used a browser on iOS? Google Maps / Apple Maps? ZUIs are one of the main multi-touch user interface paradigms now.
I agree that laying things out on an infinite 2d plane is surprisingly time consuming. We must be missing some affordance or something in how this should be?
Part of the appeal of a canvas like this is spacial memory: that things stay where you put them. So any AI based reorganization could be a frustrating rug-pull for users that value this feature.
After having used such things since the 80s (starting with DESQview) I find myself simply minimizing or leaving secondary applications in the background of a single workspace. When I do use other spaces it is for full screen view. I don't usually need to see multiple windows at the same time, but that would be a task for a tiling manager...
Could be wrong, though! Devil is in the details with this one.
It never really caught on, completed got clobbered by free text search, now AI chat interfaces I guess.
Am glad to see it bubble up again, because have good memories working on this stuff.
If I recall correctly, it became popular because of the Lawnmower Man movie in '92.
I built a prototype of a 2D canvas you can put all of your work on: real terminals, running apps and browsers side by side instead of a row of tabs. We, at FlutterFlow, got so obsessed with using it that we built a full product out of it, Campus. It's free and available for macOS now. Next comes the story of how we got here …
Just a few years ago, development was organized in a pretty straightforward way. Plan the work in more or less detail, then work on those features for the next week or two, rinse and repeat. With the advent of agentic coding, that has completely changed. Planning or discussing certain types of work has itself become slower than just letting the agent do the work.
This is causing a massive shift in how I and tons of people I know work. Instead of focusing on a single task for a prolonged period of time, parallel work is the new norm.

My attention, then vs. now. Guess which week is more tiring.
None of us would want to go back, but it came at a steep cost: context switching.
One consensus among me and my group of friends is that software engineering has become more tiring. Quite ironic, as we’re essentially doing less of the actual work. I think context switching plays a big part in that.
For the past year or so I’ve been obsessed with exploring different ways of putting “work” into better context. I strongly believe the future of work is moving towards a more holistic way of working. I hope the future is better than switching between Jira, Slack, VSC and GitHub.
One of my earlier experiments was putting agents into Minecraft. Why Minecraft, you might ask? And you might be forgiven for doubting the holy grail of IDEs that is Minecraft. But I actually think Minecraft is a pretty interesting way of prototyping ideas in 3D. It’s well known, has a very good modding community and, most importantly, has all the basics already implemented for you. No need to re-invent any 3D, networking or general interactions.
Wow, Opus 4.6, times really have advanced soooo quickly.
I didn’t take this too far, but the idea of having your work in a “physical” space while also maintaining some kind of human connection in this increasingly isolated world was intriguing to me.
Fast forward a couple of months and I start a new job at FlutterFlow. Having done my fair share of experiments around interesting concepts of future work, I threw together a new prototype of work in 3D, this time in Three.js so others wouldn’t have to buy Minecraft to try it.
This was interesting! I actually spent a full afternoon working within this environment and it was … dizzy? I found that I was getting dizzy after some time. Flying and looking around in 3D, especially with all of the context switching, was extra confusing for my brain. I showed this prototype to a few colleagues, and Abel (one of our founders) was intrigued, but noted that this would be more interesting in 2D.
The next day I whipped up another prototype, this time using Flutter and in 2D. And it caught on. Within a couple of days we had something that actually worked for us.
Our messy early collaborative workspace
Work Canvas, later Campus, wasn’t something we planned or wanted to do at that point, but that initial prototype I shared across our team spread like wildfire. We found ourselves preferring to work in this very early prototype of a 2D spatial work canvas over the tab-switching workflow we had before.
Here’s a tour of what it grew into:
In short, Campus is a collaborative infinite canvas that you can actually work on. It supports a bunch of different tile types out of the box (terminals, web browsers, assets, etc.) and we’re currently working on an extensive plugin system. The overall goal is to build a sandbox made for work.
One idea that stuck around in my head ever since the Minecraft prototype was multiplayer. My most cherished memories playing Minecraft when I was younger were of playing with friends. It just feels right being able to create a space, personalize it and share it with your friends.
Getting back to context switches: the philosophy of Campus is having everything in context. Basically, it’s putting related things close to each other, grouping by what you’re working on instead of by what kind of thing it is. It’s the same instinct as structuring code by feature rather than dumping every model in one folder and every controller in another. This means you have the agent that is creating the work, the artifact (such as the compiled and running app) and any additional resources (tickets, issues, inspiration) in close proximity. Context switching can’t be eliminated entirely, but picking a piece of work back up stopped feeling like a chore. I’m not going to pretend I measured any of this. We just like working this way, and none of us have wanted to go back.
Fair question, and it’s the first one I get. Infinite canvases aren’t new. Miro, FigJam and Obsidian Canvas have been around for years and they’re good at what they do.
The difference is what a tile actually is. On a whiteboard, a tile is a picture of something: a screenshot, a sticky note, a link pointing at the real thing somewhere else. In Campus the tile is the real thing. That terminal on the canvas is a terminal running on my machine, in my repo, with my agent working in it. The app next to it is the actual build, actually running. You don’t paste your work into Campus, you put your work in Campus.
Tiling window managers get that part right too. What they don’t give you is a space bigger than your monitor, one you can zoom out of, move around in and actually remember.
My workspaces in Campus can be quite messy.

But interestingly, it’s not messy for me.
There is this concept of a “memory palace”. It’s essentially an imaginary 3D space that you build up in your head, and you associate different ideas and things with an actual location in that space.
In the screenshot above, I can tell you right away which tile and terminal is working on what, just by their position and size. Compare that to a tabbed experience, where I was always lost and had to click my way around to understand who is working on what.

I'm one of those people with too many browser tabs open (whenever it becomes too messy I just create another group and shove all the old tabs in there …)

What I find even more fascinating about this process of creating a virtual space is doing it with others. Having a deeply rooted shared understanding of the space should make collaboration more seamless, in theory. Campus is built on the premise that everything in Campus can be shared with others.
Campus has a pretty interesting networking architecture. Everything is (opt-in) multiplayer: every tile you see and every interaction you take can be shared across people. Traditionally you would have one server which does the work, and peers just see the output of that work and send commands. Here, the work happens on each user’s personal computer. Streaming data is opt-in (work is local first, sharing with colleagues is an explicit action).

Media, such as wallpapers and binary data, is another aspect. We identify each asset by hash, and stuff on the canvas references those hashes. If a peer is missing an asset, it requests it from the asset owner, still routed through the fanout server rather than peer to peer, so nobody in the room ends up connecting straight to anybody else. Once the asset is cached, it doesn’t need to be re-downloaded when re-joining. This works pretty well for small teams and light asset usage, but obviously doesn’t scale that well with many people in a room (you don’t want to DDoS yourself by having hundreds of people requesting assets!).
One core philosophy though: we don’t want a central managed server being a bottleneck, whether for scaling, development complexity or security. One thing I would like to get to soon is letting users configure a custom NAS or similar which can act as a host for assets.
While the current implementation is not truly peer-to-peer (there is a very thin fanout server in the middle), the architecture itself is peer-to-peer. The initial “server” we deployed just kept running through soooo many client versions before we had a reason to touch it again!
Additionally, I was recently looking into Iroh for making this a truly p2p experience. That’s going to be a separate blog post if we do end up shipping it!
There is a shared space on the canvas. It’s opt-in, and people can gather there and bring their work along if they feel like it.
One feature I didn’t expect to catch on was local chat.
At any point in time you can just start typing a message (prefixed with /) and it appears next to your cursor. When you’re in a room with peers, others see those messages as they are being typed. Once you’re done, the message fades away after a bit.
On paper this sounds like a bad chat experience. Others can see all your typing mistakes; messages disappear, so if somebody is afk or doesn’t read it in time it’s gone; and you have to hold your cursor still if you want anybody to have a chance to actually read it.
Despite all of these shortcomings, we noticed that exactly these properties lead to so many more “micro interactions”. The kind of chat you’d have in front of the water cooler. These messages were typically low pressure, sometimes fun and filled with gifs, sometimes just situational about some shared work happening in the background.

Sometimes it’s not about the technically best implementation or system. Sometimes it can just be about what’s most human. Do we expect critical business decisions to be made in a disappearing chat? No. Are we definitely keeping this feature because it facilitates something that’s hard in a remote team? Absolutely!
Campus is free and you can try it at campus.flutterflow.io. The core is going to stay free. It’s the only way a tool you’re supposed to live in all day actually works.
There are a bunch of interesting bigger features being worked on for Campus right now, each of which deserves its own post once it’s ready. Just to name a few initiatives:
One of the reasons I think Campus captivated us so much was working on Campus itself and having it shared with the team within minutes. Especially now, with agents, customization and making things work for you and your team have gotten so much cheaper and more fun. I’m working on a bigger extension system right now which is going to be WASM-based and essentially able to do anything to Campus that we would be able to do (while remaining secure, fast and reliable). This will definitely deserve its own blog post when ready!
We have an early alpha of the Campus mobile app in TestFlight right now. It features the same canvas view as desktop for orientation, but has specialized UI for each tile kind to optimize for the mobile display. The iPad version is where I see this becoming incredibly useful: working remotely with just an iPad while having all the tools available on a Mac.
Campus is built with Flutter, and Flutter runs anywhere, so the web is a natural next step!
Brandon DeRosier has been doing some incredible work on adding advanced 3D capabilities to Flutter. While this definitely falls more into the fun category, a true sandbox experience needs to provide these capabilities.
We’re a remote-first company, and whenever we meet up we love playing board games as a team, something which is completely lost when we’re remote. My personal hope is that we might bring some of that culture back through Campus (Seven Wonders 👀).
Campus is free and available for macOS at campus.flutterflow.io. If there is anything you’re missing or something breaks, you can submit feedback right from within Campus, or reach out to me on X.