Exeud Teamwork: An immersive, multimodal workspace in a canister

Exeud Teamwork: An immersive, multimodal workspace in a canister

A VR-capable meeting room for the experiential web. Audio and screen sharing, peer-to-peer file transfer, a shared image canvas, text chat and voice note recording. It's a functional demo but still a work in progress, so please excuse any bugs or limitations.

I made it because it's useful for sharing ideas or presenting research, and because it's the first step towards agent-human and agent-agent commuication in a virtual environment. I am particularly curious about immersive agent training that can include visual and spatial perception, navigation and path-finding, and agent participation in simulated activities, such as space-based maintenance procedures, or learning to fly a plane.

Canister Link

For desktop, mobile and VR headsets. Up to six peers per room.

The Room

Shared image canvas. Any participant can upload an image from their device, replacing whatever is on the canvas, sharing it with everyone in the room, including people who join mid-session. Use it to set the context for a meeting, display a brief or design, or brand the space for a team. The last upload persists for late-joiners.
Screen share. Desktop participants can cast their screen to this panel. The the resulting video track is sent directly to each peer, without relays. VR headsets can receive the stream but cannot initiate it.
File panel. A local file store (IndexedDB, up to 50 MB per file), a live list of files that other participants are offering, and a scene asset index. Upload and share files, share them with other people.
Activity log and text chat. A running record of room events — joins, shares, transfers — alongside a broadcast chat panel for messages that is be visible to all participants.

Each participant has a head-and-hands avatar; pose is streamed continuously to all peers. In VR, hand tracking drives the avatar directly. On desktop, mouse and keyboard control the equivalent. All modes share the same session without any distinction.

Audio is toggled from a watch, which also shows has modes for time and FPS monitoring. Multiple participants can speak simultaneously; the browser's Web Audio mixer handles the overlap natively with no server-side mixing.

On the central table, the Control Tablet initialises the WebRTC connection and allows the creation and joining of rooms. It also switches the audio stream on and off.

The Tannoy recorder captures from the microphone using the MediaRecorder API. Hold the button to record a message. The recording is stored in your local store and immediately offered to everyone in the room.

The File Panel

The panel behind you is the media workspace. It has three sections:

Network Offers — files that other participants have made available. Filename, sender, type, size. Accept one and the transfer runs directly between your browsers — 64 KB chunks, acknowledged every 16 chunks, SHA-256 verified on assembly. Content-hash deduplication limits re-shares and clutter.
Local Store — locally-held files in IndexedDB. Upload from disk, or record soundbytes directly in the room with the Tannoy recorder. Each file is either private or offered to the room; toggle by clicking on the word, delete, or save back to disk. Status and storage quota is shown in the status bar.
Scene Assets — a unified index merging assets published to the live scene (the current canvas image). Demonstrates a single queryable list regardless of origin.

Visit Now

The Next Phase

  • 3D model sharing — Share models in the space for inspection, presentation or review. Select from local files or pull from Sketchfab.
  • On-chain file storage — files currently live in IndexedDB and survive page refreshes but not a cache refresh. Canister-backed storage for secure storage and long-term persistence.
  • E2EE — Full encryption of WebRTC data channels and P2P media streams.
  • Jukebox — spatial audio player streaming data from the canister or local storage.
  • Session data compilation — Bundling and sharing of session data, from all media sources.
  • Identity-linked presence — avatars anchored to II principals, persistent display names, room history.
  • Better avatars — upper-body and full-body rigs; currently head and hands only.
  • Private rooms — Support for room-level authorisation with drop-out protection.

After that

I am looking into A2A protocols and thinking about agentic presence in virtual spaces, while hoping that the current noise around world models produces something amazing. Affordable, high frequency + low(ish) bandwidth communication seems doable and the first prototypes will necessarily be a mixture of Web2 and Web3 technologies.

A key factor may prove to be the use of WebGPU, which I am in the process of integrating, which will give a huge boost to the performance and open up new possibility spaces, such as more complex avatars, compute shaders and better lighting/post-processing.

If you would like to support the project with time or tokens, please get in touch. I also welcome technical suggestions, ideas for features and public displays of affection.

🥚🐣🍻 Happy Easter! 🍻🐣🥚

1 Like