Limiting Perception Levels Of Media Exchanges Within Multi-User Virtual Sub-Spaces

A connection of users to a multi-user virtual space is detected. A multi-user virtual sub-space within the multi-user virtual space is formed. A group of users from among the users are assigned to the multi-user virtual sub-space. Media exchanges are focused for the group of users within the multi-user virtual sub-space by limiting a perception level of media exchanges between users not assigned to the multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space.

FIELD

This disclosure relates generally to virtual meeting spaces and, more specifically, to multi-user virtual sub-spaces implemented using a multi-user virtual space system and limiting perception levels of media exchanges within multi-user virtual sub-spaces.

DETAILED DESCRIPTION

Enterprise entities rely upon several modes of communication to support their operations, including telephone, email, internal messaging, and the like. These separate modes of communication have historically been implemented by service providers whose services are not integrated with one another. The disconnect between these services, in at least some cases, requires information to be manually passed by users from one service to the next. Furthermore, some services, such as telephony services, are traditionally delivered via on-premises systems, meaning that remote workers and those who are generally increasingly mobile may be unable to rely upon them. One type of system which addresses problems such as these includes a unified communications as a service (UCaaS) platform, which includes several communications services integrated over a network, such as the Internet, to deliver a complete communication experience regardless of physical location.

One particular example of such a communications service, which may be implemented using a UCaaS platform or otherwise, is a conferencing service that uses conferencing software. Conferencing software is frequently used across various industries to support video-enabled conferences between participants in multiple locations. In some cases, each of the conference participants separately connect to the conferencing software from their own remote locations. In other cases, one or more of the conference participants may be physically located in and connect to the conferencing software from a conference room or similar physical space (e.g., in an office setting) while other conference participants connect to the conferencing software from one or more remote locations. Conferencing software thus enables people to conduct video conferences in a traditional meeting experience without requiring them to be physically present with one another.

However, while conventional conferencing software approaches are often used to replicate traditional meeting experiences, as described above, such approaches are not usable to facilitate engagements between participants outside of those meeting experiences. For example, during breaks in a video conference, or at one or more times preceding or following a video conference, participants may want to chat with one another in a casual or professional capacity. In some such cases, they may want to form impromptu groups for conversing, in which the groups may have varying levels of privacy based on one or more factors. With fully in-person meeting experiences conducted without conferencing software, participants may be able to freely interact with one another before, after, and during breaks in the meeting. However, conferencing software is designed, both for security and functional purposes, to enable interactions between participants only directly as a part of the hosted meeting experience. In view of such design limitations, participants of a video conference implemented using conventional conferencing software must instead choose one or more other communication methods outside of the video conference to engage with one another outside of the actual hosted meeting experience.

In some cases, conferencing software may enable a waiting room experience for one or more video conference participants to interact with one another before a video conference begins. Typically, such a waiting room is available only before a video conference begins and only to participants of the video conference. As such, if a group of participants wants to interact outside of the video conference itself, they are generally required to set up a new video conference or other separate communication option. This typically involves notifying each participant of and inviting them to the separate communication option. Furthermore, interactions within such a waiting room may be overwhelming for many participants depending on the number of active participants. For example, if too many participants attempt to speak at one time, it may be difficult to comprehend what is being said. Relatedly, there may be instances in which a participant may want to interact with a smaller group of participants and not every participant in the video conference, or a participant may not want to interact with a particular group of participants. For example, a human resources team may not want to be a part of an engineering discussion. In another example, persons associated within a special interest group may not want to share their conversations with an entire organization.

Implementations of this disclosure address problems such as these using a new multi-user virtual space that may exist alongside or independent of a video conference. A multi-user virtual space is a virtual space in which multiple users may interact with one another using voice, video, text, whiteboards, or other communication mediums. Each user may broadcast their interactions to the virtual space for consumption by the users. Thus, a user may communicate with another user of the multi-user virtual space while other users are communicating with a different user. The interactions may take place without centralized control such as a host. Implementations of the multi-user virtual space may detect a connection of users to the multi-user virtual space and form and/or enable the formation of multi-user virtual sub-spaces within the multi-user virtual space. A multi-user virtual sub-space is a sub-space that may exist within the multi-user virtual space. A multi-user virtual sub-space includes some, but generally not all, of the users connected to the multi-user virtual space. A user within a multi-user virtual sub-space may remain within the multi-user virtual space such that the user is able to consume communications broadcast within the multi-user virtual sub-space. A multi-user virtual sub-space may be formed within the multi-user virtual space to focus communications within the multi-user virtual sub-space. Communication within the multi-user virtual sub-space may be focused for the users within the multi-user virtual sub-space while the communications broadcast outside of the multi-user virtual sub-space may have a reduced level of perception for the users of the multi-user virtual sub-space. Forming a multi-user virtual sub-space allows for interactions of subsets of the users connected to the multi-user virtual space in smaller groups while optionally allowing the users to remain a part of the larger multi-user virtual space. A group of users from among the users connected to the multi-user virtual space are assigned to the multi-user virtual sub-space, whether manually (e.g., by themselves or by another one of the users) or automatically (e.g., by software implementing the multi-user virtual sub-space). The multi-user virtual sub-space focuses media exchanges for the group of users by limiting a perception level of media exchanges between users not assigned to the multi-user virtual sub-space relative to a perception level of media exchanges between users assigned to the multi-user virtual sub-space for the users in the multi-user virtual sub-space. One or more such multi-user virtual sub-spaces may be implemented within the multi-user virtual space at a given time. A user connected to the multi-user virtual sub-space may be assigned to multiple multi-user virtual sub-spaces at a given time.

To describe some implementations in greater detail, reference is first made to examples of hardware and software structures used to implement a multi-user virtual space system and functionality thereof.FIG.1is a block diagram of an example of an electronic computing and communications system100, which can be or include a distributed computing system (e.g., a client-server computing system), a cloud computing system, a clustered computing system, or the like.

The system100includes one or more customers, such as customers102A through102B, which may each be a public entity, private entity, or another corporate entity or individual that purchases or otherwise uses software services, such as of a UCaaS platform provider. Each customer can include one or more clients. For example, as shown and without limitation, the customer102A can include clients104A through104B, and the customer102B can include clients104C through104D. A customer can include a customer network or domain. For example, and without limitation, the clients104A through104B can be associated or communicate with a customer network or domain for the customer102A and the clients104C through104D can be associated or communicate with a customer network or domain for the customer102B.

A client, such as one of the clients104A through104D, may be or otherwise refer to one or both of a client device or a client application. Where a client is or refers to a client device, the client can comprise a computing system, which can include one or more computing devices, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, or another suitable computing device or combination of computing devices. Where a client instead is or refers to a client application, the client can be an instance of software running on a customer device (e.g., a client device or another device). In some implementations, a client can be implemented as a single physical unit or as a combination of physical units. In some implementations, a single physical unit can include multiple clients.

The system100can include a number of customers and/or clients or can have a configuration of customers or clients different from that generally illustrated inFIG.1. For example, and without limitation, the system100can include hundreds or thousands of customers, and at least some of the customers can include or be associated with a number of clients.

The system100includes a datacenter106, which may include one or more servers. The datacenter106can represent a geographic location, which can include a facility, where the one or more servers are located. The system100can include a number of datacenters and servers or can include a configuration of datacenters and servers different from that generally illustrated inFIG.1. For example, and without limitation, the system100can include tens of datacenters, and at least some of the datacenters can include hundreds or another suitable number of servers. In some implementations, the datacenter106can be associated or communicate with one or more datacenter networks or domains, which can include domains other than the customer domains for the customers102A through102B.

The datacenter106includes servers used for implementing software services of a UCaaS platform. The datacenter106as generally illustrated includes an application server108, a database server110, and a telephony server112. The servers108through112can each be a computing system, which can include one or more computing devices, such as a desktop computer, a server computer, or another computer capable of operating as a server, or a combination thereof. A suitable number of each of the servers108through112can be implemented at the datacenter106. The UCaaS platform uses a multi-tenant architecture in which installations or instantiations of the servers108through112is shared amongst the customers102A through102B.

In some implementations, one or more of the servers108through112can be a non-hardware server implemented on a physical device, such as a hardware server. In some implementations, a combination of two or more of the application server108, the database server110, and the telephony server112can be implemented as a single hardware server or as a single non-hardware server implemented on a single hardware server. In some implementations, the datacenter106can include servers other than or in addition to the servers108through112, for example, a media server, a proxy server, or a web server.

The application server108runs web-based software services deliverable to a client, such as one of the clients104A through104D. As described above, the software services may be of a UCaaS platform. For example, the application server108can implement all or a portion of a UCaaS platform, including conferencing software, messaging software, and/or other intra-party or inter-party communications software. The application server108may, for example, be or include a unitary Java Virtual Machine (JVM).

In some implementations, the application server108can include an application node, which can be a process executed on the application server108. For example, and without limitation, the application node can be executed in order to deliver software services to a client, such as one of the clients104A through104D, as part of a software application. The application node can be implemented using processing threads, virtual machine instantiations, or other computing features of the application server108. In some such implementations, the application server108can include a suitable number of application nodes, depending upon a system load or other characteristics associated with the application server108. For example, and without limitation, the application server108can include two or more nodes forming a node cluster. In some such implementations, the application nodes implemented on a single application server108can run on different hardware servers.

