Categories
Uncategorized

Relm Updates – July 9

Most of the development work has been focused on a server update that will be coming soon, but there have also been some helpful updates and improvements that have landed on the browser side:

  • NEW: Preliminary support for packed-glb and packed-gltf formats. See command-line gltfpack utility. This reduces some meshes and animations to 20% of original size.
  • NEW: Selecting a 3D object now highlights its edges in black.
  • NEW: Documentation (“Help”) now shows thought bar in command descriptions
  • NEW: When selecting a single item, a toast message now shows you what you selected (type and ID)
  • CHANGED: The upload limit has been changed to 4mb.
  • CHANGED: On Mac OS, you can now Cmd+click to remove selection (ctrl-click is indistinguishable from right-click)
  • FIXED: Restore landing coords to working state (x,z params in URL)
  • FIXED: Uploading a 3D object used to only accept a single mesh; now all meshes in a glb/gltf file are accepted.
  • FIXED: Documentation shows /share command for screen sharing
  • FIXED: You can now drag objects that are “underneath” other objects, if the under-object is selected.
  • FIXED: Players would sometimes get caught in “infinite reload loop” when triggering portal to other relm.
  • FIXED: Players would sometimes “moonwalk” (from other players’ perspectives) rather than instantly teleport when using portal.

The Open Source Ecology group has a cool use-case for Relm: since they build actual life-size machines, they can collaborate in virtual space and coordinate builds. They requested the ability to highlight edges of 3D objects in order to better show off some of their CAD models.

Categories
Uncategorized

Screensharing!

An oft-requested feature is now here: screensharing!

If you click on someone’s screen, you’ll get a full screen version of their screen.

For now, the only way to initiate a screen share is via the command /share. Sending the /share command again will exit screen sharing mode and return to regular video.

Would seeing each others’ screens side-by-side be useful for a follow-along tutorial? Maybe as a way to show what you’re working on with the team? We’re excited to see how people use this new capability!

Categories
Uncategorized

New Features – June 22

Relm had a big refactor last month and as a result, there are quite a few new features:

  • Foldable images: creates an improved illusion that a 2D image is 3D by putting a “crease” down the center.
  • Ground: we now have flexible flooring! No more grey background. Ground can be circle-shaped, square-shaped, or “roughly circle”-shaped (pictured below) and keeps players within bounds.
  • Editor: object properties can be directly edited (currently as JSON)
  • Faster downloads: all images are now converted to both WebP and PNG so that we can use the much lighter-weight WebP format on browsers that support it.
  • More vibrant colors: the world was white-tinted, but now has truer more beautiful colors on textures.
  • The “Help” screen documentation is accurate again.

Categories
Uncategorized

Fueling a Passionate Culture in the Remote Office

We were fascinated to read Chip Cutter’s article in the Wall Street Journal, “Office Culture: The Office is Far Away. Can Its Culture Survive?” He notes that managers “are fretting about how they can instill culture and encourage innovation when employees who once spent days together now rarely see each other in person.”

When we started Relm back in December of 2019, COVID-19 wasn’t even on our radar. Our co-founder, Chris Johnson, was connecting with his clients over phone and video conference from his remote location in British Columbia, Canada. But he felt lonely. And worse, he noticed that he couldn’t even tell how some of his associates and employees were doing.

One morning, he called up one of his associates only to find that he had attempted to take his life a day earlier. Chris was shocked, and discouraged. The news was made worse by the fact that Chris didn’t even have a hint that his associate was carrying some unspoken pain in his life. This potential loss of life seemed to have come out of the blue.

But what if it could be different? What if remote work could be a little more like face-to-face office work? You get a chance to check in with each other, ask how the weekend was, get coffee together. These rituals and human touch points that we’ve taken for granted are actually the bedrock of human connection and trust.

Teams need each other–and they need to trust each other–in order to work effectively. And more importantly, we need each other when we’re going through difficult times, for reassurance and advice. Life is not straight-forward. No one should need to feel structural loneliness.

Relm’s value proposition is this: if you’re in a remote team, we think work should be more fun, more human, and more focused on the rituals and emotions that build us up as teams and as people. We think you are probably a part of a forward-thinking company that is willing to spend more time in a remote work situation to have fun together, build culture, and ultimately to be human first. If we can bring our whole selves to work, the world will be better for it.

Do your employees need more space to be themselves, together? If you’re on the edge of the adoption curve, and willing to build your remote company culture in a game-like browser-based virtual world, let’s talk!

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!

Categories
Uncategorized

New Features – May 29

We’ve been busy making improvements to Relm. Some of the big new features include a character selection screen, a more robust Commands system, and Multiselect with the mouse pointer. You can see a complete list of changes in our Changelog.

May 24

  • NEW: There is an “Export Only Selected Objects” checkbox in the /export page.
  • NEW: The /select command now has /select locked and /select unlocked subcommands that select all locked or unlocked objects in the relm
  • NEW: As a shortcut to /object delete, objects can be deleted with the ‘delete’ or ‘backspace’ keys (object must be selected first)
  • CHANGED: Hint text to use the thought bar has changed from “Press Tab to Type” to “Press Enter to Type”
  • FIXED: Possible jitsi race condition that prevented some video/audio from connecting
  • FIXED: Border around videos is now more circular

