Categories
Uncategorized

Relm Tech Stack

We’re really excited to be using some very new technologies in the browser to make a 3D collaborative world like Relm possible. All of the software we use has one aim: to make it more natural and pleasant to work together as human beings, remotely.

Here’s what we’re using:

  • THREE.js – a well-known library for displaying 3D graphics in the browser. It uses WebGL and has a lot of conveniences and optimizations that make it simpler for us (as world builders) to focus on the people and world we’re making, rather than obscure details about GPUs and shaders.
  • Yjs – a lesser-known javascript library that enables state synchronization across peers. Peers can be servers or clients: the cool thing about Yjs is that it doesn’t care about primary/replica databases or transport mechanisms. It reliably and consistently merges data so that all peers can have a shared view of the world.
  • stampit – a neat way to organize javascript code that is kind of halfway between functional and object-oriented. It’s actually very close to the “ECS” (Entity Component System) paradigm that many games are built with (including Unity3D, which we used to prototype our first versions of Relm, then called Ayanarra).
  • Jitsi – a fabulous open-source library for browser-based video conferences. We use lib-jitsi-meet, a lower-level library that they use for their meet.jit.si service.

All of our source code is open source and available here:

https://github.com/relm-us/relm

You’re welcome to join us in the quest to make human-centered collaboration enjoyable on the web!

Leave a Reply

Your email address will not be published. Required fields are marked *