The database server110stores, manages, or otherwise provides data for delivering software services of the application server108to a client, such as one of the clients104A through104D. In particular, the database server110may implement one or more databases, tables, or other information sources suitable for use with a software application implemented using the application server108. The database server110may include a data storage unit accessible by software executed on the application server108. A database implemented by the database server110may be a relational database management system (RDBMS), an object database, an XML database, a configuration management database (CMDB), a management information base (MIB), one or more flat files, other suitable non-transient storage mechanisms, or a combination thereof. The system100can include one or more database servers, in which each database server can include one, two, three, or another suitable number of databases configured as or comprising a suitable database type or combination thereof.

In some implementations, one or more databases, tables, other suitable information sources, or portions or combinations thereof may be stored, managed, or otherwise provided by one or more of the elements of the system100other than the database server110, for example, the client104or the application server108.

The telephony server112enables network-based telephony and web communications from and to clients of a customer, such as the clients104A through104B for the customer102A or the clients104C through104D for the customer102B. Some or all of the clients104A through104D may be voice over internet protocol (VOIP)-enabled devices configured to send and receive calls over a network114. In particular, the telephony server112includes a session initiation protocol (SIP) zone and a web zone. The SIP zone enables a client of a customer, such as the customer102A or102B, to send and receive calls over the network114using SIP requests and responses. The web zone integrates telephony data with the application server108to enable telephony-based traffic access to software services run by the application server108. Given the combined functionality of the SIP zone and the web zone, the telephony server112may be or include a cloud-based private branch exchange (PBX) system.

The SIP zone receives telephony traffic from a client of a customer and directs same to a destination device. The SIP zone may include one or more call switches for routing the telephony traffic. For example, to route a VOIP call from a first VOIP-enabled client of a customer to a second VOIP-enabled client of the same customer, the telephony server112may initiate a SIP transaction between a first client and the second client using a PBX for the customer. However, in another example, to route a VOIP call from a VOIP-enabled client of a customer to a client or non-client device (e.g., a desktop phone which is not configured for VOIP communication) which is not VOIP-enabled, the telephony server112may initiate a SIP transaction via a VOIP gateway that transmits the SIP signal to a public switched telephone network (PSTN) system for outbound communication to the non-VOIP-enabled client or non-client phone. Hence, the telephony server112may include a PSTN system and may in some cases access an external PSTN system.

The telephony server112includes one or more session border controllers (SBCs) for interfacing the SIP zone with one or more aspects external to the telephony server112. In particular, an SBC can act as an intermediary to transmit and receive SIP requests and responses between clients or non-client devices of a given customer with clients or non-client devices external to that customer. When incoming telephony traffic for delivery to a client of a customer, such as one of the clients104A through104D, originating from outside the telephony server112is received, a SBC receives the traffic and forwards it to a call switch for routing to the client.

In some implementations, the telephony server112, via the SIP zone, may enable one or more forms of peering to a carrier or customer premise. For example, Internet peering to a customer premise may be enabled to ease the migration of the customer from a legacy provider to a service provider operating the telephony server112. In another example, private peering to a customer premise may be enabled to leverage a private connection terminating at one end at the telephony server112and at the other end at a computing aspect of the customer environment. In yet another example, carrier peering may be enabled to leverage a connection of a peered carrier to the telephony server112.

In some such implementations, a SBC or telephony gateway within the customer environment may operate as an intermediary between the SBC of the telephony server112and a PSTN for a peered carrier. When an external SBC is first registered with the telephony server112, a call from a client can be routed through the SBC to a load balancer of the SIP zone, which directs the traffic to a call switch of the telephony server112. Thereafter, the SBC may be configured to communicate directly with the call switch.

The web zone receives telephony traffic from a client of a customer, via the SIP zone, and directs same to the application server108via one or more Domain Name System (DNS) resolutions. For example, a first DNS within the web zone may process a request received via the SIP zone and then deliver the processed request to a web service which connects to a second DNS at or otherwise associated with the application server108. Once the second DNS resolves the request, it is delivered to the destination service at the application server108. The web zone may also include a database for authenticating access to a software application for telephony traffic processed within the SIP zone, for example, a softphone.

The clients104A through104D communicate with the servers108through112of the datacenter106via the network114. The network114can be or include, for example, the Internet, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), or another public or private means of electronic computer communication capable of transferring data between a client and one or more servers. In some implementations, a client can connect to the network114via a communal connection point, link, or path, or using a distinct connection point, link, or path. For example, a connection point, link, or path can be wired, wireless, use other communications technologies, or a combination thereof.

The network114, the datacenter106, or another element, or combination of elements, of the system100can include network hardware such as routers, switches, other network devices, or combinations thereof. For example, the datacenter106can include a load balancer116for routing traffic from the network114to various servers associated with the datacenter106. The load balancer116can route, or direct, computing communications traffic, such as signals or messages, to respective elements of the datacenter106.

For example, the load balancer116can operate as a proxy, or reverse proxy, for a service, such as a service provided to one or more remote clients, such as one or more of the clients104A through104D, by the application server108, the telephony server112, and/or another server. Routing functions of the load balancer116can be configured directly or via a DNS. The load balancer116can coordinate requests from remote clients and can simplify client access by masking the internal configuration of the datacenter106from the remote clients.

In some implementations, the load balancer116can operate as a firewall, allowing or preventing communications based on configuration settings. Although the load balancer116is depicted inFIG.1as being within the datacenter106, in some implementations, the load balancer116can instead be located outside of the datacenter106, for example, when providing global routing for multiple datacenters. In some implementations, load balancers can be included both within and outside of the datacenter106. In some implementations, the load balancer116can be omitted.

FIG.2is a block diagram of an example internal configuration of a computing device200of an electronic computing and communications system. In one configuration, the computing device200may implement one or more of the client104, the application server108, the database server110, or the telephony server112of the system100shown inFIG.1.

The computing device200includes components or units, such as a processor202, a memory204, a bus206, a power source208, peripherals210, a user interface212, a network interface214, other suitable components, or a combination thereof. One or more of the memory204, the power source208, the peripherals210, the user interface212, or the network interface214can communicate with the processor202via the bus206.

The processor202is a central processing unit, such as a microprocessor, and can include single or multiple processors having single or multiple processing cores. Alternatively, the processor202can include another type of device, or multiple devices, configured for manipulating or processing information. For example, the processor202can include multiple processors interconnected in one or more manners, including hardwired or networked. The operations of the processor202can be distributed across multiple devices or units that can be coupled directly or across a local area or other suitable type of network. The processor202can include a cache, or cache memory, for local storage of operating data or instructions.

The memory204includes one or more memory components, which may each be volatile memory or non-volatile memory. For example, the volatile memory can be random access memory (RAM) (e.g., a DRAM module, such as DDR DRAM). In another example, the non-volatile memory of the memory204can be a disk drive, a solid state drive, flash memory, or phase-change memory. In some implementations, the memory204can be distributed across multiple devices. For example, the memory204can include network-based memory or memory in multiple clients or servers performing the operations of those multiple devices.

The memory204can include data for immediate access by the processor202. For example, the memory204can include executable instructions216, application data218, and an operating system220. The executable instructions216can include one or more application programs, which can be loaded or copied, in whole or in part, from non-volatile memory to volatile memory to be executed by the processor202. For example, the executable instructions216can include instructions for performing some or all of the techniques of this disclosure. The application data218can include user data, database data (e.g., database catalogs or dictionaries), or the like. In some implementations, the application data218can include functional programs, such as a web browser, a web server, a database server, another program, or a combination thereof. The operating system220can be, for example, Microsoft Windows®, Mac OS X®, or Linux®; an operating system for a mobile device, such as a smartphone or tablet device; or an operating system for a non-mobile device, such as a mainframe computer.

The power source208provides power to the computing device200. For example, the power source208can be an interface to an external power distribution system. In another example, the power source208can be a battery, such as where the computing device200is a mobile device or is otherwise configured to operate independently of an external power distribution system. In some implementations, the computing device200may include or otherwise use multiple power sources. In some such implementations, the power source208can be a backup battery.

The peripherals210includes one or more sensors, detectors, or other devices configured for monitoring the computing device200or the environment around the computing device200. For example, the peripherals210can include a geolocation component, such as a global positioning system location unit. In another example, the peripherals can include a temperature sensor for measuring temperatures of components of the computing device200, such as the processor202. In some implementations, the computing device200can omit the peripherals210.

The network interface214provides a connection or link to a network (e.g., the network114shown inFIG.1). The network interface214can be a wired network interface or a wireless network interface. The computing device200can communicate with other devices via the network interface214using one or more network protocols, such as using Ethernet, transmission control protocol (TCP), internet protocol (IP), power line communication, an IEEE 802.X protocol (e.g., Wi-Fi, Bluetooth, or ZigBee), infrared, visible light, general packet radio service (GPRS), global system for mobile communications (GSM), code-division multiple access (CDMA), Z-Wave, another protocol, or a combination thereof.