May 23

  • NEW: Cmd+A (on Mac) or Ctrl+A (Linux/Windows) will select all objects in the relm (that are unlocked)
  • NEW: ESC key deselects all objects
  • NEW: /select all command selects all, and /select none deselects every object
  • NEW: Multiselect! You can shift+click on objects to add to the selection or ctrl-click to remove from the selection.
  • NEW: Commands that work on objects now work on all selected objects.
  • NEW: You can toggle lock/unlock state with keyboard shortcut “|” (shift+backslash). It operates on what your mouse pointer is hovering over.
  • NEW: Some commands have new abbreviations:
    • /o = /object
    • /o f = /object fetch
    • /o i = /object info
    • /o r = /object rotate
    • /o s = /object scale
  • CHANGED: You can no longer “secretly select” objects (i.e. click things to select but it wouldn’t show it was selected). This was implemented previously so we could unlock locked objects. Use shift+\ (`|`) instead.
  • CHANGED: /object up|down|left|right is now /orient up|down|left|right
  • CHANGED: Removed some obscure commands (abracadabra, lockall, unlockall, etc.)
  • CHANGED: /snap command now expects /snap off to turn grid snap off.
  • CHANGED: /portal command is now its own command, and has subcommands, create, url, and radius. Use /portal create [URL] to create a portal, then /portal url https://relm.us/[RELM] to change its url, or /portal radius [RADIUS] to change its radius.
  • CHANGED: Better toast message when objects are locked & unlocked
  • CHANGED: Editor Mode (/mode editor) now allows selection of locked objects
  • CHANGED: Locking and unlocking objects removes selection to indicate the action completed
  • CHANGED: shift+\ shortcut for locking/unlocking now behaves as expected by acting on selected objects only
  • FIXED: Issue with GLTF and GLB files would sometimes show “NaN” as scale and no object would appear

May 21

  • NEW: /snap [SIZE] command will give you a snap-to-grid feature when dragging objects with the mouse. A good value for SIZE is 300, since the marble tiles are 300×300.
  • NEW: Ability to lock and unlock all objects in a relm.
  • NEW: Uploaded assets (images like PNG, JPG, WebP, as well as 3D GLB files) are now saved as an MD5 so that we don’t store duplicates (and client load time will potentially be faster)

May 20

  • NEW: There is now a “G” button on thought bubbles that will convert the thought into a gem/sign.
  • NEW: Player names can now be edited directly
  • CHANGED: Diamonds now have a spotlight directed toward the ground so you can see how high up they are.
  • FIXED: Label positions are less laggy during animation frames

May 19

  • NEW: There is now a “My Character” button in the upper-right corner that allows you to select a character.
  • NEW: First-time visitors will see the Character Selection screen right away.
  • NEW: You can import and export an entire relm! /import and /export will bring up a textarea where you can export & copy, or paste & import.
  • CHANGED: The “Invite” button has been temporarily removed since it isn’t useful until we have locked relms.
  • FIXED: The speed at which objects moved on others’ screens when dragged is no longer slower than usual.
  • FIXED: Removed the ‘close’ button from gem notes (diamonds/signs) since it didn’t work and the proper way to close it is by clicking the gem again.
  • FIXED: Thought bubbles are restored to their original location & have content shown as expected.

May 18

  • NEW: When two or more people are near you, if you zoom in as far is it will go, the camera will now drift toward the centroid of those near you, so it’s easier to see everyone’s video bubbles near the center of the screen.
  • NEW: Double-tapping an arrow key will cause your character to speed-walk in that direction [Special thanks to Gary for the suggestion!]
  • NEW: Signs can now have a message set (/sign message [MESSAGE]). Messages are pop-ups that appear when you click on a sign.
  • NEW: Signs can now also have a label set (/sign label [LABEL]). Labels are zoom-invariant text underneath the sign.
  • NEW: Right-click toast message now shows portal URLs
  • NEW: /obj clone command now takes an optional [COUNT] parameter so you can make more than 1 clone at a time.
  • NEW: If speech bubbles exceed capacity, they will now automatically convert to a rectangular format with scrollbar
  • NEW: When sharing links, links are now clickable
  • NEW: Right-click info panel now shows object locked status.
  • NEW: You can change the URL of a Diamond link with /object changelink https://...
  • NEW: You can create links to external websites with a new “interactive diamond” that indicates users can interact with / click on it. Use /link https://[url] to create a Link.
  • CHANGED: When focused on the thought bar, hitting ESC will (in addition to putting focus back on the game) close the thought bubble, if open
  • CHANGED: Thought bubble links are now only abbreviated after 30 characters (previously was 20)
  • CHANGED: [MESSSAGE] is now an optional parameter of /sign create
  • CHANGED: Renaming “Diamonds” to “Signs”
  • CHANGED: Create a sign with /sign create [MESSAGE] (used to be /dia)
  • CHANGED: Signs no longer need to be locked to be clickable.
  • FIXED: Video bubbles no longer travel on top of the game UI buttons in the upper-right corner.
  • FIXED: Video bubbles near the edge of the screen no longer drift away from the characters’ centerlines.
  • FIXED: You can now clone 3D objects (but you have to refresh to see them—secondary bug to be fixed later)
  • FIXED: Large words don’t cause empty speech bubble bug
  • FIXED: Text in speech bubbles can now be copied to clipboard