Frame Update: 1000 Users At Once, Real-Time Reflections, and More
September 6, 2023
We have an epic update to Frame that takes us to new heights with scale, performance, graphics, creator tools, and more.
1000 users at once. Real-time reflections. A drag-and-drop 3D environment creator. Much more.
A new era of the web is upon us, one where websites can be spatial, immersive, social, and playful. Frame is one of the creator tools in this ecosystem, giving people a way to build immersive, social sites that work on desktop, mobile, VR, and Apple's upcoming Vision Pro.
The Update: Highlights
In this update, there are some things you'll notice and others that have changed under the hood. Here are the highlights:
We now have experimental support for up to 1000 users at once for our enterprise clients with metaverse-as-a-service packages. We will soon support 300 users at once in the same Frame for Frames on our premium paid tier. Note: in order to achieve this scale, we need to make some trade-offs. Avatars that are far away will be rendered as very simple avatars until you move closer to them.
An awesome new Tile Map Editor that lets you create your own 3D environment by dragging and dropping tiles onto a grid, exporting a file, then bringing that file into Frame as a Frame environment.
Screen space reflections will make items in your Frame reflect on reflective surfaces in your 3D environment model.
Sphere reflections will make reflective surfaces in your 3D model reflect the 360 photo you have expanded in your Frame.
Two gorgeous new environments, Skyrise and the Suite Office. The Skyrise is designed to show off the new reflections and it has some motion-driven shaders and other cool effects. The Suite Office is a cozy space designed for smaller interactions.
Different animation modes for 3D models with animations - up until now the animations just played on repeat but now you can use one-shot or yo-yo style animations.
Many other small tweaks, bug fixes, and performance improvements.
That's right, 1,000 users in the same Frame at once for enterprise clients on our metaverse-as-a-service package, and soon up to 300 users at once for users who have upgraded their Frames accordingly.
We achieved this scale by digging deep to improve our back-end server architecture and our front-end rendering capabilities.
For the back-end, we built a separate server infrastructure dedicated to handling the movement data for avatars. This lets us do interesting things like data batching on the server and the most efficient aggregation and throughput of movement data packets to users in Frame.
On the front-end, we implemented some "level-of-detail" techniques so that if avatars are far away from you, they show up as very simple avatars until you get closer to them. For those that want to try their luck at rendering a thousand full body avatars no matter their distance from you, we give you that option in your user preferences!
We use a wonderful open-source 3D development framework from Microsoft, Babylon.js, to build Frame, and we worked closely with the Babylon.js team to hone in on performance bottlenecks and methods to help us render thousands of meshes simultaneously inside of Frame.
The result? I was able to be in a Frame with 1200 others in the Frame....from my iPhone 12.
Coming Up: Frame Networking SDK
Generally speaking, though, we think that the ability to handle this kind of scale will be fully commoditized in a few years. We've built our own infrastructure on top of WebRTC that we think is special, but there are lots of tools capable of achieving this kind of audio/video/data synchronization between thousands of users at once.
If any company out there is touting their service as "the only way to achieve X-thousand users at once", they are probably wrong about that now and most definitely will be wrong about that in a year or two.
In fact, I believe so strongly that "lots of users at once" is not a sustainable competitive advantage for Frame that we'll be making our own networking capabilities available over a paid SDK next year for any developer to use. Want thousands of users at once in your metaverse application? No problem - you will be able to use the Frame Networking SDK for that, or countless other great tools.
The Frame Networking SDK will be particularly helpful for developers using Babylon.js, because we'll provide some hooks right into Babylon for a super seamless developer experience.
Frame Tile Editor
Frame is deeply customizable for both technical and non-technical creatives, and we believe strongly in empowering everyone to create compelling Frames. We have a drag-and-drop interface for placing all sorts of assets around your Frame. It's easy to add branding, 3D models from libraries, interactive buttons and so much more without coding.
Now, we're pleased to introduce the beta of the Frame Tile Editor, a separate site at tiles.framevr.io that lets you drop pre-made tiles onto a map, creating a 3D environment that you can then easily export and bring into Frame. You can even export these environments to use in any other metaverse or 3D platform that supports the .glb file format. We don't mind!
We'll be adding tons of features to the Tile Editor in the months ahead, but already we think it's a playful, simple way to setup your own 3D environments. In the future, we'll let creators upload their own tiles to the tile library to share or sell, and we'll let you log in with your Frame account so that you can just add a Tile Map to a Frame without needing to export it / import it.
The Tile Editor is in beta but we encourage you to start playing with it! Just like Frame itself, we also built this with Babylon.js!
You can now add real-time reflections to your Frame environments, incorporating all of the models in your Frame as well as any 360 photo you've set as the skybox. This is particularly useful for Frame environment creators who want to leverage metallic/reflective textures in their environments.
There are two new settings in Frame settings, one for scene reflections and one for sphere reflections.
With scene reflections, reflective textures in your environment will reflect other things in the scene.
For example, notice how this table is reflecting on the wall behind it. While you're looking, also check out the real-time shadows and the leaves blowing gently in the wind:
With sphere reflections, your reflective textures will also reflect the 360 photo that you have expanded in your Frame. Here's a mirror-like textures we have on a bit of architecture in the new Skyrise environment.
Two New Environments
We have two new environments available in the environment picker: the Skyrise and the Suite Office.
The Skyrise has some gorgeous effects - leaves and grass blowing in the wind, a gently running stream, a lovely fountain, and some neat effects that are driven by the user's position. It's designed to showcase some of our new reflection features, so if you have a decent computer then turn on scene reflections and sphere reflections, and pop on a 360 photo in the background. By the way, these are all techniques that creators can leverage in their own 3D environments!
The Suite Office is a cozy little office designed for smaller interactions, like 1-1 meetings or small group meetings. We recommend it for office hours or things like that where you don't expect a ton of people.
We're working on better accessibility, more AI features, an AR mode that we think is going to blow your minds, and more advanced geospatial exploration. We're also working on our Networking SDK and an open source project called the Frame Foundation Kit that will let developers who really want to get in and customize Frame have the keys to the kingdom. It keeps getting better.