FIG.3is a block diagram of an example of a software platform300implemented by an electronic computing and communications system, for example, the system100shown inFIG.1. The software platform300is a UCaaS platform accessible by clients of a customer of a UCaaS platform provider, for example, the clients104A through104B of the customer102A or the clients104C through104D of the customer102B shown inFIG.1. The software platform300may be a multi-tenant platform instantiated using one or more servers at one or more datacenters including, for example, the application server108, the database server110, and the telephony server112of the datacenter106shown inFIG.1.

The software platform300includes software services accessible using one or more clients. For example, a customer302as shown includes four clients—a desk phone304, a computer306, a mobile device308, and a shared device310. The desk phone304is a desktop unit configured to at least send and receive calls and includes an input device for receiving a telephone number or extension to dial to and an output device for outputting audio and/or video for a call in progress. The computer306is a desktop, laptop, or tablet computer including an input device for receiving some form of user input and an output device for outputting information in an audio and/or visual format. The mobile device308is a smartphone, wearable device, or other mobile computing aspect including an input device for receiving some form of user input and an output device for outputting information in an audio and/or visual format. The desk phone304, the computer306, and the mobile device308may generally be considered personal devices configured for use by a single user. The shared device310is a desk phone, a computer, a mobile device, or a different device which may instead be configured for use by multiple specified or unspecified users.

Each of the clients304through310includes or runs on a computing device configured to access at least a portion of the software platform300. In some implementations, the customer302may include additional clients not shown. For example, the customer302may include multiple clients of one or more client types (e.g., multiple desk phones or multiple computers) and/or one or more clients of a client type not shown inFIG.3(e.g., wearable devices or televisions other than as shared devices). For example, the customer302may have tens or hundreds of desk phones, computers, mobile devices, and/or shared devices.

The software services of the software platform300generally relate to communications tools but are in no way limited in scope. As shown, the software services of the software platform300include telephony software312, conferencing software314, messaging software316, and other software318. Some or all of the software312through318uses customer configurations320specific to the customer302. The customer configurations320may, for example, be data stored within a database or other data store at a database server, such as the database server110shown inFIG.1.

The telephony software312enables telephony traffic between ones of the clients304through310and other telephony-enabled devices, which may be other ones of the clients304through310, other VOIP-enabled clients of the customer302, non-VOIP-enabled devices of the customer302, VOIP-enabled clients of another customer, non-VOIP-enabled devices of another customer, or other VOIP-enabled clients or non-VOIP-enabled devices. Calls sent or received using the telephony software312may, for example, be sent or received using the desk phone304, a softphone running on the computer306, a mobile application running on the mobile device308, or using the shared device310that includes telephony features.

The telephony software312further enables phones that do not include a client application to connect to other software services of the software platform300. For example, the telephony software312may receive and process calls from phones not associated with the customer302to route that telephony traffic to one or more of the conferencing software314, the messaging software316, or the other software318.

The conferencing software314enables audio, video, and/or other forms of conferences between multiple participants, such as to facilitate a conference between those participants. In some cases, the participants may all be physically present within a single location, for example, a conference room, in which the conferencing software314may facilitate a conference between only those participants and using one or more clients within the conference room. In some cases, one or more participants may be physically present within a single location and one or more other participants may be remote, in which the conferencing software314may facilitate a conference between all of those participants using one or more clients within the conference room and one or more remote clients. In some cases, the participants may all be remote, in which the conferencing software314may facilitate a conference between the participants using different clients for the participants. The conferencing software314can include functionality for hosting, presenting scheduling, joining, or otherwise participating in a conference. The conferencing software314may further include functionality for recording some or all of a conference and/or documenting a transcript for the conference.

The messaging software316enables instant messaging, unified messaging, and other types of messaging communications between multiple devices, such as to facilitate a chat or other virtual conversation between users of those devices. The unified messaging functionality of the messaging software316may, for example, refer to email messaging which includes a voicemail transcription service delivered in email format.

The other software318enables other functionality of the software platform300. Examples of the other software318include, but are not limited to, device management software, resource provisioning and deployment software, administrative software, third party integration software, and the like. In one particular example, the other software318can include multi-user virtual space software for implementing a multi-user virtual space and one or more multi-user virtual sub-spaces of the multi-user virtual space. In some such cases, the conferencing software314may include the other software318.

The software312through318may be implemented using one or more servers, for example, of a datacenter such as the datacenter106shown inFIG.1. For example, one or more of the software312through318may be implemented using an application server, a database server, and/or a telephony server, such as the servers108through112shown inFIG.1. In another example, one or more of the software312through318may be implemented using servers not shown inFIG.1, for example, a meeting server, a web server, or another server. In yet another example, one or more of the software312through318may be implemented using one or more of the servers108through112and one or more other servers. The software312through318may be implemented by different servers or by the same server.

Features of the software services of the software platform300may be integrated with one another to provide a unified experience for users. For example, the messaging software316may include a user interface element configured to initiate a call with another user of the customer302. In another example, the telephony software312may include functionality for elevating a telephone call to a conference. In yet another example, the conferencing software314may include functionality for sending and receiving instant messages between participants and/or other users of the customer302. In yet another example, the conferencing software314may include functionality for file sharing between participants and/or other users of the customer302. In some implementations, some, or all, of the software312through318may be combined into a single software application run on clients of the customer, such as one or more of the clients304through310.

FIG.4is a block diagram of an example of a multi-user virtual space system400. As shown, the multi-user virtual space system400includes client devices402and a server404. Each of the client devices402may be located remotely from the server404and may be located remotely from one another. Each of the client devices402and the server404may communicate with one another over a network. The client devices402may correspond to one or more of the clients104A-D ofFIG.1and/or to one or more of the clients304-310ofFIG.3. The server404may correspond to the application server108ofFIG.1. For example, the server404may be a server used to implement one or more software services of a software platform (e.g., a UCaaS platform), such as the software platform300.

It is noted that although four client devices402are explicitly shown, the multi-user virtual space system400can include practically any number of client devices402. Similarly, although a single server404is shown, it should be noted that that the server404may be any computing device or system providing the described services and is not limited to a single device. For example, the server404may be a physical, standalone server or combination of such servers in a data center. In another example, the server404may be a virtual server hosted at a cloud provider and providing service to the client devices402. In yet another example, the server404may be a pool of servers providing redundant services to the client devices402.

As shown, the client devices402include a client application406. The client application406, when executed, enables the client device402to connect to the server404to access a multi-user virtual space and enables the respective client device402to transmit and receive media (e.g., audio, video, and/or screensharing data) to the server404to interact with the multi-user virtual space. The client devices402may transmit and receive the audio, video, and/or screensharing data with the other client devices402connected to the multi-user virtual space by routing the audio, video, and/or screensharing data through the server404. The client application406may be an application stored in the memory of the client devices402. The client application406may also include software to control a user's experience with the multi-user virtual space.

The server404includes multi-user virtual space software408. The multi-user virtual space software408, when executed, causes the server404to receive one or more requests from the client device402, such as requests to connect to the multi-user virtual space, requests to connect the client devices402to the multi-user virtual space responsive to the requests, requests to receive media from one of the client device402connected to the multi-user virtual space, and/or requests to transmit media to other client devices402connected to the multi-user virtual space. The multi-user virtual space software408may also include software for managing a multi-user virtual space including forming and/or enabling the formation of multi-user virtual sub-spaces, assigning and/or enabling the assignment of users to a multi-user virtual sub-space, and focusing media exchanges between participants of various ones of the multi-user virtual sub-spaces, as disclosed herein.

Implementing a multi-user virtual space includes transmitting and receiving video, audio, and/or other data between devices connected to the multi-user virtual space, including, for example, the client devices402. Implementing a multi-user virtual sub-space includes transmitting and receiving video, audio, and/or other data between devices assigned to the multi-user virtual sub-space, including, for example, the client devices402. Each of the client devices402may connect through the server404using separate input streams to enable users thereof to participate in the multi-user virtual space and the multi-user virtual sub-space together using the client application406and the multi-user virtual space software408. The multi-user virtual space software408or the client application406may include a user tile for each input stream received and processed. A user tile as used herein corresponds to a user connected to the multi-participant virtual space and generally refers to a portion of a GUI which displays information (e.g., a rendered video) associated with a device (e.g., one of the client devices402) connected to the multi-user virtual space. A user tile may, but need not, be generally rectangular. The user tiles may, for example, be similarly or identically sized and arranged in a generally grid layout in the GUI to show consistently represent the various users connected to the multi-participant virtual space. The user tiles may vary in size and presentation depending on whether a user is viewing a multi-user virtual sub-space and whether a user corresponding to the user tile has joined a multi-user virtual sub-space.

The content of the user tile associated with a given device may be dependent upon the source of the input stream for that device. For example, where a participant accesses the multi-user virtual space from a device such as a smartphone or a laptop or desktop computer, the user tile associated with that participant may include a video stream captured at the device and transmitted to the server404, which is then transmitted from the server404to other devices for viewing by other participants (although the participant may optionally disable video features to suspend the video stream from being presented during some or all of the conference).

