https://github.com/matrix-org/thirdroom/discussions/20 Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} matrix-org / thirdroom Public * Notifications * Fork 2 * Star 49 * * Code * Issues 0 * Pull requests 1 * Discussions * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights Welcome to Third Room! #20 robertlong started this conversation in General Welcome to Third Room! #20 @robertlong robertlong Feb 8, 2022 * 0 comments Return to top edited [175] robertlong Feb 8, 2022 Maintainer image Note: The contents of this document are subject to change as we further plan out the Third Room roadmap Third Room is a decentralized metaverse platform built on top of the Matrix protocol. The project is governed by the Matrix.org Foundation. It is entirely open-source and developed in the open. If you want to get involved in development, you can join us in the # thirdroom-dev:matrix.org Matrix room. Third Room enables people to discover and create virtual worlds while protecting their privacy and giving them ownership over their data. We use open standards to ensure that both the 3d content and social networking data is portable and interoperable with other platforms. We empower creators to design and program rich and interactive virtual worlds and avatars using a wide variety of 3D content creation tools and harnessing the power of the glTF file format. The Third Room client developed in this repository is only one implementation of a possible Third Room client and we welcome additional web or native clients to implement the protocols we design together. Third Room itself is designed around the Matrix protocol, but pieces of this project can be utilized in other 3D web applications including other metaverse platforms. We intend to build the client in a modular fashion, improving the overall landscape for the 3D web ecosystem and being a good participant in the open source community that we are benefitting from. We will be a good participant in the Open Metaverse. We believe that there is one metaverse just as there is one internet. Third Room is just one piece of the overall metaverse. We will embrace and encourage interoperability instead of accepting fragmentation. Third Room at its core is focused on creating spaces for people and communities to feel safe. We will foster an open community that is kind, respectful, and accepting of others. We will utilize Matrix's existing moderation tools and extend them to best protect our community members against trolls and harassment. We will put users in control of their own privacy and always design with a privacy and safety first mindset. Problems * Virtual worlds are disconnected which makes multiplayer gaming and switching activities or applications difficult and clunky. * Some virtual world platforms are monetized with an ad based model that uses sensitive user data to recommend ads. * Other virtual world platforms are monetized via NFTs which can be inaccessible due to cryptocurrency transaction fees, some are built on proof of work chains that require vast amounts of electricity, and all operate on the concept of artificial scarcity which has been co-opted by many groups in various speculative schemes. * There is high demand from audiences for free user-generated content games on platforms where creators make next to nothing. The audiences and creators for these platforms heavily skew younger and are being exploited by platform operators. * The quality of these user-generated games can be high but most are not due to the platform restrictions especially around monetization opportunities. Creators cannot afford to create indie/AAA content. The Pitch * Third Room will be built on top of the Matrix protocol allowing for decentralized hosting of virtual worlds. * Worlds can be traversed quickly by changing rooms. * Your identity, network, and other shared data will be brought with you between these worlds. * Worlds will have spatial voice chat and game networking that can be made end-to-end encrypted so that you know you are only sending data to the people in the room. * Creators of all skill levels will be able to create worlds using either a beginner-friendly in-world collaborative tool or industry-standard 3D tools. * Creators will be able to use the programming language of their choice compiled to WebAssembly to add interactivity to their worlds. * Creators will also be able to monetize their worlds through marketplaces for 3D content including avatars, environments, and props as well as scripts. They also can monetize room or server membership. Design Concepts Designs subject to change. Environment by James Lago. Avatars by Ready Player Me. dash loading in room in room-1 in room-2 Media OMI Demo Night Talk FOSSDEM 2022 Native Group VoIP and Metaverse on Matrix First Steps / Minimum Viable Product * We will be developing a more polished and feature-complete version of the original Third Room demo. * Users will be able to sign in to their Matrix account using OpenID Connect * They will be able to create Matrix rooms containing 3D virtual worlds by choosing from one of the provided scenes or uploading their own glTF scene. The room's scene will be stored in Matrix. A screenshot/thumbnail of this scene will also be stored in Matrix to show in room listings and when loading the scene. This scene may include a Web Assembly script which will have some scripting capabilities to add interactivity to the room. * Users will be able to view a list of their joined rooms, search for public rooms, and invite others to their rooms. * They will be able to customize and pick their avatar from an existing set or upload their own using either the Mozilla Hubs avatar skeleton or VRM skeleton, both represented as a glTF avatar. Their profile containing this avatar will be stored in Matrix. * Users will be able to use text and voice chat to talk to other users in the room. This will be based on top of Matrix and the Matrix Group Calls work. Connections to other users in the room will be made via P2P WebRTC connections and SFUs will not be in place for the MVP. * Users will be able to walk around these virtual worlds, embodying their avatar in both 3rd and 1st person. Avatars with and without legs will be supported. XR support will not be in the MVP. * Users will be able to see the list of users in the room and block, kick, or ban other users depending on their permissions in the room. * Users will be able to quickly jump between scenes via links inside rooms or by clicking on rooms in the room list. * Users will be able to access rooms, avatars, and various assets across multiple thirdroom servers. Federation will be enabled from the start. Core Capabilities for MVP * Matrix authentication via OpenID Connect * Matrix account registration * Avatar upload, thumbnail creation, and representation in Matrix * Matrix room listings * Matrix room creation * Scene upload, thumbnail creation, and representation in Matrix * Multi-party spatialized voice chat * Matrix text chat * In-room participant list * In-room moderation tools (block/ignore, kick, ban, mute) * WebRTC datachannel-based game networking * Basic avatar customization (TBD) * Hubs avatar skeleton support * VRM avatar skeleton support * Avatar animation system * Physics system * Physics-based character controller * Input system (keyboard/mouse only) * Scene transition system (following links / room listing) * Matrix Federation support * glTF scene loader supporting OMI and Thirdroom-specific extensions * MVP of WASM scripting support * Scene/avatar authoring pipelines via Blender * 1st party and community content for scenes/avatars * Alpha plugin support Things we are explicitly avoiding for MVP * XR support * Inventory/trading systems * Friends list * SFU / High capacity rooms * Mobile, Touchscreen, and Gamepad support * Desktop app * Text/Video/Voice only rooms * Content marketplaces * Emotes * Bot API / authoritative server support * Bridging with other platforms Tech Stack * Synapse: Matrix Homeserver * Hydrogen SDK: Lightweight, performance-focused, Matrix Client SDK * React: Frontend UI framework * Vite: fast/low-configuration JS bundler/dev server * Three.js: WebGL 3D rendering library * Rapier.js: Rust/WASM physics library with first-class, well-documented JS API * bitECS: Fast, data-oriented, JS ECS library * three-omi: Support for loading OMI glTF extensions * three-vrm: Support for loading VRM avatars TBD: * CSS Framework / Component Library + CSS Modules o PostCSS o SASS + Tailwind CSS + Radix UI + CSS-in-JS o styled-components o stitches * Postprocessing Three.js postprocessing effects * three-mesh-bvh Three.js mesh raycasting To Investigate: * Ossos (Character Animation) Key Stakeholders * Matrix.org + Robert Long: Project Lead / Frontend / 3D / VoIP Engineer + Nate Martin: 3D Engineer / bitECS Creator / WebECS Project Lead + Bruno Windels: Frontend / Matrix Client Engineer / Hydrogen Lead + Matthew Hodgson: Element CEO/CTO / Matrix.org Lead & Guardian * Cinny.in + Ajay: Frontend Engineer / Cinny Lead * XP Portal + Anthony Burchell: Frontend / 3D Engineer + Ben Moore: Frontend / 3D Engineer MVP Content What environment / experience can we build that gives users something that is: * Useful and/or entertaining * Genuinely a good experience in 3D * Fits the vibe we would like to set for Third Room as a product + Fun + Relaxing + Social + Creative * Within a reasonable scope for our MVP * Works within the boundaries we'd like to set for the WASM API How do we want to go about getting content for this environment? * 3D artists to contract with? * Technical + visual artist to hire? 6 Replies 0 comments Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment Category General Labels None yet 1 participant @robertlong Add heading text Add bold text, Add italic text, Add a quote, Add code, Insert Link Link Text [ ] URL [ ] Add Add a link, Add a bulleted list, Add a numbered list, Add a task list, Directly mention a user or team Reference an issue or pull request Add heading text Add bold text, Add italic text, Add heading text Add a numbered list, Add a task list, 1 1 1 1 1 [?] 1 1 1 * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.