Open source · Contribution
Colibri
A toolkit from the HCI Group Konstanz that synchronises objects and data between apps for cross-reality prototyping. I sent small patches in 2024 and did most of the Colibri 2 work in 2026, with most of the code written by Claude.
- Project
- Colibri, HCI Group, University of Konstanz (Sebastian Hubenschmid, Daniel Fink)
- 2024
- Configuration options for server, Unity and web; a REST wrapper for the web client (PRs #1, #2)
- 2026
- Colibri 2: server, web client and Unity client, merged as PRs #4 to #15 on develop
- Written with
- Claude. Most of the code was written by Claude.
- License
- MIT
- Status
- Colibri 2.0.0 unreleased, on the develop branch (Oct 2026)
TypeScriptNode.jsUnityC#Docker
What Colibri is
Colibri is the HCI Group Konstanz’s open-source toolkit for cross-reality prototyping. It synchronises objects and data between apps, with clients for Unity and TypeScript and a Node.js server. Besides messages and synchronised objects it brings a data store, monitoring in the browser and voice chat, and it puts low latency first, because research prototypes run under lab conditions. It was published at ISMAR’23 by Sebastian Hubenschmid, Daniel Fink, Johannes Zagermann, Jonathan Wieland, Harald Reiterer and Tiare Feuchtner, and is maintained by Sebastian Hubenschmid and Daniel Fink.
2024: small patches
My first contributions were two pull requests in early 2024: configuration options for the server, the Unity client and the web client (host, port and SSL, read from a .env file), and a REST API wrapper with a Colibri class for the web client, kept backwards compatible with the old functions.
2026: Colibri 2
Colibri 2 is a new major version of all three parts, merged into the develop branch in October 2026 as pull requests #4 to #15 and not yet released. The server keeps its data store in SQLite with an expiry and a size limit, speaks TLS itself or shows the certificate of a reverse proxy, listens on IPv6 and IPv4, uses new default ports so that both versions can run side by side, separates voice chat per app, disconnects headsets that went to sleep, limits the load one client can cause, and has monitoring and log pages that work on a phone.
The Unity client no longer needs UniRx and UniTask, survives a reconnect without losing the changes made during the outage, shows its state in a status window and warns about player settings that break a Meta Quest build. The web client gained the same features, can delete an object for every client and declares synced properties without decorators. All of it comes with test suites, changelogs and a migration guide.
How it was written
Most of the Colibri 2 code was written by Claude. I set the goals, decided what went in, and sent the pull requests; the maintainers merged them.