The multi-user virtual space software408may include a thread encoding tool that receives video streams separately from the client devices402and encodes those video streams using one or more transcoding tools, such as to produce variant streams at different resolutions. For example, a given video stream received from the client device402may be processed using multi-stream capabilities of the multi-user virtual space software408to result in multiple resolution versions of that video stream, including versions at 90p, 180p, 360p, 720p, and/or 1080p, amongst others. The video streams may be received from the client device402over a network, for example, the network114shown inFIG.1, or by a direct wired connection, such as using a universal serial bus (USB) connection or like coupling aspect. After the video streams are encoded, a switching/routing tool directs the encoded streams through applicable network infrastructure and/or other hardware to deliver the encoded streams to the multi-user virtual space software408. The multi-user virtual space software408transmits the encoded video streams to the client devices402, which receive and decode the encoded video streams to output the video content thereof for display by video output components.

The multi-user virtual space software408may receive a request from a client device402to connect to the multi-user virtual space. The multi-user virtual space software408may authenticate the connection request prior to connecting the client device402to the multi-user virtual space. Once a client device402is connected, the multi-user virtual space software408may send information about users currently connected to the multi-user virtual space for presentation to the user. The information may include information representing the user tiles of the users connected to the multi-user virtual space. Each user in the multi-user virtual space can broadcast media, such as audio data or video information, to the other users connected to the multi-user virtual space through the multi-user virtual space software408. The multi-user virtual space software408may receive the broadcast media from a client device402and transmit the media to the other client devices402.

The multi-user virtual space software408allows for a user to communicate with other users in an open manner. However, such communications may be overwhelming for a user if there are multiple users communicating simultaneously or their communications overlap in time. The multi-user virtual space software408implements multi-user virtual sub-spaces in part to address this issue. A user may request the multi-user virtual space software408to form a multi-user virtual sub-space, or the multi-user virtual space software408may form a multi-user virtual sub-space without a user request as will be described later. Each multi-user virtual sub-space focuses interactions between users that are assigned to the multi-user virtual sub-space by reducing a perception level of media exchanges between users that are not assigned to the multi-user virtual sub-space. In the following description media exchanges between users will be identified as internal if they occur between users assigned to the same multi-user virtual space and external if they include a user than is not assigned to the same multi-user virtual space. External media exchanges may be broadcast from a single user to all of the users connected to the multi-user virtual space, whereas internal media exchanges are broadcast from a single user assigned to a multi-user virtual sub-space to only the users assigned to the multi-user virtual sub-space.

The multi-user virtual space software408reduces the perception level of an external media relative to an internal media exchange for the users assigned to a multi-user virtual sub-space. For example, an external audio broadcast by a user in the multi-user virtual space may have a reduced volume relative to the volume of an internal audio exchange such as users assigned to the multi-user virtual sub-space conversing with one another. Because a user assigned to the multi-user virtual sub-space may still perceive the external audio, the user may be able to respond if the user perceives a subject of interest. However, because the perception level of the external audio is reduced for the user, the external audio may not interfere with internal interactions within the multi-user virtual sub-space. For example, a user may perceive the external audio as background noise and generally ignore the external audio. However, if the user's name is spoken in the external audio, the user may still perceive that someone spoke their name and shift their attention to the multi-user virtual space.

The multi-user virtual space software408may provide for a user to observe interactions in a multi-user virtual sub-space that the user is not assigned to. For example, the multi-user virtual space software408may provide a transcript, automated summary, or other information about interactions within a multi-user virtual sub-space that a user may observe. As an example, the multi-user virtual space software408may use speech-to-text to generate a transcript for a multi-user virtual sub-space. The multi-user virtual sub-space may use the transcript to generate a summary which may be display to a user. In some examples, a user may request that the multi-user virtual space software408notify the user if a subject of interest is brought up by users in a multi-user virtual sub-space. The multi-user virtual space software408may notify the user if the multi-user virtual space software408detects the subject of interest in a multi-user virtual sub-space.

The multi-user virtual space software408may also allow a user to shift attention in the multi-user virtual space by increasing a perception level. For example, a user may select a multi-user virtual sub-space that the user is not assigned to and observe the internal media within the selected multi-user virtual space, subject to any privacy or permission controls of the multi-user virtual sub-space. For example, the internal audio of the multi-user virtual sub-space may increase in volume. In some instances, a user may select a multi-user virtual sub-space using a GUI of the multi-user virtual space software408to shift attention to that multi-user virtual sub-space. The shifting of attention may occur for a multi-user virtual sub-space that the user is not joined to or, if a user is joined to multiple multi-user virtual sub-spaces, the user may switch attention between the multi-user virtual sub-spaces. In some examples, the user may select the multi-user virtual space to shift their focus back to the multi-user virtual space. Using the previous example, if a user hears their name in the multi-user virtual space, the user may shift their attention to the multi-user virtual space by selecting the multi-user virtual space in the GUI to increase the perception level of the external media exchanges.

The multi-user virtual space software408may provide privacy tools at a user level and at a multi-user virtual sub-space level. At a user level, a user may opt in or out of different features of the multi-user virtual space software408. For example, a user may be able to choose whether their media is transcribed, summarized, recorded, and whether their presence in a multi-user virtual sub-space is indicated to other users. Other privacy options may be available to each user. At a multi-user virtual sub-space level, when a multi-user virtual sub-space level is formed a user within the a multi-user virtual sub-space may select privacy options for the a multi-user virtual sub-space level, such as whether media in the whether their media is transcribed, summarized, recorded, and whether their presence in a multi-user virtual sub-space is indicated to other users will be transcribed, summarized, recorded, or output to other users and whether users presence in a multi-user virtual sub-space is indicated to other users not in the whether their media is transcribed, summarized, recorded, and whether their presence in a multi-user virtual sub-space is indicated to other users. Other privacy options may be available for a multi-user virtual sub-space.

The multi-user virtual space software408may mange permissions for the multi-user virtual space and multi-user virtual sub-spaces. In some examples, permissions may determine whether a user is allowed to create a multi-user virtual sub-space and/or share content in a multi-user virtual sub-space. Additionally, a user requesting the formation of a multi-user virtual sub-space may set permissions specific to the multi-user virtual sub-space including which users can participate in the multi-user virtual sub-space, which users can share content in the multi-user virtual space, and which users can observe the multi-user virtual sub-space without participating in the multi-user virtual sub-space. Other permissions are possible. The permissions may be set on a per user basis, a group basis, or other basis such as by invitation only.

In addition to the privacy option, each user may have individual options controlled by the multi-user virtual space software408such as presentation options and default multi-user virtual sub-space options. Presentation options may include options such as the amount by which the perception of external media is reduced within a multi-user virtual sub-space, a layout of the multi-user virtual space user tiles, a layout of the multi-user virtual sub-space user tiles, a format and amount of information to view for multi-user virtual sub-spaces, a user has not assigned to, and the number of multi-user virtual sub-spaces the user is not assigned to present at a time.

In some implementations, other software services may be accessible in connection with a multi-user virtual space implemented using the multi-user virtual space system400. For example, a multi-user virtual space may include or otherwise integrate functionality for instant messaging, unified messaging, and other types of messaging communications between participants of the conference, such as to facilitate a chat or like virtual conversation between users of those participants. Those other software services may be implemented at the multi-user virtual space system400and/or a different aspect of the system100.

FIG.5is a block diagram of example functionality of multi-user virtual space software500. The multi-user virtual space software500is software usable with a multi-user virtual space platform (e.g., implemented using the multi-user virtual space system400) for controlling a multi-user virtual space as described herein. The multi-user virtual space software500may reside at a computing device, for example, the server404. For example, the multi-user virtual space software500may be the multi-user virtual space software408ofFIG.4. In some implementations, a first part of the multi-user virtual space software500may reside at a client device connected to the server404(e.g., one of the client devices402ofFIG.4) and a second part of the multi-user virtual space software500may reside at the server404.

As shown, the multi-user virtual space software500includes user authentication software502, which detects a user connecting to a multi-user virtual space. In some cases, the user may connect to the multi-user virtual space in connection with a video conference. For example, multi-user virtual space and a related video conference may be controlled by the same entity and the entity may implement both the video conference and the multi-user virtual space for user. Thus, a user may take part in the video conference and join the multi-user virtual space during before, after, or during breaks of the video conference. In such a case, the user authentication software502may receive a token, a key, or other authentication information from the video conference software that may be used to authenticate with the multi-user virtual space software500. In some examples, the user may automatically connect to the multi-user virtual space, such as by conferencing software used to implement the video conference routing the user to the multi-user virtual space in response to a connection or disconnection between the conferencing software and a client application or other software at the device of the user. For example, the user may be taken to the multi-user virtual space before and/or after the video conference. In another example, the user may be taken to the video conference and disconnected from the multi-user virtual space responsive to the video conference starting, resuming, or stopping. In some examples, the user may manually connect to the multi-user virtual space, such as by using the client application406to manually request a connection. The client application406may be configured to automatically connect to a known instance of the multi-user virtual space software500, or the client application406may prompt the user to select an instance of the multi-user virtual space software500. In such examples, the user may manually authenticate themselves with the user authentication software502to join the multi-user virtual space. In each of the examples, the user authentication software502detects the authentication of the user as a connection to the multi-user virtual space.

In another example, a multi-user virtual space may not have any related video conference. For example, an instance of the multi-user virtual space software500may run indefinitely without being tied to a video conference. Or, in another example an instance of the multi-user virtual space software500may run during specific times that are not related to a video conference, such as during normal business hours. In such examples, a user may manually join the multi-user virtual space using the client application406and provide authentication information to the user authentication software502. The user authentication software502detects the authentication of the user as a connection to the multi-user virtual space.

The multi-user virtual space software500includes multi-user virtual sub-space orchestration software504. The multi-user virtual sub-space orchestration software504controls the multi-user virtual sub-spaces of the multi-user virtual space. Control of the multi-user virtual sub-spaces includes grouping users into groups of users, forming multi-user virtual sub-spaces, assigning a group of users to a multi-user virtual sub-space, adding/removing a user from a multi-user virtual sub-space, and/or monitoring user interactions within the multi-user virtual space, or otherwise enabling one or more of the above. The multi-user virtual sub-space orchestration software504may perform other functions related to the control of the multi-user virtual sub-spaces such as enforce privacy controls, enforce user permissions, generate summaries of multi-user virtual sub-spaces, and regulate the perception level of media exchanges outside of a given multi-user virtual sub-space.

The multi-user virtual sub-space orchestration software504may group users and assign the group of users to a multi-user virtual sub-space using various criteria. In some instances, the multi-user virtual sub-space orchestration software504may form a multi-user virtual sub-space upon request of a user. The user requesting the formation of the multi-user virtual sub-space may be assigned as a host of the multi-user virtual sub-space and may be responsible for setting permissions and privacy control levels for the multi-user virtual sub-space. The multi-user virtual sub-space orchestration software504may perform automatic assignments of groups of users to a multi-user virtual sub-space, or in some instances may assign users to multi-user virtual sub-space based on a request from a user. Users may be assigned to more than one group and the users may leave or join groups upon request to the multi-user virtual sub-space orchestration software504. Such a request may be made by a user through the client application406or a user acting as a host of a multi-user virtual sub-space.

In some instances, the multi-user virtual sub-space orchestration software504may form a multi-user virtual sub-space without any users being assigned to the multi-user virtual sub-space. For example, the multi-user virtual space may have a default set of multi-user virtual sub-spaces that users may join. Or a user may request the formation of a multi-user virtual sub-space without requesting any users be assigned to the multi-user virtual sub-space. In some instances, a multi-user virtual sub-space may have a default background noise that may be output if there are limited media exchanges within the multi-user virtual sub-space. The default background noise may be white noise or other media such as music. The background noise may automatically reduce in volume when media exchanges in the multi-user virtual sub-space begin. In some instances, the level of the background noise may be selected as an option by a user.

The multi-user virtual sub-space orchestration software504may automatically assign users to a multi-user virtual sub-space based on a group of users having a common characteristic or being related to one another in some fashion. For example, the multi-user virtual sub-space orchestration software504may make an initial assignment of users based on a common characteristic such as the users working in the same department, working for the same manager, having similar responsibilities, working on a common project, or other characteristic of the users. The common characteristic may be a current characteristic, a past characteristic, or a future characteristic. In some examples, users may self-identify characteristics such as interests, hobbies, geographic location, etc. Additionally, users may opt in to tracking by the multi-user virtual sub-space orchestration software to assist in identifying users to assign to a multi-user virtual sub-space. For example, the multi-user virtual sub-space orchestration software may monitor interactions among users who opt in and save information identifying users that interact more frequently relative to other users. The multi-user virtual sub-space orchestration software may then use this information to identify users to group together and assign to a multi-user virtual sub-space.

In some examples, the multi-user virtual sub-space orchestration software may access an external data source containing relationship information for the user. For example, a past characteristic stored in the external data source may include information such as past projects associated with a user. The multi-user virtual sub-space orchestration software may use this information to identify users that previously worked on the same project to group together and assign to a multi-user virtual sub-space. In another example, an external data source may store a social graph of the users. The multi-user virtual sub-space orchestration software may access the social graph to identify users having social connections as indicated by the social graph. The users having social connections may be assigned to a multiuser virtual sub-space. In another example, the external data source may store information about past communications between users, such as a history of emails being passed between users, a history of chat messages between users, history of phone calls between users, or other records of past communications. The records of past communications may be to identify users that communicate frequently with one another. In one such example, users that communicate more frequently may be more likely to be assigned to the same multi-user virtual sub-space than users that communicate less frequently. Alternatively, to foster new relationships, users that communicate less frequently may assigned together in a multi-user virtual sub-space.

In some instances, the multi-user virtual sub-space orchestration software may provide the external data source with identifiers of the users connected to the multi-user virtual space and receive relationship data in response. The multi-user virtual sub-space orchestration software may use the relationship data to identify relationships to use when assigning users to a multi-user virtual sub-space. In other instances, the multi-user virtual sub-space orchestration software may provide the external data source with the identifiers of the users connected to the multi-user virtual space and the external data source may identify relationships between the users. The external data source may return the relationship data as recommended groups to assign to a multi-user virtual sub-space.

The multi-user virtual sub-space orchestration software504may assign a weight to the different characteristics when determining groups of users to assign to a multi-user virtual sub-space. For example, a multi-user virtual sub-space that is work related may place a greater weight on common projects for users when assigning users to a multi-user virtual sub-space. However, a multi-user virtual sub-space that is recreational in nature may place a higher weight on a social graph of the users. The different characteristics may be categorized into categories such as work related, recreation relation, professional, common interests, etc. The weighting of each characteristic and/or category of characteristic for identifying users to assign to a sub-space may be selected by an administrator of the multi-user virtual space. Other characteristics beyond those described herein may be used to identify users to assign to a multi-user virtual sub-space. In some examples, the multi-user virtual sub-space orchestration software504may make recommendations for users to join a group assigned to a multi-user virtual sub-space. In such a case, a user may manually be assigned to a multi-user sub-space by the user accepting the recommendation, or the user may decline the recommendation to avoid assignment into the subject multi-user virtual sub-space.

Users may be able to leave, join, and form new multi-user virtual sub-spaces separate from an initial (e.g., automatic) assignment to a multi-user virtual sub-space. In some examples, a user connected to the multi-user virtual space may not be initially assigned to a multi-user virtual sub-space, and the user may instead request the multi-user virtual sub-space orchestration software504to form a new multi-user virtual sub-space. In some such cases, the user may further request the multi-user virtual sub-space orchestration software504to assign users to the multi-user virtual sub-space. The user may cause the formation of the new multi-user virtual sub-space based on a specified topic or otherwise. For example, a user may determine that they would like to form a multi-user virtual sub-space of users having pets. The user may request the multi-user virtual sub-space orchestration software504to form a “Pets” multi-user virtual sub-space. In some examples, the multi-user virtual sub-space orchestration software504may recommend users having the common characteristic, in this instance users who self-identified as having a pet, to be assigned to the “Pets” multi-user virtual sub-space. Additionally, or alternatively, the user requesting that the multi-user virtual sub-space be formed may also include an identification of users to assign to the multi-user virtual sub-space. The multi-user virtual sub-space orchestration software504may recommend that the users identified by the requesting user be assigned to multi-user virtual sub-space.

The multi-user virtual sub-space orchestration software504may modify which users are assigned to a multi-user virtual sub-space after the multi-user virtual sub-space is formed. For example, a user may send a request to the multi-user virtual sub-space orchestration software504for the user to join a multi-user virtual sub-space or leave a multi-user virtual sub-space. The multi-user virtual sub-space orchestration software504may carry out the users request by assigning or removing the assignment of the user to the multi-user virtual sub-space.

In some examples, a multi-user virtual sub-space may have a security setting to control who is allowed in a multi-user virtual sub-space and what content is visible from the multi-user virtual sub-space to the multi-user virtual space. The security setting may have a default value or a value set by a user that requested the formation of the multi-user virtual sub-space. Furthermore, the security setting may be applied against all users assigned to the multi-user virtual space, or it may alternatively be applied against individual users. For example, if a sensitive topic is being discussed in a multi-user virtual sub-space, a user may set a permission that only particular users are allowed to be assigned to the multi-user virtual sub-space or that only users having a specified characteristic are allowed to be assigned to the multi-user virtual sub-space. In some cases, in which the security setting is applied against individual users, the specific settings and users may be defined manually by the user that requested the formation of the multi-user virtual sub-space or automatically by the multi-user virtual sub-space orchestration software504(e.g., based on data associated with such individual users). For example, a user requesting the formation of the multi-user virtual sub-space may request that a particular individual user having specified characteristics is not allowed to be assigned to the multi-user virtual sub-space or is prohibited from sharing content within the multi-user virtual sub-space. Similar requests from a user to the multi-user virtual sub-space orchestration software504may be made to control what details users not assigned to the multi-user virtual sub-space are able to observe in the multi-user virtual sub-space.

In some examples, the multi-user virtual sub-space orchestration software504may provide an analogy of a building layout to a user in response to a user requesting the formation of a multi-user virtual sub-space. The analogy may be helpful for assisting a user in selecting privacy controls and other options. For example, a user may select a multi-user virtual sub-space corresponding to a physical area of a building such as a foyer, hallway, office room, reception area, or conference room. Each building area may have corresponding privacy controls and options. For example, a foyer may have no limit on users assigned to the multi-user virtual sub-space and no privacy controls, an office room may have a limited number of users that may be assigned and greater privacy, and a conference room represent middle ground between the foyer and the office room.

The multi-user virtual space software500includes user content sharing software506. The user content sharing software506provides user content tools for the users in a multi-user virtual sub-space to share user content with other users in the sub-space and in some examples, with users not in the sub-space. The user content sharing software506may include screen sharing tools, whiteboards, file upload interfaces, shared applications, and other user content tools. The users assigned to the multi-user virtual sub-space may control the visibility of the user content shared using the content sharing software to the multi-user virtual space. For example, a user may be able to select whether the user content should be accessible or observed from outside of the multi-user virtual sub-space.

The multi-user virtual space software500includes virtual space interface software508. The virtual space interface software508may generate data for outputting an interface with a user including displaying a portion of a GUI for some or all of the users and outputting media exchanges within the multi-user virtual space. The GUI will be described in more detail in the description ofFIG.6throughFIG.8. Generally, the virtual space interface software508is responsible for generating data for displaying a representation of the multi-user virtual space, a representation of a multi-user virtual sub-space for users assigned to the multi-user virtual sub-space, representations of multi-user virtual sub-spaces for users not assigned to the multi-user virtual sub-space. The virtual space interface software508is also responsible for outputting media exchanges between users and focusing internal media exchanges by limiting a perception level of external media within the multi-user virtual sub-space relative to external media exchanges.

The virtual space interface software508may limit a perception level of external media exchanges by altering a characteristic of the external media exchange before presenting the external media exchange to users connected to a multi-user virtual space. The altered characteristic is at least one characteristic that effects how the media exchange is perceived and is dependent on the format of external media exchange. The altered characteristic may include amplitude, resolution, brightness, or intensity. For example, if an external media exchange is an audio media exchange, the virtual space interface software508may limit the perception level by reducing an amplitude of the volume of the audio. In another example, a media exchange in the form of a video may be altered by reducing the resolution and size of the video. Similarly, an image media exchange may be altered by reducing the resolution and size of the image.

The reduced perception level of external media may allow a user to be aware of the external media while still being able to interact with other users in the multi-user virtual sub-space. The virtual space interface software508further allows the user to select a multi-user virtual sub-space or the multi-user virtual space to shift their attention to the multi-user virtual sub-space or the multi-user virtual space. For example, a user may be aware of the external media to identify if an event of interest occurs, such as someone speaking the user's name. The user may select a multi-user virtual space to shift to at least partially restore the perception level of the external media to shift attention to the multi-user virtual space. In another example, if another multi-user virtual sub-space becomes of interest to the user, the user may select the multi-user virtual sub-space to observe the internal media exchanges in the multi-user virtual sub-space.

In some instances, the virtual space interface software508may allow a user to override the reduced perception level of eternal media for a particular multi-user virtual sub-space or the multi-user virtual space. For example, if a user is interested in another multi-user virtual sub-space, the virtual space interface software508may allow the user to override the reduced perception level of the internal media exchanges for that particular multi-user virtual sub-space for the user. This may be done by the virtual space interface software508without the user joining the particular multi-user virtual sub-space or leaving their current multi-user virtual sub-space. In some examples, a user may temporarily override the reduced perception level of internal media exchanges of a particular multi-user virtual sub-space by hovering a cursor, long pressing a touch interface, or performing another user interaction with regard to the particular multi-user virtual sub-space of interest. The virtual space interface software508may, in response to the user interaction, override the reduced perception level of the internal media exchanges within the particular multi-user virtual sub-space for the user. In some examples, overriding the reduced perception level may include temporality reducing the perception level of the multi-user virtual sub-space that the user is temporarily a member of. For example, a user may identify that a topic in a particular multi-user virtual sub-space is of interest to the user and hover a cursor over a graphical representation of the particular multi-user virtual sub-space. The virtual space interface software508may then increase the volume level of the internal media exchanges of the particular multi-user virtual sub-space and decrease the volume level of the internal media exchanges of the user's current multi-user virtual sub-space. The virtual space interface software508may then restore the reduced perception level for the internal media exchanges of the particular multi-user virtual sub-space and the normal perception level of the internal media exchanges in the user's current multi-user virtual sub-space in response the user moving their cursor away from the graphical representation of the particular multi-user virtual sub-space.

FIG.6is an illustration of an example of a GUI600that may be displayed at a client device to a user based on data generated by the virtual space interface software508. The GUI600as shown inFIG.6throughFIG.8may be a portion of a larger GUI of a client device, such as a window of the larger GUI. In some examples the GUI may be a contained within a GUI of the multi-user virtual space system400. The GUI600will be used to describe the operation of a multi-user virtual space platform, but it will be noted that multi-user virtual space platforms are not limited to the example GUI shown. Other GUIs are possible, and, in some examples, GUIs may vary for different users of a multi-user virtual space platform. For example, a user may be able to select a GUI based on their personal preferences or device type. Additionally, the GUI600may have views that are specific to an individual user depending on a multi-user virtual sub-space they are assigned to and the security setting of other users.

The GUI600as shown inFIG.6represents the GUI600in an initial state with no multi-user virtual sub-spaces having been formed. For example, the GUI600may appear as shown to a user when the user initially connects to a multi-user virtual space. The GUI600includes a gallery602showing users who have connected to the multi-user virtual space. The gallery602may include user tiles604, such as user interface tiles as previously described, for each user connected to the multi-user virtual space. Additionally, the GUI600may include a control606for forming a multi-user virtual sub-space.

The gallery602may allow interactions between the users in the multi-user virtual space. For example, a user may be able to converse with other users connected to the multi-user virtual space or send media to the users connected to the multi-user virtual space. Additionally, the users may be able to interact with each other using other media such as by messaging (e.g., via group or individualized chat messages). However, while such media exchanges are generally permitted, challenges therewith may arise based on the greater presence of users in the multi-user virtual space. In the example shown, there are ten user tiles corresponding to ten users. If all ten users were to attempt to speak at the same time, it would be difficult to comprehend what each user was communicating. This difficulty is accentuated with more users and the usefulness of the multi-user virtual sub-spaces becomes apparent.

Some or all of the users may thus be assigned to one or more multi-user virtual sub-spaces. A user may select the control606for forming a multi-user virtual sub-space manually, or the multi-user virtual sub-space orchestration software504may in some cases form a multi-user virtual sub-space automatically, such as in response to a trigger event (e.g., based on the number of users connected to the multi-user virtual space exceeding a threshold). After the user selects the control606to start a multi-user virtual sub-space, the user may be prompted to identify the multi-user virtual sub-space, select participants to assign to the multi-user virtual sub-space, and/or select any desired security options for the multi-user virtual sub-space. For example, the user may be prompted to enter text describing the multi-user virtual sub-space for other users to view. In some examples, the multi-user virtual sub-space orchestration software504may provide suggestions to the user for selecting participants. In some examples, a user may start a multi-user virtual sub-space by interacting with a user tile604of a user in the gallery602. For example, a user may select user tiles604of users for joining a sub-space and drag the group of user tiles604to the control for creating a sub-space. In another example, a user may drag a user tile604on top of another tile to form a multi-user virtual sub-space for those users.

The GUI600as shown inFIG.7represents the GUI600as it may appear to a user assigned to the multi-user virtual sub-space after the multi-user virtual sub-space is formed. Unlike the GUI600as shown inFIG.6, the GUI600no longer displays the gallery602of users. Instead, the GUI600now shows a sub-space gallery702of user tiles604that are assigned to multi-user sub-space. The sub-space gallery702includes only users that are assigned to the multi-user virtual sub-space. Additionally, the GUI600inFIG.7now includes a representation of the multi-user virtual sub-space704. In this example, the representation of the multi-user virtual sub-space is a miniaturized version of the sub-space gallery702, but in other examples the representation of the multi-user virtual sub-space may include textual representations, icons, or other graphical elements.

The representation of the multi-user virtual sub-space704indicates that the multi-user virtual sub-space exists and gives a summary of information about the multi-user virtual sub-space. For example, the representation of the multi-user virtual sub-space704may identify the users in the multi-user virtual sub-space704by displaying the user tiles604for the users. The user tiles may be shown at a reduced resolution compared to the user tiles604of the gallery602. The information displayed in the representation of the multi-user virtual sub-space704may vary depending on a security setting or preferences set by a user assigned to the multi-user virtual sub-space704. For example, a user may modify their visibility so that their user tile604does not display in the representation of the multi-user virtual sub-space704. The security setting may be set for all users in the multi-user virtual sub-space. For example, a security setting for the multi-user virtual sub-space may indicate that no user tiles604should be visible in the GUI600for users not assigned to the multi-user virtual sub-space.

In addition to the user tiles604, the representation of the multi-user virtual sub-space704may display other information such as the identification of the multi-user virtual sub-space or an autogenerated summary for the activity in the multi-user virtual sub-space. For example, the multi-user virtual sub-space orchestration software504may monitor the users' activity in the multi-user virtual sub-space and provide an automated summary of the activity. In some examples, the multi-user virtual sub-space orchestration software504may use tools such as voice recognition to identify activity. The multi-user virtual sub-space orchestration software504may identify keywords used within the multi-user virtual sub-space to generate the automated summary.

In some examples, a user may identify topics, keywords, or other information of interest to the user and submit the information to the multi-user virtual sub-space orchestration software504. The multi-user virtual sub-space orchestration software504may monitor the multi-user virtual sub-spaces for the topics, keywords, or other information of interest submitted by the user and alert the user when the topics, keywords, or other information of interest is identified. The multi-user virtual sub-space orchestration software504may provide the user with summaries of the discussion in which the topics of interest were discussed. The summaries may be enhanced relative to the automated summaries of activity displayed on the GUI. The multi-user virtual sub-space orchestration software504may automatically suggest assigning the user to the multi-user virtual sub-space in which the topics, keywords, or other information was identified. Thus, the user is able to focus on interaction in the multi-user virtual sub-space they are assigned to while being able to jump in and out of other multi-user virtual sub-spaces as topics of interest are discussed.

A user that is not assigned to the multi-user virtual sub-space may be able to observe the activity in the multi-user virtual sub-space using the automated summary provided by the representation of the multi-user virtual sub-space704. For example, the user may be able to quickly identify topics being discussed in the multi-user virtual sub-space without having to be a participant in the multi-user virtual sub-space. In some instances, a user may determine that they should join the multi-user virtual sub-space based on the summary information provided by the representation of the multi-user virtual sub-space704. The user may request to join the multi-user virtual sub-space by interacting with a user control of the GUI600. For example, the user may double click the representation of the multi-user virtual sub-space704to request to be assigned to the multi-user virtual sub-space. In another example, a user may drag a user tile604from the gallery602to the multi-user virtual sub-space to request to be assigned to the multi-user virtual sub-space. In such examples, a user may drag their own user tile604to the representation of the multi-user virtual sub-space704to join the multi-user virtual sub-space, or in another example, they may drag a user tile604of another user to invite them to join the multi-user virtual sub-space.

The GUI600as shown inFIG.8represents the GUI600as it may appear to a user assigned to a multi-user virtual sub-space after multiple multi-user virtual sub-spaces have been created. The GUI600displays a gallery802of user tiles604of the users assigned to the multi-user virtual sub-space. In addition to the gallery802, the GUI600displays a representation of other multi-user virtual sub-spaces804that have been formed including the multi-user virtual sub-space806the users displayed in the user tiles604in the reduced gallery802are assigned to. In some examples, the representations of the multi-user virtual sub-spaces804may include only the multi-user virtual sub-spaces in which the user is assigned, or the representation of the multi-user virtual sub-spaces804may include other sub-spaces of the multi-user virtual space. Additionally, a representation of the multi-user virtual space may be displayed to enable a user to quickly switch back to the gallery602of all of the user tiles604.

The GUI600focuses media exchanges between the group of users assigned to a multi-user virtual sub-space so that the users are not overwhelmed by activity in other multi-user virtual sub-spaces or the multi-user virtual space. The GUI600may focus the media exchanges between the group of users assigned to a multi-user virtual sub-space by limiting a level of perception of media within the multi-user virtual sub-space of media exchanges between users not assigned to the multi-user virtual sub-space. Using audio as an example, the GUI600may reduce the volume of media exchanges between users that are not assigned to the multi-user virtual sub-space.

Users assigned to the multi-user virtual sub-space may interact with one another and may utilize the content sharing tools provided by the content sharing tools software without being distracted by activity in the multi-user virtual space or the other multi-user virtual sub-spaces. However, they users assigned to the multi-user virtual sub-spaces may still be able to observe the activity in the other multi-user virtual sub-spaces utilizing the automated summary provided to the GUI600. Additionally, since the media levels for the other multi-user virtual sub-spaces and the multi-user virtual space are reduced, but still present, a user of the multi-user virtual sub-space may still monitor the activity. The GUI600may allow a user to observe media interactions in the multi-user virtual space and the multi-user virtual sub-spaces by hovering over a respective representation of the multi-user virtual space or multi-user virtual sub-space. The virtual space interface software508may output media exchanges within the selected multi-user virtual space or multi-user virtual sub-space to the user in response to the user hovering over the selected representation of the multi-user virtual space or multi-user virtual sub-space.

A user of the multi-user virtual space platform may also move between multi-user virtual sub-spaces using the GUI600as described. Because the user is able to monitor the other multi-user virtual sub-spaces, they may be able to identify a multi-user virtual sub-space of interest even if they were not initially invited to be assigned to the multi-user virtual sub-spaces. Furthermore, the monitoring tools may alert a user of an activity of interest within a multi-user virtual sub-space so that the user may be prompted to request an assignment to a multi-user virtual sub-space of interest.

To further describe some implementations in greater detail, reference is next made to examples of techniques which may be performed by or using the multi-user virtual space system400.FIG.9is a flowchart of an example of a technique900for forming multi-user virtual sub-spaces in a multi-user virtual space system400. The technique900can be executed using computing devices, such as the systems, hardware, and software described with respect toFIGS.1-8. The technique900can be performed, for example, by executing a machine-readable program or other computer-executable instructions, such as routines, instructions, programs, or other code. The steps, or operations, of the technique900or another technique, method, process, or algorithm described in connection with the implementations disclosed herein can be implemented directly in hardware, firmware, software executed by hardware, circuitry, or a combination thereof.

At902, a connection of users to a multi-user virtual space is detected. The users can be users of the one of the client devices402A-D ofFIG.5. The multi-user virtual space may be provided by a software platform, such as the multi-user virtual space system400ofFIG.4. More specifically, the connection can be a connection from a client device402to the server404implementing the multi-user virtual space using the multi-user virtual space software500. The user authentication software502may detect the connection of the users to the multi-user virtual space.

At904, a multi-user virtual sub-space is formed within the multi-user virtual space. That is, the multi-user virtual sub-space orchestration software504may form a multi-user virtual sub-space within the multi-user virtual space. Information for displaying the multi-user virtual sub-space to a user may be generated by the virtual space interface software508.

At906, a group of users from among the users are assigned to the multi-user virtual sub-space. Although assigning users to the multi-user virtual sub-space is described in the context ofFIG.9as appearing to be performed after the formation of the multi-user virtual sub-space, the group of users may be assigned to a multi-user virtual sub-space prior to the multi-user virtual sub-space being formed. For example, a group may be identified as sharing common characteristics and assigned to a multi-user virtual sub-space to be formed for the group. Thus, the assignment may occur before the multi-user virtual sub-space is formed by the multi-user virtual sub-space orchestration software504. The group of users may be assigned to the multi-user virtual sub-space by the multi-user virtual space software500as described above.

At908, media exchanges for the group of users assigned to the multi-user virtual sub-space are focused by limiting a perception level of external media, such as media exchanges between users not assigned to multi-user virtual sub-space relative to internal media, such as media exchanges between users assigned to the multi-user virtual sub-space. That is a perceived media level, such as audio volume of an external audio source, is reduced for users assigned to the multi-user virtual sub-space relative to a perceived media level of an internal audio source for the users assigned to the multi-user virtual sub-space. The reduction of the perceived media level may be performed by the virtual space interface software508during generation of the data for presenting the GUI600. In some instances, external media exchanges may be perceivable by a user assigned to a multi-user virtual sub-space, at a reduced level of perception, for users exchanging media in the multi-user virtual space and for users exchanging media in a different multi-user virtual sub-space. In other instances, external media exchanges may be perceivable by users assigned to a multi-user virtual sub-space, at a reduced level of perception, only for media exchanges occurring within the multi-user virtual space. In other instances, external media exchanges may be perceivable by a user assigned to a multi-user virtual sub-space at a first reduced level of perception for users exchanging media in the multi-user virtual space and at a second reduced level of perception for users exchanging media in a different multi-user virtual sub-space. In some instances, the second reduced level of perception may have a lower level of perception than the first level of perception. For example, a user assigned to a multi-user virtual sub-space may perceive media exchanges between users in the multi-user virtual space at a higher perception level than media exchanges between users assigned to a different multi-user virtual sub-space.

In some implementations, the technique900can include reducing a media volume of users not assigned to the multi-user virtual sub-space for the users assigned to the multi-user virtual sub-space. The volume reduction may be performed by the virtual space interface software508as described with respect toFIG.5.

In some implementations, the technique900can include instantiating the multi-user virtual space in relation to a scheduled virtual conference meeting. For example, a multi-user virtual space may be instantiated by the multi-user virtual space software500for a duration of time before, during, and after a scheduled multi-user virtual space meeting.

In some implementations, the technique900can include instantiating the multi-user virtual space independent of a scheduled virtual conference meeting. For example, a multi-user virtual space may be instantiated by the multi-user virtual space software500as a stand-alone service without regard to a scheduled virtual conference meeting.

In some implementations, the technique900can include forming a second multi-user virtual sub-space within the multi-user virtual space and assigning a user assigned to the multi-user virtual sub-space to the second multi-user virtual sub-space. For example, the multi-user virtual sub-space orchestration software504may form a second multi-user virtual sub-space. A user assigned to the multi-user virtual sub-space may send a request to the multi-user virtual sub-space orchestration software504to be assigned to the second multi-user virtual sub-space. The multi-user virtual sub-space orchestration software504then assigns the user to the second multi-user virtual sub-space. The multi-user virtual sub-space orchestration software504may remove the assignment of the user from the multi-user virtual sub-space, or the multi-user virtual sub-space orchestration software504may leave the assignment of the user to the multi-user virtual sub-space in place.

In some implementations, the technique900can include the multi-user virtual sub-space being formed in response to a user request. For example, a user may interact with the GUI600and request that a multi-user virtual sub-space be formed.

In some implementations, the technique900can include the multi-user virtual sub-space being formed in response a detection of user interactions among the users. For example, the multi-user virtual sub-space orchestration software504may determine that a group of users are interacting with one another and may form a multi-user virtual sub-space for the group of users.

In some implementations, the technique900can include monitoring media exchange activity within the multi-user virtual sub-space to determine an activity summary and providing an indication of the activity summary to the multi-user virtual space. For example, the multi-user virtual sub-space orchestration software504may monitor interactions in a multi-user virtual sub-space provide summary information to the virtual space interface508software for generating information for displaying the summary information in the GUI600.

In some implementations, the technique900can include forming a second multi-user virtual sub-space within the multi-user virtual space and restricting a user of the group of users from being assigned to both the multi-user virtual sub-space and the second multi-user virtual sub-space. For example, the multi-user virtual sub-space orchestration software504may form the second multi-user virtual sub-space and restrict a user from being assigned to both the multi-user virtual sub-space and the second multi-user virtual sub-space.

In some implementations, the technique900can include forming a second multi-user virtual sub-space within the multi-user virtual space and assigning a user to the second multi-user virtual sub-space while maintaining the assignment of the user to the multi-user virtual sub-space. For example, the multi-user virtual sub-space orchestration software504may form the second multi-user virtual sub-space and allow a user to be assigned to both the multi-user virtual sub-space and the second multi-user virtual sub-space.

In some implementations, the technique900can include providing content sharing tools to the group of users, wherein the content sharing tools configured to share media between the group of users. For example, the content sharing tool software may provide content sharing tools to the group of users assigned to the multi-user virtual sub-space.

Some implementations may include a method that includes detecting a connection of users to a multi-user virtual space. A multi-user virtual sub-space is formed within the multi-user virtual space. A group of users from among the users is assigned to the multi-user virtual sub-space. Media exchanges for the group of users within the multi-user virtual sub-space are focused by limiting a perception level of media exchanges between users not assigned to multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space.

In an example, limiting a perception level of media can include reducing a media volume of users not assigned to the multi-user virtual sub-space for the users assigned to the multi-user virtual sub-space. In an example, the method can include instantiating the multi-user virtual space in relation to a scheduled virtual conference meeting. In an example, the method can include instantiating the multi-user virtual space independent of a scheduled virtual conference meeting. In an example, the method can include forming a second multi-user virtual sub-space within the multi-user virtual space and assigning a user assigned to the multi-user virtual sub-space to the second multi-user virtual sub-space in response to a request from the user. In an example, the multi-user virtual sub-space is formed in response to a user request. In an example, the multi-user virtual sub-space is formed in response a detection of user interactions among the users. In an example, the method can include monitoring media exchange activity within the multi-user virtual sub-space to determine an activity summary and providing an indication of the activity summary to the multi-user virtual space. In an example, the method can include forming a second multi-user virtual sub-space within the multi-user virtual space and restricting a user of the group of users from being assigned to both the multi-user virtual sub-space and the second multi-user virtual sub-space. In an example, the method can include forming a second multi-user virtual sub-space within the multi-user virtual space and assigning a user to the second multi-user virtual sub-space while maintaining the assignment of the user to the multi-user virtual sub-space. In an example, the method can include providing content sharing tools to the group of users, the content sharing tools configured to share media between the group of users.

Some implementations may include a device that includes a memory and a processor. The processor can be configured to execute instructions stored in the memory to detect a connection of users to a multi-user virtual space. A multi-user virtual sub-space is formed within the multi-user virtual space. A group of users from among the users is assigned to the multi-user virtual sub-space. Media exchanges for the group of users within the multi-user virtual sub-space are focused by limiting a perception level of media exchanges between users not assigned to multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space.

In an example, focusing media exchanges for the group of users includes reducing an audio level for a user assigned to the multi-user virtual sub-space for audio generated outside of the multi-user virtual sub-space. In an example, a second multi-user virtual sub-space is formed within the multi-user virtual space and a first user assigned to the multi-user virtual sub-space is invited to the second multi-user virtual sub-space in response to a request from a second user. In an example, the multi-user virtual sub-space is formed in response a detection of user interactions among the group of users.

Some implementations may include a non-transitory computer readable medium that stores instructions operable to cause one or more processors to perform operations that include detecting a connection of users to a multi-user virtual space, forming a multi-user virtual sub-space within the multi-user virtual space, assigning a group of users from among the users to the multi-user virtual sub-space, and focusing media exchanges for the group of users within the multi-user virtual sub-space by limiting a perception level of media exchanges between users not assigned to multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space.

In an example, limiting a perception level of media includes reducing an audio level of interactions outside of the multi-user virtual sub-space. In an example, the multi-user virtual space is instantiated in coordination with a scheduled virtual conference meeting. In an example, a second multi-user virtual sub-space is formed, and a user assigned to the multi-user virtual sub-space is assigned to the second multi-user virtual sub-space. In an example, activity within the multi-user virtual sub-space is monitored to determine an activity summary and an indication of the activity summary is provided to the multi-user virtual space.

The implementations of this disclosure correspond to methods, non-transitory computer readable media, apparatuses, systems, devices, and the like. In some implementations a method comprises detecting a connection of users to a multi-user virtual space; forming a multi-user virtual sub-space within the multi-user virtual space; assigning a group of users from among the users to the multi-user virtual sub-space; and focusing media exchanges for the group of users within the multi-user virtual sub-space by limiting a perception level of media exchanges between users not assigned to the multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space. In some implementations, a non-transitory computer readable medium stores instructions operable to cause one or more processors to perform operations comprising detecting a connection of users to a multi-user virtual space; forming a multi-user virtual sub-space within the multi-user virtual space; assigning a group of users from among the users to the multi-user virtual sub-space; and focusing media exchanges for the group of users within the multi-user virtual sub-space by limiting a perception level of media exchanges between users not assigned to the multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space. In some implementations, an apparatus comprises a memory and a processor configured to execute instructions stored in the memory to detect a connection of users to a multi-user virtual space; form a multi-user virtual sub-space within the multi-user virtual space; assign a group of users from among the users to the multi-user virtual sub-space; and focus media exchanges for the group of users within the multi-user virtual sub-space by limiting a perception level of media exchanges between users not assigned to multi-user virtual sub-space relative to users assigned to the multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, limiting a perception level of media comprises reducing a media volume of users not assigned to the multi-user virtual sub-space for the users assigned to the multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for instantiating the multi-user virtual space in relation to a scheduled virtual conference meeting.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for instantiating the multi-user virtual space independent of a scheduled virtual conference meeting.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for forming a second multi-user virtual sub-space within the multi-user virtual space; and assigning a user assigned to the multi-user virtual sub-space to the second multi-user virtual sub-space in response to a request from the user.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the multi-user virtual sub-space is formed in response to a user request.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the multi-user virtual sub-space is formed in response a detection of user interactions among the users.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for monitoring media exchange activity within the multi-user virtual sub-space to determine an activity summary; and providing an indication of the activity summary to the multi-user virtual space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for forming a second multi-user virtual sub-space within the multi-user virtual space; and restricting a user of the group of users from being assigned to both the multi-user virtual sub-space and the second multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for forming a second multi-user virtual sub-space within the multi-user virtual space; and assigning a user to the second multi-user virtual sub-space while maintaining the assignment of the user to the multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for providing content sharing tools to the group of users, the content sharing tools configured to share media between the group of users.

In some implementations of the method, non-transitory computer readable medium, or apparatus, focusing media exchanges for the group of users comprises reducing an audio level for a user assigned to the multi-user virtual sub-space for audio generated outside of the multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for forming a second multi-user virtual sub-space within the multi-user virtual space; and inviting a first user assigned to the multi-user virtual sub-space to the second multi-user virtual sub-space in response to a request from a second user.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the multi-user virtual sub-space is formed in response a detection of user interactions among the group of users.

In some implementations of the method, non-transitory computer readable medium, or apparatus, limiting a perception level of media comprises reducing an audio level of interactions outside of the multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for instantiating the multi-user virtual space in coordination with a scheduled virtual conference meeting.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for forming a second multi-user virtual sub-space; and assigning a user assigned to the multi-user virtual sub-space to the second multi-user virtual sub-space.

In some implementations of the method, non-transitory computer readable medium, or apparatus, the method comprises, the operations comprise, or the processor is configured to execute the instructions for monitoring activity within the multi-user virtual sub-space to determine an activity summary; and providing an indication of the activity summary to the multi-user virtual space.

Other suitable mediums are also available. Such computer-usable or computer-readable media can be referred to as non-transitory memory or media, and can include volatile memory or non-volatile memory that can change over time. The quality of memory or media being non-transitory refers to such memory or media storing data for some period of time or otherwise based on device power or a device power cycle. A memory of an apparatus described herein, unless otherwise specified, does not have to be physically contained by the apparatus, but is one that can be accessed remotely by the apparatus, and does not have to be contiguous with other memory that might be physically contained by the apparatus.