Systems, methods, and apparatus for meeting management (2024)

The present application is a Non-Provisional of, and claims benefit and priority to U.S. Provisional Patent Application No. 63/041,817, titled “MEETING TAGGING FOR IMPROVED FUNCTION”, and filed Jun. 20, 2020 in the name of Jorasch et al., the entirety of which is hereby incorporated by reference herein for all purposes.

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

People attend meetings and virtual calls, often spending significant amounts of time. For companies with employees in such meetings, there can be a significant cost associated with the time of employees attending. Further, the meeting results are sometimes less than optimal because of inefficiencies of the person leading or those attending the meeting.

Various embodiments comprise systems, methods, and apparatus for improving meetings. Various embodiments enable an integration of data from many sources, and enable intelligent processing of that data such that many elements of the system can be optimized and enhanced. Various embodiments enhance meetings, video calls, educational communications, or game experiences by improving interactions of people through the collection of feedback from individuals, and the collection of images, video and/or sensor data from the camera and peripherals. Various embodiments may enhance the function of meetings and use of business software applications, safety protocols, authentication, gameplay experiences, recreational activities, household activities, social interactions and educational activities.

An understanding of embodiments described herein and many of the attendant advantages thereof may be readily obtained by reference to the following detailed description when considered with the accompanying drawings, wherein:

FIG. 1 is a block diagram of a system consistent with at least some embodiments described herein;

FIG. 2 is a block diagram of a resource device consistent with at least some embodiments described herein;

FIG. 3 is a block diagram of a user device consistent with at least some embodiments described herein;

FIG. 4 is a block diagram of a peripheral device consistent with at least some embodiments described herein;

FIG. 5 is a block diagram of a third-party device consistent with at least some embodiments described herein;

FIG. 6 is a block diagram of a central controller consistent with at least some embodiments described herein;

FIGS. 7 through 37 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 38 is a computer mouse consistent with at least some embodiments described herein;

FIG. 39 is a computer keyboard consistent with at least some embodiments described herein;

FIG. 40 is a headset consistent with at least some embodiments described herein;

FIG. 41 depicts a camera consistent with at least some embodiments described herein;

FIG. 42 is a presentation remote consistent with at least some embodiments described herein;

FIG. 43 is a headset with motion sensor consistent with at least some embodiments described herein;

FIG. 44 is user interface for a virtual call consistent with at least some embodiments described herein;

FIG. 45 is a screen from an app for determining rules for anonymity consistent with at least some embodiments described herein;

FIG. 46 is mouse with a screen consistent with at least some embodiments described herein;

FIG. 47 is a presentation remote consistent with at least some embodiments described herein;

FIG. 48 is a depiction of a presentation slide consistent with at least some embodiments described herein;

FIG. 49 is a plot of a derived machine learning model consistent with at least some embodiments described herein;

FIGS. 50 through 53 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 54A and FIG. 54B are block diagrams of example data storage structures consistent with at least some embodiments described herein

FIGS. 55 through 63 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 64A and FIG. 64B are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIGS. 65 through 66 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 67 is a user interface of an app for selecting tags consistent with at least some embodiments described herein;

FIG. 68 is a map of a campus with buildings consistent with at least some embodiments described herein;

FIGS. 69 and 70 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 71A, FIG. 71B, FIG. 71C, FIG. 71D, and FIG. 71E are perspective diagrams of exemplary data storage devices consistent with at least some embodiments described herein;

FIG. 72 is a room environment consistent with at least some embodiments described herein;

FIG. 73 is a block diagram of an example data storage structure consistent with at least some embodiments described herein;

FIG. 74 shows a diagram of a process flow consistent with at least some embodiments described herein;

FIGS. 75 and 76 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 77 is a conference room consistent with at least some embodiments described herein;

FIG. 78 is a conference room consistent with at least some embodiments described herein;

FIG. 79A, FIG. 79B, and FIG. 79C, together show a diagram of a process flow consistent with at least some embodiments described herein;

FIG. 80 is a block diagram of a peripheral consistent with at least some embodiments described herein;

FIG. 81 is a block diagram of an example data storage structure consistent with at least some embodiments described herein;

FIG. 82 is an employee wearing a headset consistent with at least some embodiments described herein;

FIG. 83 is a block diagram of a system consistent with at least some embodiments described herein;

FIG. 84 is a user interface for creating a set of tag rules consistent with at least some embodiments described herein;

FIG. 85 is a user interface for creating a meeting consistent with at least some embodiments described herein;

FIG. 86A, FIG. 86B, and FIG. 86C, together show a diagram of a process flow consistent with at least some embodiments described herein;

FIG. 87 is a block diagram of an example data storage structure consistent with at least some embodiments described herein;

FIG. 88 is a chart consistent with at least some embodiments described herein;

FIG. 89 is an illustration of an individual with biometric information consistent with at least some embodiments described herein;

FIG. 90 is a headset consistent with at least some embodiments described herein;

FIG. 91A and FIG. 91B, together show a diagram of a process flow consistent with at least some embodiments described herein;

FIG. 92 is a block diagram of an example data storage structure consistent with at least some embodiments described herein;

FIG. 93 is a block diagram of a system consistent with at least some embodiments described herein;

FIG. 94 is user interface of an app consistent with at least some embodiments described herein;

FIGS. 95 through 97 are block diagrams of example data storage structures consistent with at least some embodiments described herein;

FIG. 98A and FIG. 98B together show a diagram of a process flow consistent with at least some embodiments described herein;

FIG. 99 is a chart from a user interface consistent with at least some embodiments described herein;

FIG. 100 is a chart from a user interface consistent with at least some embodiments described herein;

FIG. 101 is a diagram of a process flow consistent with at least some embodiments described herein;

FIG. 102A and FIG. 102B, together show a diagram of a process flow consistent with at least some embodiments described herein;

FIGS. 103 through 105 are block diagrams of example data storage structures consistent with at least some embodiments described herein; and

FIG. 106 is a diagram of a process flow consistent with at least some embodiments described herein.

Embodiments described herein are descriptive of systems, apparatus, methods, interfaces, and articles of manufacture for utilizing devices and/or for managing meetings.

Headings, section headings, and the like are used herein for convenience and/or to comply with drafting traditions or requirements. However, headings are not intended to be limiting in any way. Subject matter described within a section may encompass areas that fall outside of or beyond what might be suggested by a section heading; nevertheless, such subject matter is not to be limited in any way by the wording of the heading, nor by the presence of the heading. For example, if a heading says “Mouse Outputs”, then outputs described in the following section may apply not only to computer mice, but to other peripheral devices as well.

As used herein, a “user” may include a human being, set of human beings, group of human beings, an organization, company, legal entity, or the like. A user may be a contributor to, beneficiary of, agent of, and/or party to embodiments described herein. For example, in some embodiments, a users actions may result in the user receiving a benefit.

In various embodiments, the term “user” may be used interchangeably with “employee”, “attendee”, or other party to which embodiments are directed.

A user may own, operate, or otherwise be associated with a computing device, such as a personal computer, desktop, Apple® Macintosh®, or the like, and such device may be referred to herein as “user device”. A user device may be associated with one or more additional devices. Such additional devices may have specialized functionality, such as for receiving inputs or providing outputs to users. Such devices may include computer mice, keyboards, headsets, microphones, cameras, and so on, and such devices may be referred to herein as “peripheral devices”. In various embodiments, a peripheral device may exist even if it is not associated with any particular user device. In various embodiments, a peripheral device may exist even if it is not associated with any particular other device.

As used herein, a “skin” may refer to an appearance of an outward-facing surface of a device, such as a peripheral device. The surface may include one or more active elements, such as lights, LEDs, display screens, electronic ink, e-skin, or any other active elements. In any case, the surface may be capable of changing its appearance, such as by changing its color, changing its brightness, changing a displayed image, or making any other change. When the outward service of a device changes its appearance, the entire device may appear to change its appearance. In such cases, it may be said that the device has taken on a new “skin”.

As used herein, pronouns are not intended to be gender-specific unless otherwise specified or implied by context. For example, the pronouns “he”, “his”, “she”, and “her” may refer to either a male or a female.

As used herein, a “mouse-keyboard” refers to a mouse and/or a keyboard, and may include a device that has the functionality of mouse, a device that has the functionality of a keyboard, a device that has some functionality of a mouse and some functionality Of a keyboard and/or a device that has the functionality of both a mouse and a keyboard.

Systems

Referring first to FIG. 1, a block diagram of a system 100 according to some embodiments is shown. In some embodiments, the system 100 may comprise a plurality of resource devices 102a-n in communication via or with a network 104. According to some embodiments, system 100 may comprise a plurality of user devices 106a-n, a plurality of peripheral devices 107a-n and 107p-z, third-party device 108, and/or a central controller 110, In various embodiments, any or all of devices 106c-n, 107a, 107p-z, may be in communication with the network 104 and/or with one another via the network 104.

Various components of system 100 may communicate with one another via one or more networks (e.g., via network 104). Such networks may comprise, for example, a mobile network such as a cellular, satellite, or pager network, the Internet, a wide area network, a Wi-Fi® network, another network, or a combination of such networks. For example, in one embodiment, both a wireless cellular network and a Wi-Fi® network may be involved in routing communications and/or transmitting data among two or more devices or components. The communication between any of the components of system 100 (or of any other system described herein) may take place over one or more of the following: the Internet, wireless data networks, such as 802.11 Wi-Fi®, PSTN interfaces, cable modem DOCSIS data networks, or mobile phone data networks commonly referred to as 3G, LTE, LTE-advanced, etc.

In some embodiments, additional devices or components that are not shown in FIG. 1 may be part of a system for facilitating embodiments as described herein. For example, one or more servers operable to serve as wireless network gateways or routers may be part of such a system. In other embodiments, some of the functionality described herein as being performed by system 100 may instead or in addition be performed by a third party server operating on behalf of the system 100 (e.g., the central controller 110 may outsource some functionality, such as registration of new game players). Thus, a third party server may be a part of a system such as that illustrated in FIG. 1.

It should be understood that any of the functionality described herein as being performed by a particular component of the system 100 may in some embodiments be performed by another component of the system 100 and/or such a third party server. For example, one or more of the functions or processes described herein as being performed by the central controller 110 (e.g., by a module or software application of the central controller) or another component of system 100 may be implemented with the use of one or more cloud-based servers which, in one embodiment, may be operated by or with the help of a third party distinct from the central controller 110. In other words, while in some embodiments the system 100 may be implemented on servers that are maintained by or on behalf of central controller 110, in other embodiments it may at least partially be implemented using other arrangements, such as in a cloud-computing environment, for example.

In various embodiments, peripheral devices 107b and 107c may be in communication with user device 106b, such as by wired connection (e.g., via USB cable), via wireless connection (e.g., via Bluetooth®) or via any other connection means. In various embodiments, peripheral devices 107b and 107c may be in communication with one another via user device 106b (e.g., using device 106b as an intermediary). In various embodiments, peripheral device 107d may be in communication with peripheral device 107c, such as by wired, wireless, or any other connection means. Peripheral device 107d may be in communication with peripheral device 107b via peripheral device 107c and user device 106b (e.g., using devices 107c and 106b as intermediaries). In various embodiments, peripheral devices 107b and/or 107c may be in communication with network 104 via user device 106b (e.g., using device 106b as an intermediary). Peripheral devices 107b and/or 107c may thereby communicate with other devices (e.g., peripheral device 107p or central controller 110) via the network 104. Similarly, peripheral device 107d may be in communication with network 104 via peripheral device 107c and user device 106b (e.g., by using both 107c and 106b as intermediaries). In various embodiments, peripheral device 107d may thereby communicate with other devices via the network 104.

In various embodiments, local network 109 is in communication with network 104. Local network 109 may be, for example, a Local Area Network (LAN), Wi-Fi® network, Ethernet-based network, home network, school network, office network, business network, or any other network. User device 106a and peripheral devices 107e-n may each be in communication with local network 109. Devices 106a and 107e-n may communicate with one another via local network 109. In various embodiments, one or more of devices 106a and 107e-n may communicate with other devices (e.g., peripheral device 107p or central controller 110) via both the local network 109 network 104. It will be appreciated that the depicted devices 106a and 107e-n are illustrative of some embodiments, and that various embodiments contemplate more or fewer user devices and/or more or fewer peripheral devices in communication with local network 109.

It will be appreciated that various embodiments contemplate more or fewer user devices than the depicted user devices 106a-n. Various embodiments contemplate fewer or more local networks, such as local network 109. In various embodiments, each local network may be in communication with a respective number of user devices and/or peripherals. Various embodiments contemplate more or fewer peripheral devices than the depicted peripheral devices 107a-n and 107p-z. Various embodiments contemplate more or fewer resource devices than the depicted resource devices 102a-n. Various embodiments contemplate more or fewer third-party devices than the depicted third-party device 108. In a similar vein, it will be understood that ranges of reference numerals, such as “102a-n”, do not imply that there is exactly one such device corresponding to each alphabet letter in the range (e.g., in the range “a-n”). Indeed, there may be more or fewer such devices than the number of alphabet letters in the indicated range.

In various embodiments, resource devices 102a-n may include devices that store data and/or provide one or more services used in various embodiments. Resource devices 102a-n may be separate from the central controller 110. For example, a resource device may belong to a separate entity to that of the central controller. In various embodiments, one or more resource devices are part of the central controller, have common ownership with the central controller, or are otherwise related to the central control. In various embodiments, resource devices 102a-n may include one or more databases, cloud computing and storage services, calling platforms, video conferencing platforms, streaming services, voice over IP services, authenticating services, certificate services, cryptographic services, anonymization services, biometric analysis services, transaction processing services, financial transaction processing services, digital currency transaction services, file storage services, document storage services, translation services, transcription services, providers of imagery, image/video processing services, providers of satellite imagery, libraries for digital videos, libraries for digital music, library for digital lectures, libraries for educational content, libraries for digital content, providers of shared workspaces, providers of collaborative workspaces, online gaming platforms, game servers, advertisement aggregation services, advertisement distribution services, facilitators of online meetings, email servers, messaging platforms, Wiki hosts, website hosts, providers of software, providers of software-as-a-service, providers of data, providers of user data, and/or any other data storage device and/or any other service provider.

For example, a resource device (e.g., device 102a), may assist the central controller 110 in authenticating a user every time the user logs into a video game platform associated with the central controller. As another example, a resource device may store digital music files that are downloaded to a user device as a reward for the user's performance in a video game associated with the central controller. As another example, a resource device may provide architectural design software for use by users designing a building in a shared workspace associated with the central controller. According to some embodiments, communications between and/or within the devices 102a-n, 106a-n, 107a-n and 107p-z, 108, and 110 of the system 100 may be utilized to (i) conduct a multiplayer game, (ii) conduct a meeting, (iii) facilitate a collaborative project, (iv) distribute advertisements, (v) provide teaching, (vi) provide evaluations and ratings or individuals or teams, (vii) facilitate video conferencing services, (viii) enhance educational experiences, and/or for any other purpose.

Fewer or more components 102a-n, 104, 106a-n, 107a-n, 107p-z, 108, 110 and/or various configurations of the depicted components 102a-n, 104, 106a-n, 107a-n, 107p-z, 108, 110 may be included in the system 100 without deviating from the scope of embodiments described herein. In some embodiments, the components 102a-n, 104, 106a-n, 107a-n, 107p-z, 108, 110 may be similar in configuration and/or functionality to similarly named and/or numbered components as described herein. In some embodiments, the system 100 (and/or portion thereof) may comprise a platform programmed and/or otherwise configured to execute, conduct, and/or facilitate the methods (e.g., 7400 of FIG. 74; 7900 of FIGS. 79A-C; 8600 of FIGS. 86A-C; 9100 of FIGS. 91A-B; 9800 of FIG. 98; 10100 of FIG. 101; 10200 of FIGS. 102A-B; 10600 of FIG. 106) herein, and/or portions thereof.

According to some embodiments, the resource devices 102a-n and/or the user devices 106a-n may comprise any type or configuration of computing, mobile electronic, network, user, and/or communication devices that are or become known or practicable. The resource devices 102a-n and/or the user devices 106a-n may, for example, comprise one or more Personal Computer (PC) devices, computer workstations, server computers, cloud computing resources, video gaming devices, tablet computers, such as an iPad® manufactured by Apple®, Inc. of Cupertino, Calif., and/or cellular and/or wireless telephones, such as an iPhone® (also manufactured by Apple®, Inc.) or an LG V50 THINQ™ 5G smart phone manufactured by LG® Electronics, Inc. of San Diego, Calif., and running the Android® operating system from Google®, Inc. of Mountain View, Calif. In some embodiments, the resource devices 102a-n and/or the user devices 106a-n may comprise one or more devices owned and/or operated by one or more users (not shown), such as a Sony PlayStation® 5, and/or users/account holders (or potential users/account holders). According to some embodiments, the resource devices 102a-n and/or the user devices 106a-n may communicate with the central controller 110 either directly or via the network 104 as described herein.

According to some embodiments, the peripheral devices 107a-n, 107p-z may comprise any type or configuration of computing, mobile electronic, network, user, and/or communication devices that are or become known or practicable. The peripheral devices 107a-n, 107p-z may, for example, comprise one or more of computer mice, computer keyboards, headsets, cameras, touchpads, joysticks, game controllers, watches (e.g., smart watches), microphones, etc. In various embodiments, peripheral devices may comprise one or more of Personal Computer (PC) devices, computer workstations, video game consoles, tablet computers, laptops, and the like. The network 104 may, according to some embodiments, comprise a Local Area Network (LAN; wireless and/or wired), cellular telephone, Bluetooth®, Near Field Communication (NFC), and/or Radio Frequency (RF) network with communication links between the central controller 110, the resource devices 102a-n, the user devices 106a-n, and/or the third-party device 108. In some embodiments, the network 104 may comprise direct communication links between any or all of the components 102a-n, 104, 106a-n, 107a-n, 107p-z, 108, 110 of the system 100. The resource devices 102a-n may, for example, be directly interfaced or connected to one or more of the central controller 110, the user devices 106a-n, the peripheral devices 107a-n, 107p-z and/or the third-party device 108 via one or more wires, cables, wireless links, and/or other network components, such network components (e.g., communication links) comprising portions of the network 104. In some embodiments, the network 104 may comprise one or many other links or network components other than those depicted in FIG. 1. The central controller 110 may, for example, be connected to the resource devices 102a-n via various cell towers, routers, repeaters, ports, switches, and/or other network components that comprise the Internet and/or a cellular telephone (and/or Public Switched Telephone Network (PSTN) network, and which comprise portions of the network 104.

While the network 104 is depicted in FIG. 1 as a single object, the network 104 may comprise any number, type, and/or configuration of networks that is or becomes known or practicable. According to some embodiments, the network 104 may comprise a conglomeration of different sub-networks and/or network components interconnected, directly or indirectly, by the components 102a-n, 104, 106b-n, 107a, 107p-z, 108, 109, 110 of the system 100. The network 104 may comprise one or more cellular telephone networks with communication links between the user devices 106b-n and the central controller 110, for example, and/or may comprise an NFC or other short-range wireless communication path, with communication links between the resource devices 102a-n and the user devices 106b-n, for example.

According to some embodiments, the third-party device 108 may comprise any type or configuration of a computerized processing device, such as a PC, laptop computer, computer server, database system, and/or other electronic device, devices, or any combination thereof. In some embodiments, the third-party device 108 may be owned and/or operated by a third-party (i.e., an entity different than any entity owning and/or operating either the resource devices 102a-n, the user devices 106a-n, the peripheral devices 107a-n and 107p-z, or the central controller 110; such as a business customer or client of the central controller). The third-party device 108 may, for example, comprise an advertiser that provides digital advertisements for incorporation by the central controller 110 into a multiplayer video game, and which pays the central controller to do this. The third-party device 108 may, as another example, comprise a streaming channel that purchases footage of video games from the central controller.

According to some embodiments, the third-party device 108 may comprise a plurality of devices and/or may be associated with a plurality of third-party entities. In some embodiments, the third-party device 108 may comprise the memory device (or a portion thereof), such as in the case the third-party device 108 comprises a third-party data storage service, device, and/or system, such as the Amazon® Simple Storage Service (Amazon® S3™) available from Amazon®.com, Inc. of Seattle, Wash. or an open-source third-party database service, such as MongoDB™ available from MongoDB, Inc. of New York, N.Y. In some embodiments, the central controller 110 may comprise an electronic and/or computerized controller device, such as a computer server and/or server cluster communicatively coupled to interface with the resource devices 102a-n and/or the user devices 106a-n, and/or the peripheral devices 107a-n and 107p-z, and/or local network 109 (directly and/or indirectly). The central controller 110 may, for example, comprise one or more PowerEdge™ M910 blade servers manufactured by Dell®, Inc. of Round Rock, Tex., which may include one or more Eight-Core Intel® Xeon® 7500 Series electronic processing devices. According to some embodiments, the central controller 110 may be located remotely from one or more of the resource devices 102a-n and/or the user devices 106a-n and/or the peripheral devices 107a-n and 107p-z. The central controller 110 may also or alternatively comprise a plurality of electronic processing devices located at one or more various sites and/or locations (e.g., a distributed computing and/or processing network).

According to some embodiments, the central controller 110 may store and/or execute specially programmed instructions (not separately shown in FIG. 1) to operate in accordance with embodiments described herein. The central controller 110 may, for example, execute one or more programs, modules, and/or routines (e.g., AI code and/or logic) that facilitate the analysis of meetings (e.g., contributors to the emissions of a meeting; e.g., of contributors to the performance of a meeting), as described herein. According to some embodiments, the central controller 110 may execute stored instructions, logic, and/or software modules to (i) determine meeting configurations consistent with requirements for a meeting, (ii) determine information about objects, (iii) determine tasks associated with objects, (iv) determine a route for a user to take, (v) conduct games, (vi) facilitate messaging to and between peripheral devices, (vii) determine alterations to a room that may enhance safety or productivity, (ix) provide an interface via which a resource and/or a customer (or other user) may view and/or manage meetings, and/or (x) perform any other task or tasks, as described herein.

In some embodiments, the resource devices 102a-n, the user devices 106a-n, the third-party device 108, the peripheral devices 107a-n and 107p-z and/or the central controller 110 may be in communication with and/or comprise a memory device (not shown). The memory device may comprise, for example, various databases and/or data storage mediums that may store, for example, user information, meeting information, cryptographic keys and/or data, login and/or identity credentials, and/or instructions that cause various devices (e.g., the central controller 110, the third-party device 108, resource devices 102a-n, the user devices 106a-n, the peripheral devices 107a-n and 107p-z) to operate in accordance with embodiments described herein.

The memory device may store, for example, various AI code and/or mobile device applications and/or interface generation instructions, each of which may, when executed, participate in and/or cause meeting enhancements, improvements to meeting performance, reductions in emissions associated with meeting, enhancements to online gameplay, or any other result or outcome as described herein. In some embodiments, the memory device may comprise any type, configuration, and/or quantity of data storage devices that are or become known or practicable. The memory device may, for example, comprise an array of optical and/or solid-state hard drives configured to store predictive models (e.g., analysis formulas and/or mathematical models and/or models for predicting emissions), credentialing instructions and/or keys, and/or various operating instructions, drivers, etc. In some embodiments, the memory device may comprise a solid-state and/or non-volatile memory card (e.g., a Secure Digital (SD) card such as an SD Standard-Capacity (SDSC), an SD High-Capacity (SDHC), and/or an SD eXtended-Capacity (SDXC)) and any various practicable form-factors, such as original, mini, and micro sizes, such as are available from Western Digital Corporation of San Jose, Calif. In various embodiments, the memory device may be a stand-alone component of the central controller 110. In various embodiments, the memory device 140 may comprise multiple components. In some embodiments, a multi-component memory device may be distributed across various devices and/or may comprise remotely dispersed components. Any or all of the resource devices 102a-n, the user devices 106a-n, the peripheral devices 107a-n and 107p-z, the third-party device 108, and/or the central controller 110 may comprise the memory device or a portion thereof, for example.

Resource Devices

Turning now to FIG. 2, a block diagram of a resource device 102a according to some embodiments is shown. Although FIG. 2 depicts resource device 102a, it will be appreciated that other resource devices (e.g., resource devices 102b-n, may have similar constructions). In various embodiments, different resource devices may have different constructions. With reference to FIG. 2 (and to any other figures depicting software, software modules, processors, computer programs, and the like), it should be understood that any of the software module(s) or computer programs illustrated therein may be part of a single program or integrated into various programs for controlling processor 205 (or the processor depicted in the relevant figure). Further, any of the software module(s) or computer programs illustrated therein may be stored in a compressed, uncompiled, and/or encrypted format and include instructions which, when performed by the processor, cause the processor to operate in accordance with at least some of the methods described herein. Of course, additional and/or different software module(s) or computer programs may be included and it should be understood that the example software module(s) illustrated and described with respect to FIG. 2 (or to any other relevant figure) are not necessary in any embodiments. Use of the term “module” is not intended to imply that the functionality described with reference thereto is embodied as a stand-alone or independently functioning program or application. While in some embodiments functionality described with respect to a particular module may be independently functioning, in other embodiments such functionality is described with reference to a particular module for ease or convenience of description only and such functionality may in fact be a part of integrated into another module, program, application, or set of instructions for directing a processor of a computing device.

According to an embodiment, the instructions of any or all of the software module(s) or programs described with respect to FIG. 2 (or to any other pertinent figure) may be read into a main memory from another computer-readable medium, such from a ROM to RAM. Execution of sequences of the instructions in the software module(s) or programs causes processor 205 (or other applicable processor) to perform at least some of the process steps described herein. In alternate embodiments, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of the processes of the embodiments described herein. Thus, the embodiments described herein are not limited to any specific combination of hardware and software. In various embodiments, resource device 102a comprises a processor 205. Processor 205 may be any suitable processor, logic chip, neural chip, controller, or the like, and may include any component capable of executing instructions (e.g., computer instructions, e.g., digital instructions). Commercially available examples include the Apple® eight-core M1 chip with Neural Engine, AMD® Ryzen™ Threadripper 3990x with 64 cores, and the Intel eight-core Core i9-11900K chip.

In various embodiments, processor 205 is in communication with a network port 210 and a data storage device 215. Network port 210 may include any means for resource device 102a to connect to and/or communicate over a network. Network port 210 may include any means for resource device 102a to connect to and/or communicate with another device (e.g., with another electronic device). For example, network port 210 may include a network interface controller, network interface adapter, LAN adapter, or the like. Network port 210 may include a transmitter, receiver, and/or transceiver. Network port 210 may be capable of transmitting signals, such as wireless, cellular, electrical, optical, NFC, RFID, or any other signals. In various embodiments, network port 210 may be capable of receiving signals, such as wireless, cellular, electrical, optical, or any other signals. Storage device 215 may include memory, storage, and the like for storing data and/or computer instructions. Storage device 215 may comprise one or more hard disk drives, solid state drives, random access memory (RAM), read only memory (ROM), and/or any other memory or storage. Storage device 215 may store resource data 220, which may include tables, files, images, videos, audio, or any other data. Storage device 215 may store program 225. Program 225 may include instructions for execution by processor 205 in order to carry out various embodiments described herein. Further, resource data 220 may be utilized (e.g., referenced) by processor 205 in order to carry out various embodiments described herein. It will be appreciated that, in various embodiments, resource device 102a may include more or fewer components than those explicitly depicted.

User Devices

Turning now to FIG. 3, a block diagram of a user device 106a according to some embodiments is shown. Although FIG. 3 depicts user device 106a, it will be appreciated that other user devices (e.g., user devices 106b-n, may have similar constructions). In various embodiments, different user devices may have different constructions. The user device manages the various peripheral devices associated with one or more users, facilitating communication between them and passing information back to the user device. In some embodiments the user device is a Mac® or PC personal computer with suitable processing power, data storage, and communication capabilities to enable various embodiments. In various embodiments, a user device may include a PC, laptop, tablet, smart phone, smart watch, netbook, room AV controller, desktop computer, Apple® Macintosh computer, a gaming console, a workstation, or any other suitable device.

Suitable devices that could act as a user device include: Laptops (e.g., MacBook® Pro, MacBook® Air, HP® Spectre™ x360, Google® Pixelbook™ Go, Dell® XPS™ 13); Desktop computers (e.g., Apple® iMac 5K, Microsoft® Surface™ Studio 2, Dell® Inspiron™ 5680); Tablets (e.g., Apple® iPad® Pro 12.9, Samsung® Galaxy™ Tab S6, iPad® Air, Microsoft® Surface™ Pro); Video game systems (e.g., PlayStation® 5, Xbox® One, Nintendo® Switch™, Super NES® Classic Edition, Wii U®); Smartphones (e.g., Apple® iPhone® 12 Pro or Android® device such as Google® Pixel™ 4 and OnePlus™ 7 Pro); IP enabled desk phone; Watches (e.g., Samsung® Galaxy® Watch, Apple® Watch 5, Fossil® Sport, TicWatch™ E2, Fitbit® Versa™ 2); Room AV Controller (e.g., Crestron® Fusion, Google® Meet hardware); Eyeglasses (e.g., Iristick.Z1™ Premium, Vuzix® Blade, Everysight® Raptor™ Solos®, Amazon® Echo™ Frames); Wearables (e.g., watch, headphones, microphone); Digital assistant devices (e.g., Amazon® Alexa® enabled devices, Google® Assistant, Apple® Siri™); or any other suitable devices. In various embodiments, user device 106a comprises a processor 305. As with processor 205, processor 305 may be any suitable processor, logic chip, controller, or the like.

In various embodiments, processor 305 is in communication with a network port 310, connection port 315, input device 320, output device 325, sensor 330, screen 335, power source 340, and a data storage device 345. As with network port 210, network port 310 may include any means for user device 106a to connect to and/or communicate over a network. Network port 310 may comprise similar components and may have similar capabilities as does network port 210, so the details need not be repeated. Connection port 315 may include any means for connecting or interfacing with another device or medium, such as with a peripheral device (e.g., a headset, mouse, a keyboard), a storage medium or device (e.g., a DVD, a thumb drive, a memory card, a CD), or any other device or medium. Connection port 315 may include a USB port, HDMI port, DVI port, VGA port, Display port, Thunderbolt, Serial port, a CD drive, a DVD drive, a slot for a memory card, or any variation thereof, or any iteration thereof, or any other port. Input device 320 may include any component or device for receiving user input or any other input. Input device 320 may include buttons, keys, trackpads, trackballs, scroll wheels, switches, touch screens, cameras, microphones, motion sensors, biometric sensors, or any other suitable component or device. Input device 320 may include a keyboard, power button, eject button, fingerprint button, or any other device.

Output device 325 may include any component or device for outputting or conveying information, such as to a user. Output device 325 may include a display screen, speaker, light, laser pointer, backlight, projector, LED, touch bar, haptic actuator, or any other output device. Sensor 330 may include any component or device for receiving or detecting environmental, ambient, and/or circumstantial conditions, situations, or the like. Sensor 330 may include a microphone, temperature sensor, light sensor, motion sensor, accelerometer, inertial sensor, gyroscope, contact sensor, angle sensor, or any other sensor. Screen 335 may include any component or device for conveying visual information, such as to a user. Screen 335 may include a display screen and/or a touch screen. Screen 335 may include a CRT screen, LCD screen, projection screen, plasma screen, LED screen, OLED screen, DLP screen, laser projection screen, virtual retinal display, or any other screen.

Power source 340 may include any component or device for storing, supplying and/or regulating power to user device 106a and/or to any components thereof. Power source 340 may include a battery, ultra-capacitor, power supply unit, or any other suitable device. Power source 340 may include one or more electrical interfaces, such as a plug for connecting to an electrical outlet. Power source 340 may include one or more cords, wires, or the like for transporting electrical power, such as from a wall outlet and/or among components of user device 106a.

Storage device 345 may include memory, storage, and the like for storing data and/or computer instructions. Storage device 345 may comprise one or more hard disk drives, solid state drives, random access memory (RAM), read only memory (ROM), and/or any other memory or storage. Storage device 345 may store data 350, which may include tables, files, images, videos, audio, or any other data. Storage device 345 may store program 355. Program 355 may include instructions for execution by processor 305 in order to carry out various embodiments described herein. Further, data 350 may be utilized (e.g., referenced) by processor 305 in order to carry out various embodiments described herein. It will be appreciated that, in various embodiments, user device 106a may include more or fewer components than those explicitly depicted. It will be appreciated that components described with respect to user device 106a need not necessarily be mutually exclusive. For example, in some embodiments, an input device 320 and a screen 335 may be the same (e.g., a touch screen). For example, in some embodiments, an input device 320 and a sensor 330 may be the same (e.g., a microphone). Similarly, components described herein with respect to any other device need not necessarily be mutually exclusive.

Peripheral Devices

Turning now to FIG. 4, a block diagram of a peripheral device 107a according to some embodiments is shown. Although FIG. 4 depicts peripheral device 107a, it will be appreciated that other peripheral devices (e.g., peripheral devices 107b-n and 107p-z, may have similar constructions). In various embodiments, different peripheral devices may have different constructions. Peripheral devices 107a according to various embodiments include: mouse, presentation remote, trackpad, trackball, joystick, video game controller, wheel, camera (e.g., still image camera, video camera, portable camera), exercise device, footpad, pedals, pedal, foot pedal, yoke, keyboard, headset, watch, stylus, soft circuitry, drone or other action camera (e.g., GoPro®), or any other suitable device. Peripheral devices 107a might include suitably adapted furniture, accessories, clothing, or other items. For example, furniture might include built-in sensors and/or built-in electronics. Peripherals may include: chair, musical instrument, ring, clothing, hat, shoes, shirt, collar, backpack, mousepad, or any other suitable object or device. Peripheral devices 107a might include: green screens or chroma key screens; lights such as task lights, or specialized key lights for streaming; webcams; a desk itself, including a conventional or sit-stand desk; desk surface; monitor stand (e.g., which is used to alter the height of a monitor) or laptop computer stand (which may include charger and connections); monitor mount or swing arms; speakers; dongles, connecters, wires, cables; printers and scanners; external hard drives; pens; phones and tablets (e.g., to serve as controllers, second screens, or as a primary device); other desk items (e.g., organizers, photos and frames, coaster, journal or calendar); glasses; mugs; water bottles; etc.

Peripheral device 107a may include various components. Peripheral device 107a may include a processor 405, network port 410, connector 415, input device 420, output device 425, sensor 430, screen 435, power source 440, and storage device 445. Storage device 445 may store data 450 and program 455. A number of components for peripheral device 107a depicted in FIG. 4 have analogous components in user device 106a depicted in FIG. 3 (e.g., processor 405 may be analogous to processor 305), and so such components need not be described again in detail. However, it will be appreciated that any given user device and any given peripheral device may use different technologies, different manufacturers, different arrangements, etc., even for analogous components. For example, a particular user device may comprise a 20-inch LCD display screen, whereas a particular peripheral device may comprise a 1-inch OLED display screen. It will also be appreciated that data 450 need not necessarily comprise the same (or even similar) data as does data 350, and program 455 need not necessarily comprise the same (or even similar) data or instructions as does program 350.

In various embodiments, connector 415 may include any component capable of interfacing with a connection port (e.g., with connection port 315). For example, connector 415 may physically complement connection port 315. Thus, for example, peripheral device 107a may be physically connected to a user device via the connector 415 fitting into the connection port 315 of the user device. The interfacing may occur via plugging, latching, magnetic coupling, or via any other mechanism. In various embodiments, a peripheral device may have a connection port while a user device has a connector. Various embodiments contemplate that a user device and a peripheral device may interface with one another via any suitable mechanism. In various embodiments, a user device and a peripheral device may interface via a wireless connection (e.g., via Bluetooth®, Near Field Communication, or via any other means).

A peripheral may include one or more sensors 430. These may include mechanical sensors, optical sensors, photo sensors, magnetic sensors, biometric sensors, or any other sensors. A sensor may generate one or more electrical signals to represent a state of a sensor, a change in state of the sensor, or any other aspect of the sensor. For example, a contact sensor may generate a “1” (e.g., a binary one, e.g., a “high” voltage) when there is contact between two surfaces, and a “0” (e.g., a binary “0”, e.g., a “low” voltage) when there is not contact between the two surfaces. A sensor may be coupled to a mechanical or physical object, and may thereby sense displacement, rotations, or other perturbations of the object. In this way, for example, a sensor may detect when a button has been depressed (e.g., contact has occurred between a depressible surface of a button and a fixed supporting surface of the button), when a wheel has been turned (e.g., a spoke of the wheel has blocked incident light onto an optical sensor), or when any other perturbation has occurred. In various embodiments, sensor 430 may be coupled to input device 420, and may thereby sense user inputs at the input device (e.g., key presses; e.g., mouse movements, etc.).

In various embodiments, sensor 430 may detect more than binary states. For example, sensor 430 may detect any of four different states, any of 256 different states, or any of a continuous range of states. For example, a sensor may detect the capacitance created by two parallel surfaces. The capacitance may change in a continuous fashion as the surfaces grow nearer or further from one another. The processor 405 may detect the electrical signals generated by sensor 430. The processor may translate such raw sensor signals into higher-level, summary, or aggregate signals. For example, processor 405 may receive a series of “1-0” signals from the sensor that is repeated 45 times. Each individual “1-0” signal may represent the rotation of a mouse wheel by 1 degree. Accordingly, the processor may generate a summary signal indicating that the mouse wheel has turned 45 degrees. As will be appreciated, aggregate or summary signals may be generated in many other ways. In some embodiments, no aggregate signal is generated (e.g., a raw sensor signal is utilized).

In various embodiments, processor 405 receives an electrical signal from sensor 430 that is representative of 1 out of numerous possible states. For example, the electrical signal may represent state number 139 out of 256 possible states. This may represent, for example, the displacement by which a button has been depressed. The processor may then map the electrical signal from sensor 430 into one of only two binary states (e.g., ‘pressed’ or ‘not pressed’). To perform the mapping, the processor 405 may compare the received signal to a threshold state. If the state of the received signal is higher than the threshold state, then the processor may map the signal to a first binary state, otherwise the signal is mapped to a second binary state. In various embodiments, the threshold may be adjustable or centrally configurable. This may allow, for example, the processor 405 to adjust the amount of pressure that is required to register a “press” or “click” of a button.

Processor 405 may create data packets or otherwise encode the summary signals. These may then be transmitted to a user device (e.g., device 106b) via connector 415 (e.g., if transmitted by wired connection), via network port 410 (e.g., if transmitted by network; e.g., if transmitted by wireless network), or via any other means. User device 106b may include a computer data interface controller (e.g., as network port 410; e.g., as connector 415; e.g., as part of network port 410; e.g., as part of connector 415; e.g., in addition to network port 410 and/or connector 415), which may receive incoming data from peripheral device 107a. The incoming data may be decoded and then passed to a peripheral driver program on the user device 106b. In various embodiments, different models or types of peripheral devices may require different drivers. Thus, for example, user device 106b may include a separate driver for each peripheral device with which it is in communication. A driver program for a given peripheral device may be configured to translate unique or proprietary signals from the peripheral device into standard commands or instructions understood by the operating system on the user device 106b. Thus, for example, a driver may translate signals received from a mouse into a number of pixels of displacement of the mouse pointer. The peripheral device driver may also store a current state of the peripheral device, such as a position of the device (e.g., mouse) or state of depression of one or more buttons. A driver may pass peripheral device states or instructions to the operating system as generated, as needed, as requested, or under any other circumstances. These may then be used to direct progress in a program, application, process, etc.

Sensors

Various embodiments may employ sensors (e.g., sensor 330; e.g., sensor 430). Various embodiments may include algorithms for interpreting sensor data. Sensors may include microphones, motion sensors, tactile/touch/force sensors, voice sensors, light sensors, air quality sensors, weather sensors, indoor positioning sensors, environmental sensors, thermal cameras, infrared sensors, ultrasonic sensors, fingerprint sensors, brainwave sensors (e.g., EEG sensors), heart rate sensors (e.g., EKG sensors), muscle sensors (e.g., EMG electrodes for skeletal muscles), barcode and magstripe readers, speaker/ping tone sensors, galvanic skin response sensors, sweat and sweat metabolite sensors and blood oxygen sensors (e.g., pulse oximeters), electrodermal activity sensors (e.g., EDA sensors), or any other sensors. Algorithms may include face detection algorithms, voice detection algorithms, or any other algorithms.

Motion sensors may include gyroscopes, accelerometers, Wi-Fi® object sensing (e.g. using Wi-Fi® signals that bounce off of objects in a room to determine the size of an object and direction of movement), magnetometer combos (inertia measurement units), or any other motion sensors. Motion sensors may be 6 or 9 axis sensors, or sensors along any other number of axes. Motion sensors may be used for activity classification. For example, different types of activities such as running, walking, cycling, typing, etc., may have different associated patterns of motion. Motion sensors may therefore be used in conjunction with algorithms for classifying the recorded motions into particular activities. Motion sensors may be used to track activity in a restricted zone of a building, identify whether an individual is heading toward or away from a meeting, as a proxy for level of engagement in a meeting, steps taken, calories burned, hours slept, quality of sleep, or any other aspect of user activity. Motion sensors may be used to quantify the amount of activity performed, e.g., the number of steps taken by a user. Motion sensors can also be used to track the movement of objects, such as the velocity or distance traveled of a user's mouse. Motion sensors may be used to identify whether an individual is approaching an entry to a house, and if so, trigger a doorbell within the house, and send an alert to a user device or peripheral devices of a user associated with the house.

Motion sensors may use passive infrared (PIR) technology which can detect body and changes in body temperatures. Motion sensors using microwave technology send out microwave pulses and measure how those pulses bounce off moving objects. Ultrasonic motion sensors are another option. Motion sensors can also employ dual use technology by combining multiple detection methods, such as using both passive infrared and microwave technologies. Vibration motion sensors can pick up vibrations caused by people walking through a room. Area reflective motion sensors use infrared waves from an LED and can calculate the distance to an object based on the reflection of the waves.

Motion sensors may be used in conjunction with reminders, such as reminders to change activity patterns. For example, if motion sensors have been used to detect that a user has been sitting for a predetermined period of time, or that the user has otherwise been sedentary, a reminder may be generated for the user to encourage the user to stand up or otherwise engage in some physical activity.

Motion sensors may be used to detect wrist gestures, such as shakes, taps or double taps, or twists. Motion sensors may detect device orientation (e.g., landscape/portrait mode, vertical orientation). A motion sensor may include a freefall sensor. A freefall sensor may be used to monitor handling of packages/devices (e.g., that packages were not dropped or otherwise handled too roughly) or to protect hard drives (e.g., to refrain from accessing the hard drive of a device if the device is undergoing too much motion). In various embodiments, accelerometers may be used as microphones. For example, accelerometers may detect vibrations in air, in a membrane, or in some other medium caused by sound waves. In various embodiments, accelerometers may be used for image stabilization (e.g., to move a displayed image in a direction opposite that of a detected motion of a camera).

Tactile/touch/force sensors may include sensors that are sensitive to force, such as physical pressure, squeezing, or weight. Flex sensors may sense bending. 3-D accelerometers, such as the Nunchuck®/Wiichuck®, may sense motion in space (e.g., in three dimensions). Light sensors may sense ambient light. Light sensors, such as RGB sensors, may sense particular colors or combinations of colors, such as primary colors (e.g., red green and blue). Light sensors may include full spectrum luminosity sensors, ultraviolet (UV) sensors, infrared (IR) sensors, or any other sensors. Light sensors may include proximity sensors. Indoor positioning sensors may include sensors based on dead reckoning, pedestrian dead reckoning (such as the combination of accelerometer and gyroscope, including systems unreliable on infrastructure), geomagnetic or RF signal strength mapping, Bluetooth® beacons, or based on any other technology. Environmental sensors may include barometers, altimeters, humidity sensors, smoke detectors, radiation detectors, noise level sensors, gas sensors, temperature sensors (e.g., thermometers), liquid flow sensors, and any other sensors. Infrared sensors may be used to detect proximity, body temperature, gestures, or for any other application. Ultrasonic sensors may be used for range-finding, presence/proximity sensing, object detection and avoidance, position tracking, gesture tracking, or for any other purpose.

Outputs

In various embodiments, outputs may be generated by various components, devices, technologies, etc. For example, outputs may be generated by output device 325 and/or by output device 425. Outputs may take various forms, such as lights, colored lights, images, graphics, sounds, laser pointers, melodies, music, tones, vibrations, jingles, spoken words, synthesized speech, sounds from games, sounds from video games, etc. Light outputs may be generated by light emitting diodes (LED's), liquid crystals, liquid crystal displays (LCD's), incandescent lights, display screens, electronic ink (E-ink), e-skin, or by any other source. In various embodiments, outputs may include vibration, movement, or other motion. Outputs may include force feedback or haptic feedback. Outputs may include temperature, such as through heating elements, cooling elements, heat concentrating elements, fans, or through any other components or technologies. In various embodiments, an output component may include a motor. A motor may cause a mouse to move on its own (e.g., without input of its owner). In various embodiments, a first mouse is configured to mirror the motions of a second mouse. That is, for example, when the other second mouse is moved by a user, the motor in the first mouse moves the first mouse in a series of motions that copy the motions of the second mouse. In this way, for example, a first user can see the motions of another user reflected in his own mouse. In various embodiments, outputs may take the form of holograms. In various embodiments, outputs may take the form of scents or odors or vapors. These may be generated with dispensers, for example. In various embodiments, outputs may consist of alterations to an in-home (or other indoor) environment. Outputs may be brought about by home control systems. Alterations to the environment may include changing temperature, humidity, light levels, state of window shades (e.g., open are closed), state of door locks, security cameras settings, light projections onto walls, or any other alteration.

Third-Party Devices

Turning now to FIG. 5, a block diagram of a third-party device 108 according to some embodiments is shown. In various embodiments, a third-party device 108 may be a server or any other computing device or any other device. Third-party device 108 may include various components. Third-party device 108 may include a processor 505, network port 510, and storage device 515. Storage device 515 may store data 520 and program 525. A number of components for third-party device 108 depicted in FIG. 5 have analogous components in resource device 102a depicted in FIG. 2 (e.g., processor 505 may be analogous to processor 205), and so such components need not be described again in detail. However, it will be appreciated that any given resource device and any given third-party device may use different technologies, different manufacturers, different arrangements, etc., even for analogous components. It will also be appreciated that data 520 need not necessarily comprise the same (or even similar) data as does data 220, and program 525 need not necessarily comprise the same (or even similar) data or instructions as does program 225.

Central Controllers

Turning now to FIG. 6, a block diagram of a central controller 110 according to some embodiments is shown. In various embodiments, central controller 110 may be a server or any other computing device or any other device. Central controller 110 may include various components. Central controller 110 may include a processor 605, network port 610, and storage device 615. Storage device 615 may store data 620 and program 625. A number of components for central controller 110 depicted in FIG. 6 have analogous components in resource device 102a depicted in FIG. 2 (e.g., processor 605 may be analogous to processor 205), and so such components need not be described again in detail. However, it will be appreciated that any given resource device and central controller 110 may use different technologies, different manufacturers, different arrangements, etc., even for analogous components. It will also be appreciated that data 620 need not necessarily comprise the same (or even similar) data as does data 220, and program 625 need not necessarily comprise the same (or even similar) data or instructions as does program 225.

In various embodiments, the central controller may include one or more servers located at the headquarters of a company, a set of distributed servers at multiple locations throughout the company, or processing/storage capability located in a cloud environment—either on premise or with an outside vendor such as Amazon® Web Services, Google® Cloud Platform, or Microsoft® Azure®. In various embodiments, the central controller may be a central point of processing, taking input from one or more of the devices herein, such as a user device or peripheral device. The central controller has processing and storage capability along with the appropriate management software as described herein. In various embodiments, the central controller may include an operating system, such as Linux, Windows® Server, Mac® OS X Server, or any other suitable operating system.

Communications with the central controller could include user devices, game controllers, peripheral devices, outside websites, conference room control systems, video communication networks, remote learning communication networks, game consoles, streaming platforms, corporate data systems, etc. In various embodiments, the central controller may include hardware and software that interfaces with user devices and/or peripheral devices in order to facilitate communications. The central controller may collect analytics from devices (e.g., user device, e.g., peripheral devices). Analytics may be used for various purposes, such as for the purpose of enhancing the experience of a user.

In various embodiments, the central controller may perform various other functions, such as authenticating users, maintaining user accounts, maintaining user funds, maintaining user rewards, maintaining user data, maintaining user work products, hosting productivity software, hosting game software, hosting communication software, facilitating the presentation of promotions to the user, allowing one user to communicate with another, allowing a peripheral device to communicate with another, or any other function.

In various embodiments, the central controller may include software for providing notifications and/or status updates. The central controller may notify a user when one or more other users is present (e.g., at their respective office locations, e.g., at their respective home computers), when another user wishes to communicate with the user, when a collaborative project has been updated, when the user has been mentioned in a comment, when the user has been assigned work, when the user's productivity has fallen, when the user has been invited to play in a game, or in any other circumstance. Notifications or status updates may be sent to peripheral devices, user devices, smartphones, or to any other devices.

In various embodiments, the central controller may include voting software. The voting software may facilitate voting, decision-making, or other joint or group action. Example votes may determine a plan of action at a company, or a strategy in a team video game. Voting software may permit users or other participants to receive notification of votes, receive background information about decisions or actions they are voting on, cast their votes, and see the results of votes. Voting software may be capable of instituting various protocols, such as multiple rounds of runoffs, win by the majority, win by the plurality, win by unanimous decision, anonymous voting, public voting, secure voting, differentially weighted votes, voting for slates of decisions, or any other voting protocol, or any other voting format. Voting results may be stored in data storage device 615, or sent to other devices for storage.

Game Controllers

In various embodiments, a game controller may include software and/or hardware that interfaces with the user device in order to facilitate game play. Example games include Pokemon®, Call of Duty®, Wii®, League of Legends®, Clash of Clans™, Madden® NFL®, Minecraft®, Guitar Hero®, Fortnite®, solitaire, poker, chess, go, backgammon, bridge, Magic: The Gathering®, Scrabble®, etc. In various embodiments, a game controller may be part of the central controller 110. In various embodiments, a game controller may be in communication with the central controller 110, and may exchange information as needed. In various embodiments, a game controller may be a standalone device or server (e.g., a server accessed via the internet). In various embodiments, a game controller could be housed within a user computer. In various embodiments, a game controller may be part of, or may operate on any suitable device. In various embodiments, the game controller enables gameplay and can communicate with a user device and one or more computer peripherals. In various embodiments, a game controller may perform such functions as maintaining a game state, updating a game state based on user inputs and game rules, creating a rendering of a game state, facilitating chat or other communication between players of a game, maintaining player scores, determining a winner of a game, running tournaments, determining a winner of a tournament, awarding prizes, showing in-game advertisements, are performing any other function related to a game, or performing any other function.

Data Structures

FIGS. 7-37, 50-66, 69-70, 73, 75-76, 81, 87, 92, 95-97, and 103-105, show example data tables according to some embodiments. A data table may include one or more fields, which may be shown along the top of the table. A given field may serve as a category, class, bucket, or the like for data in the table corresponding to the given field (e.g., for data in cells shown beneath the field). Each cell or box in a data table may include a data element. Data elements within the same row of a table may be associated with one another (e.g., each data element in a row may be descriptive of the same underlying person, object, entity, or the like). In various embodiments, data elements may include identifiers or indexes, which may serve to identify (e.g., uniquely identify) the current row and/or the underlying person, object, or entity. In various embodiments, data elements may include keys, which may allow a row from a first table to be associated with a row from a second table (e.g., by matching like keys in the first and second tables). Through use of keys (or through any other means) two or more data tables may be relatable to one other in various ways. In various embodiments, relationships may include one-to-one, one-to-many, many-to-many, or many-to-one relationships.

It will be appreciated that FIGS. 7-37, 50-66, 69-70, 73, 75-76, 81, 87, 92, 95-97, and 103-105 represent some ways of storing, representing, and/or displaying data, but that various embodiments contemplate that data may be stored, represented and/or displayed in any other suitable fashion. It will be appreciated that, in various embodiments, one or more tables described herein may include additional fields or fewer fields, that a given field may be split into multiple fields (e.g., a “name” field could be split into a “first name” field and a “last name” field), that two or more fields may be combined, that fields may have different names, and/or that fields may be structured within tables in any other suitable fashion. It will be appreciated that, in various embodiments, one or more tables described herein may include additional rows, that rows may be split or combined, that rows may be re-ordered, that rows may be split amongst multiple tables, and/or that rows may be rearranged in any other suitable fashion.

It will be appreciated that, in various embodiments, one or more tables described herein may show representative rows of data elements. Rows are not necessarily shown in any particular order. The rows are not necessarily shown starting from the beginning nor approaching the end in any conceivable ordering of rows. Consecutive rows are not necessarily shown. In some embodiments, fewer or more data fields than are shown may be associated with the data tables (e.g., of FIGS. 7-37, 50-66, 69-70, 73, 75-76, 81, 87, 92, 95-97, and 103-105). Only a portion of one or more databases and/or other data stores is necessarily shown in the data table 700 of FIG. 7, for example, and other fields, columns, structures, orientations, quantities, and/or configurations may be utilized without deviating from the scope of some embodiments. Further, the data shown in the various data fields is provided solely for exemplary and illustrative purposes and does not limit the scope of embodiments described herein. In various embodiments, data or rows that are depicted herein as occurring in the same data table may actually be stored in two or more separate data tables. These separate data tables may be distributed in any suitable fashion, such as being stored within separate databases, in separate locations, on separate servers, or in any other fashion.

In various embodiments, data or rows that are depicted herein as occurring in separate or distinct data tables may actually be stored in the same data tables. In various embodiments, two or more data tables may share the same name (e.g., such data tables may be stored in different locations, on different devices, or stored in any other fashion). Such data tables may or may not store the same types of data, may or may not have the same fields, and may or may not be used in the same way, in various embodiments. For example, central controller 110 may have a “user” data table, and third-party device 108 may be an online gaming platform that also has a “user” data table. However, the two tables may not refer to the same set of users (e.g., one table may store owners of peripheral devices, while the other table may store rated online game players), and the two tables may store different information about their respective users. In various embodiments, data tables described herein may be stored using a data storage device (e.g., storage device 615) of central controller 110. For example, “data” 620 may include data tables associated with the central controller 110, which may reside on storage device 615. Similarly, “data” 520 may include data tables associated with the third-party device 108, which may reside on storage device 515. In various embodiments, data tables associated with any given device may be stored on such device and/or in association with such device.

Referring to FIG. 7, a diagram of an example user table 700 according to some embodiments is shown. User table 700 may, for example, be utilized to store, modify, update, retrieve, and/or access various information related to users. The user table may comprise, in accordance with various embodiments, a user ID field 702, a name field 704, an email address field 706, a password field 708, a phone number field 710, a nicknames field 712, an address field 714, a financial account information field 716, a birthdate field 718, a marital status field 720, a gender field 722, a primary language field 724, and an image(s) field 726. Although not specifically illustrated in user table 700, various additional fields may be included, such as fields containing unique identifiers of friends, user achievements, presentations delivered, presentation decks created, value earned, statistics (e.g., game statistics), character unique identifiers, game login information, preferences, ratings, time spent playing games, game software owned/installed, and any other suitable fields.

As depicted in FIG. 7, user table 700 is broken into three sections. However, this is only due to space limitations on the page, and in fact user table 700 is intended to depict (aside from the field names) three continuous rows of data elements. In other words, data elements 703 and 713 are in the same row. Of course, FIG. 7 is merely an illustrative depiction, and it is contemplated that a real world implementation of one or more embodiments described herein may have many more than three rows of data (e.g. thousands or millions of rows). Although not specifically referred to in all cases, other tables described herein may similarly be broken up for reasons of space limitations on the printed page, when in actuality it is contemplated that such tables would contain continuous rows of data, in various embodiments. User ID field 702 may store an identifier (e.g., a unique identifier) for a user. Password field 708 may store a password for use by a user. The password may allow the user to confirm his identity, log into a game, log into an app, log into a website, access stored money or other value, access sensitive information, access a set of contacts, or perform any other function in accordance with various embodiments.

Nicknames field 712 may store a user nickname, alias, screen name, character name, or the like. The nickname may be a name by which a user will be known to others in one or more contexts, such as in a game or in a meeting. In various embodiments, a user may have more than one nickname (e.g., one nickname in a first context and another nickname in a second context). Financial account information field 716 may store information about a financial account associated with the user, such as a credit or debit card, bank account, stored value account, PayPal® account, Venmo® account, rewards account, coupons/discounts, crypto currency account, bitcoin account, or any other account. With this information stored, a user may be given access to peruse his account balances or transaction history, for example. A user may be rewarded through additions to his account, and charged through deductions to his account. In various embodiments, a user may utilize his account to pay another user or receive payment from another user. Various embodiments contemplate other uses for financial account information. User table 700 depicts several fields related to demographic information (e.g., marital status field 720, gender field 722, and primary language field 724). In various embodiments, other items of demographic information may be stored, such as number of children, income, country of origin, etc. In various embodiments, fewer items of demographic information may be stored. Images field 726 may store one or more images associated with a user. An image may include an actual photograph of a user (e.g., through a webcam). The image may be used to help other users recognize or identify with the user. In various embodiments, image field 726 may store an item favored by the user, such as the users pet or favorite vacation spot. In various embodiments, image field 726 may store an image of a character or avatar (e.g., an image by which the user wishes to be identified in a game or other online environment).

Referring to FIG. 8, a diagram of an example networks table 800 according to some embodiments is shown. In various embodiments, a local network may include one or more devices that are in communication with one another either directly or indirectly. Communication may occur using various technologies such as ethernet Wi-Fi®, Bluetooth® or any other technology. In various embodiments, devices on a local network may have a local or internal address (e.g., IP address) that is visible only to other devices on the local network. In various embodiments, the network may have one or more external-facing addresses (e.g., IP addresses), through which communications may be transmitted to or received from external devices or Networks. Networks table 800 may store characteristics of a user's local network, such as their connection speed, bandwidth, encryption strength, reliability, etc. With knowledge of a user's Network characteristics, the central controller may determine the content that is transmitted to or requested from a user. For example if the user has a slow network connection, then the central controller may transmit to the user lower bandwidth videos or live game feeds. The central controller may also determine the frequency at which to poll data from a user device or a peripheral device. For example, polling may occur less frequently if the user has a slower network connection. In another example, the central controller may determine whether or not to request sensitive information from the user (such as financial account information) based on the security of the user's network. As will be appreciated, Various other embodiments may consider information about a user's Network and may utilize such information in making one or more decisions.

In various embodiments, network table 800 may store characteristics of any other network. Network ID field 802 may include an identifier (e.g., unique identifier) for a user's network. Network name field 804 may store a name, such as a human readable name, nickname, colloquial name, or the like for a users network. Network IP address field 806 may store an IP address for the network, such as an externally facing IP address. User ID field 808, may store an indication of a user who owns this network, if applicable. In various embodiments, the network may be owned by some other entity such as a company, office, government agency etc. Specified connection speed field 810 may store a specified, advertised, and/or promised connection speed for a network. The connection speed that is realized in practice may differ from the specified connection speed. Actual upload-speed field 812 may store an indication of an upload speed that is or has been realized in practice. For example, the upload speed may store an indication of the upload speed that has been realized in the past hour, in the past 24 hours, or during any other historical time frame. The upload speed may measure the rate at which a network is able to transmit data.

Actual download-speed field 814 may store an indication of a download speed that is or has been realized in practice (such as during some historical measurement period). The download speed may measure the rate at which a network is able to receive data. The download speed may be important, for example, in determining what types of videos may be streamed to a user network and/or user device. Encryption type field 816 may store an indication of the security that is present on the network. In some embodiments, field 816 stores the type of encryption used by the network. For example, this type of encryption may be used on data that is communicated within the network. In some embodiments, field 816 may store an indication of the security measures that a user must undergo in order to access data that has been transmitted through the network. For example, field 816 may indicate that a user must provide a password or biometric identifiers in order to access data that has been transmitted over the network. Uptime percentage field 818 may store an indication of the amount or the percentage of time when a network is available and/or functioning as intended. For example, if a network is unable to receive data for a one-hour period (perhaps due to a thunderstorm), then the one-hour period may count against the network uptime percentage. In various embodiments, an uptime percentage may be used to determine activities in which a user may engage. For example, a user may be allowed to participate in a multi-person video conference or video game requiring extensive team communication, only if the user's network uptime exceeds a certain minimum threshold.

Referring to FIG. 9, a diagram of an example user device table 900 according to some embodiments is shown. User device table 900 may store one or more specifications for user devices. The specifications may be used for making decisions or selections, in various embodiments. For example, a user may be invited to play in a graphically intensive video game or participate in a collaborative conference call only if the user device can handle the graphics requirements (such as by possessing a graphics card). In another example, a user interface for configuring a peripheral device may be displayed with a layout that depends on the screen size of the user device. As will be appreciated, many other characteristics of a user device may be utilized in making decisions and or carrying out steps according to various embodiments. User device ID field 902 may include an identifier (e.g., a unique identifier) for each user device. Form factor field 904 may include an indication of the form factor for the user device. Example form factors may include desktop PC, laptop, tablet, notebook, game console, or any other form factor.

Model field 906 may indicate the model of the user device. Processor field 908 may indicate the processor, CPU, Neural Chip, controller, logic, or the like within the device. In various embodiments, more than one processor may be indicated. Processor speed field 910 may indicate the speed of the processor. Number of cores field 912 may indicate the number of physical or virtual cores in one or more processors of the user device. In various embodiments, the number of cores may include the number of processors, the number of cores per processor, the number of cores amongst multiple processors, or any other suitable characterization. Graphics card field 914 may indicate the graphics card, graphics processor, or other graphics capability of the user device. RAM field 916 may indicate the amount of random access memory possessed by the user device. Storage field 918 may indicate the amount of storage possessed by that user device. Year of manufacture field 920 may indicate the year when the user device was manufactured. Purchase year field 922 may indicate the year in which the user device was purchased by the user.

Operating System field 924 may indicate the operating system that user device is running. MAC Address field 926 may indicate the media access control address (MAC address) of the user device. Physical location field 928 may indicate the physical location of the user device. This may be the same as the owner's residence address, or it may differ (e.g., if the owner has carried the user device elsewhere or is using it at the office, etc.). Timezone field 930 may indicate the time zone in which the user device is located, and or the time zone to which the user device is set. In one example, the central controller may schedule the user device to participate in a video conference call with a particular shared start time for all participants. In another example, the central controller may schedule the user device to participate in a multiplayer game, and wish to alert the user device as to the game's start time using the user device's time zone. Owner ID field 932 may indicate the owner of the user device. The owner may be specified for example in terms of a user ID, which may be cross-referenced to the user table 700 if desired. Network ID(s) field 934 may indicate a network, such as a local network, on which the user device resides. The network may be indicated in terms of a network ID, which may be cross-referenced to the network table 800 if desired.

IP address field 936 may indicate the IP address (or any other suitable address) of the user device. In some embodiments, such as if the user device is on a local network, then the user device's IP address may not be listed. In some embodiments, IP address field 936 may store an internal IP address. In some embodiments, IP address field 936 may store a network IP address, such as the public-facing IP address of the network on which the user device resides. As well be appreciated, user device table 900 may store various other features and characteristics of a user device.

Referring to FIG. 10, a diagram of an example peripheral device table 1000 according to some embodiments is shown. Peripheral device table 1000 may store specifications for one or more peripheral devices. Peripheral device ID field 1002 may store an identifier (e.g., a unique identifier) for each peripheral device. Type field 1004 may store an indication of the type of peripheral device, e.g., mouse, keyboard, headset, exercise bike, camera, presentation remote, projector, chair controller, light controller, coffee maker, etc. Model field 1006 may store an indication of the model of the peripheral device. Purchase year field 1008 may store the year in which the peripheral device was purchased.

IP Address field 1010 may store the IP address, or any other suitable address, of the peripheral device. In some embodiments, such as if the peripheral device is on a local network, then the peripheral device's IP address may not be listed. In some embodiments, IP address field 1010 may store an internal IP address. In some embodiments, IP address field 1010 may store a network IP address, such as the public-facing IP address of the network on which the peripheral device resides. In some embodiments, IP address field 1010 may store the IP address of a user device to which the associated peripheral device is connected.

Physical location field 1012 may store an indication of the physical location of the peripheral device. Owner ID field 1014 may store an indication of the owner of the peripheral device. Linked user device ID(s) field 1016 may store an indication of one or more user devices to which the peripheral device is linked. For example, if a peripheral device is a mouse that is connected to a desktop PC, then field 1016 may store an identifier for the desktop PC. Communication modalities available field 1018 may indicate one or more modalities through which the peripheral device is able to communicate. For example, if a peripheral device possesses a display screen, then video may be listed as a modality. As another example, if a peripheral device has a speaker, then audio may be listed as a modality. In some embodiments, a modality may be listed both for input and for output. For example, a peripheral device with a speaker may have ‘audio’ listed as an output modality, and a peripheral with a microphone may have ‘audio’ listed as an input modality.

In various embodiments, a peripheral device might have the capability to output images, video, characters (e.g., on a simple LED screen), lights (e.g., activating or deactivating one or more LED lights or optical fibers on the peripheral device), laser displays, audio, haptic outputs (e.g., vibrations), altered temperature (e.g. a peripheral device could activate a heating element where the user's hand is located), electrical pulses, smells, scents, or any other sensory output or format. In various embodiments, any one of these or others may be listed as modalities if applicable to the peripheral device. In various embodiments, a peripheral device may have the capability to input images (e.g., with a camera), audio (e.g., with a microphone), touches (e.g., with a touchscreen or touchpad), clicks, key presses, motion (e.g., with a mouse or joystick), temperature, electrical resistance readings, positional readings (e.g., using a positioning system, e.g., using a global positioning system, e.g., by integrating motion data), or any other sensory or any other sensor or any other information. Such input modalities may be listed if applicable to the peripheral device.

In some embodiments, modalities may be specified in greater detail. For example, for a given peripheral device, not only is the video modality specified, but the resolution of the video that can be displayed is specified. For example, a keyboard with a display screen may specify a video modality with up to 400 by 400 pixel resolution. Other details may include number of colors available, maximum and minimum audio frequencies that can be output, frame refresh rate that can be handled, or any other details. Network ID(s) field 1020 may store an indication of a network (e.g., a local network) on which a peripheral device resides. If the peripheral device does not reside on a network, or is not known, then a network may not be indicated. As will be appreciated, peripheral device table 1000 may store one or more other features or characteristics of a peripheral device, in various embodiments.

Referring to FIG. 11, a diagram of an example peripheral configuration table 1100 according to some embodiments is shown. Peripheral configuration table 1100 may store configuration variables like mouse speed, color, audio level, pressure required to activate a button, etc. A peripheral device may have one or more input and/or sensor components. The peripheral device may, in turn, process any received inputs before interpreting such inputs or converting such inputs into an output or result. For example, a mouse may detect a raw motion (i.e., a change in position of the mouse itself), but may then multiply the detected motion by some constant factor in order to determine a corresponding motion of the cursor. As another example, a presentation remote may receive audio input in the form of words spoken by a presenter. The presentation remote might, in turn, pass such pressure information through a function to determine whether or not to register or store the words. Table 1100 may store one or more parameters used in the process of converting a raw input into an output or a result. In various embodiments, parameters can be altered. Thus, for example, the sensitivity with which a mouse registers a click may be altered, the ratio of cursor motion to mouse motion may be altered, the ratio of page motion to scroll wheel motion may be altered, and so on.

Table 1100 may also store one or more parameters controlling how a peripheral device outputs information. A parameter might include the color of an LED light, the brightness of an LED light, the volume at which audio is output, the temperature to which a heating element is activated, the brightness of a display screen, the color balance of a display screen, or any other parameter of an output. Table 1100 may also store one or more parameters controlling a physical aspect or configuration of a peripheral device. A parameter might include the default microphone sensitivity, the angle at which a keyboard is tilted, the direction in which a camera is facing, or any other aspect of a peripheral device. Table 1100 may also store one or more parameters controlling the overall functioning of a peripheral device. In some embodiments, parameters may control a delay with which a peripheral device transmits information, a bandwidth available to the peripheral, a power available to the peripheral, or any other aspect of a peripheral device's function or operation.

In various embodiments, table 1100 may also store constraints on how parameters may be altered. Constraints may describe, for example, who may alter a parameter, under what circumstances the parameter may be altered, the length of time for which an alteration may be in effect, or any other constraint. Configuration ID field 1102 may store an identifier (e.g., a unique identifier), of a given configuration for a peripheral device. Peripheral device ID field 1104 may store an indication of the peripheral device (e.g., a peripheral device ID) to which the configuration applies. Variable field 1106 may include an indication of which particular parameter, variable, or aspect of a peripheral device is being configured. Example variables include mouse speed, mouse color, headset camera resolution, etc. Default setting field 1108 may include a default setting for the variable. For example, by default a mouse speed may be set to “fast”. In some embodiments, a default setting may take effect following a temporary length of time in which a parameter has been altered.

Outsider third-party control field 1110 may indicate whether or not the parameter can be modified by an outsider (e.g., by another user; e.g., by an opponent). For example, in some embodiments, a user playing a multiplayer video game may have their peripheral device's performance degraded by an opposing player as part of the ordinary course of the game (e.g., if the opposing player has landed a strike on the player). In some embodiments, table 1100 may specify the identities of one or more outside third-parties that are permitted to alter a parameter of a peripheral device. In some embodiments, an outsider is permitted to alter a parameter of a peripheral device only to within a certain range or subset of values. For example, an outsider is permitted to degrade the sensitivity of a user's mouse, however the sensitivity can only be degraded to as low as 50% of maximum sensitivity.

Current setting field 1112 may store the current setting of a parameter for a peripheral device. In other words, if the user were to use the peripheral device at that moment, this would be the setting in effect. Setting expiration time field 1114 may store the time at which a current setting of the parameter will expire. Following expiration, the value of the parameter may revert to its default value, in some embodiments. For example, if the performance of a user's peripheral device has been degraded, the lower performance may remain in effect only for 30 seconds, after which the normal performance of the peripheral device may be restored. As will be appreciated, an expiration time can be expressed in various formats, such as an absolute time, as an amount of time from the present, or in any other suitable format. Expiration time can also be expressed in terms of a number of actions completed by the user. For example, the current setting may expire once a user has clicked the mouse button 300 times.

Referring to FIG. 12, a diagram of an example peripheral device connections table 1200 according to some embodiments is shown. In various embodiments, table 1200 stores an indication of which peripheral devices have been given permission to communicate directly with one another. Peripheral devices may communicate with one another under various circumstances. In some embodiments, two users may pass messages to one another via their peripheral devices. A message sent by one user may be displayed on the peripheral device of the other user. In some embodiments, user inputs to one peripheral device may be transferred to another peripheral device in communication with the first. In this way, for example, a first user may control the peripheral device of a second user by manipulating his own peripheral device (i.e., the peripheral device of the first user). For example, the first user may guide a second users game character through a difficult phase of a video game. As will be appreciated, there are various other situations in which one peripheral device may communicate with another peripheral device.

In various embodiments, peripheral devices may communicate directly with one another, such as with a direct wireless signal sent from one to the other. In various embodiments, one peripheral device communicates with another peripheral device via one or more intermediary devices. Such intermediary devices may include, for example, a user device, a router (e.g., on a local network), the central controller, or any other intermediary device. In other embodiments, one peripheral device may communicate with two or more other peripheral devices at the same time.

As shown, table 1200 indicates a connection between a first peripheral device and a second peripheral device in each row. However, as will be appreciated, a table may store information about connections in various other ways. For example, in some embodiments, a table may store information about a three-way connection, a four-way connection, etc. Connection ID field 1202 may store an identifier (e.g., a unique identifier) for each connection between a first peripheral device and a second peripheral device. Peripheral device 1 ID field 1204 may store an indication of the first peripheral device that is part of the pair of connected devices. Peripheral device 2 ID field 1206 may store an indication of the second peripheral device that is part of the pair of connected devices. Time field 1208 may store the time when the connection was made and/or terminated. Action field 1210 may store the action that was taken. This may include the relationship that was created between the two peripheral devices. Example actions may include initiating a connection, terminating a connection, initiating a limited connection, or any other suitable action.

Maximum daily messages field 1212 may store one or more limits or constraints on the communication that may occur between two peripheral devices. For example, there may be a limit of one thousand messages that may be exchanged between peripheral devices in a given day. As another example, there may be constraints on the number of words that can be passed back and forth between peripheral devices in a given day. Placing constraints on communications may serve various purposes. For example, the owner of a peripheral device may wish to avoid the possibility of being spammed by too many communications from another peripheral device. As another example, the central controller may wish to limit the communications traffic that it must handle.

Referring to FIG. 13, a diagram of an example peripheral device groups table 1300 according to some embodiments is shown. Peripheral device groups may include peripherals that have been grouped together for some reason. For example, any peripheral device (e.g. presentation remote, headset, mouse, camera, keyboard) in a group is permitted to message any other device in the group, all peripheral devices in a group are on the same video game team, all peripheral devices are on the same network, any peripheral device is allowed to take control of any other, or any peripheral device in the group is allowed to interact with a particular app on a computer. Peripheral device group ID field 1302 may include an identifier (e.g., a unique identifier) for a group of peripheral devices. Group name field 1304 may include a name for the group. Group type field 1306 may include a type for the group. In some embodiments, the group type may provide an indication of the relationship between the peripheral devices in the group. For example, peripheral devices in a group may all belong to respective members of a team of software architects of a large software project. This group type may be called a functional team. In some embodiments, a group of peripheral devices may belong to meeting owners, such as people who often lead meetings at a company. Another group type may be for peripheral devices that are proximate to one another. For example, such peripheral devices may all be in the same home, or office, or city. Other types of groups may include groups of peripheral devices with the same owner, groups of peripheral devices belonging to the same company, groups of peripheral devices that are all being used to participate in the same meeting, or any other type of group.

Settings field 1308 may include one or more settings or guidelines or rules by which peripheral devices within the group may interact with one another and/or with an external device or entity. In various embodiments, a setting may govern communication between the devices. For example, one setting may permit device-to-device messaging amongst any peripheral devices within the group. One setting may permit any peripheral device in a group to control any other peripheral device in the group. One setting may permit all peripheral devices in a group to interact with a particular online video game. As will be appreciated, these are but some examples of settings and many other settings are possible and contemplated according to various embodiments. Formation time field 1310 may store an indication of when the group was formed. Group leader device field 1312 may store an indication of which peripheral device is the leader of the group. In various embodiments, the peripheral device that is the leader of a group may have certain privileges and/or certain responsibilities. For example, in a meeting group, the group leader device may be the only device that is permitted to start the meeting or to modify a particular document being discussed in the meeting. Member peripheral devices field 1314 may store an indication of the peripheral devices that are in the group.

Referring to FIG. 14, a diagram of an example user connections table 1400 according to some embodiments is shown. User connections table 1400 may store connections between users. Connections may include “co-worker” connections as during a video conference call, “friend” connections as in a social network, “teammate” connections, such as in a game, “tagging” connections which represent users who often send or receive tags from each other, etc. In various embodiments, table 1400 may include connections that have been inferred or deduced and were not explicitly requested by the users. For example, the central controller may deduce that two users are members of the same company, because they are each members of the same company as is a third user. Connection ID field 1402 may include an identifier (e.g., a unique identifier) that identifies the connection between two users. User 1 ID field 1404 may identify a first user that is part of a connection. User 2 ID field 1406 may identify a second user that is part of a connection.

Time field 1408 may indicate a time when a connection was made, terminated, or otherwise modified. Action field 1410 may indicate an action or status change that has taken effect with respect to this connection. For example, the action field may be ‘initiate connection’, ‘terminate connection’, ‘initiate limited connection’, or any other modification to a connection. Relationship field 1412 may indicate a type of relationship or a nature of the connection. For example, two users may be related as friends, teammates, family members, co-workers, neighbors, or may have any other type of relationship or connection. Maximum daily messages field 1414 may indicate one or more constraints on the amount of communication between two users. For example, a user may be restricted to sending no more than one hundred messages to a connected user in a given day. The restrictions may be designed to avoid excessive or unwanted communications or to avoid overloading the central controller, for example. Various embodiments may include many other types of restrictions or constraints on the connection or relationship between two users.

Referring to FIG. 15, a diagram of an example user groups table 1500 according to some embodiments is shown. Table 1500 may store an indication of users that belong to the same group. User group ID field 1502 may include an identifier (e.g., a unique identifier) of a user group. Group name field 1504 may include a name for the group. Group type field 1506 may include an indication of the type of group. The type of group may provide some indication of the relationship between users in the group, of the function of the group, of the purpose of the group, or of any other aspect of the group. Examples of group types may include ‘Department’, ‘Project team X’, ‘Meeting group’, ‘Call group’, ‘Functional area’, ‘Tagging group’, or any other group type. In some embodiments, a group type may refer to a group of people in the same functional area at a company, such as a group of lawyers, a group of developers, a group of architects or a group of any other people at a company. Formation Time field 1508 may indicate the time/date at which a group was formed. Group leader field 1510 may indicate the user who is the group leader. In some cases, there may not be a group leader. Member users field 1512 may store indications of the users who are members of the group.

Referring to FIG. 16, a diagram of an example ‘user roles within groups’ table 1600 according to some embodiments is shown. Table 1600 may store an indication of which users have been assigned to which roles. In some embodiments, there are standard predefined roles for a group. In some embodiments, a group may have unique roles. Role assignment ID field 1602 may include an identifier (e.g., a unique identifier) for a particular assignment of a user to a role. User group ID field 1604 may store an indication of the group in which this particular role has been assigned. User ID field 1606 may store an indication of the user to which the role has been assigned. Role field 1608 may store an indication of the particular role that has been assigned, such as ‘Project Manager’, ‘Minutes Keeper’, ‘Facilitator’, ‘Tag Review Coach’, ‘Presenter’, ‘Mentor’, ‘Leader’, ‘Teacher’, etc.

Referring to FIG. 17, a diagram of an example user achievements table 1700 according to some embodiments is shown. User achievements table 1700 may store achievements, accolades, commendations, accomplishments, records set, positive reviews, or any other noteworthy deeds of a user. Achievements may be from a professional setting, from a game setting, from an educational setting, or from any other setting. In various embodiments, achievements are related to tags received by a user, tags sent to other users, or actions taken as a result of tags. Achievement ID field 1702 may store an identifier (e.g., a unique identifier) of a particular achievement achieved by a user. User ID field 1704 may store an indication of the user (or multiple users) that have made the achievement. Time/date field 1706 may store the date and time when the user has achieved the achievement. Achievement type field 1708 may indicate the type of achievement, the context in which the achievement was made, the difficulty of the achievement, the level of the achievement, or any other aspect of the achievement. Examples of achievement types may include ‘professional’, ‘gaming’, ‘educational’, or any other achievement type. Achievement field 1710 may store an indication of the actual achievement. Example achievements may include: the user got through all three out of three meeting agenda items; the user received 10 positive tags relating to the quality of their ideas; the user provided additional insights regarding the tags of 25 other users, the user learned pivot tables in Excel®; or any other achievement.

Reward field 1712 may indicate a reward, acknowledgement, or other recognition that has or will be provided to the user for the achievement. Example rewards may include: the users office mouse glows purple for the whole day of Jul. 22, 2020; a congratulatory message is sent to all participants in a meeting; the user receives three free music downloads; the user receives a financial payment (such as money, digital currency, game currency, game items, etc.); the user receives a discount coupon or promotional pricing, the users name is promoted within a game environment; the users video conference photo is adorned with a digital crown, or any other reward. Provided field 1714 may indicate whether or not the reward has been provided yet. In some embodiments, table 1700 may also store an indication of a time when a reward has been or will be provided.

Referring to FIG. 18, a diagram of an example stored value accounts table 1800 according to some embodiments is shown. Stored value accounts table 1800 may store records of money, currency, tokens, store credit, or other value that a user has on deposit, has won, is owed, can receive on demand, or is otherwise associated with a user. A users stored-value account may store government currency, cryptocurrency, game currency, game objects, etc. A user may utilize a stored-value account in order to make in-game purchases, in order to pay another user for products or services, in order to purchase a product or service, or for any other purpose. Stored value account ID field 1802 may store an identifier (e.g., a unique identifier) for a user's stored-value account. Owner(s) field 1804 may store an indication of the owner of a stored-value account. Password field 1806 may store an indication of a password required in order for a user to gain access to a stored-value account (e.g., to her account). For example, the password may be required from a user in order for the user to withdraw funds from a stored-value account. In other embodiments, authentication data field 1808 includes authentication values like a digital fingerprint and/or voice recording that are used to access stored value. In various embodiments, a table such as table 1800 may store a username as well. The username may be used to identify the user when the user is accessing the stored-value account.

Currency type field 1810 may store an indication of the type of currency in the stored-value account. The currency may include such traditional currencies as dollars or British pounds. The currency may also include stock certificates, bonds, cryptocurrency, game currency, game tokens, coupons, discounts, employee benefits (e.g. one or more extra vacation days), game skins, game objects (e.g. a +5 sword, a treasure map), cheat codes, merchant rewards currency, or any other type of currency or stored value. Balance field 1812 may store a balance of funds that the user has in her stored-value account. In some embodiments, a negative balance may indicate that a user has overdrawn an account and/or owes funds to the account. Hold amount field 1814 may indicate an amount of a hold that has been placed on funds in the user account. The hold may restrict the user from withdrawing funds beyond a certain amount, and/or may require the user to leave at least a certain amount in the account. The hold may ensure, for example, that the user is able to meet future obligations, such as financial obligations.

Referring to FIG. 19, a diagram of an example asset library table 1900 according to some embodiments is shown. Asset library table 1900 may store records of digital assets, such as music, movies, TV shows, videos, games, books, e-books, textbooks, presentations, spreadsheets, newspapers, blogs, graphic novels, comic books, lectures, classes, interactive courses, exercises, cooking recipes, podcasts, software, avatars, etc. These assets may be available for purchase, license, giving out as rewards, etc. For example, a user may be able to purchase a music file from the central controller 110. As another example, a user who has achieved a certain number of five star tags for excellence in meeting facilitation may have the opportunity to download a free electronic book. In various embodiments, asset library table 1900 may store analog assets, indications of physical assets (e.g., a catalog of printed books or software), or any other asset, or an indication of any other asset.

Asset ID field 1902 may store an identifier (e.g., a unique identifier) for a digital asset. Type field 1904 may store an indication of the type of asset, such as ‘software’, ‘music’, ‘movie’, ‘video game’, ‘podcast’, etc. Title field 1906 may store a title associated with the asset. For example, this might be the title of software, a movie, the title of a song, the title of a class, etc. Publisher field 1908 may store an indication of the publisher who created the asset. In various embodiments, table 1900 may store an indication of any contributor to the making of a digital asset. For example, table 1900 may store an indication of a songwriter, producer, choreographer, creator, developer, author, streamer, editor, lecturer, composer, cinematographer, dancer, actor, singer, costume designer, or of any other contributor. Artist field 1910 may store an indication of the artist associated with an asset. The artist may be, for example, the singer of a song. The artist could also be the name of a production company that created the asset. Duration field 1912 may store the duration of a digital asset. For example, the duration may refer to the length of a movie, the length of a song, the number of words in a book, the number of episodes in a podcast, or to any other suitable measure of duration. Size field 1914 may store an indication of the size of the digital asset. The size may be measured in megabytes, gigabytes, or in any other suitable format. Synopsis field 1916 may store a synopsis, summary, overview, teaser, or any other descriptor of the digital asset. Reviews field 1918 may store an indication of one or more reviews that are associated with the digital asset. The reviews may come from professional critics, previous users, or from any other source. Reviews may take various forms, including a number of stars, number of thumbs up, an adjective, a text critique, an emoji, or any other form.

Referring to FIG. 20, a diagram of an example ‘user rights/licenses to assets’ table 2000 according to some embodiments is shown. Table 2000 may store an indication of software, music, videos, games, books, educational materials, etc. that a user has acquired access to, such as through purchasing or winning a prize. Table 2000 may also store an indication of the nature of the rights or the license that a user has obtained to the acquired asset. User rights/license ID field 2002 may store an identifier (e.g., a unique identifier) for a particular instance of rights being assigned. The instance may include, for example, the assignment of a particular asset to a particular user with a particular set of rights in the asset. Asset ID field 2004 may store an indication of the asset to which rights, license and/or title have been assigned. User ID(s) field 2006 may store an indication of the user or users that has (have) acquired rights to a given asset. Rights field 2008 may store an indication of the nature of rights that have been conferred to the user in the asset. For example, the user may have acquired unlimited rights to view a movie, but not to show the movie in public. A user may have acquired rights to listen to a song up to ten times. A user may have acquired rights to download software up to five user devices. A user may have acquired rights to view an image on a particular peripheral device (e.g. she can listen to a song only via a headset that she has identified). A user may have acquired rights to play a video game for up to seventy-two hours. A user may have acquired rights to view a television series through the end of a particular season. A user may have acquired rights to download a lecture up to three times. A user may have acquired rights to use a software application on up to three devices. A user may have a right to use a movie clip in a presentation deck. A user may have a right to use software only while in a particular location. As will be appreciated, the aforementioned are but some examples according to some embodiments, and various embodiments contemplate that a user may receive other types of rights or licenses to an asset.

Referring to FIG. 21, a diagram of an example user device state log table 2100 according to some embodiments is shown. User device state log table 2100 may store a log of what programs or apps are/were in use at any given time. Table 2100 may include what program or app was at the forefront, what web pages were open, which app was the last to receive input (e.g., user input), which app occupies the most screen real estate, which app is visible on the larger of two screens, which app is using the most processor cycles, etc. Data stored in table 2100 may, for example, help to ascertain productivity of a user. Data stored in table 2100 may help to link keystrokes (or mouse movements, or other peripheral device activity) to a particular app the user was using. For instance, data stored in table 2100 may allow a determination that a particular set of keystrokes was intended to control the Excel app. In various embodiments, table 2100 may provide snapshots over time of the prominence of different programs, apps, or other processes. Data stored in table 2100 may also be used to detect cheating in a game or educational environment. In other embodiments, it provides an indication of the level of engagement of a person participating in a meeting or video conferencing session.

In various embodiments, table 2100 does not store a comprehensive state. Rather, for example, table 2100 may indicate the state of one or more apps, programs, or processes on a user device, such as at a given point in time. In various embodiments, table 2100 may store a substantially complete indication of a state of a user device, such as at a given point in time. In various embodiments, individual rows or records in table 2100 may store a partial state of a user device (e.g., each row may store information about a single app on the user device, such as the prominence of the app). In various embodiments, a more complete or a substantially complete indication of a state of a user device may be ascertained by combining information from multiple rows of table 2100. User device state log ID field 2102 may store an identifier (e.g., a unique identifier) of a state or partial state of a user device. User device ID field 2104 may store an indication of a user device for which the state or partial state is recorded. Time field 2106 may store an indication of a time at which the user device was in a particular state or partial state. Program/app field 2108 may store an indication of a program, app, or other process, such as a program that was running at the time indicated in field 2106. Program/app field 2108 could also store an indication of the operating system version of the user device. Sub-app field 2110 may store an indication of a subordinate program, app, or process, such as a subordinate program that was running at the time indicated in field 2106. The subordinate program, app, or process may be subordinate to the program, app, or process which is stored in field 2108. For example, field 2108 may refer to a browser (e.g., to the Chrome browser), while field 2110 may refer to a particular web page that is being visited by the browser (e.g., to the Google®.com page). Prominence field 2112 may indicate the prominence of the program or app of field 2108 and/or the prominence of the subordinate program or app of field 2110. The prominence may refer to the visibility, or other state of usage for the program, app, etc. Example prominence values may include ‘forefront’, ‘background’, ‘minimized’, ‘sleeping’, ‘first tab’, ‘50% of processor cycles’, ‘last used’, ‘full screen’, or any other indication of a state of usage, etc.

Referring to FIG. 22, a diagram of an example ‘peripheral activity log’ table 2200 according to some embodiments is shown. Peripheral activity log table 2200 may keep track of activities of a peripheral device. Activities may include mouse movement and clicks, keystrokes, which lights on a peripheral device lit up, what direction a joystick was moved in, what image was displayed on a mouse, what direction a camera was facing, how much a headset was shaken, what direction a presentation remote is pointed, how fast an exercise bike wheel is spinning, tags created, tags submitted, or any other activity. Peripheral activity ID field 2202 may store an identifier (e.g., a unique identifier) of an activity in which a peripheral device was engaged. Peripheral ID field 2204 may store an indication of the peripheral device that was involved in the activity. Start time field 2206 may store the time at which the activity started. End time field 2208 may store the time at which the activity ended. For example, if an activity is a mouse motion, the activity start time may be recorded as the time when the mouse first started moving in a given direction, and the end time may be recorded as the time when the mouse either stopped moving or changed directions.

Component field 2210 may store the particular component or part of a peripheral device that was involved in an activity. The component field 2210 may store an indication of a button on a presentation remote, a key on a keyboard, a microphone on a headset, a scroll wheel on a mouse, or any other relevant component of a peripheral device. In some embodiments, the component may be the entire peripheral device, such as when an entire mouse is moved. Action field 2212 may store the action that was performed. Actions may include pressing, tapping, moving, shaking, squeezing, throwing, lifting, changing position (e.g., moving 120 mm in an ‘x’ direction and moving −80 mm in a ‘y’ direction) or any other action. Recipient program field 2214 may store the application, program, or other computer process towards which an action was directed. For example, if a user was using the program Microsoft® PowerPoint®, then a given action may have been directed towards doing something in Microsoft® PowerPoint®, such as advancing a slide. In some embodiments, an action may be directed towards an operating system, a browser, or to any other process. In various embodiments, peripheral device activities may be recorded at varying levels of granularity. In some embodiments, every keystroke on a keyboard may be recorded as a separate activity. In some embodiments, the typing of an entire sentence at a keyboard may be recorded as a single activity. In some embodiments, a series of related activities is recorded as a single activity. For example, when a presentation remote shakes back and forth, this may be recorded as a single shake of the presentation remote. In some embodiments, each individual motion of the presentation remote within the shake is recorded as a separate activity. As will be appreciated, various embodiments contemplate that peripheral device activities may be tracked or recorded at any suitable level of granularity.

Referring to FIG. 23, a diagram of an example ‘peripheral sensing log’ table 2300 according to some embodiments is shown. Peripheral sensing log table 2300 may store a log of sensor readings. In various embodiments, a peripheral device may contain one or more sensors. The sensors may, from time to time (e.g., periodically, when triggered) capture a sensor reading. In various embodiments, such sensor readings may capture passive or involuntary activities, such as a user's temperature, skin conductivity, glucose levels, brain wave readings, pupil dilation, breathing rate, breath oxygen levels, or heart rate. A sensor may capture ambient conditions, such as a temperature, ambient level of lighting, ambient light polarization, ambient level of noise, air pressure, pollution level, presence of a chemical, presence of a pollutant, presence of an allergen, presence of a microorganism, wind speed, wind direction, humidity, pollen count, or any other ambient condition or conditions. In various embodiments, a sensor may capture a position, location, relative position, acceleration, movement, direction of gaze, orientation, tilt, or the like. In various embodiments, a sensor may capture any suitable data.

Sensor reading ID field 2302 may store an identifier (e.g., a unique identifier) of a particular sensor reading. Peripheral ID field 2304 may store an indication of the peripheral device at which the sensor reading has been captured. Sensor field 2306 may store an indication of which sensor has captured the reading. For example, sensor field 2306 may explicitly identify a single sensor or type of sensor from among multiple sensors that are present on a peripheral device. The sensor may be identified, for example, as a heart rate sensor. In some embodiments, a sensor may have a given identifier, serial number, component number, or some other means of identification, which may be stored in field 2306. Start time field 2308 may store the time at which a sensor began to take a reading. End time field 2310 may store the time at which a sensor finished taking a reading. As will be appreciated, different sensors may require differing amounts of time in order to capture a reading. For instance, capturing a reading of a heart rate may require the reading to be taken over several seconds in order to allow for multiple heartbeats. Reading field 2312 may store the actual reading that was captured. For example, the field may store a graph of the acceleration of an accelerometer. In other embodiments, the reading may be a recording of an EKG signal from the start time to an end time.

Referring to FIG. 24, a diagram of an example peripheral message log table 2400 according to some embodiments is shown. Peripheral message log table 2400 may store messages that were passed from one peripheral to another. Message ID field 2402 may store an identifier (e.g., a unique identifier) for each message that is passed. Time field 2404 may store the time of the message. In various embodiments, the time represents the time when the message was transmitted. In other embodiments, the time represents the time that the message was received by a user. In various embodiments, the time may represent some other relevant time pertaining to the message. Initiating peripheral ID field 2406 may store an indication of the peripheral device that originated or sent the message. Receiving peripheral ID field 2408 may store an indication of the peripheral device(s) that received the message. Message content field 2410 may store the content of the message. In various embodiments, a message may comprise instructions, such as instructions for the receiving peripheral device. An example instruction might be that the receiving peripheral device (e.g. presentation remote, camera, headset) light up LED light #3 for three seconds, play an attached advertising jingle, or disable the left button (e.g., of a mouse). In some embodiments, the message may include human-readable content. The content might be intended for display by the receiving peripheral device. For example, the message might include the text “Meeting room 8602 is running 20 minutes late” or “good job”, which would then be displayed by the receiving peripheral device. In various embodiments, the message may include further instructions as to how, when, where, or under what circumstances the message should be displayed.

Referring to FIG. 25, a diagram of an example ‘generic actions/messages’ table 2500 according to some embodiments is shown. Generic actions/messages table 2500 may store a set of generic or common actions or messages that might be initiated by a user. For example, in the context of a multiplayer video game, it may be common for one team member to send to another team member a message such as “nice going”, or “cover me”. In the context of a business meeting, messages could include expressions such as “good idea” or “excellent facilitation.” In the context of an educational setting, messages might include “it's your turn” or “that answer is correct.” In situations where certain messages or actions may be commonplace, it may be beneficial that a user have a quick way of sending such messages or taking such actions. In various embodiments, there may be a shortcut for a given action. In various embodiments, the shortcut may comprise a predefined series of motions, button presses, key presses, voice commands, etc. In some embodiments, having a shortcut to sending a message or taking an action may allow a user to overcome an inherent barrier of a given peripheral device. For example, a mouse may not have keys with letters on them, so sending a custom text message using a mouse might otherwise be cumbersome. Generic action ID field 2502 may store an identifier (e.g., a unique identifier) for a particular action. Action/message field 2504 may store an actual message or action. Example messages might include, “excellent presentation” or “I have an idea”. Example actions might include a command to proceed to the next slide in a PowerPoint® presentation, an instruction to paste a stored format to a highlighted portion of a document, an instruction to order cheese pizza, an instruction to submit a tag, or any other message action or instruction.

Referring to FIG. 26, a diagram of an example ‘mapping of user input to an action/message’ table 2600 according to some embodiments is shown. Mapping of user input to an action/message table 2600 may store a mapping or correspondence between a user input and an associated action or message. The user input may be essentially a shortcut for the desired action or message. The user input may provide a quick or accessible means for sending what might otherwise be a more complicated or cumbersome message. The user input may provide a quick or accessible means for taking an action or issuing an instruction that would otherwise be cumbersome or difficult to specify. A user input may be, for example, a particular sequence of mouse clicks or keystrokes, movement of a presentation remote, a particular motion of the head, or any other user input. Actions might include giving a thumbs-up to another user, ordering a pizza, commenting on a tag, or any action specified in table generic actions/messages table 2500. Mapping ID field 2602 may store an identifier (e.g., a unique identifier) for a particular mapping between a user input and an action or message. Peripheral type field 2604 may store an indication of the type of peripheral on which the user input would be valid or relevant. For example, inputting a set of alpha-numeric keys may only be valid on a keyboard. Shaking one's head may only be valid using a headset, for example.

In various embodiments, a peripheral device may be in any of two or more different modes or states. For example, a peripheral device might be in “in use” mode, or it might be in “idle” mode. For example, a peripheral device might be in “game” mode, or it might be in “work” mode. When a peripheral device is in a first mode, it may be operable to initiate one or more actions. However, when a peripheral device is in a second mode, it may not be operable to initiate one or more actions. For instance, when a peripheral device is in “game” mode, the peripheral device may be operable to send a message to a teammate with just a few predetermined keystrokes. However, when the same peripheral device is in “work” mode, the same message might, at best, be meaningless, and at worst interfere with work. Mode of peripheral field 2606 may be a mode or state of a peripheral device that is relevant to a particular action. For example, field 2606 may store a mode in which a peripheral device is operable to take an associated action. In some embodiments, field 2606 may store a mode in which a peripheral device is not operable to take an associated action. In various embodiments, a given input sequence may be valid in more than one mode of a peripheral device, however the input sequence may have different meanings in the different modes. Example modes may include action mode, messaging mode, in-use mode, idle mode, etc.

Input sequence field 2608 may store the user inputs that will trigger an associated action. User inputs may comprise a set of clicks, button presses, motions, or any other set of inputs. Action field 2610 may store an action that the user wishes to take when he provides the user inputs. The action may include a generic action from table 2500, in which case an identifier for such an action from table 2500 may be stored in field 2610. The action may include any other action, message, instruction or the like. In some embodiments, certain actions may be valid only when both an originating peripheral device and a receiving peripheral device are both in the proper modes. For example, in order for a text message to be sent from one peripheral device to another peripheral device, the initiating peripheral device must be in “text” mode, and the receiving peripheral device must be in “idle” mode. In such embodiments, for example, table 2600 may store modes for two peripheral devices (e.g., for both an initiating and for a receiving peripheral device). In some embodiments, the relevant mode is the mode of the receiving peripheral device. In such embodiments, for example, table 2600 made store modes for the receiving peripheral device.

Referring to FIG. 27, a diagram of an example ‘user game profiles’ table 2700 according to some embodiments is shown. User game profiles table 2700 may store a user's profile with respect to a particular game, a particular gaming environment, a tournament, a game site, or any other situation. A user's profile may include login information, identifying information, information about preferences for playing the game, information about when a user is available for playing a game, information about users' communications preferences during a game, and/or any other information. User game profile ID field 2702 may store an identifier (e.g., a unique identifier) for a user game profile. Game ID field 2704 may store an indication of the game for which the user profile applies. In various embodiments, the game refers to a generic game such as “Call of Duty” rather than to a specific instance of that game. In other words, for example, a user's profile may govern how the user plays any game of a particular title. User ID field 2706 may store an indication of the user corresponding to the present user profile. Password field 2708 may store an indication of a password to be used by the user. The password may be used when the user logs in to a gaming site to play a game. In some embodiments, the password may be entered by the user when making an in-game purchase. In some embodiments, the password is stored in an encrypted form. As will be appreciated, the user may utilize the password for various other purposes. In some embodiments, table 2700 may store other or alternative identifying information, such as a user image, a user fingerprint, or some other biometric of the user. In some embodiments, a user may login via other means, such as by using credentials from another user account (e.g., a Google® or Facebook account belonging to the same user). Such alternative identifying information may also be encrypted while stored.

Screen name field 2710 may store a screen name, nickname, character name, alias, username, or any other name by which new user may be referenced in a game environment, or in any other environment. Preferred character field 2712 may store an indication of a user's preferred character to use in a game. For example, a game may allow a user to select a particular character to control within the game. Different characters may have different capabilities, different weaknesses, different looks, or other differences. In some embodiments, table 2700 may store a user's preferred role or function within a multiplayer game. For example, users on a team may assume different roles. For example, one user might be a navigator while another user is a gunner. Preferred avatar field 2714 may store an indication of a user's preferred avatar for use in a game, or in any other situation. A user's avatar may represent the way that the user or the user's character appears on screen. An avatar might appear as a human being dressed in a particular way, as a mythical being, as an animal, as a machine, or in any other form. Preferred background music field 2716 may store an indication of a user's preferred background music for use in a game, or in any other environment. Background music may include a melody, a song, a rhythm, a jingle, or any other music. In some embodiments, there may be multiple available music themes, which may be labeled numerically, such as theme 1, theme 2, etc. Field 2716 may then store a theme number as the user's preferred theme. Rating/skill level field 2718 may store an indication of a user's rating, skill level, experience, or any other metric of aptitude within the game. In one example, a user's FIDE chess rating could be stored for use on a chess playing website. Last login field 2720 may store an indication of the time when a user last logged into a game, game environment, game server, or the like. In some embodiments, table 2700 may store a user's login name, which may differ from their screen name. The login name may be used to identify the user when the user first logs in. The screen name may be used within a particular game to identify the user or the users character within that game. As will be appreciated, login names or screen names may be used for various other purposes.

Referring to FIG. 28, a diagram of an example ‘game records’ table 2800 according to some embodiments is shown. Game records table 2800 may store records of games played, such as records of the participants, scores, results, and so on. Game record ID field 2802 may store an identifier, (e.g., a unique identifier) of a particular instance of a game that has been played. For example, this might be a particular instance of the game ‘Frog Hunt III’, that was played at 11:05 p.m. on Aug. 4, 2024. Game ID field 2804 may store an indication of the game title or type of game of which the present record is an instance. For example, game ID field 2804 may indicate that the present game was Frog Hunt III. Start time field 2806 may store an indication of the time when the game started. End time field 2808 may store an indication of the time when the game ended. Participant ID(s) field 2810 may store an indication of the participants in a game. Participants may be individual users, teams, or any other type of participant, in some embodiments. Score field 2812 may store an indication of the score achieved in a game. If there are multiple participants that were each scored separately, then a score may be recorded for each of the participants. Winner field 2814 may store an indication of the winner of the game, if applicable. This may be a team, a user, or even a side in a game (e.g., the Werewolves won against the Vampires). Highest level achieved field 2816 may store an indication of the highest level that was achieved in a game. The level might include a particular board, particular screen, particular boss, a particular difficulty level, a particular environment, or any other notion of a level. Location(s) played from field 2818 may include an indication of where a game was played from. This might be a geographical location, an IP address, a building, or any other indication of a location.

Referring to FIG. 29, a diagram of an example ‘game activity logs’ table 2900 according to some embodiments is shown. In various embodiments, game activity logs table may store activities, such as granular activities or specific activities, that occurred within a game. Such activities may include motions made, routes chosen, doors opened, villains destroyed, treasures captured, weapons used, messages sent, or any other activity that occurred within a game. In some embodiments, activities may include specific inputs made to a game, such as inputs made through a peripheral device. These inputs might include mouse motions, buttons pressed, or any other inputs. Inputs may include passive inputs, such as a heart rate measured for a player during a game. As will be appreciated, many other types of game activities may be recorded and are contemplated according to various embodiments.

Game activity ID field 2902 may include an identifier (e.g., a unique identifier) for a particular activity in a game. Game ID field 2904 may include an indication of a particular game title in which the activity occurred. In some embodiments, field 2904 may include an indication of a particular instance of a game in which an activity occurred. Participant ID field 2906 may include an indication of a participant or player in a game that performed the activity. Start time field 2908 may include an indication of the time when the activity was started or initiated. This time may represent, e.g., a time when a mouse movement was initiated, a time when a character started down a particular road, a time when an attack was ordered, a time when a particular mouse button was pressed, a time when a particular head motion was initiated, etc. End time field 2910 may include an indication of the time when the activity was completed. For example, a mouse movement was completed, an attack was repelled, a bullet hit its mark, etc. Note that, for example, end time 2910 may be mere fractions of a second after start time 2908. This may occur for example when very quick or granular activities are being recorded. However, in some embodiments, an activity may take a longer amount of time.

Game State field 2912 may store an indication of a game state or situation at the time that the activity took place. A game state might include a level within a game, a screen within a game, a location within a virtual world of a game, a health status of a character, an inventory of the possessions of a character, a state of a character (e.g., invisible, e.g., temporarily incapacitated) a location of one or more villains or opponents, a set of playing cards held in a character's hand (e.g., in a poker game), an amount of money or other currency possessed by a player, an amount of money in a pot or kitty (e.g., as in poker), an amount of money remaining with some other game entity (e.g., with the bank in Monopoly), an indication of whose turn it is, a position or location of game pieces or game tokens, an indication of which moves are currently available (e.g., in chess the en passant move is available), an indication of which cards remain in a deck (e.g., in Monopoly® which chance cards are remaining, e.g., in Blackjack, which cards remain in the shoe), or any other aspect of a game state. In some embodiments, a game state may be stored in such detail as to allow the re-creation of the game from that state. Activity field 2914 may include an indication of the activity that was undertaken. Example activities include: shoot; move left; switch to laser weapon; draw 3 cards; e4xd5 (e.g., in chess), etc.

Referring to FIG. 30, a diagram of an example ‘active game states’ table 3000 according to some embodiments is shown. In various embodiments, active game states table 3000 may store the states of games that are in progress. Storing the states of games that are in progress may allow the central controller 110, a game server, or other entity to conduct a game, to render scenes from a game, to receive inputs from players in the game, to update a game to a succeeding state, to continue a game that has been stopped, to introduce a player back into a game after a connection has been lost, to arbitrate a game, or to perform any other desirable function. In various embodiments, table 3000 may store some or all information that is similar to information which is stored in field 2912. Game state ID field 3002 may store an identifier (e.g., a unique identifier) of a game state. Game ID field 3004 may store an indication of, or an identifier for, a game title that is being played. Game record ID field 3006 may store an indication of a game record (e.g., from game records table 2800) corresponding to a game for which the present state is an active game state, or a game state. For example, the present game State may be the state of a game that has been recorded in table 2800. Time remaining field 3008 may represent a time remaining in a game. For example, in a sports game this may represent the amount of time remaining on a game clock. In games where there are multiple periods (e.g., quarters or halves) this may represent the time remaining in the current period. In various embodiments, a stored game state may include an indication of the period that the game is in.

Level field 3010 may include an indication of the level where participants are at in the game. This may include a screen, a difficulty level, an environment, a villain, a boss, a game move number, a stage, or any other notion of level. In various embodiments, a game state might include separate information about two or more participants in the game. For example, each participant might have his or her own score, his or her own possessions, his or her own health status, etc. In some embodiments, table 3000 may have separate sets of fields for each participant. For example, each participant might have his or her own score field. Score fields 3012a and 3012b may include scores for a first and a second participant respectively (e.g., for participant ‘a’ and for participant t′). Location fields 3014a and 3014b may include locations for a first and a second participant, respectively. Power field 3016a and 3016b may include power levels for a first and a second participant, respectively. Ammo field 3018a and 3018b may include amounts of ammunition possessed by a first and a second participant, respectively. As will be appreciated, a game may have more than two participants, in various embodiments. In such cases, table 3000 may include additional fields for the additional players. For example, table 3000 may include fields 3012c, 3014c, and so on. The aforementioned represent but some information that may characterize a game state. It will be appreciated that a game state might comprise one or more additional items of information. Further, different games may warrant different descriptions or fields representative of the game state. It is therefore contemplated, according to various and embodiments, that table 3000 may include additional or alternative fields as appropriate to characterizing a game state.

Referring to FIG. 31, a diagram of an example shared projects table 3100 according to some embodiments is shown. Shared projects table 3100 may store information pertinent to joint, team, shared and/or collaborative work products or projects. Projects may include shared documents, collaborative workspaces, etc. Table 3100 may include data about the work product itself (e.g., an in-progress document), identities of contributors or collaborators to a project, a record of project states over time, historical snapshots of the project, goals for the project, checklist for the project, dependencies of different components of the project, or any other aspect of the project. Project ID field 3102 may store an identifier, (e.g., a unique identifier) for a project (e.g., for a shared project). Project type field 3104 may include an indication of the type of project. Example project types may include text document, spreadsheet, presentation deck, whiteboard, architectural design, paintings, sculptures, drawings, virtual visual arrangements of interiors, music, or any other project type. Participants field 3106 may store an indication of participants in the project. Participants may include contributors, collaborators, reviewers, or other stakeholders. Data field 3108 may include data about the work product. For example, if the project is to construct a text document, then field 3108 may include the text that has been generated so far. If the project is to create an advertising flyer, then field 3108 may include the text copy and the images that are to appear on the flyer. As will be appreciated, the data may take many other forms, and the form of the data may depend on the nature of the project.

Referring to FIG. 32, a diagram of an example of a ‘shared project contributions’ table 3200 according to some embodiments is shown. Shared project contributions table 3200 may record the individual contributions made by participants in shared projects. Contribution ID field 3202 may include an identifier (e.g., a unique identifier) of a contribution made to a project or task. Project ID field 3204 may include an indication of a project to which the contribution was made. The indication may be, for example, a project identifier that cross references to table 3100. Participant ID field 3206 may include an indication of the participant or participants who made a particular contribution. In some embodiments, an indication of who made a particular contribution may be based on one or more tags. Time of contribution field 3208 may store an indication of the time at which a contribution was made. Contribution type field 3210 may store an indication of the type of contribution that was made. A contribution may take various forms, in various embodiments. A contribution might add directly to the final work product. For example the contribution may be a paragraph in a text document. The contribution may be an idea or direction. The contribution may be feedback on a suggestion made by someone else. The contribution may be feedback on an existing work product. The contribution may be a datapoint that a contributor has researched which informs the direction of the project. The contribution may take the form of a message that is exchanged in a chat or messaging area. The contribution may take the form of a tag with information relevant to a project or task. A contribution may be a rating of the quality of the content created to that point. A contribution may be made in any applicable fashion or form. In various embodiments, contribution type field 3210 may store a place or location to which the contribution was made (e.g., “main document”, “chat window”). In various embodiments, field 3210 may store the nature of the contribution. The nature of the contribution may be, for example, ‘background research’, ‘work product’, ‘feedback’, ‘suggestion’, ‘vote’, ‘expert opinion’, ‘edit’, ‘correction’, ‘design’, and so on. Contribution content field 3212 may store the content or substance of the contribution. For example, if the contribution was for the user to write part of a document, then field 3212 may store the text of what the user wrote. If the contribution was an image, then field 3212 may store the image or a link to the image. If the contribution was a suggestion, field 3212 may store the text of the suggestion. As will be appreciated, various embodiments contemplate that a contribution may be stored in other forms.

Referring to FIG. 33, a diagram of an example of advertisement table 3300 according to some embodiments is shown. Advertisement table 3300 may include information about one or more advertisements, promotions, coupons, or other marketing material, or other material. In various embodiments, an advertisement may be presented to a user. An advertisement may be presented to a user in various modalities, such as in a visual form, in audio form, in tactile form, or in any other applicable form. An advertisement may be presented via a combination of modalities, such as via visual and audio formats. In various embodiments, an advertisement may be presented to a user via one or more peripheral devices. For example, an advertisement may be displayed on a display screen built into a presentation remote. In another example, the advertisement is a message spelled out by sequentially lighting up individual keys of a user's keyboard. In various embodiments, an advertisement may be presented to a user via one or more user devices. Advertisement table 3300 may store the content of an advertisement, instructions for how to present the advertisement, instructions for what circumstances the advertisement should be presented under, or any other information about the advertisement. Advertisement ID field 3302 may store an identifier (e.g., a unique identifier) for an advertisement. Advertiser field 3304 may store an indication of an advertiser that is promoting the advertisement. For example, the advertiser may be a company with products to sell.

Ad server or agency field 3306 may store an indication of an ad server, an advertising agency, or other intermediary that distributed the ad. Target audience demographics field 3308 may include information about a desired target audience. Such information may include demographic information, e.g., age, race, religion, gender, location, marital status, income, etc. A target audience may also be specified in terms of one or more preferences (e.g., favorite pastimes, favorite types of vacations, favorite brand of soap, political party). A target audience may also be specified in terms of historical purchases, or other historical behaviors. In some embodiments, a target audience may be specified in terms of video game preferences. Such preferences may be readily available, for example, to a game server. Various environments contemplate that a target audience may be specified in any suitable form, and/or based on any suitable information available. In some embodiments, a target audience may be determined based on information associated with a tag, such as tags identifying a broken projector which determine a target audience in need of a new projector. Ad trigger field 3310 may store an indication of what events or circumstances should trigger the presentation of an ad to a user. Events may include the conclusion of a meeting, the completion of an agenda item, the assignment of a task, the generation of a tag, the content of a tag, the transmission of a tag, an initiation of gameplay by the user, a change in a user's performance while playing a game (e.g., a user's rate of play slows down 10%), a certain level being achieved in a game, a certain score being achieved in a game, or any other situation that occurs in a game. Triggers for presenting advertisements may include ambient factors, such as the temperature reaching a certain level, the noise level exceeding a certain threshold, pollution levels reaching a certain level, humidity reaching a certain level, or any other ambient factors. Triggers may include times of day, e.g., the time is 4 PM. Various embodiments contemplate that any suitable trigger for an advertisement may be used.

In various embodiments, limits field 3312 may store limits or constraints on when an ad may or must be presented, or under what circumstances an ad may be presented. For example, a limit may specify that no more than one thousand ads per day are to be presented across all users. As another example, a limit may specify that a maximum of two of the same advertisements may be presented to a given user. As another example, a constraint may specify that an ad should not be presented between the hours of 11 p.m. and 8 a.m. Another constraint may specify that an ad should not be presented when a mouse is in use (e.g., the ad may be intended for presentation on the mouse, and it may be more likely that the ad is seen if the user is not already using the mouse for something else). Various embodiments contemplate that any suitable constraints on the presentation of an advertisement may be specified. Presenting devices field 3314 may indicate which types of devices (e.g., which types of peripheral devices, which types of user devices), and/or which combination of types of devices, should be used for presenting an advertisement. Example presenting devices may include: a keyboard; a mouse; a PC with mouse; a tablet; a headset; a presentation remote; an article of digital clothing; smart glasses; a smartphone; or any other device; or any other device combination. Modality(ies) field 3316 may indicate the modalities with which an advertisement may or must be presented. Example modalities may include video; tactile; video and LED; image and tactile; heating, or any other modality or combination of modalities. In various embodiments, when an advertisement is presented, it is presented simultaneously using multiple modalities. For example, a video of a roller coaster may be displayed while a mouse simultaneously rumbles. As another example, an image of a relaxing ocean resort may be presented while a speaker simultaneously outputs a cacophony of horns honking (as if to say, “get away from the noise”). Ad content field 3318 may store the actual content of an advertisement. Such content may include video data, audio data, tactile data, instructions for activating lights built into peripheral devices or user devices, instructions for activating heating elements, instructions for releasing fragrances, or any other content or instructions. In some embodiments, ads may be attached to or associated with a tag.

Referring to FIG. 34, a diagram of an example of ‘advertisement presentation log’ table 3400 according to some embodiments is shown. Advertisement presentation log 3400 may store a log of which ads were presented to which users and when, in various embodiments. Advertisement presentation ID field 3402 may store an identifier (e.g., a unique identifier) of an instance when an ad was presented to a user. Advertisement ID field 3404 may store an indication of which advertisement was presented. User ID field 3406 may store an indication of the user to whom the ad was presented. Presentation device field 3408 may store an indication of one or more devices (e.g., user devices, peripheral devices) through which the ad was presented. For example, field 3408 may store an indication of a presentation remote on which a video was presented. In another example, field 3408 may store an indication of a keyboard and a speaker through which an ad was presented (e.g., using two different modalities simultaneously). Time field 3410 may store an indication of when the ad was presented. User response field 3412 may store an indication of how the user responded to the ad. Example responses might include, the user clicked on the ad, the user opened the ad, the user viewed the ad, the user responded with their email address, the user made a purchase as a result of the ad, the user forwarded the ad, the user requested more information, the user agreed to receive product updates via email, the user's heart rate increased after viewing the ad, the user took a recommendation made in the ad, the user had no response to the ad, or any other response.

Referring to FIG. 35, a diagram of an example of ‘AI models’ Table 3500 according to some embodiments is shown. As used herein, “AI” stands for artificial intelligence. An AI model may include any machine learning model, any computer model, or any other model that is used to make one or more predictions, classifications, groupings, visualizations, or other interpretations from input data. As used herein, an “AI module” may include a module, program, application, set of computer instructions, computer logic, and/or computer hardware (e.g., CPU's, GPU's, tensor processing units) that instantiates an AI model. For example, the AI module may train an AI model and make predictions using the AI model. AI Models Table 3500 may store the current ‘best fit’ model for making some prediction, etc. In the case of a linear model, table 3500 may store the ‘best fit’ values of the slope and intercept. In various embodiments, as new data comes in, the models can be updated in order to fit the new data as well.

For example, central controller 110 may wish to estimate a user's skill level at a video game based on just a few minutes of play (this may allow the central controller, for example, to adjust the difficulty of the game). Initially, the central controller may gather data about users' actions within the first few minutes of the video game, as well as the final score achieved by the users in the game. Based on this set of data, the central controller may train a model that predicts a user's final score in a game based on the user's actions in the first few minutes of the game. The predicted final score may be used as a proxy for the user's skill level. As another example, a central controller may wish to determine a user's receptivity to an advertisement based on the motions of the user's head while the user views the advertisement. Initially, the central controller 110 may gather data from users who watch an advertisement and subsequently either click the advertisement or ignore the advertisement. The central controller may record users' head motions while they watch the advertisement. The central controller may then train a model to predict, based on the head motions, the chance that the user will click the advertisement. This may allow the central controller, for example, to cut short the presentation of an ad if it is clear that the user is not receptive to the ad.

AI Model ID field 3502 may store an identifier (e.g., a unique identifier) for an AI model. Model type field 3504 may store an indication of the type of model. Example model types may include ‘linear regression’, ‘2nd degree polynomial regression’, ‘neural network’, deep learning, backpropagation, and so on. Model types may be specified in terms of any desired degree of specificity (e.g., the number of layers in a neural network, the type of neurons, the values of different hyperparameters, etc.). ‘X’ data source field 3506 may store information about the input data that goes into the model. Field 3506 may indicate the source of the data, the location of the data, or may store the data itself, for example. Example input data may include game scores after the first five minutes of play for game gm14821, or the content of team messages passed for game gm94813. ‘Y’ data source field 3508 may store information about the data that is intended to be predicted by the model. This may also be data that is used to train the model, to validate the model, or to test the model. Field 3508 may indicate the source of the data, the location of the data, or may store the data itself, for example. Example output data may include final game scores for game gm14821, or final team scores for game gm94813. For example, a team's final score may be predicted based on the content of the messages that are being passed back and forth between team members. This may help to determine whether a team can improve its methods of communication.

Parameter Values field 3510 may store the values of one or more parameters that have been learned by the model, or which have otherwise been set for the model. Examples of parameters may include a slope, an intercept, or coefficients for a best fit polynomial. Accuracy field 3512 may store an indication of the accuracy of the model. The accuracy may be determined based on test data, for example. As will be appreciated, accuracy may be measured in a variety of ways. Accuracy may be measured in terms of a percentage of correct predictions, a root mean squared error, a sensitivity, a selectivity, a true positive rate, a true negative rate, or in any other suitable fashion. Last update field 3514 may store an indication of when the model was last updated. In various embodiments, the model may be retrained or otherwise updated from time to time (e.g., periodically, every day). New data that has been gathered may be used to retrain the model or to update the model. This may allow the model to adjust for changing trends or conditions. Update trigger field 3516 may store an indication of what would trigger a retraining or other update of the model. In some embodiments, a retraining is triggered by a date or time. For example, a model is retrained every day at midnight. In some embodiments, the model is retrained when a certain amount of new data has been gathered since the last retraining. For example, a model may be retrained or otherwise updated every time 1000 new data points are gathered. Various other triggers may be used for retraining or updating a model, in various embodiments. In various embodiments, a person may manually trigger the retraining of a model.

Referring to FIG. 36, a diagram of an example authentication table 3600 according to some embodiments is shown. Authentication table 3600 may store user data, such as biometric data, that can be used to authenticate the user the next time it is presented. In various embodiments, table 3600 may store multiple items of user data, such as multiple items of biometric data. Different applications may call for different types or different combinations of user data. For example, a very sensitive application may require a user to authenticate himself using three different points of data, such as fingerprint, voiceprint, and retinal scan. A less sensitive application may require only a single point of data for a user to authenticate himself. Authentication ID field 3602 may store an identifier (e.g., a unique identifier) that identifies the authentication data. User ID field 3604 may store an indication or identifier for a user, i.e., the user to whom the data belongs. Image(s) field 3606 may store an image of the user. These may be images of a user's eye, ear, overall face, veins, etc. Fingerprint images field 3608 may store fingerprint data for the user, such as images of the user's fingerprint. Retinal scans field 3610 may store one or more retinal or iris scans for the user. Voiceprint field 3612 may store voice data, voiceprint data, voice recordings, or any other signatures of a user's voice. Gait field 3614 may store body movements of a user. Head movement field 3616 may store the direction in which a user's head is pointing, head movements up and down, side to side, and angle of lean. In various embodiments, other types of data may be stored for a user. These may include other types of biometric data, such as DNA, facial recognition, keystroke data (e.g., a series of keystrokes and associated timestamps), electrocardiogram readings, brainwave data, location data, walking gait, shape of ear, or any other type of data. In various embodiments, data that is personal to a user and/or likely to be known only by the user may be stored. For example, the name of the user's first pet, or the users favorite ice cream may be stored.

In various embodiments, when a user is to be authenticated, the user presents information, and the information presented is compared to user information on file in table 3600. If there is a sufficient match, then it may be concluded that the user is in fact who he claims to be. In one embodiment, after a user is authenticated, the central controller 110 looks up the user in employee table 5000 (or in some embodiments user table 700) to verify that the user is clear to work with objects in a particular location. For example, one user might be cleared to use a particular chemical, but is not allowed into a room because a different chemical is present which the user is not cleared to handle. So even though the user is authenticated, they may not have the right credentials as a user for the chemical in that particular location. Examples of things that may require a level of authentication include radioactive elements, hazardous chemicals, dangerous machinery, government contracts, encryption keys, weapons, company sensitive information such as financials or secret projects, personnel information such as salary data, confined space entry, etc.

Referring to FIG. 37, a diagram of an example privileges table 3700 according to some embodiments is shown. Privileges table 3700 may store one or more privileges that are available to a user, together with criteria that must be met for the user to receive such privileges. For example, one privilege may allow a user to read a document, and the user may be required to provide a single datapoint to prove his identity (i.e., to authenticate himself). As another example, a privilege may allow a user to delete a document, and the user may be required to provide three data points to prove his identity. The different number of data points required by different privileges may reflect the potential harm that might come about from misuse of a privilege. For example, deleting a document may cause more harm than can be caused merely by reading the document. Privilege ID field 3702 may store an identifier (e.g., a unique identifier) of a privilege that may be granted to a user. Privilege field 3704 may store an indication of the privilege that is to be granted. ‘Points of authentication required’ field 3706 may store an indication of the amount of authenticating or identifying information that would be required of a user in order to receive the privilege. In various embodiments, the amount of authenticating information required may be specified in terms of the number of data points required. For example, if two data points are required, then the user must provide two separate items of information, such as a retinal scan and a fingerprint. In some embodiments, some data points may carry more weight than others in terms of authenticating a user. For example, a retinal scan may be worth three points, whereas a fingerprint may be worth only two points. In this case, a user may satisfy an authentication requirement by using any combination of information whose combined point value meets or exceeds a required threshold. As will be appreciated, a user may be required to meet any suitable set of criteria in order to be granted a privilege. In one embodiment, the number of authentication points required may vary by the job title of a user, for example, a senior safety manager may require less authentication than a lower-level user.

Authentication

In various embodiments, various applications can be enhanced with authentication protocols performed by a peripheral, user device 107a, central controller 110, and/or other device. Information and cryptographic protocols can be used in communications with other users and other devices to facilitate the creation of secure communications, transfers of money, authentication of identity, and authentication of credentials. Peripheral devices could be provided to a user who needs access to sensitive areas of a company, or to sensitive information. The peripheral might be issued by the company and come with encryption and decryption keys securely stored in a data storage device of the peripheral. In various embodiments, encryption is an encoding protocol used for authenticating information to and from the peripheral device. Provided the encryption key has not been compromised, if the central controller can decrypt the encrypted communication, it is known to be authentic. Alternatively, the cryptographic technique of “one-way functions” may be used to ensure communication integrity. As used herein, a one-way function is one that outputs a unique representation of an input such that a given output is likely only to have come from its corresponding input, and such that the input cannot be readily deduced from the output. Thus, the term one-way function includes hashes, message authenticity codes (MACs—keyed one-way functions), cyclic redundancy checks (CRCs), and other techniques well known to those skilled in the art. See, for example, Bruce Schneier, “Applied Cryptography,” Wiley, 1996, incorporated herein by reference. As a matter of convenience, the term “hash” will be understood to represent any of the aforementioned or other one-way functions throughout this discussion.

Tamper Evidence/Resistance

One or more databases according to various embodiments could be stored within a secure environment, such as within a secure enterprise or off-premises datacenter within locked doors and 24/7 security guards, or in a cloud computing environment managed by a third party storage/compute provider such as Google® Cloud or Amazon® Web Services. These databases could be further secured with encryption software that would render them unreadable to anyone without access to the secure decryption keys. Encryption services are commonly offered by cloud database storage services. Security could be used to protect all databases according to various embodiments, or it could be applied only to select databases—such as for the storage of user passwords, financial information, or personal information. An alternative or additional form of security could be the use of tamper evident or tamper resistant enclosures for storage devices containing databases. For example, a dedicated computer processor (e.g., processor 605) may have all of its components—including its associated memory, CPU and clock housed in a tamper-resistant and/or tamper-evident enclosure to prevent and reveal, respectively, tampering with any of these components. Tamper-evident enclosures include thermoset wraps which, upon inspection, can reveal any attempt to physically open the structure. Tamper-resistant structures may electronically destroy the memory contents of data should a player try to physically open the structure.

Devices and Interactions

With reference to FIG. 38, a computer mouse 3800 according to some embodiments is shown. The mouse has various components, including left button 3803, right button 3806, scroll wheel 3809, sensors 3812a and 3812b, screen 3815, lights 3818, speaker 3821, and cord 3824. In various embodiments, hardware described herein (e.g., mouse 3800) may contain more or fewer components, different arrangements of components, different component appearances, different form factors, or any other variation. For example, in various embodiments, mouse 3800 may have a third button (e.g., a center button), may lack a cord (e.g., mouse 3800 may be a wireless mouse), may have more or fewer sensors, may have the screen in a different location, or may exhibit any other variation. In various embodiments, screen 3815 may be a display screen, touch screen, or any other screen. Screen 3815 may be a curved display using LCD, LED, mini-LED, TFT, CRT, DLP, or OLED technology or any other display technology that can render pixels over a flat or curved surface, or any other display technology. Screen 3815 may be covered by a chemically tempered glass or glass strengthened in other ways, e.g., Gorilla® Glass®, or covered with any other materials to stand up to the wear and tear of repeated touch and reduce scratches, cracks, or other damage. One use of a display screen 3815 is to allow images or video, such as dog image 3830, to be displayed to a user. Such an image could be retrieved from user table 700 (e.g., field 726) by central controller 110. Images displayed to a user could include game updates, game tips, game inventory lists, advertisements, promotional offers, maps, work productivity tips, tags, images of other players or co-workers, educational images, sports scores and/or highlights, stock prices, news headlines, and the like. In some embodiments, display screen 3815 displays a live video connection with another user which may result in a greater feeling of connection between the two users. Sensors 3812a and 3812b may be contact sensors, touch sensors, proximity sensors, heat sensors, fingerprint readers, moisture sensors, or any other sensors. Sensors 3812a and 3812b need not be sensors of the same type. Sensors 3812a and/or 3218b may be used to sense when a hand is on the mouse, and when to turn display 3830 off and on.

With reference to FIG. 39, a computer keyboard 3900 according to some embodiments is shown. The keyboard has various components, including keys 3903, a screen 3906, speakers 3909a and 3909b, lights 3912a and 3912b, sensors 3915a and 3915b, microphone 3920, optical fibers 3928, 3930a, 3930b, and 3930c, and memory and processor 3925. In various embodiments, the keyboard is wireless. In some embodiments, the keyboard 3900 may connect to a user device, e.g., user device 106b (or other device), via a cord (not shown). Keyboard 3900 could be used by a user to provide input to a user device or to central controller 110, or to receive outputs from a user device or from central controller 110. Keys 3903 can be pressed in order to generate a signal indicating the character, number, symbol, or function button selected. It is understood that there may be many such keys 3903 within keyboard 3900, and that more or fewer keys 3903 may be used in some embodiments. Keys 3903 may be physical keys made of plastic. In some embodiments, keys 3903 are virtual keys or physical keys with display screens on top that can be programmed to display characters on top of the key which can be updated (e.g., updated at any time). Screen 3906 may include any component or device for conveying visual information, such as to a user. Screen 3906 may include a display screen and/or a touch screen. Screen 3906 may include a CRT screen, LCD screen, plasma screen, LED screen, mini-LED screen, OLED screen, TFT screen, DLP screen, laser projection screen, virtual retinal display, or any other screen, and it may be covered by a chemically tempered glass or glass strengthened in other ways, e.g., Gorilla® Glass®, or covered with any other materials to stand up to the wear and tear of repeated touch—and reduce scratches, cracks, or other damage. In some embodiments, displayed visual information can include game tips, game inventory contents, images or other game characters such as teammates or enemy characters, maps, game achievements, messages from one or more other game players, advertisements, promotions, coupons, codes, passwords, secondary messaging screens, presentation slides, data from a presentation, images of other callers on a virtual call, text transcriptions of another user, sports scores and/or highlights, stock quotes, news headlines, etc. In some embodiments, two players are using a keyboard 3900 with both keyboards connected through central controller 110. In these embodiments, one player can type a message using keys 3903 with the output of that typing appearing on screen 3906 of the other player. In some embodiments screen 3906 displays video content, such as a clip from a game in which one user scored a record high number of points, or a message from a company CEO. In some embodiments, light sources such as lasers, LED diodes, or other light sources, can be used to light up optical fibers 3928, 3930a, 3930b, and 3930c with a choice of colors; in some embodiments, the colors controlled by central controller 110 for the keyboards of various players in a game, or various participants in a meeting, can be synchronized, or used to transmit information among players or participants, e.g. when players or participants are available, unavailable, away for a time, in “do not disturb” mode, or any other status update that is desired.

Speakers 3909a and 3909b can broadcast sounds and audio related to games, background music, game character noises, game noises, game environmental sounds, sound files sent from another player, etc. In some embodiments, two game players can speak to each other through microphone 3920, with the sound being transmitted through microphone 3920 to memory and processor 3925 and then to central controller 110 to speakers 3915a and 3915b on the other player's keyboard 3900. Lights 3912a and 3912b can illuminate all or part of a room. In some embodiments, suitable lighting technology could include LED, fluorescent, or incandescent. In various embodiments, lights 3912a and 3912b can serve as an alerting system to get the attention of a user such as a game player or a virtual meeting attendee by flashing or gradually increasing the light's intensity. In some embodiments, one user can send a request signal to memory and processor 3920 to flash the lights 3915a and 3915b of the other users keyboard 3900. Sensors 3915a and 3915b may include mechanical sensors, optical sensors, photo sensors, magnetic sensors, biometric sensors, or any other sensors. A sensor may generate one or more electrical signals to represent a state of a sensor, a change in state of the sensor, or any other aspect of the sensor. For example, a contact sensor may generate a “1” (e.g., a binary one, e.g., a “high” voltage) when there is contact between two surfaces, and a “0” (e.g., a binary “0”, e.g., a “low” voltage) when there is not contact between the two surfaces. A sensor may be coupled to a mechanical or physical object, and may thereby sense displacement, rotations, or other perturbations of the object. In this way, for example, a sensor may detect when a surface has been touched, when a surface has been occluded, or when any other perturbation has occurred. In various embodiments, sensors 3915a and 3915b may be coupled to memory and processor 3925, and may thereby pass information on to central controller 110 or to a location controller 8305.

Microphone 3920 can pick up audible signals from a user as well as environmental audio from the surroundings of the user. In one embodiment, microphone 3920 is connected to memory and processor 3925. Memory and processor 3925 allows for the storage of data and processing of data. In one embodiment, memory and processor 3925 is connected to central controller 110 and can send messages to other users, receive files such as documents or presentations, store digital currencies or financial data, store employee ID numbers, store passwords, store cryptographic keys, store photos, store video, and store biometric values from the keypad and store them for processing. In various embodiments, memory and processor 3925 can communicate via wired or wireless network with central controller 110 and house controller 6305. Memory and processor 3925 may include memory such as non-volatile memory storage. In some embodiments, this storage capacity could be used to store software, user images, business files (e.g. documents, spreadsheets, presentations, instruction manuals), books (e.g., print, audio), financial data (e.g. credit card information, bank account information), digital currency (e.g., Bitcoin™), cryptographic keys, user biometrics, user passwords, names of user friends, user contact information (e.g., phone number, address, email, messaging ID, social media handles), health data (e.g. blood pressure, height, weight, cholesterol level, allergies, medicines currently being taken, age, treatments completed), security clearance levels, message logs, GPS location logs, and the like.

Various embodiments contemplate the use of diffusing fiber optics, such as optical fiber 3928 or shorter strand optical fibers 3930a, 3930b, and 3930c. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence, the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., green when someone is available and red when unavailable), or provide diverse and/or visually entertaining lighting configurations.

With reference to FIG. 40, a headset 4000 according to some embodiments is shown. Headband 4002 may serve as a structural element, connecting portions of the headset that are situated on either side of the user's head. The headband may also rest on the user's head. Further, the headband may serve as a conduit for power lines, signal lines, communication lines, optical lines, or any other communication or connectivity between attached parts of the headset. Headband 4002 may include slidable components 4004a and 4004b (e.g., “sliders”), which may allow a user to alter the size of the headband to adjust the fit of the headset. Slidable component 4004a may attach to base 4006a and slidable component 4004b may attach to base 4006b. Right base 4006a and left base 4006b connect into slidable components 4004a and 4004b, and connect to housing 4008a and 4008b. In various embodiments, one or both of the left and right housings may comprise other electronics or other components, such as a processor 4055, data storage 4057, network port 4060, heating element 4065, or any other components. The left and right speakers 4010a and 4010b may broadcast sound into the users left and right ears, respectively. Right cushion 4012a may substantially cover right speaker 4010a, thereby enclosing the right speaker. Right speaker cushion 4012a may be padded along its circumference to surround a user's right ear, and provide a comfortable contact surface for the user. Right speaker cushion 4012a may include perforations or other transmissive elements to allow sound from the left speaker to pass through to the user's ear. Left speaker cushion 4012b may have analogous construction and function for the users left ear.

In various embodiments, one of right speaker cushion 4012a or left speaker cushion 4012b includes one or more tactile dots 4035. A tactile dot may include a small elevated or protruding portion designed to make contact with the user's skin when the headset 4000 is worn. This could allow for embodiments in which processor 4055 could direct a haptic signal to alert a user via tactile dots 4035, or direct heat via heating element 4065, or provide a puff of air. As the headset may have a similar appearance from the front and from the back, a tactile dot (when felt on the appropriate side) may also serve as a confirmation to the user that the headset is facing in the proper direction. A microphone 4014 together with microphone boom 4016 may extend from base 4006b, placing the microphone in a position where it may be proximate to a user's mouth. Headset 4000 may include one or more camera units 4020. Two forward-facing cameras 4022a and 4022b are shown atop the headband 4002. In some embodiments, two such cameras may provide stereoscopic capability. An additional camera (e.g., a backward facing camera) (not shown) may lie behind camera unit 4020 and face in the opposite direction. Camera unit 4020 may also include a sensor 4024 such as a rangefinder or light sensor. Sensor 4024 may be disposed next to forward facing camera 4022a. In some embodiments, sensor 4024 may be a laser rangefinder. The rangefinder may allow the headset to determine distances to surrounding objects or features. In one embodiment, sensor 4024 includes night vision capability which can provide data to processor 4055, which can in some embodiments direct the user in gameplay to avoid danger, capture enemies, or perform other enhanced maneuvers. Camera unit 4020 may include one or more lights 4026 which can help to illuminate objects captured by forward facing cameras 4022a-b.

Buttons 4030a and 4030b, may be available to receive user inputs. Exemplary user inputs might include instructions to change the volume, instructions to activate or deactivate a camera, instructions to mute or unmute the user, instructions to generate a tag, or any other instructions or any other inputs. In various embodiments, headset 4000 may include one or more additional input components. In some embodiments, an extendible stalk 4028 is included to allow the camera unit 4020 to be raised to a higher level, which could allow for sampling of air quality at a higher level, for example. In some embodiments, extendible stalk 4028 may be bendable, allowing a user to position camera unit 4020 at various angles.

In various embodiments, headset 4000 may include one or more attachment structures 4037a and 4037b consisting of connector points for motion sensors, motion detectors, accelerometers, gyroscopes, and/or rangefinders. Attachment structures 4037a and 4037b may be electrically connected with processor 4055 to allow for flow of data between them. Attachment structures 4037a and 4037b could include one or more points at which a user could clip on an attachable sensor 4040. In some embodiments, standard size structures could enable the use of many available attachable sensors, enabling users to customize their headset with just the types of attachable sensors that they need for a particular function. For example, a firefighter might select several types of gas sensors to be worn on the headset, or even attach a sensor for a particular type of gas prior to entering a burning building suspected of containing that gas. In another embodiment, the attachment structures 4037a and 4037b could be located on other portions of headset 4000 such as on speakers 4010a-b or on bases 4006a-b. The attachable sensors 4040 may be used to detect a user's head motions, such as nods of the head or shaking of the head. The sensors may be used for other purposes, too. In some embodiments, a user may take a sensor from attachment structures 4037a or 4037b and clip it to their clothing (or to another user's clothing) and then later return the sensor to attachment structures 4037a or 4037b.

In various embodiments, instead of forward facing cameras 4022a-b (or instead of a backward facing camera), headset 4000 may include a 360-degree camera on top of headband 4002 within camera unit 4020. This may allow for image capture from all directions around the user. In some embodiments, microphone boom lights 4044 may be capable of illuminating the user, such as the user's face or skin or head or other body part, or the user's clothing, or the user's accessories, or some other aspect of the user. In other embodiments, headband lights 4042a and 4042b may be disposed on headband 4002, facing away from a prospective user. Such lights might have visibility to other users, for example. When activated, such lights might signal that the user has accomplished something noteworthy, that it is the user's turn to speak, that the user possesses some rank or office, or the lights may have some other significance, some aesthetic value, or some other purpose.

Display 4046 may be attached to microphone boom 4016. In various embodiments, display 4046 faces inwards towards a prospective user. This may allow a user to view graphical information that is displayed through his headset. In various embodiments, display 4046 faces outwards. In various embodiments, display 4046 is two-sided and may thereby display images both to the user and to other observers. In various embodiments, an inward facing display and an outward facing display need not be part of the same component, but rather may comprise two or more separate components. Headband display 4048 may be disposed on headband 4002, e.g., facing away from a prospective user, and may thereby display images to other observers.

Cushion sensor 4050 may be disposed on right cushion 4012a. When the headset is in use, cushion sensor 4050 may be in contact with a user's skin. The sensor may be used to determine a user's skin hydration, skin conductivity, body temperature, heart rate, or any other vital sign of the user, or any other signature of the user. In various embodiments, additional sensors may be present, such as on left cushion 4012b. Cushion sensor 4050 may be used as a haptic for feedback to the user, to impart some sensory input, which may be a buzzing, a warm spot, or any other sensory information. In various embodiments, additional sensors may be present, such as on left cushion 4012b. Cable 4052 may carry power to headset 4000. Cable 4052 may also carry signals (e.g., electronic signals, e.g., audio signals, e.g., video signals) to and from the headset 4000. Cable 4052 may terminate with connector 4054. In some embodiments, connector 4054 is a USB connector.

Terminals 4067a and 4067b may lead into speaker bases 4006a and 4006b, and may serve as an attachment point for electronic media, such as for USB thumb drives, for USB cables, or for any other type of media or cable. Terminals 4067a-b may be a means for charging headset 4000 (e.g., if headset 4000 is wireless). data storage 455 may comprise non-volatile memory storage. In some embodiments, this storage capacity could be used to store software, user images, business files (e.g. documents, spreadsheets, presentations, instruction manuals), books (e.g. print, audio), financial data (e.g. credit card information, bank account information), digital currency (e.g., Bitcoin™), cryptographic keys, user biometrics, user passwords, names of user friends, user contact information (e.g. phone number, address, email, messaging ID, social media handles), health data (e.g. blood pressure, height, weight, cholesterol level, allergies, medicines currently being taken, age, treatments completed), security clearance levels, message logs, GPS location logs, current or historical environmental data (e.g. humidity level, air pressure, temperature, ozone level, smoke level, CO2 level, CO level, chemical vapors), and the like. In various embodiments, headset 4000 includes a Bluetooth® antenna (e.g., an 8898016 series GSM antenna) (not shown). In various embodiments, headset 4000 may include any other type of antenna. In various embodiments, headset 4000 includes an earbud (not shown), which may be a component that fits in the ear (e.g., for efficient sound transmission).

Headset 4000 may also include accelerometers 4070a and 4070b which are capable of detecting the orientation of headset 4000 in all directions and the velocity of headset 4000. Such accelerometers might be used for detecting the direction of gaze of a user, speed of walking, nodding of the users head, etc. Optical fibers 4072a and 4072b are a thin strand of diffusing optical fiber. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence, the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., red when a user is in an environment with low oxygen levels), or provide diverse and/or visually entertaining lighting configurations. In some embodiments, headset 4000 includes outward speakers 4074 which can generate a sound hearable by other users. A projector 4076 could be used to project information in front of a user. In some embodiments, projector 4076 may project text from a machine instruction manual onto a wall in front of the user. In some embodiments, a smell generator 4078 is capable of generating smells which may be used to alert the user or to calm down the user. Vibration generator 4080 may be used to generate vibrations that a user feels on the surface of cushion 4012a. Piezoelectric sensor 4082 may be attached to headband 4002 so as to detect bending of headband 4002 (e.g. detecting when a user removes or puts on a headset).

In some embodiments, a heads up display (“HUD”) (not shown) and/or “helmet mounted display” (“HMD”) (not shown) is included in headset 4000 and used to display various data and information to the wearer. In some embodiments, HUD and/or HMD capability may be incorporated into projector 4076. The HUD and/or HMD can use various technologies, including a collimator to make the image appear at an effective optical infinity, project an image on a facemask or windshield, or “draw” the image directly on the retina of the user. Some advantages of a HUD and/or HMD include allowing the user to check on various important data points while not changing their visual focus, which might be beneficial when used in aircraft and automobile embodiments. Other applications could include military settings, for motorcyclists, etc. A HUD and/or HMD may display important operational information in industrial settings, such as ambient temperatures, oxygen levels, a timer, the presence of toxic elements, or any other information or data that is needed. A HUD and/or HMD may display status information of another user, such as their heart rate, respiration rate, blood alcohol level, etc. A HUD and/or HMD may display environmental information of another user, such as oxygen level, temperature, location, presence of dangerous gasses, etc. A HUD and/or HMD may also display important information to a gamer, such as health levels, shield strength, remaining ammunition, opponent statistics, or any other relevant information. In some embodiments, a HUD and/or HMD may comprise text output such as instruction steps for fixing a machine, or text instructions for a student who is struggling with a math problem, or recipe instructions for a user baking a cake, etc. In some embodiments, a HUD and/or HMD can be utilized to present augmented reality (“AR”) images, or virtual reality (“VR”) images to the wearer. In some embodiments, a HUD and/or HMD can be used to enhance night vision, enabling the user to be more effective in industrial settings where light is low, or in gaming scenarios where night vision can aid in game play.

In some embodiments, headset 4000 may be constructed in such a way that the earpieces fit inside the ears rather than cover the ears. In these embodiments, headset 4000 is lighter and less cumbersome, and certain features, sensors, etc. are relocated. In embodiments that fit inside the ears, there is more situational awareness that is possible; this may be important in various industrial scenarios in which process noises, alerts, and emergency notifications need to be monitored for safety and/or productivity.

In various embodiments, headset 4000 may facilitate the ability to sense smoke and alert users to stop smoking. In some embodiments, sensors may be used to detect smoke and alert the user. A user may want to try and stop smoking cigarettes and need some coaching from headset 4000. A smoke sensor may be attached to connector point 4037a-b by the user or as displayed in attachable sensor example 4040. When a user lights a cigarette and smoke emits, an attachable sensor 4040 may detect the smoke, provide the information to processor 4055 and provide an alert to the user reminding them to stop smoking. This alert from the processor may be in the form of a vibration from vibration generator 4080, an audible alert saying, ‘please stop smoking, it is bad for you’ in speakers 4010a-b, or in any other forms of feedback (e.g. buzz, beep, chirp). Boom lights 4044 may display a color or pattern (e.g. red blinking) and/or display 4046 may provide an image to distract the user and remind the user to stop smoking (e.g. a video showing someone suffering from lung disease or a picture of their family). The alerts may be selected in advance by the user on a device (e.g., on a user device, peripheral device, personal computer, phone, etc.), loaded using network port 4060 and stored locally in data storage 4057.

In various embodiments, headset 4000 may facilitate the ability to sense smoke and provide safety warnings, with sensors used to detect smoke and alert the user or others around them. A user may be working in a warehouse or industrial setting in building 6802 with flammable substances. If a flammable substance ignites, the headset 4000 may detect the smoke and alert the user more quickly than human senses are possible. A smoke sensor may be attached to connector point 4037a-b by the user or as displayed in attachable sensor 4040. If a flammable substance ignites in an area away from the user, attachable sensor 4040 may detect the smoke, provide the information to processor 4055 and provide an alert to exit the area immediately. This alert from the processor may be in the form of a vibration from vibration generator 4080, an audible alert saying, ‘smoke detected, please exit immediately and call 9-1-1’ in speakers 4010a-b, lights 4042a-b flashing red to alert others around the user to evacuate and take the individual, boom lights 4044 on microphone boom 4016 may display a color or pattern (e.g. blinking red) and/or display 4046 may provide an image to alert the user to exit (e.g. a floor plan and path to the exit the room and building). Likewise, optical fibers 4072a-b may light up in orange for immediate visual alerts to others or emergency workers. The outward speaker 4074 may provide a high pitched burst of beeps to indicate the need to evacuate or a verbal warning that ‘smoke has been detected, please exit immediately’. Attachable sensor 4040 may detect the type of smoke (e.g. chemical, wood, plastic) based on information stored in data storage 4057 and interpreted by processor 4055. If the smoke detected is from a chemical fire, communications to company safety teams may occur through internal satellite, Bluetooth® or other communications mechanisms within headset 4000 and housing 4008a-b to alert them to the type of fire for improved response and specific location. Projector 4076 may display a message on the wall indicating that ‘smoke has been detected and it is a chemical fire—exit immediately—proceed to the wash station’. Also, the projector 4076 may display a map of building 6802 with the nearest exit or provide on display 4046.

In various embodiments, headset 4000 may facilitate the ability to sense various gases (e.g. natural gas, carbon monoxide, sulfur, chlorine) and provide safety warnings. In some embodiments, sensors (e.g. natural gas, carbon monoxide, sulfur) may be used to detect odors or gas composition (e.g. odorless carbon monoxide) and alert the user. A user may be working in their living room where a gas fireplace is located. During the day, the pilot light may go out, but the gas remains on due to a faulty fireplace gas sensor. The user's senses become saturated to a point they no longer smell the gas posing a danger to her family. The headset 4000 may detect the natural gas and alert the user more quickly than human senses are possible. A natural gas sensor may be attached to connector point 4037a-b by the user or as displayed in attachable sensor 4040. Attachable sensor 4040 may detect the natural gas, provide the information to processor 4055 and provide an alert to the user to exit the house immediately or open the windows and doors. This alert from the processor may be in the form of a headset vibration with vibration generator 4080, an audible alert saying, ‘natural gas detected, please exit immediately and call 9-1-1’ in speaker 4010a-b and/or outward speaker 4074, boom lights 4044 may display a color or pattern (e.g. blinking red) and/or display 4046 may provide an image to alert the user to exit (e.g. a floor plan and path to the exit the room and home). The attachable sensor 4040 may be used to detect the type of gas as well (e.g. natural gas, carbon monoxide, non-lethal sulfur, chlorine) based on information saved in data storage 4057 and interpreted by processor 4055. The headset 4000 may alert the fire department, other emergency agencies or family members with headsets through the communications mechanisms (e.g. antenna, satellite, Bluetooth®, GPS) within housing 4008a-b about the gas and composition and location of the user for more rapid response. Likewise, a research and development employee in building 6802 may be working on an experiment to make chlorine gas. Instead of adding small amounts of concentrated hydrochloric acid to the potassium permanganate solution, the researcher adds too much hydrochloric acid, creating an unstoppable reaction and creating too much lethal chlorine gas. The headset 4000 may immediately detect elevated levels of chlorine gas through the attachable sensor 4040 based on values in data storage 4057 and interpreted by processor 4055 and immediately alerts the employee, safety teams, public emergency works and other employees. This alert sent from processor 4055 may be in the form of a buzz from cushion sensor 4050, an audible alert in speaker 4010a-b saying, ‘chlorine gas detected, please exit immediately and call 9-1-1’, boom lights 4044 or headband lights 4042a-b may display a color or pattern (e.g. blinking and solid red variation) and/or display 4046 may provide an image to alert the user to exit (e.g. a floor plan and path to the nearest exit the room). Headset 4000 may alert the fire department, other emergency agencies, local safety team members or employees in close proximity with headsets through the internal communications (e.g. antenna, satellite, Bluetooth, GPS) within housing 4008a-b about the chlorine gas for more rapid and accurate response (e.g. correct equipment to combat the chlorine gas). Alerts (e.g. chlorine gas detected in room 6870) may also be displayed on building 6802 walls.

In various embodiments, headset 4000 may facilitate the ability for a user to progress through a checklist (e.g. recipe). In various embodiments, forward facing cameras 4022a-b may be able to detect steps on a checklist and assist the user. A user may store a recipe (e.g. pasta fagioli soup) in data storage 4057 using an electronic device (e.g. computer, phone, tablet) through network port 4060. This recipe may be interpreted by processor 4055 and stored in data storage 4057 with a unique name (e.g. pasta fagioli soup) for later retrieval. The user may access the recipe by speaking into microphone 4014 to request retrieval of the pasta fagioli soup using a voice command (e.g. ‘retrieve pasta fagioli recipe’). As the user is preparing the soup, the forward facing camera 4022a-b on extendible stalk 4028 may capture the movements and steps and communicate with processor 4055. The processor may determine that the user has skipped adding a dash of tabasco sauce from the recipe and informs the user through speaker 4010a-b that a step was missed and tells the user the ingredient that was left out (e.g. tabasco). Likewise, display 4046 or projector 4076 may also show the steps of the recipe and indicate they are completed (e.g. crossing through the step, checking off the step). If a step is missed or performed out of order or incorrectly as determined by forward facing camera 4022a-b and processor 4055, the headset 4000 may provide alerts such as vibrations from the vibration generator 4080, notices on display 4046 (e.g. ‘stop—a step was missed in the recipe’), boom lights 4044 may display yellow, outward speaker 4074 or speaker 4010a-b may provide verbal warnings (e.g. ‘review steps or ingredients’) of missed steps or missing ingredients. Likewise, a user may decide to by-pass the warning or message if they do not want to include the ingredient by pressing the button 4030a-b indicating to processor 4055 to skip the step or ingredient.

In various embodiments, headset 4000 may facilitate the ability to detect steps on a checklist and assist the user. A pilot or company may input the pre-flight checklist for all aircraft in the headset 4000 and save in data storage 4057 from an electronic device (e.g. computer, phone, digital tablet) through the network port 4060. The pilot, using microphone 4014, may request retrieval of the pre-flight checklist using a voice command (e.g. ‘load pre-flight checklist for MD-11’). The pre-flight checklist may be shown on display 4046 as a reminder to the pilot along with scrolling capabilities. As the pilot is performing the pre-flight check, the forward facing camera 4022a-b may capture the movements and steps of the pilot during the pre-flight activities and communicate those with processor 4055. The accelerometer 4070a-b may detect that the head movement and focus did not occur on an element of the plane referenced in the checklist. The processor detects that the pilot may have skipped checking the flaps on the right wing and may inform the pilot through speaker 4010a-b (e.g. check right wing flaps), vibration to the pilot from vibration generator 4080 to alert the pilot of a missed step, colors on microphone boom lights 4044 (e.g. solid red) and/or communication to the flight control team through communication mechanisms (e.g. Bluetooth, satellite, cellular) that a step was missed. The flight control team may communicate directly to the pilot through the headset 4000 asking her to recheck the pre-flight steps or inform the captain. Likewise, display 4046 may also show the pre-flight checklist and indicate the completed (e.g. crossing through the step, checking off the step) or missing (e.g. highlighting in bold and red) steps.

In various embodiments, headset 4000 may facilitate the ability to coach a user through steps and provide analysis. There may be situations where repeating a step is needed for ongoing improvement and coaching analysis is needed. A new basketball player may have to shoot thousands of free throws to improve their performance. Coaching after every shot may not be appropriate. The headset 4000 with cameras 4022a-b may record each free throw taken by the player during practice. After every 50 shots, processor 4055 may perform an analysis of all shots and provide a coaching summary. The analysis may be in the form of written comments on display 4046 (e.g. 45% shots made, too many dribbles before shooting, not enough arch on the ball, too long of a delay before shooting), highlights of good and poor shots displayed on a wall with projector 4076 for review by the player, verbal feedback in speaker 4010a-b providing steps for improvement or encouragement (e.g. ‘good shot’). Likewise, so as to not interrupt the player, feedback may be given to the coach or others watching. Headband lights 4042a-b may display green when processor 4055 determines the technique in shooting was performed well or red when improvements are needed. The coach observing the player may immediately see the lights and determine if they should stop the player and provide more coaching or encouragement.

In various embodiments, headset 4000 may facilitate the ability to coach or provide feedback to users regarding verification of performed steps. In some embodiments, a user may need to understand what steps of a process were missed for training purposes, but interruption during the process is not desired. A factory worker may be required to assemble small components on a computer board. The user may have been trained and now the employer needs to verify they can successfully complete the steps. The user wearing a headset 4000 begins to assemble the computer board. The forward facing cameras 4022a-b may record each step of assembly along with the duration of each step and communicate this information to processor 4055 and data storage 4057. Once the assembly is completed, processor 4055 may review the steps for accuracy and time and inform the user. The feedback may be through display 4046 or projector 4076 on a wall that a step was missed and/or the time to complete specific steps took too long (e.g. step 3 took 30 seconds and only 15 seconds is allocated). The user may make the necessary corrections and perform the steps again with headset 4000 until there are no missed assembly steps and the time to perform the steps are within an acceptable range. Likewise, when all steps are performed correctly and within an acceptable time, headband lights 4042a-b, lights 4026 or optical fibers 4072a-b may light up (e.g. solid green) to indicate to the supervisor that there are no issues. The factory worker may also get notification through boom lights 4044 (e.g. green) or display 4046 (e.g. “OK—great work”) that there are no performance issues.

In various embodiments, headset 4000 may facilitate the ability to capture records of completing checklist items and/or assigned tasks for later recall. In some embodiments, there may be situations where a user needs to recall specific actions performed as proof that there were no deficiencies. In a manufacturing room where chemical cleaning occurs on parts, it may be necessary to provide evidence that a part was cleaned according to specific instructions and steps to defend the company's actions in court or appease an upset customer. Using headset 4000, forward facing cameras 4022a-b may record the actions of a user cleaning parts in the chemical room with acid tanks. The forward facing cameras record the specific part by reading the part measurements, barcode or image. The processor 4055 compares measurements or images to stored parts in data storage 4057 to retrieve the checklist or procedures for the specific part. While the user is cleaning the part, the forward facing cameras capture the video of the item, date, time, and procedures performed according to the documented checklist. This information may be stored in data storage 4057 for uploading to company databases from network port 4060 or other communications capabilities in housing 4008a-b (e.g. Bluetooth®, satellite, USB connection). In some embodiments, the information stored in data storage 4057 may be used as an audit trail which can be provided to company auditors, regulators, safety inspectors, etc. In various embodiments, a company may use information stored in data storage 4057 to prove in court that a part number was cleaned properly. The company may retrieve the part number and actions that were performed on the part to defend themselves in court. Likewise, they may retrieve all video of the part cleaning process to defend their standard operating procedure.

In various embodiments, headset 4000 may facilitate the ability to include a checklist with criteria that can be verified by eye gaze/head/body orientation. In some embodiments there may be situations where assembly line workers are needed to visually inspect items for quality control. An automobile manufacturer may require a visual inspection of final painted vehicles for scratches or paint flaws. The employee with a headset 4000 and forward facing cameras 4022a-b may inspect the automobiles coming off the assembly line. Accelerometers 4070a-b may be used to monitor eye gaze time and head movements to validate that a user is actually looking at the exterior of the automobile for defects and not in other locations. If the camera or accelerometer detects the user gazing in a direction other than the automobile, vibration from vibration generator 4080 may occur to alert the user to pay attention, a tone in speaker 4010a-b may occur (e.g. short chirping sound), headband lights 4042a-b may flash orange giving the supervisor and opportunity to coach the employee to pay more attention or the display 4046 may show a message to the worker to look in the direction of the automobile. Boom lights 4044 may also blink in red to alert the worker to pay attention.

In various embodiments, headset 4000 may provide an opportunity for another person to observe an action such as in industrial settings, construction, healthcare, fast food and the like without physically being in the room. In healthcare environments where highly contagious or seriously ill people require limited contact, it may be necessary for other medical professionals to assess the patient through the eyes of only one person in the room. A person suffering from meningitis may have a doctor with headset 4000 evaluate their condition while other physicians observe in remote locations. As this is a highly contagious disease, other doctors may want to evaluate them without entering the room. The forward facing cameras 4022a-b may record in the direction the physician is looking at the patient. The physician may dictate through microphone 4014 to turn on lights 4026 so she can evaluate the dilation of the eyes. A doctor watching in a remote location through the eyes of the on-site physician may notice a slow dilation response and ask the doctor in the room to perform a different alertness assessment. The physician may decide to prescribe a new drug and speak into microphone 4014 and show the dosage and drug interactions on display 4046 before writing the prescription. Later, the physician may want to perform a new evaluation technique but needs to see the exact process. Projector 4076 displays on the wall behind the patient the steps and video of the procedure before the doctor performs the evaluation. In some embodiments, evaluation of hearing may take place by having the physician request audible sounds be delivered from outward speaker 4074 so the patient can respond (e.g. hold up your hand if you hear a tone). The overall evaluation may be recorded by cameras 4022a-b and stored in data storage 4057 for future reference and training of interns.

In various embodiments, headsets may facilitate good cleaning practices. Office cleaning may become more important to remove germs and create a safe work environment. In some embodiments, maintenance personnel with headset 4000 may be instructed to spray the desk, wait for 30 seconds and wipe until dry, spending a minimum of 2 minutes per desk to ensure a safe work environment. During cleaning, forward facing cameras 4022a-b may collect the desk cleaning activities of the maintenance worker, send a record to processor 4055 for evaluation against standards and store the results in data storage 4057. The processor determines that in one situation cleaning spray was not applied and the speaker 4010a-b may alert the user to reclean the desk and apply a cleaning solution. The processor may also determine that desks are only being cleaned an average of 1 minute 30 seconds, not the required 2 minutes. Cushion sensor 4050 may provide a haptic response to the worker (e.g. buzz), while display 4046 reminds the worker with a message to clean each desk for 2 minutes and to redo the cleaning, and microphone boom lights flash in multi-colors indicating the worker should reclean the surface. In some embodiments, this information may be sent from data storage 4057 by internal communications (e.g. Bluetooth®, satellite, cellular) in housing 4008a-b to the company facility and maintenance team databases for evaluation. This information may be reviewed with the cleaning company for improvement and compliance. Likewise, when employees approach their desk each day and don a headset 4000, the piezoelectric sensor 4082 may recognize the person is putting on a headset. Forward facing camera 4022a-b or GPS in the housing 4008a-b recognizes the specific desk and location. In some embodiments, processor 4055 may retrieve data from the company database and provide information regarding the cleaning status to display 4046 (e.g. all cleaned) and/or microphone boom lights 4044 (e.g. display solid green for cleaned desk or red for unclean desk) to the employee. Likewise, the employee may be presented with a brief video on display 4046 showing successful cleaning the night before indicating it is safe to sit and begin work.

In various embodiments, headset 4000 may allow a user to generate and transmit tags to other users, such as by recording an audio tag with microphone 4014 for storage in data storage 4057 and later transmission to central controller 110. Display 4046 may list available tag templates, available tag subjects/objects, tags received, aggregate tag information, etc. In some embodiments, buttons 4030a-b may be pressed in order to select items displayed on display 4046 or to issue tag-related commands (e.g. initiate a tag, apply a tag, store a tag, respond to a tag).

With reference to FIG. 41, a camera 4100 according to some embodiments is shown. Mounting arm 4106 and mounting plate 4108 may serve as structural elements, in some embodiments serving to connect camera 4100 to a wall or other suitable surface that serves as a solid base. In some embodiments, rotational motor 4104 and rotational mechanism 4102 may also serve to function as mechanisms which may be used to pan, tilt, and swivel camera 4100, while also providing structure for anchoring camera 4100. In various embodiments, one or more of rotational mechanism 4102, rotational motor 4104, mounting arm 4106, and mounting plate 4108 may serve as a conduit for power lines, signal lines, communication lines, optical lines, or any other communication or connectivity between attached parts of the camera.

A speaker 4110 may be attached to the base of camera 4100, and allow for messages to be broadcast to users within hearing range. A microphone 4114 may be used to detect audio signals (e.g., user voices, crashing objects, dogs barking, kids playing in a pool, games being played).

A forward facing camera 4122 is shown at the front of camera 4100. In some embodiments, a side facing camera 4186 may be pointed 90 degrees in the other direction from forward facing camera 4122, allowing for a greater field of view, and in some embodiments enabling stereoscopic imaging when the two cameras are used together. Forward facing camera 4122 may be part of camera unit 4120 which may also include a sensor 4124 such as a rangefinder or light sensor. Sensor 4124 may be disposed next to forward facing camera 4122. In some embodiments, sensor 4124 may be a laser rangefinder. The rangefinder may allow the camera to determine distances to surrounding objects or features. In one embodiment, sensor 4124 includes night vision capability which can provide data to processor 4155, which can identify safety issues (e.g. an object blocking a pathway) even in low light situations. Camera unit 4120 may include one or more camera lights 4142a and 4142b which can help to illuminate objects captured by forward facing camera 4122. A thermal sensor 4126 may also be disposed next to forward facing camera 4122, and allow infrared wavelengths to be detected which can be used to detect hot machine parts, user temperatures, leaking window seals, etc. A projector 4176 and laser pointer 4178 may also be positioned on camera 4100 so as to output in the direction in which forward facing camera is facing. In some embodiments, projector 4176 and laser pointer 4178 may include rotational capabilities that allow them to point in directions away from forward facing camera 4122.

Buttons 4130a, 4130b, and 4130c may be available to receive user inputs. Exemplary user inputs might include instructions to change the volume, instructions to activate or deactivate a camera, instructions to mute or unmute the user, or any other instructions or any other inputs.

In various embodiments, camera 4100 may include one or more attachment structures 4137 consisting of connector points for motion sensors, motion detectors, accelerometers, gyroscopes, and/or rangefinders. Attachment structure 4137 may be electrically connected with processor 4155 to allow for flow of data between them. Attachment structure 4137 could include one or more points at which a user could clip on an attachable sensor 4140. In some embodiments, standard size structures could enable the use of many available attachable sensors, enabling users to customize the camera with just the types of attachable sensors that they need for a particular function. For example, a manufacturing facility might select several types of gas sensors to be attached to attachment structure 4137. In some embodiments, a user may take a sensor from attachment structure 4137 and clip it to their clothing (or to another users clothing) and then later return the sensor to attachment structure 4137.

In various embodiments, instead of forward facing camera 4122, camera 4100 may include a 360-degree camera on top. This may allow for image capture from all directions around the environment. In some embodiments, camera lights 4142a and 4142b may be capable of illuminating a user, such as the user's face or skin or head or other body part, or the user's clothing, or the users accessories, or some other aspect of the user. When activated, such lights might signal to users that there is a safety issue in the area of view of camera 4100.

Display 4146 may be directly beneath camera 4122. In various embodiments, display 4146 faces towards a prospective user. This may allow a user to view graphical information that is displayed by camera 4100, such as messages (e.g. maximum room occupancy has been exceeded, there is water on the floor, a child just dropped a hazardous object on the floor).

Terminal 4167 may serve as an attachment point for electronic media, such as for USB thumb drives, for USB cables, or for any other type of media or cable. Terminals 4167 may be a means for charging camera 4100 (e.g., if camera 4100 is wireless). Data storage 4157 may comprise non-volatile memory storage. In some embodiments, this storage capacity could be used to store software, user images, business files (e.g. documents, spreadsheets, presentations, instruction manuals), books (e.g. print, audio), financial data (e.g. credit card information, bank account information), digital currency (e.g., Bitcoin™), cryptographic keys, user biometrics, user passwords, names of user friends, user contact information (e.g. phone number, address, email, messaging ID, social media handles), health data (e.g. blood pressure, height, weight, cholesterol level, allergies, medicines currently being taken, age, treatments completed), security clearance levels, message logs, GPS location logs, current or historical environmental data (e.g. humidity level, air pressure, temperature, ozone level, smoke level, CO2 level, CO level, chemical vapors), and the like. In various embodiments, camera 4100 includes a Bluetooth® antenna (e.g., an 8898016 series GSM antenna) (not shown). In various embodiments, camera 4100 may include any other type of antenna. In various embodiments, camera 4100 includes an earbud (not shown), which may be a component that fits in the ear (e.g., for efficient sound transmission).

Camera 4100 may also include accelerometers 4170a and 4170b which are capable of detecting the orientation of camera 4100 in all directions and the velocity of camera 4100. Optical fibers 4172 are thin strands of diffusing optical fiber. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence, the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., red when a user is in an environment with low oxygen levels), or provide diverse and/or visually entertaining lighting configurations.

Network port 4160 may allow for data transfers with user devices, peripheral devices, and/or with central controller 110. Mounting arm lights 4144a and 4144b may help to illuminate the view of camera 4100, and in some embodiments may be used to communicate to users (e.g., flashing red as a warning).

In some embodiments, a smell generator 4180 is capable of generating smells which may be used to alert the user or to calm down the user. Vibration generator 4182 may be used to generate vibrations that a user feels, such as a vibration that travels along a wall emanating from mounting plate 4108.

Supplemental camera 4184 may be associated with camera 4100, but be mobile and thus may be used to get video or photos from other angles and from other places. It may include a clip which allows supplemental camera 4184 to be attached to objects or clothing. In some embodiments, supplemental camera 4184 may store photos and video, or transmit them in realtime to camera 4100. In various embodiments, the supplemental camera is wired to camera 4100 to facilitate the transfer of data and to supply power. In some embodiments, the supplemental camera may include one or more capabilities of GPS, wireless communications, processing, data storage, a laser pointer, range finder, sensors, etc.

In various embodiments, camera 4100 may facilitate the ability to sense smoke and provide safety warnings, with sensors used to detect smoke and alert the user or others around them. A user may be working in a warehouse or industrial setting in building 6802 with flammable substances. If a flammable substance ignites, the camera 4100 may detect the smoke and alert the user more quickly than human senses are possible. A smoke sensor may be attached to attachment structure 4137 by the user or as displayed in attachable sensor 4140. If a flammable substance ignites in an area away from the user, attachable sensor 4140 may detect the smoke, provide the information to processor 4155 and provide an alert to exit the area immediately. This alert from the processor may be in the form of a vibration from vibration generator 4182, an audible alert saying, ‘smoke detected, please exit immediately and call 9-1-1’ from speaker 4110, camera lights 4142 flashing red to alert others around the user to evacuate and take the individual, and/or display 4146 may provide an image to alert the user to exit (e.g. a floor plan and path to the exit the room and building). Likewise, optical fibers 4172 may light up in orange for immediate visual alerts to others or emergency workers. The speaker 4110 may provide a high pitched burst of beeps to indicate the need to evacuate or a verbal warning that ‘smoke has been detected, please exit immediately’. Attachable sensor 4140 may detect the type of smoke (e.g. chemical, wood, plastic) based on information stored in data storage 4157 and interpreted by processor 4155. If the smoke detected is from a chemical fire, communications to company safety teams may occur through internal satellite, Bluetooth® or other communications mechanisms within camera 4100 to alert them to the type of fire for improved response and specific location. Projector 4176 may display a message on the wall indicating that ‘smoke has been detected and it is a chemical fire—exit immediately—proceed to the wash station’. Also, the projector 4176 may display a map of building 6802 with the nearest exit or provide on display 4146.

In various embodiments, camera 4100 may facilitate a user to generate and transmit tags to other users, such as by recording an audio tag with microphone 4114 (or video tag with camera 4122) for storage in data storage 4157 and later transmission to central controller 110. Display 4146 may list available tag templates, available tag subjects/objects, tags received, aggregate tag information, etc. In some embodiments, buttons 4130a-c may be pressed in order to select items displayed on display 4146 or to issue tag-related commands (e.g. initiate a tag, apply a tag, store a tag, respond to a tag).

With reference to FIG. 42, a presentation remote 4200 according to some embodiments is shown. Two views of the presentation remote are shown: a top view 4207 and a front view 4205 (which shows elements at the front of the presentation remote in the direction in which it may be pointed). While various elements of presentation remote 4200 are described here in particular locations on/in the device, it is understood that elements may be placed in many different locations and configurations. Presentation remote 4200 may take many forms, such as being incorporated into a headset, projector, hat, belt, eyeglasses, chair, conference table, mouse, keyboard, etc.

Front view 4205 includes a forward facing camera 4222 at the front of presentation remote 4200 which may capture photos/video of objects (e.g. capturing an image/video of one or more meeting attendees, capturing an image of the setup of a room, capturing an image of a presentation slide) that the presentation remote is pointed at. In various embodiments, instead of (or in addition to) forward facing camera 4222, presentation remote 4200 may include a 360-degree camera. This may allow for a wider field of image capture. In various embodiments, an inward facing camera 4223 may be pointed toward the user of the device, allowing the capture of facial expressions of the user, biometric information of the user (e.g. iris, face geometry), gesture commands, etc. Front view 4205 also shows a sensor 4224 such as a rangefinder or light sensor. Sensor 4224 may be disposed next to forward facing camera 4222. In one embodiment, sensor 4224 includes night vision capability which can provide data to processor 4255, which can identify safety issues (e.g. an object blocking a pathway) even in low light situations. In another embodiment, sensor 4224 may be a thermal sensor which allows infrared wavelengths to be detected which can be used to detect hot machine parts, user temperatures, leaking window seals, etc. Front view 4205 may include one or more camera lights (not shown) which can help to illuminate objects captured by forward facing camera 4222. A projector 4276 and laser pointer 4278 may also be positioned on presentation remote 4200 so as to output in the direction in which forward facing camera 4222 is facing. In some embodiments, projector 4276 and laser pointer 4278 may include rotational capabilities that allow them to point in directions away from forward facing camera 4222. In some embodiments, laser pointer 4278 may be capable of displaying different colors, may flash in order to get the attention of the presenter and/or meeting participants, may display a variety of icons or symbols, may “draw” an image or text by quick movements of laser pointer 4278, etc. Front view 4205 may also include range finder 4284 which may be a laser rangefinder. The rangefinder may allow the presentation remote to determine distances to surrounding objects or people, and/or determine distances to a screen on which a presentation is being projected. A barcode reader 4286 may also be used, allowing presentation remote 4200 to read barcodes, such as a barcode on the wall of a meeting room which contains information about the room, or one or more barcodes incorporated into a presentation that provide supplemental information. Barcode reader 4286 may also be used to scan barcodes of objects (such as supplemental device 4290) in order to register that device with presentation remote 4200. In some embodiments, tag information attached to one or more elements of a presentation slide may be read using barcode reader 4286.

Presentation remote 4200 may include one or more physical buttons and/or one or more virtual buttons (e.g. small displays that can register touch input from a user). Selection button 4232 may allow a user to select from various options (e.g. a list of presentation files, names of meeting participants, tag information) presented on display screen 4246. Forward and back buttons 4230 may allow the user to step forward or backward in the slides of a presentation. Side buttons 4233a and 4233b may be physical (or virtual) buttons that allow a user to provide input while holding presentation remote 4200 in one hand even when looking in a different direction. Configurable buttons 4244a, 4244b, and 4244c may be virtual buttons that a user can define to allow for customizable functionality when pressed (e.g. pressing 4244a retrieves v1 of a presentation, pressing 4244b retrieves v2 of a presentation, pressing 4244c retrieves v3 or a presentation). Jump buttons 4252a and 4252b may be virtual buttons that can be programmed to jump to predetermined locations within a presentation (e.g. pressing jump button 4252a may bring up a ‘milestones’ slide that has an embedded tag named ‘milestones’) which may reduce having to go forward or back through many slides in order to get to a particular slide that is often used in a presentation. Exemplary user inputs might include entering data, changing slides, initiating presentation software, saving a voice file of an idea, selecting from options, identifying a meeting participant from an image, instructions to change the volume, instructions to activate or deactivate a camera, instructions to mute or unmute the user, or any other instructions or any other inputs. In some embodiments, another form of input is a scroll wheel, which allows for selections from display 4246 or other forms of input (e.g. moving forward or backward within a presentation, moving up or down in a list).

In various embodiments, presentation remote 4200 includes lights as signaling, alerts, communication, etc. Facing lights 4226 may be disposed around display 4246, and could alert a user by flashing when a new message or notification is displayed on the display. In some embodiments, facing lights could be associated with particular participants in a room. For example, six facing lights could be individually connected to supplemental devices 4290 of six meeting participants, so that a user of presentation remote 4200 would see one of the facing lights light up when that particular participant wanted to speak. Side lights 4228 could be used to signal to meeting participants, such as by flashing when a meeting break time has ended.

In various embodiments, presentation remote 4200 may include an attachment structure 4237 consisting of connector points for motion sensors, motion detectors, accelerometers, gyroscopes, microphones, speakers, accelerometers, supplemental devices, rangefinders, etc. Attachment structure 4237 may be electrically connected with processor 4255 to allow for flow of data between them. Attachment structure 4237 could include one or more points at which a user could clip on an attachable sensor (not shown). In some embodiments, standard size structures could enable the use of many available attachable sensors, enabling users to customize the presentation remote with just the types of attachable sensors that they need for a particular function. In some embodiments, a user may take a sensor from attachment structure 4237 and clip it to their clothing (or to another user's clothing) and then later return the sensor to attachment structure 4237. A detachable microphone 4216 might be removed and placed in the middle of a conference room table in order to capture audio from the meeting, such as capturing what participants are saying.

In some embodiments, a record button 4262 may allow a user to store audio or video during a meeting or presentation. For example, a brainstorming session facilitator may press record button 4262 to record an idea, then press record button 4262 again to stop the recording and save the audio file to data storage 4257. The facilitator might then use presentation remote 4200 to transmit that audio file of the idea to another user.

Speakers 4210a and 4210b may allow for messages to be broadcast to users and for others (such as meeting participants) who are within hearing range. A microphone 4214 may be used to detect audio signals (e.g., voice of the user, voice of the presenter, room sounds, participant sounds).

Display 4246 may allow for messaging and displaying options to a user. In various embodiments, display 4246 faces towards a prospective user. This may allow a user to view graphical information that is displayed by presentation remote 4200, such as messages (e.g. meeting participants want to take a break, one meeting participant has not returned from a break, tags received from meeting participants, aggregate tag information about a meeting). In some embodiments, display 4246 is touch enabled so that options (e.g. list of presentation versions to use, list of tags received, list of tag subjects, list of participants in the room, list of questions that participants have asked) on display 4246 may be selected by a user touching them. In other embodiments, a user may employ selection button 4232 to select from items listed on display 4246. In some embodiments, a secondary display 4248 allows for additional information to be provided to the user, such as by displaying questions that have been received by an audience or meeting participants. Communication displays 4250a and 4250b may be touch enabled, allowing a user to touch one or more displays 4250a-b which show options to a user. In one example, communication display 4250a shows “Mary Chao” and will call her or open other forms of communication (e.g. text, instant messaging) when selected by a user. Similarly, touching communication display 4250b may open an audio channel to meeting room TR68 so that a meeting owner might check on whether or not that particular room was currently occupied, or to open communications with that room, such as for the purposes of asking an expert in that room to provide some needed knowledge.

Terminal 4267 may serve as an attachment point for electronic media, such as for USB thumb drives, for USB cables, or for any other type of media or cable. Terminal 4267 may be a means for charging presentation remote 4200 (e.g., if presentation remote 4200 is wireless). Processor 4255 may provide computational capability needed for the functionality (e.g. running software, managing communications, directing elements such as lights, processing inputs) of presentation remote 4200. Data storage 4257 may comprise non-volatile memory storage. In some embodiments, this storage capacity could be used to store software, presentations, user images, tag information, business files (e.g. documents, spreadsheets, presentations, instruction manuals), books (e.g. print, audio), financial data (e.g. credit card information, bank account information), digital currency (e.g., Bitcoin™), cryptographic keys, user biometrics, user passwords, names of user friends, user contact information (e.g. phone number, address, email, messaging ID, social media handles), health data (e.g. blood pressure, height, weight, cholesterol level, allergies, medicines currently being taken, age, treatments completed), security clearance levels, message logs, GPS location logs, current or historical environmental data (e.g. humidity level, air pressure, temperature, ozone level, smoke level, CO2 level, CO level, chemical vapors), and the like. In various embodiments, presentation remote 4200 includes a Bluetooth® antenna (e.g., an 8898016 series GSM antenna) (not shown). In various embodiments, presentation remote 4200 may include any other type of antenna. In various embodiments, presentation remote 4200 includes an earbud (not shown), which may be a component that fits in the ear (e.g., for efficient sound transmission).

Presentation remote 4200 may also include accelerometers 4270a and 4270b which are capable of detecting the orientation of presentation remote 4200 in all directions and the velocity of presentation remote 4200. Accelerometers can aid in determining the direction in which presentation remote 4200 is pointed (e.g. for determining which meeting participant that it is pointed at so as to identify the subject of a tag), as well as detecting the movements of a user (e.g. a presenter) during a presentation of meeting facilitation. Optical fibers 4272a and 4272b are thin strands of diffusing optical fiber. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence, the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., red when a presentation is expected to exceed a meeting end time), or provide diverse and/or visually entertaining lighting configurations.

Network port 4260 may allow for data transfers with supplemental devices 4290, user devices, peripheral devices, and/or with central controller 110.

In some embodiments, tactile dots 4235 may include a small elevated or protruding portion designed to make contact with the user's skin when presentation remote 4200 is held. This could allow for embodiments in which processor 4255 could direct a haptic signal to alert a user via tactile dots 4235, or direct heat via heating element 4265, or provide a puff of air.

In some embodiments, a smell generator 4280 is capable of generating smells which may be used to alert the user or to calm down the user. Vibration generator 4282 may be used to generate vibrations that a user feels, such as a vibration (e.g. an alert to the user) that travels through presentation remote 4200.

Supplemental device 4290 may be associated with presentation remote 4200, but be mobile and thus may be provided to other users (e.g. meeting participants) in order to provide input and/or output capability during a meeting or presentation. It may include a clip 4292 which allows supplemental device 4290 to be attached to objects or clothing. In some embodiments, supplemental device 4290 may store photos and video, or transmit them in realtime to presentation remote 4200. In various embodiments, the supplemental device is wired to presentation remote 4200 to facilitate the transfer of data and to supply power. In some embodiments, the supplemental device may have display capabilities and/or include one or more capabilities of GPS, wireless communications, processing, data storage, a laser pointer, range finder, sensors, accelerometers, voting software, feedback software, signaling, vibrations, etc. In some embodiments, supplemental device 4290 includes signaling lights 4294a, 4294b, and 4294c which may be directed by presentation remote 4200 to light up (in many colors) in order to communicate to meeting participants. In various embodiments, signaling lights 4294a-c may also be under the control of the user, allowing a user to provide visual feedback to a presenter or to other participants in a meeting. In some embodiments, colors indicated via signaling lights 4294a-c may indicate that two participants are in alignment, that a participant would like to speak, that a participant is not clear about something, that a participant has a candid observation that they would like to make, etc. A supplemental camera 4296 may be used by a meeting participant to capture images (e.g. a whiteboard with brainstorming notes, photos of other participants, broken object in a room) and/or videos (e.g. capturing a meeting participant explaining a decision that has been made in a meeting). In some embodiments, input buttons 4298a, 4289b, and 4298c allow users to provide information (e.g. voting, ratings, tags, selections from options, questions, identifications or other participants, to presentation remote 4200 or to other supplemental devices 4290. Similarly, slider 4299 may allow for inputs from a user (e.g. providing a rating of meeting quality on a sliding scale).

In various embodiments, presentation remote 4200 may include communications functionality so that a user may connect to another user (e.g. over a phone network, cell network, WiFi, instant messaging, email) and communicate synchronously and/or asynchronously. In such an embodiment, microphone 4214 and speakers 4210a and 4210b may enable the user to speak and hear responses from another user. In one example, a presenter may point presentation remote 4200 at a meeting participant in order to initiate a text messaging channel so that the presenter may communicate in a side channel with the participant which does not disrupt the flow of the meeting. In some embodiments, meeting participants may text messages (e.g. feedback, questions, ratings) to presentation remote 4200 which are then displayed on display 4246.

In various embodiments, presentation remote 4200 may facilitate the ability to sense smoke and provide safety warnings, with sensors used to detect smoke and alert the user or others around them. If the smoke detected is from a chemical fire, communications to company safety teams may occur through internal satellite, Bluetooth® or other communications mechanisms within presentation remote 4200 to alert them to the type of fire for improved response and specific location. Projector 4276 may display a message on the wall indicating that ‘smoke has been detected and it is a chemical fire—exit immediately—proceed to the wash station’. Also, the projector 4276 may display a map of a building with the nearest exit or provided on display 4246.

In various embodiments, presentation remote 4200 may facilitate the ability for a user to manage checklists (e.g. recipes, task lists, chores lists) as described more fully in FIG. 41.

With reference to FIG. 43, a headset 4300 with motion sensor 4301 according to some embodiments is shown. While FIG. 43 depicts a headset, motion sensor 4301 could just as well be a component of any other peripheral (e.g., camera, presentation remote). Motion sensor 4301 comprises a capsule 4308, which may be substantially spherical in shape. Multiple fixed conductors 4304 line the inside of capsule 4308. A movable conductor 4302 is free to move about inside the capsule. Movable conductor 4302 may be substantially spherical in shape. Fixed conductors 4304 may be in electrical communication with one of a plurality of wires 4312 (e.g., with wires 4312a, 4312b, and 4312c). In various embodiments, adjacent wires (e.g., 4312a and 4312b) are of opposite polarities (e.g., one is grounded while the other is connected to the positive supply voltage). When movable conductor 4302 bridges the gap between two fixed conductors on adjacent wires (e.g., between wires 4312a and 4312b), a circuit is completed.

The circuit completion can be detected by a logic gate bridging the two particular wires that are now in electrical communication. For example, an “AND” gate is connected at one input to the positive voltage supply (e.g., via wire 4312a), and at the other input (e.g., via wire 4312b), through a resistor, to ground. Normally, with only one input connected to the positive voltage supply (i.e., to logic “1”), the AND gate will output a “0” signal. However, when movable conductor 4302 bridges the two wires connecting to the respective inputs of the AND gate, both inputs will now be logically positive, and the AND gate will output a “1” signal. Depending on which AND gate outputs a logical “1” at any given time, it may be determined which two wires are being bridged by the movable conductor 4302. In various embodiments, other methods (e.g., other logic gates, etc.) may be used to determine which wires are bridged at any given time.

By sequentially detecting which wires are being bridged, a trajectory (or some information about a trajectory) of movable conductor 4302 may be inferred. Since movable conductor 4302 is under the influence of gravity, it may thereby be inferred how the headset has moved so as to change the relative location of movable conductor 4302 within capsule 4308. For example, if movable conductor 4302 is detected bridging wires 4312a and 4312b, it may be inferred that such wires are closest to the physical ground at the moment. In various embodiments, headset 4300 may contain multiple capsules, each with wires in different orientations relative to one another. In this way, for example, more precise positioning information may be obtained.

In various embodiments, repeatedly sampled position information from one or more sensors such as sensor 4301 may be differentiated to obtain velocity information, and may be twice differentiated to obtain acceleration information.

As will be appreciated, sensor 4301 represents a method of obtaining motion data according to some embodiments, but any suitable sensor or sensors may be used in various embodiments.

Motion sensor 4301 and other motion sensors may be found in U.S. Pat. No. 8,315,876, entitled “Headset wearer identity authentication with voice print or speech recognition” to Reuss issued Nov. 20, 2012, at columns 7-9, which is hereby incorporated by reference.

Call Platforms

With reference to FIG. 44, a display 4400 of call platform software from an app used by meeting participants according to some embodiments is shown. The depicted screen shows app functionality that can be employed by a user to participate in a virtual meeting in which participants may see each other during a virtual call. In some embodiments, data communication is managed through central controller 110 or network 104. In FIG. 44, the app may allow participants to join or leave the call at will, and various controls and features allow participants functionality during calls (e.g. sending text messages, displaying a presentation deck, being placed in a call queue, generating tags associated with other participants, generating tags associated with aspects of the call, receiving additional information about other call participants, providing rewards to other participants, highlighting one or more participants). Various embodiments contemplate that an app may receive data from peripheral devices used by meeting participants (e.g. headsets, presentation remote, keyboard, mice, cameras, desktop or laptop computers) and or user devices (e.g. smartphone).

FIG. 44 illustrates a respective graphical user interface (GUI) as it may be output on a peripheral device, mobile device, or any other device (e.g. on a mobile smartphone). The GUI may comprise several tabs or screens. The present invention allows for a greater variety of display options that make meetings more efficient, effective, and productive. Some embodiments can make calls more entertaining and help to bring up engagement levels and mitigate call fatigue. In accordance with some embodiments, the GUI may be made available via a software application operable to receive and output information in accordance with embodiments described herein. It should be noted that many variations on such graphical user interfaces may be implemented (e.g., menus and arrangements of elements may be modified, additional graphics and functionality may be added). The graphical user interface of FIG. 44 is presented in simplified form in order to focus on particular embodiments being described.

Display 4400 includes a GUI that represents callers in a single gallery view 4405. In this illustration, there are eight grid locations 4410 within the gallery view 4405, each of which contains one of callers 4415a-h. In this embodiment, a caller can see an image of other callers while verbally interacting with them. In some embodiments, the effectiveness of virtual meetings/calls is enhanced by allowing users to set a preferred grouping or ordering of gallery view 4405 based on a user's preferences—such as grouping caller images by hierarchy, job function, seniority, team, meeting role, etc. Call participants can take direct actions to manage the gallery view 4405 of participants on a call in a way that enhances the user's call experience. Call participants could be provided the ability to move the images of callers 4415a-h around during a call, ordering and placing the images in a way that is most beneficial to the user. For example, a user could click on caller image 4415a-h with a mouse and drag that image to a new grid location 4410. A user could drag multiple gallery images to form a circle, with the new image locations stored in an image location field of a gallery database stored with the central controller or call platform software. This stored set of image locations forming a circle could be associated with a keyword such that the user could, upon the initiation of subsequent similar calls, type in the keyword to retrieve the desired locations and have the current gallery images placed into a circular arrangement. A user could also double click on a caller image to remove it, gray it out, make it black and white, make it more transparent, eliminate the background, or crop it (such as cropping to non-rectangles such as circles, ovals, or hexagons), or make the image smaller. In some embodiments, a user may click on and drag a caller image with buttons 4230a and 4230b of presentation remote 4200.

Caller images 4415a-h can include still photos of the user, a drawing of the user, a video stream of a user, etc. In one embodiment of the present invention, a user can create a cartoon character as a video call avatar that embodies elements of the user without revealing all of the details of the users face or clothing. For example, the user could be represented in the call as a less distinct cartoon character that provided a generic looking face and simplified arms and hands. The character could be animated and controlled by the user's headset (or a webcam of the user's computer detecting head movement). A user might create a cartoon character, but have his headset track movement of his head, eyes, and mouth. In this embodiment, when the user tilts his head to the left an accelerometer in his headset registers the movement and sends the movement data to the headset's processor and then to the call platform software which is in control of the user's animated avatar, tilting the avatars head to the left to mirror the head motion of the user. In this way, the user is able to communicate an essence of himself without requiring a full video stream. The user could also provide a verbal command to his headset processor to make his avatar nod, even though the user himself is not nodding. One of the benefits to using an avatar is that it would require significantly less bandwidth to achieve (another way to reduce bandwidth used is to show a user in black and white or grayscale). The users headset processor could also use data from an inward looking video camera to capture movement of the user's eyes and mouth, with the processor managing to send signals to the central controller or directly to the call platform software to control the users avatar to reflect the actual facial movements of the user. In this way, the user is able to communicate some emotion via the user's avatar without using a full video feed.

While gallery views usually show just the face and name of the user, there is a lot of information about users that could be displayed as well. Such information could include what a call participant is thinking at that moment, which would allow for more informed and effective actions by the other call participants. Additional information could also include social information that could help other call participants get to know a user, or as an icebreaker at the start of a meeting. For example, the user might provide names of children and pets, favorite books, games played, sporting activities, and the like. In some embodiments, each caller has associated additional flip side information 4420 that can be seen by other callers by using a ‘Flip’ command 4440 to flip the caller image over to reveal the additional image on the back like looking at the reverse side of a baseball card. User image 4415c is illustrated as having been flipped to the back side, revealing that user 4415c has worked with the company for 13 years, currently works in New York City, and has three kids.

Alterations to the way in which call participants are displayed in the image gallery could be based on sensor data received and processed by the call platform software. In another embodiment, a user's heart rate could be displayed alongside a user image 4415. For example, the users peripheral device (not shown) could be equipped with a heart rate sensor which sends a signal representing the user's heart rate 4422 to the call platform software (or central controller 110) in order to identify when a caller might be stressed. As illustrated, caller 4415d has an icon next to her caller image that indicates that her current heart rate is 79 beats per minute. In various embodiments, other biometric data (e.g. galvanic skin response) can be displayed alongside a user image. Supplemental background information 4423 could include information such as team affiliation, functional area, level, skill sets, past work/project history, names of their supervisors, etc. In the illustration, user 4415h has background information 4423 which indicated that he is an ‘IT Lead’ and is currently working on ‘Project x’. The information could also include what the user is currently thinking (e.g. they want to respond to the last statement). In another example, a meeting owner could assign roles to call participants during the call, with those assigned roles appearing as supplemental information such as by adding a label of ‘note taker’ below a call participant's gallery view image. Supplemental information could include dynamic elements, such as showing a user's calendar information or current tasks that they are working on. Other dynamic supplemental information could include statistics around the meeting, such as the current average engagement level, percentage of agenda items completed, number of current participants, etc. This dynamic supplemental information could be about an individual, such as showing the user's current engagement level, talk time, number of tags placed, number of agenda items completed, badges received, etc.

In some embodiments, there are times on a call when a user would like to communicate with another call participant, but the number of participants makes that difficult to do without waiting for an opportunity to speak. In such embodiments, a user could communicate via a caller border 4425 around their caller image 4415a-h while on the call. For example, a user could double click (e.g. using a mouse, pointing a presentation remote) on their caller image in order to have the caller border 4425 flash three times or change color in order to quickly get the attention of other call participants. In another example, the user could communicate by changing the color of their caller border 4425 to red if they would like to make a candid statement or green if they are feeling very in tune with the other participants. In the current illustration, caller 4415b has elected to make the frame of caller border 4425 bolder in order to indicate that he is waiting to say something important. In addition to changing the look of the user's gallery view image, the present invention can also allow a call participant to see the ways that call participants are connected, revealing information that could help to enhance the effectiveness of the meeting. For example, callers 4415h and 4415g have a visible alignment 4430 indication. This alignment could be determined by call platform software in conjunction with central controller 110. For example, central controller 110 could determine that these two callers are both working to move a particular company software application to the cloud. Alignment 4430 could also reflect meeting ratings stored with central controller 110, with two callers aligned if their ratings were more than 90% the same.

In some embodiments, call participants can use call functions 4433 to provide more information to other users, reveal more information about other users, provide rewards and ratings to other users, indicate that they have a question about another user, etc. With a set alignment button 4435, a user could identify two callers who seem to be aligned in some way and have that alignment 4430 made visible to other call participants. A ‘flip’ button 4440 could allow a user to flip a second user's image to reveal additional information about that second user. A note 4442 could allow a user to attach a note to a second user's grid location 4410 or caller image 4415. The note might be a question, a comment, a clarification, a drawing, etc. In some embodiments, callers have access to tags 4445 which can be placed onto grid locations 4410 associated with other users. For example, a user might show some appreciation for an insightful statement from caller image 4415d by dragging a star symbol into her grid location. This star might be visible only to caller 4415d, only to members of her functional group, or visible to all call participants. The star could remain for a fixed period of time (e.g. two minutes), remain as long as the call is in progress, disappear when caller 4415d clicks on it, disappear when caller 4415d stops speaking, etc. In some embodiments, data relating to the tags could be stored in tag database table 7300. Other examples of tags being provided to other users in this illustration include two ribbon tags 4445 attached to caller 4415g, a star symbol attached to alignment 4430 and to caller 4415f and to caller 4415d, a question tag 4445 attached to caller 4415b indicating that another user has a question for him, and coin tags 4445 associated with caller 4415a (two coins) and one coin associated with caller 4415e. In the example of coins, these might be convertible into monetary benefits or might be exchangeable for digital assets like music or books. Such coins might encourage productivity and focus during calls as users seek to ‘earn’ coins with helpful comments, new ideas, good facilitation, etc. Many other suitable tags could be used for different purposes.

In other embodiments, modules area 4450 contains one or more software modules that could be selectable by users or established by meeting owners prior to a meeting. These modules can provide functionality which can enhance the effectiveness of a virtual call. For example, chat area 4455 allows call participants to chat with each other or to the group. A presentation module 4460 could show a thumbnail view of a presentation slide, which users could click on to enlarge it to full screen. Callers could also add comments or questions to a particular slide. In the illustrated example, a quarterly sales chart is shown on page 4 of the presentation. One caller is unclear about an aspect of the chart and adds a question symbol to alert the meeting owner or other callers that something is not clear. A speaker queue 4465 could allow callers to enter into a queue to speak during the call. In large meetings, it is common for one person to make a statement and for others to then want to verbally respond. But if there are many who want to respond, there is often a confusing time when multiple people are trying to respond at the same time, creating some chaos that is disruptive to the meeting.

The call platform software could determine a speaking queue by receiving requests from call participants who want to speak. As this queue is adjusted, the participants waiting to speak could be displayed in the gallery in speaking order. As the individual approaches their time to speak, the border 4425 on the gallery could begin to change colors or flash. In another example, the call platform software determines the order of the next five speakers and places a number from one to five as an overlay on top of each of the five participant's images, so the next participant due to speak has a number one on their image, the second has the number two, etc. In some embodiments, participants who want to speak could be presented with the ability to indicate how their contribution relates to elements of the conversation. An individual who wishes to speak could be presented with choices such as “I have the answer to your question”; “I agree”; “I want to offer an example;” “I'd like to highlight something that was just said”; “I want to offer a different opinion”; “I think that's not relevant;” “I want to summarize the discussion”; “I'd like transition or move on”; “I'd like to ask for a poll” “I'd like to ask for the feeling of the room” “I'd like to ask a question”; “I'd like us to take an action or make a decision.” Participants could fill a short text box with information about what they are going to say. When individuals select an option to indicate how they want to contribute or input a description of what they want to say, the type of their contribution or their rationale could be visually indicated to others on the call.

In another embodiment, individuals could select from digital representations associated with contribution types known as “intenticons.” Intenticons are abstract representations of intent similar to emojis or emoticons. The intenticon could be displayed next to the participant's name, could replace the participant's name, could be placed above, below, around or composited on top of the participant's image, or could replace the participant's image. Call participants who want to respond to a current speaker could enter text summarizing the nature of their response, allowing call platform software to merge one or more responses or bump up the priority of one or more responses. For example, two users might want to respond by pointing out a security issue brought up by the current speaker, in which case the call platform software picks only one of those responses to be made, sending a message to the other responder that their response was duplicative. Information about a potential responder's response could change the prioritization level, such as by a user who wants to bring up a potential regulatory issue with a previous statement.

In some embodiments, the meeting owner could allow participants to indicate which other participants they would like to hear next. For example, participants could reorder a visual queue containing the contributions or the names of participants in the speaking queue. For example, participants could click on other participants' images 4415a-h, grid locations 4410, or contributions to indicate. By indicating, the call platform could change the visual representation of the gallery view to highlight individuals that others think should talk next. A highlighted frame could appear around the user, or the user could be placed in a spotlight, for example. In other embodiments, individuals could upvote or downvote individuals in a speaking queue by clicking on a button indicating thumbs up/down, “speak next”/“don't speak next”, or left mouse clicking or right mouse clicking, swiping left or swiping right. Individuals could remove themselves from the speaking queue. In one embodiment, the participant could click a “never mind” button. In another embodiment, a participant could remove oneself by right clicking on a visual representation of the queue and selecting an option to remove oneself. In various embodiments, a configuration may specify an order of speakers or presenters.

With reference to FIG. 45, a screen 4500 from an app controlled by users according to some embodiments is shown. The depicted screen shows a ‘Anonymity setup/rules’ 4505 functionality that can be employed by a user (e.g. meeting owner, meeting facilitator, meeting participant, employee, project manager, facilities manager, game player, teacher, tutor) to set anonymity-related rules for tags. These rules may dictate a level of anonymity that a user has when he applies a tag. For example, a rule may permit a user to apply a tag such that a recipient of the tag will not know the identity of the user. In various embodiments, anonymity-related rules may give users greater comfort in applying tags, in applying truthful tags, in providing tags to superiors or coworkers, in applying negative tags, etc. With a user's anonymity protected, the user may have less fear of retribution for certain tags, less fear of hurting feelings, etc.

In various embodiments, the rules may apply to an upcoming meeting. In various embodiments, the rules may apply indefinitely, until changed, for some fixed period of time, etc. In various embodiments, rules data may be stored in Tag meanings and representations' table 6300. In FIG. 45, the app is in a mode whereby users can set anonymity rules for applying tags.

In some embodiments, the user may select from a menu 4510 which displays one or more different modes of the software. In some embodiments, modes include ‘anonymity setup/rules’, ‘tag rules’, ‘placing tags’, ‘choosing tags’, ‘responding to tags’, ‘upvoting tags’, etc.

In some embodiments, the app may show the identity of the user setting anonymity rules for placing a tag, such as ‘Participant’ 4515 who in this case is ‘Bob Smith’ 4520. In this example, the user may enter this identity information via a virtual keyboard, via voice recording, retrieved from a processor of the user device, etc. In various embodiments, the user setting rules need not be a participant, but may be a meeting owner, a high ranking individual, and/or anyone else.

At 4525 the app user may set a level of anonymity, with various options listed at 4530. These options may represent how the tag will be attributed to the author (applier) of the tag. The first option, here given as “Bob Smith”, provides the actual user's name, and therefore provides essentially no anonymity. Note that the first option (and other options described herein) may be tailored to the particular user listed at 4520. Thus, the first option on a particular user's app may list the name of the user, indicating that such a user would have no anonymity.

The second option, here listed as “Developer”, provides the users role or title (but, e.g., no name), and therefore provides more anonymity. However, as there may be a limited number of people with this role or title, the anonymity may not be perfect or complete. Other options listed indicate such things as a user's experience, a users credentials, a user's office location, a user's rank or level in the company, etc.

In various embodiments, it may be desirable to provide at least some information about a user who is applying a tag. This may give greater credence to the tag. For example, if the tag represents some technical feedback, and the tag is attributable to a person in a technical role, then the tag may carry more weight or impact. On the other hand, it may be desirable to maintain a level of anonymity for the aforementioned reasons. Thus, there is a trade-off in terms of levels of anonymity. As such, providing a number of levels of anonymity may allow a person setting anonymity rules to carefully consider and weigh the trade-offs inherent in the different levels.

In various embodiments, multiple anonymity options may be selected, in which case a tag may include reference to all selected options. Since each selected option may provide more information about the tag's source/author, selecting multiple options may, in general, reduce a level of anonymity associated with a tag.

At 4535 the app user may set who can see the tag. In various embodiments, viewers may be specified in terms of individuals or in terms of groups or categories of people. For example, as depicted at 4540, a tag may be seen by only a meeting owner, only the subject of the tag, only architects, or only managers. Limiting who can see a tag may also provide some level of anonymity. For example, if a user knows that a close coworker will not see a tag, the user may feel more comfortable providing a negative tag related to that coworker.

At 4545 the app user may set how long a tag may last. For example, as depicted at 4550, a tag may last for 5 minutes, for the duration of a meeting, for one week, etc. In various embodiments, a time limit may be set for any other period of time. At the end of a defined time period (e.g., 5 minutes after a tag has been applied), a tag may disappear, become invisible, become unsearchable, become unattributable and/or otherwise expire. Setting a time limit on a tag may also make a user more comfortable applying the tag (e.g., knowing the tag will not represent an indefinite record of the user's authorship).

In various embodiments, a tag does not last past a single view of the tag. In various embodiments, a tag lasts only until after a predetermined number of views of the tag.

At 4555 the app user may set a level of granularity with which a tag may be viewed in relation to a larger pool of tags. At one extreme, as depicted at 4560, a tag may be viewed individually (e.g., as an individual tag). For a greater level of anonymity, a tag may be viewed only in aggregation with one or more other tags. For example, if ten meeting attendees each provide a tag with a rating of the meeting's importance, an average of the ten ratings may be viewable (e.g., to the meeting owner), but no individual rating may be viewable. In this way, for example, a meeting owner may have greater difficulty tracing a single negative rating to any particular individual. In various embodiments, tags may only be viewed in aggregation at the meeting level, at the project level (e.g., aggregated with all other tags submitted about a project), and/or at any other level.

In various embodiments, viewing an aggregated set of tags may include viewing an average of tags (e.g., numerical ratings provided in tags), viewing a sum of tags, and/or viewing any other statistic related to the set of tags.

In various embodiments, the depicted screen 4500 and/or the associated app may allow a user to set additional rules related to anonymity. In various embodiments, more or fewer settings may be depicted. In various embodiments, different settings may be depicted.

In various embodiments, a default set of anonymity rules initially exist for any tag. For example, at 4530, there may be highlighted by default the “Developer” option (or the equivalent for any given app user or tag author). However, it may then be possible to change settings from the initial default settings. In various embodiments, a user may specify default settings that may apply to any given tag unless specifically changed.

In various embodiments, anonymity settings may apply to (e.g., may be set for) tags of a certain type. For example, a user may prefer to have greater anonymity when applying a tag with negative sentiment or other negative connotation (e.g., because the user fears retribution). However, the user may be comfortable with less anonymity in relation to a positive tag. In various embodiments, anonymity settings may vary depending on the recipient of a tag (e.g., depending on the relationship between the author of the tag and the recipient of the tag). For example, a user may prefer to have greater anonymity when applying a tag to a close co-worker, lest the tag otherwise sour their relationship. However, a user may feel more comfortable with relatively little anonymity when applying a tag to someone he rarely sees.

In various embodiments, a tag may be shared under a pseudonym.

In various embodiments, a tag can be retracted (e.g., within some predetermined period of time after the tag has been applied). If retracted, the tag may never have had the opportunity to be seen (e.g., by the intended recipient of the tag). A person may feel more comfortable applying a tag knowing they have the opportunity to reconsider the tag.

In various embodiments, when the user hits a ‘Submit rules’ button, or the like, the app may transmit (e.g., to the central controller 110) the rules. Once rules have been submitted, the rules may be stored in a table (e.g., table 6300) or other data structure.

With reference to FIG. 46, users may select and apply tags using a mouse 4600. The mouse in situation 4600a is presenting the user an option to select from among a number of possible tags on display 4605a which are stored in memory of mouse 4600 or retrieved from memory of central controller 110. Various embodiments contemplate that tagging capabilities may be made available to a user on a mouse or on any other peripheral device. A mouse 4600 that initiates a tagging protocol according to some embodiments is shown. The mouse in situation 4600a is presenting text options to the user on touch-enabled display 4605a to confirm selection of one or more tags (e.g. ‘Good facilitation’, ‘We need a break’). The user selects a tag using touch-enabled display 4605a. The mouse in situation 4600b then allows the user to select a subject (e.g., a person to whom the selected tag will be applied) by touching a selection on touch-enabled display 4605b. Once the subject is selected, the user may then press an apply tag button 4610 in order to store and/or transmit the selected tag and subject for storage and/or later review.

With reference to FIG. 47, a presentation remote 4700 according to some embodiments is shown. Presentation remote 4700 may contain some or all of the features of presentation remote 4200. While various elements of presentation remote 4700 are described here in particular locations on/in the device, it is understood that elements may be placed in many different locations and configurations. Presentation remote 4700 may take many forms, such as being incorporated into headset, projector, hat, belt, eyeglasses, chair, conference table, mouse, keyboard, etc. Presentation remote 4700 as shown illustrates some embodiments of tagging protocols that may be implemented using presentation remote 4700. Analogous to front view 4205 in FIG. 42, front view 4705 is a view of the front of presentation remote 4700.

Presentation remote 4700 may include one or more physical buttons and/or one or more virtual buttons (e.g. small displays that can register touch input from a user). Such buttons may be advantageously used to select tags and apply those tags to people, teams, objects, environments, etc. In various embodiments, buttons may be used to respond to tags. Selection button 4732 may allow a user to select from various tags (e.g., ‘Excellent’, ‘Late Start’, ‘Broken’, ‘Good Idea’) presented on display screen 4746. Forward and back buttons 4730 may allow the user to step forward or backward in a list of tags (e.g. potential tags, received tags) presented on display screen 4746. Side buttons 4733a and 4733b may be physical (or virtual) buttons that may also allow a user to choose from one or more tags and/or subjects of tags. Configurable buttons 4744a, 4744b, and 4744c may be virtual buttons that a user can define to allow for customizable functionality when pressed (e.g. pressing 4744a generates a ribbon tag, pressing 4744b generates a coin tag, pressing 4744c generates a star tag). Jump buttons 4752a and 4752b may be virtual buttons that can be programmed to generate particular tags when pressed, such as a tag of ‘Confusing’ when jump button 4752a is pressed and ‘Helpful’ when jump button 4752b is pressed. In some embodiments, another form of input is a scroll wheel 4742, which allows for selections from display 4746. In some embodiments, users may review tags that have been received from other users, such as by scrolling through a list of received tags on display screen 4746 using scroll wheel 4742.

In various embodiments, presentation remote 4700 includes lights as signaling, alerts, communication, etc. Facing lights 4726 may be disposed around display 4746, and could alert a user by flashing when a new message (e.g. a new tag, a new subject of a tag) or notification is displayed on the display. In some embodiments, facing lights could be associated with particular participants in a room. For example, six facing lights could be individually connected to supplemental devices (not shown) of six meeting participants, so that a user of presentation remote 4700 would see one of the facing lights light up when that particular participant sent the user a tag. Side lights 4728 could be used to signal to meeting participants, such as by flashing when a time window is open for participants to generate tags.

In some embodiments, a record button 4762 may allow a user to store audio or video during a meeting or presentation. For example, a meeting participant may press record button 4762 to record an audio tag (e.g. a verbal message to accompany a task request, a congratulatory message to a meeting facilitator who did a great job, a description of a broken piece of equipment in a conference room), then press record button 4762 again to stop the recording and save the audio file to data storage 4757 so that it can be associated with one or more tags. A microphone 4214 may be used to detect audio signals (e.g., voice of the user, voice of the presenter, room sounds, participant sounds). In some embodiments, the user might then use presentation remote 4700 to transmit the audio file and/or tag to another user.

Display 4746 may allow for messaging and displaying options to a user. In various embodiments, display 4746 faces towards a prospective user. This may allow a user to view graphical information that is displayed by presentation remote 4700, such as messages (e.g. text of a tag). In some embodiments, display 4746 is touch enabled so that options (e.g. list of tags, list of received tags) on display 4746 may be selected by a user touching them. In other embodiments, a user may employ selection button 4732 to select from items listed on display 4746. In some embodiments, a secondary display 4748 allows for additional information to be provided to the user, such as by displaying the names of other meeting participants who could be the subject of tags created by the user. Communication displays 4750a and 4750b may be touch enabled, allowing a user to touch one or more displays 4750a-b which show options to a user. In one example, communication display 4750a shows “Mary Chao” and will send her a tag when selected by a user. Similarly, touching communication display 4750b may send one or more tags to meeting room TR64 (e.g. displaying a tag on a wall or display screen of that room).

Processor 4755 may provide computational capability needed for the functionality (e.g. managing the generation, sending, and/or receiving of tags) of presentation remote 4700. Data storage 4757 may comprise non-volatile memory storage. In some embodiments, this storage capacity could be used to store tags, tag text, tag subjects, tag objects, software, presentations, user images, business files (e.g. documents, spreadsheets, presentations, instruction manuals), books (e.g. print, audio), financial data (e.g. credit card information, bank account information), digital currency (e.g., Bitcoin™), cryptographic keys, user biometrics, user passwords, names of user friends, user contact information (e.g. phone number, address, email, messaging ID, social media handles), health data (e.g. blood pressure, height, weight, cholesterol level, allergies, medicines currently being taken, age, treatments completed), security clearance levels, message logs, GPS location logs, current or historical environmental data (e.g. humidity level, air pressure, temperature, ozone level, smoke level, CO2 level, CO level, chemical vapors), and the like. In various embodiments, presentation remote 4700 includes a Bluetooth® antenna (e.g., an 8898016 series GSM antenna) (not shown). In various embodiments, presentation remote 4700 may include any other type of antenna. In various embodiments, presentation remote 4700 includes an earbud (not shown), which may be a component that fits in the ear (e.g., for efficient sound transmission).

Presentation remote 4700 may also include accelerometers 4770a and 4770b which are capable of detecting the orientation of presentation remote 4700 in all directions and the velocity of presentation remote 4700. Accelerometers can aid in determining the direction in which presentation remote 4700 is pointed (e.g. for determining which meeting participant that it is pointed at in order to associate a tag with that participant). Optical fibers 4772a and 4772b are thin strands of diffusing optical fiber. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence, the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., ‘blue’ when a meeting participant is allowed to create tags), or provide diverse and/or visually entertaining lighting configurations.

Supplemental device (not shown) may be associated with presentation remote 4700, but be mobile and thus may be provided to other users (e.g. meeting participants) in order to provide input and/or output capability (e.g. generating tags, receiving tags, responding to tags) during a meeting or presentation. In some embodiments, the supplemental device may have display capabilities and/or include one or more capabilities of GPS, wireless communications, processing, data storage, a laser pointer, range finder, sensors, accelerometers, voting software, feedback software, signaling, vibrations, etc.

Task Scores

In a meeting (e.g., a status update meeting), a participant may indicate the degree to which a task or project is complete. For example, a participant says that a task is complete, 80% complete, stuck on an obstacle, etc. It may be possible that a participant is overly optimistic about the degree of task completion, overly pessimistic, unaware of one or more problems associated with the task, and/or that the participants may simply misrepresent the degree of task completion. In various embodiments, it may be advantageous to receive inputs from one or more additional participants as to their opinion of the degree of task completion and/or as to their opinion of the representations made by the first participant. For example, whereas the first participant might claim that the task is complete, another participant might believe the task is only 50% complete.

In various embodiments, each of a plurality of participants may indicate a degree of completion of a task or project. A participant may indicate a degree of completion using a quantitative measure (e.g., 60%, 6/10, etc.), using a qualitative measure (e.g., green/yellow/red, “partially complete”, “complete”, “snagged”, etc.), and/or in any other fashion. In various embodiments, a participant may provide an accompanying explanation, such as a free-form text or verbal explanation as to their opinion of the degree of completion.

In various embodiments, the opinions indicated by the plurality of participants may be aggregated (e.g., averaged, averaged with a weighting, etc.). The aggregate may be presumed to provide a more accurate assessment of the task's degree of completion. In various embodiments, if a first participant provides a first assessment, and one or more additional participants provide a second assessment (e.g., in the aggregate) that differs from the first assessment (e.g., substantially, more than 10%, etc.), then there may be an attempt to resolve the discrepancy. The first participant and/or another participant may be asked to submit evidence substantiating the first assessment and/or the second assessment. Evidence may include approvals, testimonials by end users of a product, bug reports, error reports, complaint reports, demonstrations, prototypes, mockups, documentation, etc.

In various embodiments, a participant that represents a task as complete may require agreement or substantial agreement by one or more other participants before the task can truly be designated as complete. For example, the aggregated opinion of other participants must show the task to be 90% complete or better before the task is designated as complete.

Various embodiments may track the degree to which a participant's representation of a project status gels with the opinions of other participants. A participant may be scored highly if he has high consistency between his representations and the opinions of other participants. He may be scored more poorly otherwise. A score or other statistic measuring the accuracy of a participant's representation may be associated with the participant, such as on a scorecard, analogous to the back of a baseball card. In various embodiments, other statistics for a participant may be tracked, such as the accuracy of the participant's assessments of other peoples' status updates, and/or the accuracy of other predictions or assessments made by the participant.

With reference to FIG. 48, a slide 4800 from a slide presentation according to some embodiments is shown. Slide 4800 provides an illustrative example for the use of tagging in relation to slide presentations and/or content thereof. As will be appreciated, embodiments described herein may apply to any suitable slide, presentation, document, chart, etc.

Slide 4800 includes various information, such as a slide title 4805, a project being discussed in the presentation 4810, a page number 4815, a listing of “Team Leads” 4820, a “Project Status” 4825, a “Network Chart” 4830, a project timeline 4840, dates along the project timeline (e.g., date 4835), and completion levels for various project phases (e.g., completion level 4845 of “100%).

In various embodiments, completion levels for various project phases have been asserted (e.g., on the slide, by the presenter, by team leads 4820), but may in fact represent unclear or inaccurate characterizations. For example, the team leads may not wish to admit that they have fallen behind schedule, and so are asserting that, for example, “Phase 3” is 60% complete, when it is only really 30% complete.

In various embodiments, a meeting attendee or other consumer of slide 4800 may apply a tag to the slide (and/or to the presentation). The tag may be positioned physically at a given location on the slide, e.g., proximate to where the slide has listed the 60% completion statistic for phase 3 such as tag 4850 which reads “30%”. The tag may be applied in any other fashion. The tag may question the printed figure, e.g., with the text of “doubtful”. The tag may provide its own estimate of the completion percentage (e.g., “less than 30%”). The tag may provide evidence disputing the listed percentage and/or supporting the tag's estimate. For example, the tag may read, “only 30% of features signed off”.

In various embodiments, a tag may be used in any other way to comment on a slide, such as by adding information, disputing information, calling printed information into question, providing a reaction (e.g., “nice accomplishment”, “what is the roadblock?”), setting a task, calling for further research into a point listed on a slide, etc. In some embodiments, tags may be used to indicate a level of confusion with the content of a presentation slide. For example, a user might apply a tag 4855 of “unknown acronyms” to project status 4825 because of the references to “EAM”, “TFC”, “SAFe”, “ELT”, and “I&A”. Users might apply a tag 4860 of “confusing” to Network Chart 4830.

With reference to FIG. 49, a plot 4900 of a derived machine learning model according to some embodiments is shown. For the indicated model, data has been gathered relating a ‘Tags placed per person per meeting’ (represented on the ‘X’ axis 4902) to the users meeting engagement level (represented on the ‘Y’ axis 4904). Each marker in the plot represents a single data point. Using the individual data points, a machine learning program has derived a best-fit model, represented by the continuous curve 4906. The machine learning model seeks to predict a level of meeting engagement based on how many tags a user has placed during a meeting, even where no data has been gathered for similar tag placement frequencies. In various embodiments, any suitable machine learning, artificial intelligence, or other algorithm may be used to derive a model from data. Any suitable cost or benefit function may be used, such as one that seeks to minimize a mean squared error between the model's prediction, and the measured values of the data. In various embodiments, more or less data may be used. Higher dimensional data may be used. Other types of data may be used. Other types of predictions may be made or sought.

Methods

Referring now to FIGS. 86A, 86B, and 86C, a flow diagram of a method 8600 according to some embodiments is shown. In some embodiments, the method 8600 may be performed and/or implemented by and/or otherwise associated with one or more specialized and/or specially-programmed devices and/or computers (e.g., the resource devices 102a-n, the user devices 106a-n, the peripheral devices 107a-n and 107p-z, the third-party device 108, the and/or the central controller 110), computer terminals, computer servers, computer systems and/or networks, and/or any combinations thereof. In some embodiments, the method 8600 may cause an electronic device, such as the central controller 110 to perform certain steps and/or commands and/or may cause an outputting and/or management of input/output data via one or more graphical interfaces such as interfaces depicted herein.

The process diagrams and flow diagrams described herein do not necessarily imply a fixed order to any depicted actions, steps, and/or procedures, and embodiments may generally be performed in any order that is practicable unless otherwise and specifically noted. While the order of actions, steps, and/or procedures described herein is generally not fixed, in some embodiments, actions, steps, and/or procedures may be specifically performed in the order listed, depicted, and/or described and/or may be performed in response to any previously listed, depicted, and/or described action, step, and/or procedure. Any of the processes and methods described herein may be performed and/or facilitated by hardware, software (including microcode), firmware, or any combination thereof. For example, a storage medium (e.g., a hard disk, Random Access Memory (RAM) device, cache memory device, Universal Serial Bus (USB) mass storage device, and/or Digital Video Disk (DVD); e.g., the data storage devices 215, 345, 445, 515, 615) may store thereon instructions that when executed by a machine (such as a computerized processor) result in performance according to any one or more of the embodiments described herein. According to some embodiments, the method 8600 may comprise various functional modules, routines, and/or procedures, such as one or more AI-based algorithm executions.

Games

A process 8600 for conducting a game with a user participating in the game is now described according to some embodiments. At step 8603, a user may register with the central controller 110, according to some embodiments. The user may access the central controller 110 by visiting a website associated with the central controller, by utilizing an app that communicates with the central controller 110, by engaging in an interactive chat with the central controller (e.g., with a chatbot associated with the central controller), by speaking with a human representative of the central controller (e.g., over the phone) or in any other fashion. The aforementioned means of accessing the central controller may be utilized at step 8603 and/or during any other step and/or in conjunction with any other embodiments. Using the example of a website, the user may type into one or more text entry boxes, check one or more boxes, adjust one or more slider bars, or provide information via any other means. Using an example of an app, a user may supply information by entering text, speaking text, transferring stored information from a smartphone, or in any other fashion. As will be appreciated, the user may supply information in any suitable fashion, such as in a way that is consistent with the means of accessing the central controller 110. The user may provide such information as a name, password, preferred nickname, contact information, address, email address, phone number, demographic information, birthdate, age, occupation, income level, marital status, home ownership status, citizenship, gender, race, number of children, or any other information. The user may provide financial account information, such as a credit card number, debit card number, bank account number, checking account number, PayPal® account identifier, Venmo® account identifier or any other financial account information.

In some embodiments, the user may create or establish a financial account with the central controller 110. The user may accomplish this, for example, by transferring funds from an external account (e.g., from a Venmo® account) to the central controller 110, at which point the transferred funds may create a positive balance for the user in the new account.

In some embodiments, the user may provide information about one or more preferences. Preferences may relate to one or more activities, such as playing games, learning, professional development, interacting with others, participating in meetings, or doing any other activities. In the context of a game, for example, preferences may include a preferred game, a preferred time to play, a preferred character, a preferred avatar, a preferred game configuration, or any other preferences. In the context of learning, preferences may include a preferred learning format (e.g., lecture or textbook or tutorial, etc.; e.g., visual versus aural; e.g., spaced sessions versus single crash course; etc.), a subject of interest, a current knowledge level, an expertise level in prerequisite fields, or any other preferences. In various embodiments, a user may provide preferences as to desired products or services. These preferences may, for example, guide the central controller in communicating advertisements or other promotions to the user. In various embodiments, a user may provide preferences as to what tags are to be available for use in the game (e.g., for tagging game elements, game actions, game strategies, the performance of team members, etc.). In various embodiments, preferences may include preferences regarding any field or activity.

The central controller 110 may store user information and user preferences, such as in user table 700, user game profiles table 2700, and/or in any other table or data structure. In various embodiments, a user may provide biometric or other identifying or other authenticating information to the central controller 110. Such information may include, photographs of the user, fingerprints, voiceprints, retinal scans, typing patterns, or any other information. When a user subsequently interacts with the central controller 110, the user may supply such information a second time, at which point the central controller may compare the new information to the existing information on file to make sure that the current user is the same user that registered previously. Biometric or other authenticating information may be stored by the central controller in a table, such as in authentication table 3600. Further details on how biometrics can be used for authentication can be found in U.S. Pat. No. 7,212,655, entitled “Fingerprint verification system” to Tumey, et al. issued May 1, 2007, e.g., at columns 4-7, which is hereby incorporated by reference.

At step 8606, a user may register a peripheral device with the central controller 110, according to some embodiments. Through the process of registering a peripheral device, the central controller may be made aware of the presence of the peripheral device, the fact that the peripheral device belongs to (or is otherwise associated with) the user, and the capabilities of the peripheral device. The user may also provide to the central controller one or more permissions as to how the central controller may interact with the peripheral device. The user may provide any other information pertinent to a peripheral device. In various embodiments, registering a peripheral device may be performed partly or fully automatically (e.g., the peripheral device may upload information about its capabilities automatically to the central controller 110). The user may provide information about the peripheral itself, such as type, the manufacturer, the model, the brand, the year of manufacture, etc. The user may provide specifications for the peripheral. These specifications may indicate what buttons, keys, wheels, dials, sensors, cameras, or other components the peripheral possesses. Specifications may include the quantities of various components (e.g., a mouse may have two or three buttons; e.g., a mouse may have one, two, or more LED lights; e.g., a camera peripheral may have one, two, three, etc., cameras). Specifications may include the capabilities of a given component. For example, a specification may indicate the resolution of a camera, the sensitivity of a mouse button, the size of a display screen, or any other capability, or any other functionality.

In various embodiments, the central controller 110 may obtain one or more specifications automatically. For example, once given information about the model of a peripheral, the central controller may access a stored table or other data structure that associates peripheral models with peripheral specifications. In various embodiments, information about a peripheral may be stored in a table, such as in peripheral device table 1000. Any information stored in peripheral device table 1000 may be obtained from a user, may be obtained automatically from a peripheral, or may be obtained in any other fashion. In various environments, a user may provide the central controller with guidelines, permissions, or the like for interacting with the peripheral device. Permissions may include permissions for monitoring inputs received at the peripheral device. Inputs may include active inputs, such as button presses, key presses, touches, mouse motions, text entered, intentional voice commands, or any other active inputs. Inputs may include passive inputs (e.g., inputs supplied unconsciously or passively by the user), such as a camera image, a camera feed (e.g., a camera feed of the user), an audio feed, a biometric, a heart rate, a breathing rate, a skin temperature, a pressure (e.g., a resting hand pressure), a glucose level, a metabolite level, or any other passive input.

In some embodiments, separate permissions may be granted for separate types of inputs. In some embodiments, a global permission may be granted for all types of inputs. In some embodiments, a global permission may be granted while certain exceptions are also noted (e.g., the central controller is permitted to monitor all inputs except for heart rate). In various embodiments, permissions may pertain to how the central controller may use the information (e.g., the information can be used for adjusting the difficulty but not for selecting advertisements). In various embodiments, permissions may pertain to how long the central controller can store the information (e.g., the central controller is permitted to store information only for 24 hours). In various embodiments, permissions may pertain to what other entities may access the information (e.g., only that user's doctor may access the information). In various environments, the user may grant permissions to the central controller to output at or via the peripheral.

The user may indicate what components of the peripheral device may be used for output. For example, a mouse might have a display and a heating element. The user may grant permission to output text on the display, but not to activate the heating element. With reference to a given component, the user may indicate the manner in which an output can be made. For example, the user may indicate that a speaker may output at no more than 30 decibels, a text message on a screen may be no more than 50 characters, or any other restriction. The user may indicate when the central controller 110 may output via the peripheral (e.g., only during weekends; e.g., only between 9 p.m. and 11 p.m.). The user may indicate circumstances under which an output may be made on a peripheral. For example an output may be made only when a user is playing a particular type of game. This may ensure, for example, that the user is not bombarded with messages when he is trying to work.

In various embodiments, a user may indicate what other users or what other entities may originate a message, tag, or content that is output on the peripheral. For example, the user may have a group of friends or teammates that are granted permission to send messages or tags that are then output on the user's peripheral device. A user may also grant permission to a content provider, an advertiser, a celebrity, or any other entity desired by the user. In various embodiments, a user may indicate what other users or entities may activate components of a peripheral device, such as triggering a heating element. In various embodiments, a user may grant permissions for one or more other users to take control of the peripheral device. Permission may be granted to take full control, or partial control. When a second user takes control of a first user's peripheral device, the second user may cause the peripheral device to transmit one or more signals (e.g., signals that control the movements or actions of a game character; e.g., signals that control the progression of slides in a slide presentation; e.g., signals that control the position of a cursor on a display screen).

It may be desirable to allow a second user to control the peripheral device of a first user under various circumstances. For instance, the second user may be demonstrating a technique for controlling a game character. As another example, the second user may be indicating a particular place on a display screen to which he wishes to call the attention of the first user (e.g., to a particular cell in a spreadsheet). In various embodiments, a user may indicate times and/or circumstances under which another user may take control of his peripheral device. For example, another user may only control a given user's peripheral device when they are on the same team playing a video game. Permissions for another user or a third-party to control a peripheral device may be stored in a table, such as in peripheral configuration table 1100 (e.g. in field 1110). Aforementioned steps (e.g., granting of permission) have been described in conjunction with a registration process. However, it will be appreciated that in various embodiments, the aforementioned steps may be performed at any suitable time and/or may be updated at any suitable time. For example, at any given time a user may update a list of other users that are permitted to control the users peripheral device. In various embodiments, a registration process may include more or fewer steps or items than the aforementioned.

At step 8609, a user may configure a peripheral device, according to some embodiments. The user may configure such aspects as the operation of the peripheral device, what key sequences will accomplish what actions, the appearance of the device, and restrictions or parental controls that are placed on the device. With regard to the operation of the peripheral device, the user may configure one or more operating variables. These may include variables governing a mouse speed, a mouse acceleration, the sensitivity of one or more buttons or keys (e.g., on a mouse or keyboard), the resolution at which video will be recorded by a camera, the amount of noise cancellation to be used in a microphone, or any other operating characteristic. Operating characteristics may be stored in a table, such as in peripheral configuration table 1100. In various embodiments, a user may configure input sequences, such as key sequences (e.g., shortcut key sequences). These sequences may involve any user input or combination of user inputs. Sequences may involve keys, scroll wheels, touch pads, mouse motions, head motions (as with a headset), hand motions (e.g., as captured by a camera) or any other user input. The user may specify such sequences using explicit descriptions (e.g., by specifying text descriptions in the user interface of a program or app, such as “left mouse button-right mouse button”), by checking boxes in an app (e.g., where each box corresponds to a user input), by actually performing the user input sequence one or more times (e.g., on the actual peripheral), or in any other fashion. For a given input sequence, a user may specify one or more associated actions. Actions may include, for example, “reload”, “shoot five times”, “copy formula” (e.g., in a spreadsheet), send a particular message to another user, send or apply a tag to another user (e.g., “good strategy”, “enemy area”), or any other action. In various embodiments, an action may be an action of the peripheral itself. For example, pressing the right mouse button three times may be equivalent to the action of physically moving the mouse three feet to the right.

In various embodiments, a user may specify a sequence of actions that corresponds to an input sequence. For example, if the user scrolls a mouse wheel up and then down quickly, then a game character will reload and shoot five times in a row. A sequence of actions triggered by a user input may be referred to as a “macro”. A macro may allow a user to accomplish a relatively cumbersome or complex maneuver with minimal input required. In some embodiments, a peripheral device (or other device) may record a user's actions or activities in a live scenario (e.g., as the user is playing a live video game; e.g., as the user is editing a document). The recording may include multiple individual inputs by the user (e.g., multiple mouse movements, multiple key presses, etc.). These multiple inputs by the user may be consolidated into a macro. Thus in the future, for example, the user may repeat a similar set of multiple inputs, but now using a shortcut input. Configuration of user input sequences may be stored in a table, such as in table “mapping of user input to an action/message” 2600.

In various embodiments, a user may configure the appearance of a peripheral device. The appearance may include a default or background image that will appear on the device (e.g., on a screen of the device). The appearance may include a color or intensity of one or more lights on the peripheral device. For example, LED lights on a keyboard may be configured to shine in blue light by default. The appearance may include a dynamic setting. For example, a display screen on a peripheral may show a short video clip over and over, or lights may cycle between several colors. An appearance may include a physical configuration. For example, a camera is configured to point in a particular direction, a keyboard is configured to tilt at a certain angle, or any other physical configuration. As will be appreciated, various embodiments contemplate other configurations of an appearance of a peripheral device. In various embodiments, a user may configure a “footprint” or other marker of a peripheral device. For example, the user may configure a mouse pointer as it appears on a user device (e.g., on a personal computer). In various embodiments, a configuration of an appearance may be stored in a table, such as in “peripheral configuration table”1100. In various embodiments, a user may configure restrictions, locks, parental controls, or other safeguards on the use of a peripheral.

Restrictions may refer to certain programs, apps, web pages, Facebook® pages, video games, or other content. In various embodiments, a user may indicate a restriction using a tag. Different tags may be used to indicate different types of restrictions (e.g., “no access after 8:00 pm”; e.g., “no access by Billy”; e.g., “no more than 20 minutes per day of access”, etc.). In various embodiments, a tag may be used to indicate the nature of programs, apps, content, etc. (e.g., “graphic”; e.g., “violent”; e.g., “mature”; etc.). Restrictions may automatically be implemented based on the nature of the content.

When an attempt is made to use a peripheral in conjunction with restricted content, the functionality of the peripheral may be reduced or eliminated. For example, if a user attempts to click on a link on a particular web page (e.g., a web page with restricted content), then the user's mouse button may not register the users click. In various embodiments, restrictions may pertain to the motion or other usage of the peripheral device itself. A restriction may dictate that a peripheral device cannot be moved at more than a certain velocity, cannot be moved more than a certain distance, cannot be in continuous motion for more than some predetermined amount of time, cannot output sound above a particular volume, cannot flash lights at a particular range of frequencies (e.g., at 5 to 30 hertz), or any other restriction. Such restrictions may, for example, seek to avoid injury or other harm to the user of the peripheral, or to the surrounding environment. For example, a parent may wish to avoid having a child shake a peripheral too violently while in the vicinity of a fragile crystal chandelier. In various embodiments, a peripheral may identify its current user. For example, the peripheral may identify whether an adult in a house is using a peripheral, or whether a child in a house is using the peripheral. A peripheral may explicitly ask for identification (or some means of ascertaining identification, such as a password unique to each user), or the peripheral may identify a user in some other fashion (e.g., via a biometric signature, via a usage pattern, or in any other fashion).

In various embodiments, a peripheral may require authentication for a user to use the peripheral. For example, the peripheral may require a password, fingerprint, voiceprint or other authentication. In various embodiments, restrictions or parental controls may apply to individual users. For example, only the child in a particular house is restricted from accessing certain web content or video games. In this way, after identifying a user, a peripheral may implement or enforce restrictions only if such restrictions apply to the identified user. In various embodiments, a peripheral device may not function at all with one or more users (e.g., with any user other than its owner). This may, for example, discourage someone from taking or stealing another user's peripheral. In various embodiments, a user designates restricted content by checking boxes corresponding to the content (e.g., boxes next to a description or image of the content), by providing links or domain names for the restricted content, by designating a category of content (e.g., all content rated as “violent” by a third-party rating agency; e.g., all content rated R or higher) or in any other fashion. A user may designate one or more users to which restrictions apply by entering names or other identifying information for such users, by checking a box corresponding to the user, or in any other fashion. In various embodiments, a user may set up restrictions using an app (e.g., an app associated with the central controller 110), program, web page, or in any other fashion.

At step 8612, a user may register for a game, according to some embodiments. The user may identify a game title, a time to play, a game level, a league or other desired level of competition (e.g., an amateur league), a mission, a starting point, a stadium or arena (e.g., for a sports game), a time limit on the game, one or more peripheral devices he will be using (e.g., mouse and keyboard; e.g., game console controller), a user device he will be using (e.g., a personal computer; e.g., a game console; e.g., an Xbox), a character, a set of resources (e.g., an amount of ammunition to start with; e.g., a weapon to start with), a privacy level (e.g., whether or not the game can be shown to others; e.g., the categories of people who can view the game play), or any other item pertinent to the game. In various embodiments, a user may sign a consent form permitting one or more aspects of the user's game, character, likeness, gameplay, etc. to be shown, shared, broadcast or otherwise made available to others. In various embodiments, a user may pay an entry fee for a game. The user may pay in any suitable fashion, such as using cash, game currency, pledges of cash, commitments to do one or more tasks (e.g., to visit a sponsors website), or in any other form.

In various embodiments, a user may register one or more team members, one or more opponents, one or more judges, one or more audience members, or any other participant(s). For example, the user may provide names, screen names, or any other identifying information for the other participants. In various embodiments, a user may designate a team identifier (e.g., a team name). One or more other users may then register and indicate that they are to be part of that team. Similarly, in various embodiments, a user may designate a game. Subsequently, one or more other users may then register and indicate that they are to be part of that game. Various embodiments contemplate that multiple participants may register for the same team or same game in any suitable fashion. In various embodiments, user information provided when registering with the central controller, when registering for a game, or provided at any other time or in any other fashion, may be stored in one or more tables such as in “user game profiles” table 2700. In various embodiments, when a user has registered for a game, the user may be provided with messages, teasers, reminders, or any other previews of the game. In various embodiments, a peripheral device may show a timer or clock that counts down the time remaining until the game starts. In various embodiments, a peripheral device may change colors as game time approaches. For example, the peripheral device might change from displaying a green color to displaying a red color when there are less than five minutes remaining until game time. In various embodiments, a peripheral may sound an alarm when a game is about to start.

In the lead-up to a game (or at any other time) a user may take a tutorial. The tutorial may explain how to play a game, how to efficiently play a game, how to execute one or more actions during a game, how to use a peripheral effectively during a game, or may cover any other task or subject. In various embodiments, one or more components of a peripheral will attempt to draw a user's attention during a tutorial. For example, a key or a button may blink, light up, or change color. In another example, a button may heat up or create a haptic sensation. The intention may be for the user to press or actuate whatever component is drawing attention. For example, if the tutorial is teaching a user to press a series of buttons in succession, then the buttons may light up in the order of which they should be pressed. Once the user presses a first button that has been lit, the first button may go off and a second button may light up indicating that it too should be pressed. In various environments, a tutorial uses a combination of text or visual instruction, in conjunction with hands-on actuation of peripheral device components by the user. The text or visual instruction may be delivered via a user device, via a peripheral device (e.g., via the same peripheral device that the user is actuating), or via any other means.

At step 8615, a user may initiate a game, according to some embodiments. In various embodiments, the game starts based on a predetermined schedule (e.g., the game was scheduled to start at 3 p.m., and does in fact start at 3 p.m.). In various embodiments, the user manually initiates gameplay (e.g., by clicking “start”, etc.). When a user begins playing, any team members, opponents, judges, referees, audience members, sponsors, or other participants may also commence their participation in the game. In various embodiments, a user may join a game that has been initiated by another user. For example, the user may join as a teammate to the initiating user or as some other participant.

At step 8618, the central controller 110 may track user gameplay, according to some embodiments. The central controller 110 may track one or more of: peripheral device use; game moves, decisions, tactics, and/or strategies; vital readings (e.g., heart rate, blood pressure, etc.); team interactions; ambient conditions (e.g., dog barking in the background; local weather); or any other information. In various embodiments, the central controller 110 may track peripheral device activity or use. This may include button presses, key presses, clicks, double clicks, mouse motions, head motions, hand motions, motions of any other body part, directions moved, directions turned, speed moved, distance moved, wheels turned (e.g., scroll wheels turned), swipes (e.g., on a trackpad), voice commands spoken, text commands entered, messages sent, or any other peripheral device interaction, or any combination of such interactions. The peripheral device activity may be stored in a table, such as in ‘peripheral activity log’ table 2200. Each activity or action of the peripheral device may receive a timestamp (e.g., see fields 2206 and 2208). In this way, for example, peripheral device activity may be associated with other circumstances that were transpiring at the same time. For example, a click of a mouse button can be associated with a particular game state that was in effect at the same time, and thus it may be ascertainable what a user was trying to accomplish with the click of the mouse (e.g., the user was trying to pick up a medicine bag in the game).

Peripheral device activities may be stored in terms of raw signals received from the peripheral device (e.g., bit streams), higher-level interpretations of signals received from the peripheral device (e.g., left button clicked), or in any other suitable fashion. In various embodiments, two or more actions of a peripheral device may be grouped or combined and stored as a single aggregate action. For example, a series of small mouse movements may be stored as an aggregate movement which is the vector sum of the small mouse movements. In various embodiments, the central controller may track vital readings or other biometric readings. Readings may include heart rate, breathing rate, brain waves, skin conductivity, body temperature, glucose levels, other metabolite levels, muscle tension, pupil dilation, breath oxygen levels, or any other readings. These may be tracked, for example, through sensors in a peripheral device. Vital readings may also be tracked indirectly, such as via video feed (e.g., heart rate may be discerned from a video feed based on minute fluctuations in skin coloration with each heartbeat). Vital readings or biometrics may be tracked using any suitable technique.

In some embodiments, the vital readings of a first user may be broadcast to one or more other users. This may add a level of excitement or strategy to the game. For example, one player may be able to discern or infer when another player is tense, and may factor that knowledge into a decision as to whether to press an attack or not. In various embodiments, the central controller 110 may track ambient conditions surrounding gameplay. These may include room temperature, humidity, noise levels, lighting, local weather, or any other conditions. The central controller may track particular sounds or types of sounds, such as a dog barking in the background, a horn honking, a doorbell ringing, a phone ringing, a tea kettle sounding off, or any other type of sound. In various embodiments, ambient conditions may be correlated to a user's gameplay. For example, the central controller 110 may determine that the user tends to perform better in colder temperatures. Therefore, ambient conditions may be used to make predictions about a user's game performance, or to recommend to a user that he seek more favorable ambient conditions (e.g., by turning on the air conditioning). In various embodiments, ambient conditions may be detected using one or more sensors of a peripheral device, using a local weather service, or via any other means.

In various embodiments, the central controller 110 may track game moves, decisions, tactics, strategies, or other game occurrences. Such a occurrences may include a weapon chosen by a user, a road chosen by a user, a path chosen, a door chosen, a disguise chosen, a vehicle chosen, a defense chosen, a chess move made, a bet made, a card played, a card discarded, a battle formation used, a choice of which player will covered which other player (e.g., in a combat scenario, which player will protect the back of which other player), a choice of close combat versus distant combat, or any other game choice made by a player or team of players. In various embodiments, the central controller may track decisions made by referees, judges, audience members, or any other participants. In various embodiments, the central controller 110 may track team interactions. The central controller may track text messages, messages, voice messages, voice conversations, or other signals transmitted between team members. The central controller may track resources passed between player characters (e.g., ammunition or medical supplies transferred). The central controller may track the relative positioning of player characters. The central controller may track any other aspect of team interaction. In various embodiments, the central controller 110 may utilize an aspect of a user's gameplay to identify the user. For example, the user may have a unique pattern of moving a mouse or hitting a keyboard. In some embodiments, a user may be subsequently authenticated or identified based on the aspect of the user's gameplay.

In various embodiments, during gameplay (or at any other time), a user may tag an element or aspect of the game. A tag may represent an aid (e.g., memory aid) in a game. For example, a user may tag an opponent as a “good player” so as to know to be extra vigilant around that opponent. A tag may represent feedback for the user's own review (e.g., “practice archery”; e.g., “try door number two next time”; e.g., “the dragon's weak point is his left foot”; e.g., “starting the avalanche fails” etc.). A tag may represent tags for teammates or other users (e.g., “beware of hidden trap door here”). A tag may represent feedback for a game designer or publisher (e.g., “new sword doesn't work in caves”, “don't like ship's design”; etc.). A tag may be used to lodge a protest (e.g., “bad call by referee”). A tag may be used for any other purpose.

At step 8621, the central controller 110 may react or respond to user gameplay, according to some embodiments. In various embodiments, the central controller may adjust one or more aspects of the game (e.g., difficulty level) based on user gameplay. The central controller may increase difficulty level if the user is scoring highly relative to other users, or relative to the current users prior scores at the same game. The central controller may decrease difficulty level if the user is scoring poorly relative to other users, is dying quickly, or is otherwise performing poorly. In various embodiments, if a user is primarily or overly reliant on one resource (e.g., on one particular weapon or vehicle), or on a small group of resources, then the central controller 110 may steer the game in such a way that the one resource (or small group of resources) is no longer as useful. For example, if the user has been relying on a motorcycle as transportation, then the central controller may steer the game such that the user has to navigate a swamp area where other vehicles (e.g., a canoe) may be preferable to a motorcycle. This may incentivize the user to become acquainted with other resources and/or other aspects of the game. In various embodiments, the central controller 110 may steer a game towards circumstances, situations, environments, etc., with which the player may have had relatively little (or no) experience. This may encourage the player to gain experience with other aspects of the game.

In various embodiments, the central controller 110 may tag one or more user actions during a game and/or aspects of the game. The central controller may tag a juncture where a user made a good choice, a bad choice, an unusual choice, made a mistake, failed to take advantage of a resource, missed a hidden passage, engaged in a particular activity, etc. The central controller may tag a resource that a user did not use skillfully (e.g., a weapon that the user did not aim accurately). The central controller may tag any other aspect of the game. In various embodiments, the user and/or central controller may subsequently review the game and/or tags, e.g., in an effort to improve the user's skill at the game. In various embodiments, tags may be reviewed by a game designer or owner so as to improve the game itself. For example, if a particular activity received many tags (e.g., many game players engaged in that activity), the game designer may seek to incorporate more of the activity into the game. As another example, if users consistently failed to take advantage of a resource (e.g., a flying carpet), a game designer may update the game to make the resource more visible or obvious.

In various embodiments, elements of ambient conditions may be incorporated into a game itself. For example, if the central controller 110 detects a dog barking in the background, then a dog might also appear within a game. In various embodiments, the central controller 110 may advise or tell the user of an action to take based on observations of the user's gameplay. If the central controller has detected low metabolite levels (e.g., low sugar or low protein) with the user, the central controller may advise the user to eat and/or to quit. In various embodiments, the central controller may infer user health status from game play. In various embodiments, one or more vital signs (e.g., blood pressure) may be obtained directly or indirectly from sensors. In various embodiments, the central controller may utilize user actions as an indicator of health state or status. If a user's game performance has declined, then this may be indicative of health problems (e.g., dehydration, fatigue, infection, heart attack, stroke, etc.). In various embodiments, game performance may be measured in terms of points scored, points scored per unit of time, opponents neutralized, levels achieved, objectives achieved, time lasted, skill level of opponents beaten, or in terms of any other factor.

A decline in game performance may be defined as a reduced performance during a given time interval (e.g., the last 15 minutes, today, the most recent seven days) versus game performance in a prior time interval (e.g., the 15-minute period ending 15 minutes ago; e.g., the 15-minute period ending one hour ago; e.g., the 15-minute period ending this time yesterday; e.g., the day before yesterday; the seven-day period ending seven days ago; etc.). In various embodiments, the central controller may monitor for a decline of a certain amount (e.g., at least 10%) before conclusively determining that performance has declined. In various embodiments, a player's performance may be compared to that of other players (such as to that of other players of a similar skill level, such as to that of other players with a similar amount of experience, such as to all other players). If a player's performance is significantly worse than that of other players (e.g., 20% or more worse), then the central controller 110 may infer a health problem.

In various embodiments, improvements in a player's performance may be used to infer positive changes in health status (e.g., that the user is better rested; e.g., that the user has overcome an illness; etc.). In various embodiments, the central controller 110 may combine data on vital signs with data on player performance in order to infer health status. For example, an increased body temperature coupled with a decline in performance may serve as a signal of illness in the player. In various embodiments, the central controller 110 may initiate recording and/or broadcasting of user gameplay based on sensor readings from a peripheral. Such sensor readings may include readings of vital signs. The central controller may also initiate recording and/or broadcasting based on inferred vital signs. This may allow the central controller, for example, to detect a level of excitement with the user, and initiate recording when the user is excited. The central controller may thereby capture footage that is more likely to be exciting, interesting, memorable, or otherwise noteworthy. In various embodiments, the central controller 110 may initiate recording when a user's heart rate exceeds a certain level. The level may be an absolute heart rate (e.g., one hundred beats per minute) or a relative heart rate (e.g., 20% above a user's baseline heart rate). In various embodiments, the central controller may initiate recording in response to a change in skin conductivity, blood pressure, skin coloration, breath oxygen levels, or in response to any other change in a user's vital signs.

In various embodiments, the central controller 110 may stop or pause recording when a user's vital sign or vital signs have fallen below a certain threshold or have declined by predetermined relative amount. In various embodiments, the central controller 110 may start recording or broadcasting when vital signs have fallen below a certain threshold (or decreased by a certain relative amount). The central controller may stop or pause recording when vital signs have increased above a certain threshold. In various embodiments, the central controller 110 may use a combination of sensor readings (e.g., of user vital signs) and user gameplay as a determinant of when to commence or terminate recording. For example, if the user's heart rate increases by 10% and the number of clicks per minute has increased by 20%, then the central controller may commence recording. In various embodiments, the central controller may track sensor inputs or other inputs from other users or participants, such as from audience members. These inputs may be used to determine when to start or stop recording or broadcasting. For example, the central controller may detect excitement levels in an audience member, and may thereby decide to record the ensuing gameplay action, as it may have a high chance of being interesting.

In various embodiments, the central controller may tag one or more user actions or junctures in a game based on user vital signs, biometrics, etc. The central controller may tag a juncture where a users heart rate peaked, a user's heart rate exceeded 100 beats/minute, where a user's breathing rate peaked, where a user's skin conductivity was in the 90th percentile, etc. The user and/or other users may subsequently review the tagged portions of the game, e.g., to relive exciting moments. Also, a game designer may review the tagged portions so as to improve the game itself (e.g., to incorporate more of the activity into the game that resulted in an elevated heart rate).

At step 8624, a peripheral device may feature some aspect of the game, according to some embodiments. In various embodiments, a peripheral device may feature, convey, or otherwise indicate some aspect of the game. In various embodiments, a peripheral device may feature a tag applied in a game, such as a tag applied by a team member, audience member, etc. A peripheral may explicitly display information, such as an amount of ammunition remaining with a player, a number of damage points sustained by a player, a set of coordinates detailing a player's location in a game, the number of opponent characters within a particular radius of the player's character, or any other game information. The information may be displayed using alphanumeric characters, bar graphs, graphs, or using any other means of presentation. In various embodiments, game information may be conveyed by a peripheral indirectly. In various embodiments, the color of a component of a peripheral (e.g., of an LED) may vary based on the health of the players game character. For instance, if the game character is at full strength, the LED may be green, while if the game character is one hit away from dying, then the LED may be red. In various embodiments, the LED may show a range of colors between red and green (e.g., each color within the range having a different mixture of red and green), to convey intermediate health statuses of the game character.

In various embodiments, a peripheral device may convey game information (e.g., tags applied during a game) using a level of sound (e.g., louder sounds convey tags with higher urgency, such as “keep up the attack!”; e.g., louder sounds convey poorer health statuses of the game character), using a volume of sound, using a pitch of sound, using a tempo (e.g., which can be varied from slow to fast), using vibrations, using a level of heat, using a level of electric shock, or via any other means. In various embodiments, a peripheral device may display or otherwise convey an attribute of another player, such as an attribute of another player's gameplay or a vital sign of another player. For example, a peripheral device may display the heart rate of another player. As another example, the color of a component of a peripheral device may cycle in sync with the breathing cycle of another player (e.g., the LED varies from orange on an inhale to yellow on an exhale then back to orange on the next inhale, and so on).

At step 8627, the central controller 110 may broadcast a game feed to others, according to some embodiments. For example, the feed may be broadcast via Twitch, via another streaming platform, via television broadcast, or via any other means. In various embodiments, part or all of a feed may be broadcast to a peripheral device, such as a peripheral device of an observing user. A feed may seek to mimic or replicate the experience of the playing user with the observing user. For example, if the playing user is receiving haptic feedback in his mouse, then similar haptic feedback may be broadcast to an observing users mouse.

At step 8630, the central controller 110 may trigger the presentation of an advertisement, according to some embodiments. In various embodiments, step 8630 may include the presentation of a promotion, infomercial, white paper, coupon, or any other similar content, or any other content. The advertisement may be triggered based on one or more factors, including: events in the game; detected user gameplay; sensor inputs; detected user vital signs; stored user preferences; ambient conditions; or based on any other factors. For example, upon detection of low glucose levels, an ad for a candy bar may be triggered. The advertisement may be presented to the user in various ways. the advertisement may appear within the gaming environment itself, such as on an in-game billboard. The advertisement may appear in a separate area on a screen, such as on the screen of a user device. The advertisement may appear as an overlay on top of the game graphics. The advertisement may temporarily interrupt gameplay, and may, e.g., appear full screen. In various embodiments, an advertisement may appear in full or in part on a peripheral device. For example, an advertisement may appear on a display screen of a mouse or of a keyboard. In various embodiments, a company's colors may be displayed with lights on a peripheral device. For example, LED Lights on a mouse may shine in the red white and blue of the Pepsi logo when a Pepsi advertisement is featured. In various embodiments, a peripheral device may broadcast sound, vibrations, haptic feedback, or other sensory information in association with an advertisement. For example, in conjunction with an advertisement for potato chips, a mouse may rumble as if to mimic the crunching of a potato chip.

At step 8633, the user makes an in-game purchase, according to some embodiments. The user may purchase a game resource (e.g., a weapon, vehicle, treasure, etc.), an avatar, an aesthetic (e.g., a background image; e.g., a dwelling; e.g., a landscape), a game shortcut (e.g., a quick way to a higher-level or to a different screen; e.g., a quick way to bypass an obstacle), a health enhancement for a game character, a revival of a dead character, a special capability (e.g., invisibility to other players, e.g., flight), or any other item pertinent to a game. In various embodiments, the user may purchase an item external to a game, such as an item that has been advertised to the user (e.g., a pizza from a local restaurant). In various embodiments, the user may make a purchase using a financial account, such as a financial account previously registered or created with the central controller 110. In various embodiments, prior to completing a purchase, the user may be required to authenticate himself. To authenticate himself, a user may enter a password, supply a biometric, and/or supply a pattern of inputs (e.g., mouse movements, e.g., keystrokes) that serve as a unique signature of the user. In various embodiments, an amount of authentication may increase with the size of the purchase. For example, one biometric identifier may be required for a purchase under $10, but two biometric identifiers may be required for a purchase over $10.

At step 8636, User 1 and user 2 pass messages to each other's peripheral devices, according to some embodiments. In various embodiments, a message may include words, sentences, and the like, e.g., as with traditional written or verbal communication. A message may include text and/or spoken words (e.g., recorded voice, e.g., synthesized voice). In various embodiments, a message may include images, emojis, videos, or any other graphic or moving graphic. In various embodiments, a message may include tags. In various embodiments, a message may include sounds, sound effects (e.g., a drum roll; e.g., a well-known exclamation uttered by a cartoon character) or any other audio. In various embodiments, a message may include other sensory outputs. A message may include instructions to heat a heating element, instructions for generating haptic sensations, instructions for increasing or decreasing the resistance of a button or scroll wheel or other actuator, instructions for releasing scents or perfumes or other olfactory stimulants, or instructions for inducing any other sensation. For example, user 1 may wish to send a message to user 2 with text “you are on fire!” and with instructions to increase the temperature of a heating element in user 2's mouse. The message may generate increased impact for user 2 because the message is experienced in multiple sensory modalities (e.g., visual and tactile).

In various embodiments, a user may explicitly type or speak a message. In various embodiments, a user may employ a sequence of inputs (e.g., a shortcut sequence) to generate a message. The central controller 110 may recognize a shortcut sequence and translate the sequence using one or more tables, such as “mapping of user input to an action/message” table 2600 and “generic actions/messages” table 2500. In various embodiments, a user may receive an alert at his peripheral device that he has received a message. The user may then read or otherwise perceive the message at a later time. The alert may comprise a tone, a changing color of a component of the peripheral device, or any other suitable alert. In various embodiments, a message may include an identifier, name, etc., for an intended recipient. In various embodiments, a message may include an indication of a peripheral device and/or a type of peripheral device that is the intended conveyor of the message. In various embodiments, a message may include an indication of a combination of devices that are the intended conveyors of the message. For example, a message may include instructions for the message to be conveyed using a mouse with a display screen and any peripheral device or user device with a speaker. In various embodiments, a message may be broadcast to multiple recipients, such as to all members of a gaming team. The message may be presented to different recipients in different ways. For example the recipients might have different peripheral devices, or different models of peripheral devices. In various embodiments, a message may contain instructions for conveying the message that specify a device-dependent method of conveyance. For example, if a recipient has a mouse with LED lights, then the LED lights are to turn purple. However, if a recipient has a mouse with no LED lights, then the recipient's computer monitor is to turn purple.

At step 8639, User 1 and user 2 jointly control a game character, according to some embodiments. In various embodiments, user 1 may control one capability of the game character while user 2 controls another capability of the game character. Different capabilities of the same game character may include: moving, using a weapon, firing a weapon, aiming a weapon, using individual body parts (e.g., arms versus legs; e.g., arms for punching versus legs for kicking), looking in a particular direction, navigating, casting a spell, grabbing or procuring an item of interest (e.g., treasure, e.g., medical supplies), building (e.g., building a barricade), breaking, solving (e.g., solving an in-game puzzle), signaling, sending a message, sending a text message, sending a spoken message, receiving a message, interpreting a message, or any other capability. For example, user 1 may control the movement of a character, while user 2 may control shooting enemy characters with a weapon. For example, user 1 may control the arms of a character, while user 2 may control the legs of a character. For example, user 1 may control the movement of a character, while user 2 communicates with other characters. In various embodiments, user 1 and user 2 jointly control a vehicle (e.g., spaceship, tank, boat, submarine, robot, mech robot), animal (e.g., horse, elephant), mythical creature (e.g., dragon, zombie), monster, platoon, army, battalion, or any other game entity. For example, user 1 may control the navigation of a spaceship, while user 2 may control shooting enemy spaceships.

In operation, the central controller 110 may receive inputs from each of user 1 and user 2. The central controller may interpret each input differently, even if they are coming from similar peripheral devices. For example, inputs from user 1 may be interpreted as control signals for a character's legs, while inputs from user 2 are interpreted as control signals for a character's arms. Prior to a game (e.g., during registration), two or more users may indicate an intent to control the same character. The users may then collectively select what aspect of the character each will control. For example, each user may check a box next to some aspect of a character that they intend to control. Subsequently, the central controller may interpret control signals from the respective users as controlling only those aspects of the character for which to respectively signed up. In various embodiments, one or more users may indicate an intent to control the same character at some other time, such as after a game has started. In various embodiments, inputs from two or more users may be combined or aggregated in some way to control the same character, and even to control the same aspect(s) of the same character. For example, the motion of a character may be determined as the sum of the control signals from the respective users. For example, if both user 1 and user 2 attempt to move the character to the right, then the character may in fact move right. However, if user 1 and user 2 attempt to move the character in opposite directions, then the character may not move at all. In various embodiments, control signals from two or more users may be combined in different ways in order to determine an action of a character. For example, the control signal of one user may take priority over the control signal of another user when there is conflict, or the control signal of one user may be weighted more heavily than the control signal of another user. In various embodiments, more than two users may jointly control a game character, vehicle, animal, or any other game entity.

At step 8642, User 1 and user 2 vote on a game decision, according to some embodiments. A game decision may include any action that can be taken in a game. A game decision may include a route to take, a weapon to use, a vehicle to use, a place to aim, a shield to use, a message to send, a signal to send, an evasive action to take, a card to play, a chess piece to move, a size of a bet, a decision to fold (e.g., in poker), an alliance to make, a risk to attempt, a bench player to use (e.g., in a sports game), an item to purchase (e.g., a map to purchase in a game) or any other game decision. In various embodiments, when a decision is to be made, the central controller may explicitly present the available choices to all relevant users (e.g., via menu). Users may then have the opportunity to make their choice, and the choice with the plurality or majority of the vote may be implemented. In various embodiments, decisions are not presented explicitly. Instead, users may signal their desired actions (e.g., using standard game inputs; e.g., using a tag), and the central controller may implement the action corresponding to majority or plurality of received signals. As will be appreciated, various other methods may be used for voting on an action in a game and such methods are contemplated according to various embodiments. In various embodiments, the votes of different users may be weighted differently. For example, the vote of user 1 may count 40%, while the votes for each of users 2, 3 and 4 may count for 20%. A candidate action which wins the weighted majority or weighted plurality of the vote may then be implemented.

At step 8645, user 2 controls user 1's peripheral device, according to some embodiments. There may be various reasons for user 2 to control the peripheral device of user 1. User 2 may be demonstrating a technique, tactic, strategy, etc., for user 1. User 2 may configure the peripheral device of user 1 in a particular way, perhaps in a way that user 1 was not able to accomplish on his own. The peripheral device belonging to user 1 may have more capabilities than does the peripheral device belonging to user 2. Accordingly, user 2 may need to “borrow” the capabilities of user 1's peripheral device in order to execute a maneuver, or perform some other task (e.g., in order to instruct or control user 2's own character). User 2 may take control of the peripheral device of user 1 for any other conceivable reason. In various embodiments, to control the peripheral device of user 1, user 2 (e.g., a peripheral device of user 2, e.g., a user device of user 2) may transmit control signals over a local network, such as a network on which both user 1's peripheral and user 2's peripheral reside. In various embodiments, control signals may be sent over the internet or over some other network, and may be routed through one or more other devices or entities (e.g., through the central controller 110). In various embodiments, the peripheral device of user 1 may include a module, such as a software module, whose inputs are control signals received from user 2 (or from some other user), and whose outputs are standard component outputs that would be generated through direct use of the peripheral device of user 1. For example, a control signal received from user 2 may be translated by the software module into instructions to move a mouse pointer for some defined distance and in some defined direction.

In various embodiments, the peripheral device of user 1 may include a module, such as a software module, whose inputs are control signals received from user 2 (or from some other user), and whose outputs become inputs into the peripheral device of user 1 and/or into components of the peripheral device of user 1. For example, the output of the software module may be treated as an input signal into a mouse button, as an input signal to a sensor on the peripheral device of user 1, or as an input signal to the entire mouse. The output of the software module would thereby mimic, for example, the pressing of a mouse button on the peripheral device of user 1, or the moving of the peripheral device of user1. In various embodiments, the software module may store a table mapping inputs (e.g., control signals received from user 2), to output signals for: (a) transmission to a user device; or (b) use as inputs to components of the peripheral device of user 1. In various embodiments, the software module may translate inputs received from another user into outputs using any other algorithm or in any other fashion.

In various embodiments, a control signal received from user 2 can be used directly (e.g., can be directly transmitted to the user device of user 1; e.g., can be directly used for controlling a game character of user 1), without modification. The peripheral device of user 1 would then be simply relaying the control signal received from user 2. In various embodiments, a hardware module or any other module or processor may be used for translating received control signals into signals usable by (or on behalf of) the peripheral device of user 1. In various embodiments, user 2 must have permission before he can control the peripheral device of user 1. User 1 may explicitly put user 2 on a list of users with permissions. User 1 may grant permissions to a category of users (e.g., to a game team) to which user 2 belongs. User 1 may grant permission in real time, such as by indicating a desire to pass control of a peripheral to user 2 in the present moment. In various embodiments, permissions may be temporary, such as a lasting a fixed amount of time, lasting until a particular event (e.g., until the current screen is cleared), lasting until to are withdrawn (e.g., by user 1), or until any other suitable situation. In various embodiments, user 1 may signal a desire to regain control of his peripheral device and/or to stop allowing user 2 to control his peripheral device. For example, user 1 may enter a particular sequence of inputs that restore control of the peripheral device to user 2.

At step 8648, a game occurrence affects the function of a peripheral device, according to some embodiments. A game occurrence may include a negative occurrence, such as being hit by a weapon, by a strike, or by some other attack. A game occurrence may include crashing, falling into a ravine, driving off a road, hitting an obstacle, tripping, being injured, sustaining damage, dying, or any other mishap. A game occurrence may include losing points, losing resources, proceeding down a wrong path, losing a character's ability or abilities, or any other occurrence. A game occurrence may include striking out in a baseball game, having an opponent score points, having a goal scored upon you (e.g., in soccer or hockey), having a touchdown scored upon you, having a team player get injured, having a team player foul out, or any other occurrence. A game occurrence may include losing a hand of poker, losing a certain amount of chips, losing material in a chess game, losing a game, losing a match, losing a skirmish, losing a battle, or any other game occurrence.

The functionality of a peripheral device may be degraded in various ways, in various embodiments. A component of the peripheral device may cease to function. For example, a button of a mouse or a key on a keyboard may cease to register input. An output component may cease to function. For example, an LED on a mouse may cease to emit light. A display screen may go dark. A speaker may stop outputting sound. In various embodiments, a component of a peripheral device may partially lose functionality. For example, a speaker may lose the ability to output sounds above a particular frequency. A display screen may lose the ability to output color but retain the ability to output black and white. As another example, a display screen may lose the ability to output graphics but may retain the ability to output text. In various embodiments, the peripheral may lose sensitivity to inputs. A button or key may require more pressure to activate. A button or key may not register some proportion or percentage of inputs. For example, a mouse button may not register every second click. Thus, in order to accomplish a single click, a player would have to press the mouse button twice. A microphone may require a higher level of incident sound in order to correctly interpret the sound (e.g., in order to correctly interpret a voice command). A camera may require more incident light in order to capture a quality image or video feed. Various embodiments contemplate that a peripheral may lose sensitivity to inputs in other ways.

In various embodiments, one or more categories of inputs may be blocked or disabled. A mouse motion in one direction (e.g., directly to the “East”) may not register. (However, a user may compensate by moving the mouse first “Northeast” and then “Southeast”). In various embodiments, a sensor may be blocked or disabled. Thus, for example, the teammate of a user may be unable to ascertain the user's heart rate. Voice inputs may be disabled. Arrow keys may be disabled while text keys retain their function. Any other category of inputs may be blocked or disabled, according to some embodiments. In various embodiments, a peripheral device may generate outputs that are uncomfortable, distracting, and/or painful. For example, LED lights on a mouse may shine at full brightness, or may blink very rapidly. A heating element may become uncomfortably hot. A speaker might output a screeching sound. In various embodiments, a peripheral device may be degraded temporarily, for a predetermined amount of time (e.g., for 5 minutes) after which full functionality may be restored. In various embodiments, functionality returns gradually over some period of time. For example, functionality may return in a linear fashion over a period of 5 minutes. In various embodiments, full functionality may not necessarily be restored. In various embodiments, a peripheral device may return asymptotically to full functionality. In various embodiments, functionality is permanently effected (e.g., until the end of a game). In various embodiments, functionality may be improved or restored only upon the occurrence of some other game event (e.g., a positive game event for the player; e.g., the player successfully lands a shot on his opponent; e.g., the player finds a green ruby in the game).

At step 8651, there is a pause/break in game play, according to some embodiments. In various embodiments, a player desires to stop playing, such as to temporarily stop playing. Perhaps the player needs to get a drink or take a phone call. A player may take one or more actions to indicate he is taking a break. A player may turn over his mouse, flip over his keyboard, place his camera face-down, or otherwise position a peripheral in an orientation or configuration where it would not normally be used or would not normally function. The peripheral may then detect its own orientation, and signal to the central controller 110 that the user is taking a break. In various embodiments, when a user takes a break, the central controller takes note of a lack of input from the user (e.g., from a peripheral device of the user), and infers that the user is taking a break. When a user takes a break, the central controller 110 may pause gameplay, may inform other participants that the player has taken a break, may protect the player's character from attacks, may pause a game clock, or may take any other suitable action.

At step 8654, the game concludes, according to some embodiments. The central controller 110 may thereupon tally up scores, determine performances, determine winners, determine losers, determine prizes, determine any records achieved, determine any personal records achieved, or take any other action. The central controller 110 may award a prize to a user. A prize may include recognition, free games, game resources, game skins, character skins, avatars, music downloads, access to digital content, cash, sponsor merchandise, merchandise, promotional codes, coupons, promotions, or any other prize. In various embodiments, a peripheral device of the user may assume an altered state or appearance in recognition of a user's achievement in a game. For example, LEDs on a user's mouse may turn purple, a speaker might play a triumphant melody, a mouse may vibrate, a mouse may display a tag (e.g., a tag indicative of an achievement or performance level), or any other change may transpire. In various embodiments, user achievements may be broadcast to others. For example, the central controller 110 may broadcast a message to a user's friends or teammates detailing the achievements of the user.

At step 8657, a game highlight reel is created, according to some embodiments. The highlight reel may include a condensed or consolidated recording of gameplay that has transpired. The highlight reel may include sequences with high action, battle sequences, sequences where a player neutralized an opponent, sequences where a player sustained damage, sequences where a player scored points, or any other sequences. A highlight reel may include recorded graphics recorded audio, recorded communications from players, or any other recorded aspect of a game. In various embodiments, the highlight reel contains sufficient information to recreate a game, but does not necessarily record a game in full pixel-by-pixel detail. The highlight reel may store game sequences in compressed format. In various embodiments, a highlight reel may include sequences where a peripheral device has recorded sensor inputs meeting certain criteria. For example, a highlight reel may include all sequences where a player's heart rate was above 120. As another example, a highlight reel may include the 1% of the game where the users measured skin conductivity was the highest. In various embodiments, a highlight reel may include game sequences or events that were tagged (e.g., with the tag “highlight” or the like; e.g., that were tagged based on high heart rate or other vital levels; etc.).

In various embodiments, a highlight reel may incorporate or recreate sensory feedback, such as sensory feedback to mimic what occurred in the game. For example, when a user's friend watches the highlight reel, the user's friend may have the opportunity to feel haptic feedback in his mouse just as the user felt during the actual game play. Thus, in various embodiments, a highlight reel may contain not only visual content, but also tactile content, audio content, and/or content for any other sensory modality, modality, or any combination of modalities. Further details on how haptic feedback may be generated can be found in U.S. Pat. No. 7,808,488, entitled “Method and Apparatus for Providing Tactile Sensations” to Martin, et al. issued Oct. 5, 2010, at columns 3-6, which is hereby incorporated by reference. In various embodiments, the central controller 110 may notify one or more other users about the existence of a highlight reel, e.g., by sending them the file, a link to the file, by sending an alert to their peripheral device, or in any other fashion.

At step 8660, the central controller 110 generates recommendations for improvement of the user's gameplay, according to some embodiments. In various embodiments, the central controller 110 may analyze the user's gameplay using an artificial intelligence or other computer program. The artificial intelligence may recreate game states that occurred when the user played, and decide what it would have done in such game states. If these decisions diverge from what the user actually decided, then the central controller may inform the player of the recommendations of the artificial intelligence, or otherwise note such game states. If the artificial intelligence agrees with what the user did, then the central controller may indicate approval to the user. In various embodiments, a user may have the opportunity to replay a game, or part of a game, from a point where the user did not perform optimally or did not make a good decision. This may allow the user to practice areas where his skill level might need improvement. In various embodiments, the central controller 110 may compare a user's decisions in a game to the decisions of other players (e.g., to skillful or professional players; e.g., to all other players) made at a similar juncture, or in a similar situation, in the game. If the users decisions diverge from those of one or more other players, then the central controller may recommend to the user that he should have made a decision more like that of one or more other players, or the central controller may at least make the user aware of what decisions were made by other players.

Storage Devices

Referring to FIG. 71A, FIG. 71B, FIG. 71C, FIG. 71D, and FIG. 71E, perspective diagrams of exemplary data storage devices 7140a-e according to some embodiments are shown. The data storage devices 7140a-e may, for example, be utilized to store instructions and/or data such as: data in the data tables of FIGS. 7-37, 50-66, 69-70, 73, 75-76, 81, 87, 92, 95-97, and 103-105; instructions for AI algorithms; instructions for facilitating a meeting; instructions for facilitating game play; instructions for optimizing emissions of a meeting; and/or any other instructions. In some embodiments, instructions stored on the data storage devices 7140a-e may, when executed by a processor, cause the implementation of and/or facilitate the methods: 7400 of FIG. 74; 7900 of FIGS. 79A-C; 8600 of FIGS. 86A-C; 9100 of FIGS. 91A-B; 9800 of FIG. 98; 10100 of FIG. 101; 10200 of FIGS. 102A-B; 10600 of FIG. 106; and/or portions thereof, and/or any other methods described herein.

According to some embodiments, the first data storage device 7140a may comprise one or more various types of internal and/or external hard drives. The first data storage device 7140a may, for example, comprise a data storage medium 7146 that is read, interrogated, and/or otherwise communicatively coupled to and/or via a disk reading device 7148. In some embodiments, the first data storage device 7140a and/or the data storage medium 7146 may be configured to store information utilizing one or more magnetic, inductive, and/or optical means (e.g., magnetic, inductive, and/or optical-encoding). The data storage medium 7146, depicted as a first data storage medium 7146a for example (e.g., breakout cross-section “A”), may comprise one or more of a polymer layer 7146a-1, a magnetic data storage layer 7146a-2, a non-magnetic layer 7146a-3, a magnetic base layer 7146a-4, a contact layer 7146a-5, and/or a substrate layer 7146a-6. According to some embodiments, a magnetic read head 7148a may be coupled and/or disposed to read data from the magnetic data storage layer 7146a-2.

In some embodiments, the data storage medium 7146, depicted as a second data storage medium 7146b for example (e.g., breakout cross-section “B”), may comprise a plurality of data points 7146b-2 disposed with the second data storage medium 7146b. The data points 7146b-2 may, in some embodiments, be read and/or otherwise interfaced with via a laser-enabled read head 7148b disposed and/or coupled to direct a laser beam through the second data storage medium 7146b. In some embodiments, the second data storage device 7140b may comprise a CD, CD-ROM, DVD, Blu-Ray™ Disc, and/or other type of optically-encoded disk and/or other storage medium that is or becomes known or practicable. In some embodiments, the third data storage device 7140c may comprise a USB keyfob, dongle, and/or other type of flash memory data storage device that is or becomes known or practicable. In some embodiments, the fourth data storage device 7140d may comprise RAM of any type, quantity, and/or configuration that is or becomes practicable and/or desirable. In some embodiments, the fourth data storage device 7140d may comprise an off-chip cache such as a Level 2 (L2) cache memory device. According to some embodiments, the fifth data storage device 7140e may comprise an on-chip memory device such as a Level 1 (L1) cache memory device.

The data storage devices 7140a-e may generally store program instructions, code, and/or modules that, when executed by a processing device, cause a particular machine to function in accordance with one or more embodiments described herein. The data storage devices 7140a-e depicted in FIG. 71A, FIG. 71B, FIG. 71C, FIG. 71D, and FIG. 71E are representative of a class and/or subset of computer-readable media that are defined herein as “computer-readable memory” (e.g., non-transitory memory devices as opposed to transmission devices or media).

Room

With reference to FIG. 72, a room 7200 with objects is depicted in accordance with various embodiments. Room 7200 may be a living room, such as in a home. Room 7200 may be any other room in any other location. Room 7200 may include one or more objects, such as toys, fixtures, furniture etc. Room 7200 may include one or more users. Room 7200 may include one or more devices. While room 7200 depicts an exemplary environment and arrangement of objects, users, and devices, various embodiments are applicable in any suitable environment and/or with any suitable arrangement of objects and/or users and/or devices.

In various embodiments, room 7200 includes devices and/or sensors such as cameras 7205a and 7205b, motion sensor 7207, projector 7209, and digital picture frame 7238. Room 7200 includes various objects.

Room 7200 includes, for example, door 7212, toy car 7214, present 7218, baby 7220, vase 7222, electrical outlet 7224, sock 7226, spinning tops 7228, pacifier 7230, tv remote 7232, keys 7234, painting 7236, window 7240, flies 7242, and pizza 7244. Room 7200 includes users such as adult 7246, child 7216, and child 7220.

In one or more examples, child 7220 is crawling towards vase 7222 and/or electrical outlet 7224, either of which present potential hazards. Namely, the vase can potentially fall and hurt the child, break, cause a mess, etc., and the outlet can cause shocks. One or more of cameras 7205a and 7205b and motion sensor 7207 may detect that the child is headed towards the vase and/or outlet. Projector 7209 may thereupon project a distracting image or video (e.g., a video of two fish playing) onto the floor in front of the child. This may delay the child. Camera 7205a (or some other device) may output an audible warning message for the adult 7246 to hear. The message may say, “Baby heading in a dangerous direction—please intervene” or the like.

In one or more examples, toy car 7214 lies on the floor near doorway 7212, and so causes a tripping hazard. Camera 7205a may cause projector 7209 (or a laser pointer, or any other light) to spotlight the toy car. The adult 7246 may see the spotlight, investigate, and realize he should pick up the car. Or, another person who enters the room may have their attention drawn to the car by the spotlight, and thereby avoid tripping.

In one or more examples, child 7216 is opening present 7218. This may represent a special moment that the gifter of the present (e.g., the child's aunt) would want to see. Accordingly, cameras 7205a and 7205b may capture and store images and/or video footage of the child opening the present. In various embodiments, images and/or video footage may be immediately streamed and/or sent to the gifter. In various embodiments, when the gifter subsequently visits the home and sees the opened gift, camera 7205a may detect and identify the interaction between the gifter and the gift, and retrieve historical information about the gift. Such historical information may include the video footage. The video footage may then be projected on a wall (e.g., by projector 7209) for the gifter to see. In various embodiments, an image of the child opening the gift may appear on digital picture frame 7238.

In one or more examples, spinning tops 7228 are on the floor near where a user (e.g., adult 7246) may step on them. Further the tops may not be in view of camera 7205b, but they may be in view of camera 7205b. Accordingly, camera 7205b may identify the tops in an image and, when adult 7246 stands up, cause a warning to be output to the adult. In various embodiments, the warning includes light illumination by projector 7209. However, since projector 7209 does not have a line-of-sight to the tops, projector 7209 may instead project onto the nearby coffee table an arrow, where the arrow is pointing toward the tops.

In one or more examples, a task may be associated with painting 7236. The task may be to move the painting so as to cover a crack in the wall. A camera (e.g., camera 7205a) may identify the crack, and cause projector 7209 to highlight the crack. The task may be assigned to adult 7246 and/or to another user.

In one or more examples, room 7200 includes lost or misplaced items, such as pacifier 7230, sock 7226 remote 7232, and pizza 7244. In various embodiments, a camera may identify such objects and assign a task to put them away (e.g., to put the pacifier in the sink to be washed, to put the sock in a hamper, to put the remote on the coffee table, to put the pizza in the refrigerator). When the task is assigned to a user, the projector 7209 may spotlight the objects so the user can more easily find them.

In one or more examples, room 7200 includes flies. In various embodiments, projector 7209 may spotlight the flies (e.g., guided by cameras 7205a and 7205b). An audio message may accompany the spotlight (e.g., “Please catch the flies”).

In one or more examples, a user in the household returns from driving the family car, but forgets to leave the car key out for other drivers. Camera 7205b may identify the driver, and also determine that the key to the family car is not among keys 7234. Accordingly a prompt may be output to the user to leave the car key with the other keys 7234.

In various embodiments, a task defined for an object in room 7200 may be stored as a tag (e.g., in tagging table 7300). The tag may be associated with the object. The tag may be used to later trigger a prompt (e.g., when a user enters the room and has the ability to act on the prompt and fulfill the task).

Tags for objects need not only represent tasks. In various embodiments, a user is trying to decide what to do with objects in a room (e.g., in a cluttered room). The user may review the items and assign each a tag such as to “discard”, “donate”, “give away”, “put in storage”, etc. For example, car 7214 may receive a tag of “give to nephew”, while pacifier 7230 may receive a tag of “discard”.

In various embodiments, a tag may indicate a timeline or deadline. The tag may represent an intended action or disposition of an object, but the tag may indicate that the action should only be taken at some point in the future. For example, a user may apply a “donate” tag to a toy, but the tag may indicate that the donation should only happen after Jul. 1, 2025. This may be the anticipated time when a child is no longer interested in the toy.

Mouse Usage

In various embodiments, it may be useful to measure the utilization of a peripheral device. In various embodiments, a peripheral device utilization is measured without reference to any applications (e.g., without reference to user device applications to which the peripheral device utilization is directed, such as to Microsoft® PowerPoint® or to a video game). In various embodiments, it may be determined when a user's effectiveness in utilizing a peripheral device has declined. In various embodiments, it may be determined when a user's utilization of a peripheral device has the potential to be adverse or harmful to a user (e.g., by keeping the user up late at night, by impacting the user's health). In various embodiments, a determination of the effectiveness of the user's utilization of the peripheral device, or the potential for harm to a user may be determined by monitoring or comparing utilization of a peripheral device over time. In various embodiments, utilization of a peripheral device may be monitored for any suitable purpose.

In measuring the utilization of a peripheral device, one or more types of inputs may be measured. The types of inputs may include: presses of a button; releases of a button; clicks of a button; single clicks of a button; double clicks of a button (e.g., two clicks of the button happening in rapid succession); clicks of a right button; clicks of a left button; clicks of a central button; individual interactions with a scroll wheel; degree to which a scroll wheel is turned; direction in which a scroll wheel is turned; movements of the device itself (e.g., movements of the entire mouse); direction of movement of the device; velocity of movement of the device; acceleration of movement of the device; sub-threshold inputs (e.g., pressure placed on a button that was insufficiently strong to register as a click); clicks coupled with motions of the entire device (e.g., drags); or any other types of inputs, or any combination of inputs. In various embodiments, utilization may be measured with passive inputs, such as with inputs detected at one or more sensors but not consciously made by a user. Utilization may measure such inputs as: pressure sensed on a peripheral device (e.g., resting hand pressure); heat sensed at a device (e.g., the heat of a user's hand); a metabolite level of a user; a skin conductivity of a user; a brainwave of a user; an image of a user; an image of part of a user (e.g., of the user's hands; e.g., of the user's face), or any other inputs, or any combination of inputs.

In various embodiments, combinations of inputs may provide a useful measure of utilization. With respect to a presentation remote, a user who is effectively using the presentation remote may direct a presentation remote laser pointer from a first location to a second location using a motion that is substantially a straight line. In contrast, for example, a user who is not effectively using the presentation remote may move the presentation remote laser pointer in the wrong direction (e.g., in a direction that is 10 degrees off from the direction of the second location with respect to the first location), or may overshoot the second location. Because the user is not being economical with his presentation remote motions, changes in direction of the presentation remote motion may be more prevalent with the user. In various embodiments, a metric of utilization may be based on some statistic of inputs measured over some period of time and/or per unit of time. A metric may include the number of inputs measured over some period of time. For example, the number of button clicks measured during a one minute interval. In various embodiments, a metric may include the aggregate of inputs measured over some period of time. For example, the total distance moved by a presentation remote laser pointer in one minute, or the total number of degrees that a scroll wheel has turned in one minute. In various embodiments, a metric may include the proportion of one type of input to another type of input. For example, a metric may measure what proportion of button clicks on a presentation remote were left button clicks versus right button clicks.

In various embodiments, a metric may measure the proportion of time during which a user's hand was in contact with a peripheral. In various embodiments, a metric measures the proportion of sub-threshold clicks to actual clicks. If this metric increases over time, it may suggest, for example, that the user is tiring out and not concentrating on pressing a mouse button hard enough. In various embodiments, a metric measures: (a) the aggregate absolute changes in direction of a mouse's movement divided by (b) the total absolute distance moved by the mouse, all within some unit of time (e.g., one minute). To use a simple example, suppose in one minute a mouse moves 3 inches to a user's right, then 0.5 inches to the user's left, then 2 inches directly away from a user. The mouse has changed directions twice, first by 180 degrees, then by 90 degrees, for an aggregate change in direction of 270 degrees. The mouse has moved a total absolute distance of 5.5 inches (i.e., the absolute value of the distance of each motion is added up). The metric will then take the value of 270 degrees/5.5 inches, or approximately 49 degrees per inch. In various embodiments, this metric may be computed at different time intervals. If the size of the metric is increasing from one time interval to the next, it may be indicative that the user is becoming tired and less efficient with his mouse movements.

In some cases, there may be other explanations for a changing metric. For example, a particular encounter in a video game may require a rapid series of short mouse movements in different directions. However, in various embodiments, by computing a metric over a relatively long time interval (e.g., over 10 minutes), or by computing the metric over many different intervals (e.g., over 20 1-minute intervals), the significance of other explanatory factors can be reduced, smoothed out, or otherwise accounted for. For example, where a metric is computed over many time intervals, values that represent significant outliers can be discarded as probably occurring as a result of other explanatory factors (e.g., not due to the users fatigue).

Adjustable Peripheral Device Parameters

In various embodiments, in response to utilization metrics (e.g., to values of a utilization metric, to changes in the value of a utilization metric over time), one or more parameters of a peripheral may be adjusted. Parameters that may be adjusted include: a sensitivity to clicks, a sensitivity to button presses, a color of a light (e.g., an LED), a brightness of a light, a background color of a display screen, a sensitivity of a touch screen, an image shown on a display screen, a rate at which a light blinks, a volume of audio output, a mapping of detected motion to reported motion (e.g., a mouse may detect 2 inches of mouse displacement but report only 1 inch of displacement, a presentation remote may detect a user hand speed of 6 feet per second, but report a speed of only two feet per second, a headset may detect a 30 degree turn of a user's head, but report only a 10 degree turn of the user's head), or any other parameter.

In various embodiments, a parameter may include whether or not a peripheral device registers an input at all (e.g., whether or not the mouse will register a right click at all). In various embodiments, a parameter may include whether or not a mouse registers any inputs at all. For example, a parameter may, upon assuming a given value, stop the mouse from functioning entirely.

Glass

Various embodiments contemplate the use of glass for such purposes as: coating substrates; display screens; touch screens; sensors; protective covers; glare reducers; fingerprint readers, or fingerprint reducers (such as so-called oleophobic screens and/or coatings); or for any other purpose. In various embodiments the Gorilla® Glass® line of glass products developed by Corning Inc. may be suitable for one or more purposes. The Gorilla® Glass® line includes such products as Gorilla® Glass™ 3, Gorilla® Glass™ 5, Gorilla® Glass™ 6, and others. Gorilla® Glass™ may provide such advantages as scratch resistance, impact damage resistance, resistance to damage even after drops from high places, resistance to damage after multiple impacts, resistance to damage from sharp objects, retained strength after impacts, high surface quality, optical purity and high light transmission, thinness, and/or lightness. Glass may be used as a flat or 2D panel, or in curved or 3D shapes to embed displays and other functionality in various surfaces and devices. Some exemplary types of glass are described in U.S. Pat. RE47,837, entitled “Crack and scratch resistant glass and enclosures made therefrom” to Barefoot, et al., issued Feb. 4, 2020, the entirety of which is incorporated by reference herein for all purposes. One glass formulation described by the patent includes: “an alkali aluminosilicate glass having the composition: 66.4 mol % SiO.sub.2; 10.3 mol % Al.sub.2O.sub.3; 0.60 mol % B.sub.2O.sub.3; 4.0 mol % Na.sub.2O; 2.10 mol % K.sub.2O; 5.76 mol % MgO; 0.58 mol % CaO; 0.01 mol % ZrO.sub.2; 0.21 mol % SnO.sub.2; and 0.007 mol % Fe.sub.2O.sub.3”. However, it will be appreciated that various embodiments contemplate that other suitable glass formulations could likewise be used. Other glass products that may be used include Dragontrail™ from Asahi™ and Xensation™ from Schott™.

It will be appreciated that various embodiments contemplate the use of other materials besides glass. Such materials may include, for example, plastics, thermoplastics, engineered thermoplastics, thermoset materials, ceramics, polymers, fused silica, sapphire crystal, corundum, quartz, metals, liquid metal, various coatings, or any other suitable material.

Diffusing Fiber Optics

Various embodiments contemplate the use of diffusing fiber optics. These may include optical glass fibers where a light source, such as a laser, LED light, or other source is applied at one end and emitted continuously along the length of the fiber. As a consequence the entire fiber may appear to light up. Optical fibers may be bent and otherwise formed into two or three dimensional configurations. Furthermore, light sources of different or time varying colors may be applied to the end of the optical fiber. As a result, optical fibers present an opportunity to display information such as a current state (e.g., green when someone is available and red when unavailable), or provide diverse and/or visually entertaining lighting configurations.

Diffusing fiber optics are described in U.S. Pat. No. 8,805,141, entitled “Optical fiber illumination systems and methods” to Fewkes, et al., issued Aug. 12, 2014, the entirety of which is incorporated by reference herein for all purposes.

As used herein, a “meeting” may refer to a gathering of two or more people to achieve a function or purpose.

A “company” may be a for profit or not for profit company. It could also be a small group of people who have a shared purpose, such as a club. The company could have full or part time employees located at one or more physical locations and/or virtual workers.

A “meeting owner” may refer to a person (or persons) responsible for managing the meeting. It could be the speaker, a facilitator, or even a person not present at the meeting (physically or virtually) who is responsible for elements of the meeting. There could also be multiple meeting owners for a given meeting.

A “meeting participant” may refer to an individual or team who attends one or more meetings. In some embodiments, a meeting participant could be a software agent that acts on behalf of the person. In various embodiments, the terms “meeting participant” and “meeting attendee” may be used interchangeably.

An “Admin/Coordinator” may refer to an individual or individuals who play a role in setting up or coordinating a meeting, but may not participate in the meeting itself.

A “baton” may refer to a task, obligation, or other item that may be fulfilled in portions or parts (e.g., in sequential parts). The task may be assigned to a person or a team. Upon fulfilling their portion of the task, the person or team may hand the task over to another person or team, thereby “passing the baton”. Such a task may be handed from one person to another—across meetings, across time, and/or across an organization. The task may ultimately reach completion following contributions from multiple people or teams. In various embodiments, a baton is first created in a meeting (e.g., as a task that results from a decision or direction arrived at in a meeting).

An “intelligent chair” may refer to a chair capable of performing logical operations (e.g., via a built-in processor or electronics), capable of sensing inputs (e.g., gestures of its occupants; e.g., voice commands of its occupants; e.g., pulse or other biometrics of its occupants), capable of sensing its own location, capable of outputting information (e.g., providing messages to its occupant), capable of adjusting its own configuration (e.g., height; e.g., rigidness; e.g., temperature of the backrest), capable of communicating (e.g., with a central controller), and/or capable of any other action or functionality.

As used herein, an “SME” may refer to a subject matter expert such as a person with expertise or specialized knowledge in a particular area (e.g. finance, marketing, operations, legal, technology) or a particular subdomain, such as the European market, server technology, intellectual property, or in any other area.

As used herein, a “Meeting Participant Device” or the like may refer to a device that allows meeting participants to send and receive messages before, during, and after meetings. A Meeting Participant Device may also allow meeting participants to take surveys about meetings, provide feedback for meetings and/or to engage in any other activity related to meetings. A meeting participant device may include: Smartphones (such as an Apple® iPhone® 11 Pro or Android™ device such as Google®™ Pixel 4™ and OnePlus™ 7 Pro); IP enabled desk phone; Laptops (MacBook Pro™ MacBook Air™, HP™ Spectre x360™, Google®™ Pixelbook Go™ Dell™ XPS 13™); Desktop computers (Apple® iMac 5K™, Microsoft®™ Surface Studio 2™ Dell™ Inspiron 5680™); Tablets (Apple® iPad™ Pro 12.9, Samsung™ Galaxy™ Tab S6, iPad™ Air, Microsoft® Surface Pro®); Watches (Samsung™ Galaxy™ Watch, Apple® Watch 5, Fossil™ Sport™, TicWatch™ E2, Fitbit™ Versa 2™); Eyeglasses (Iristick.Z1 Premium™ Vuzix Blade™, Everysight Raptor™ Solos™, Amazon®™ Echo™ Frames); Wearables (watch, headphones, microphone); Digital assistant devices (such as Amazon®™ Alexa™ enabled devices, Google® Assistant™, Apple® Siri™); and/or any other suitable device.

In various embodiments, a Meeting Participant Device may include a peripheral device, such as a device stored in table 1000. In various embodiments, a Meeting Participant Device may include a user device, such as a device stored in table 900.

As used herein, a “Meeting Owner Device” or the like may refer to a device that helps or facilitates a meeting owner in managing meetings. It could include the same or similar technology as described with respect to the Meeting Participant Device above.

Central Controllers

In various embodiments, central controller 110 may be one or more servers located at the headquarters of a company, a set of distributed servers at multiple locations throughout the company, or processing/storage capability located in a cloud environment—either on premise or with a third party vendor such as Amazon®™ Web Services™ Google®™ Cloud Platform™, or Microsoft®™ Azure™.

The central controller 110 may be a central point of processing, taking input from one or more of the devices herein, such as a location controller 8305 or participant device. The central controller may have processing and storage capability along with the appropriate management software as described herein. Output from the central controller could go to location controllers, room video screens, participant devices, executive dashboards, etc.

In various embodiments, the central controller may include software, programs, modules, or the like, including: an operating system; communications software, such as software to manage phone calls, video calls, and texting with meeting owners and meeting participants; an artificial intelligence (AI) module; and/or any other software.

In various embodiments, central controller 110 may communicate with one or more devices, peripherals, controllers (e.g., location controller 8305 (FIG. 83), equipment controllers); items of equipment (e.g., AV equipment); items of furniture (e.g., intelligent chairs); resource devices (e.g., weather service providers, mapping service providers); third-party devices; data sources; and/or with any other entity.

In various embodiments, the central controller 110 may communicate with: location controllers; display screens; meeting owner devices/participant devices, which can include processing capability, screens, communication capability, etc.; headsets; keyboards; mice (e.g. Key Connection Battery Free Wireless Optical Mouse & a USB 2′ Wired Pad, Logitech®; Wireless Marathon™ Mouse M705 with 3-Year Battery Life); presentation remotes; chairs; executive dashboards; audio systems; microphones; lighting systems; security systems (e.g. door locks, surveillance cameras, motion sensors); environmental controls (e.g. HVAC, blinds, window opacity); Bluetooth® location beacons or other indoor location systems, or any other entity.

In various embodiments, the central controller 110 may communicate with data sources containing data related to: human resources; presentations; weather; equipment status; calendars; traffic congestion; road conditions; road closures; or to any other area.

In various embodiments, the central controller may communicate with another entity directly, via one or more intermediaries, via a network, and/or or in any other suitable fashion. For example, the central controller may communicate with an item of AV equipment in a given room using a room location controller for the room as an intermediary.

Referring to FIG. 50, a diagram of an example ‘employees’ table 5000 according to some embodiments is shown.

Employees table 5000 may store information about one or more employees at a company, organization, or other entity. In various embodiments, table 5000 may store information about employees, contractors, consultants, part-time workers, customers, vendors, and/or about any people of interest. In various embodiments, employees table 5000 may store similar, analogous, supplementary, and/or complementary information to that of users table 700. In various embodiments, employees table 5000 and users table 700 may be used interchangeably and/or one table may be used in place of the other.

Employee identifier field 5002 may store an identifier (e.g., a unique identifier) for an employee. Name field 5004 may store an employee name. Start date field 5006 may store a start date, such as an employee's first day of work. Employee level field 5008 may store an employee's level within the company, which may correspond to an employee's rank, title, seniority, responsibility level, or any other suitable measure.

Supervisor field 5010 may indicate the ID number of an employee's supervisor, manager, boss, project manager, advisor, mentor, or other overseeing authority. As will be appreciated, an employee may have more than one supervisor.

Office/cube location field 5012 may indicate the location of an employee's place of work. This may be, for example, the place that an employee spends the majority or the plurality of her time. This may be the place where an employee goes when not interacting with others. This may be the place where an employee has a desk, computer, file cabinet, or other furniture or electronics or the like. In various embodiments, an employee may work remotely, and the location 5012 may correspond to an employee's home address, virtual address, online handle, etc. In various embodiments, multiple locations may be listed for an employee, such as if an employee has multiple offices. In various embodiments, a location may indicate a room number, a cube number, a floor in a building, an address, and or any other pertinent item of information.

In various embodiments, knowledge of an employee's location may assist the central controller 110 with planning meetings that are reachable by an employee within a reasonable amount of time. It may also assist the central controller 110 with summoning employees to nearby meetings if their opinion or expertise is needed. Of course, knowledge of an employee's location may be useful in other situations as well.

Subject matter expertise field 5014 may store information about an employee's expertise. For example, an employee may have expertise with a particular area of technology, with a particular legal matter, with legal regulations, with a particular product, with a particular methodology or process, with customer preferences, with a particular market (e.g., with the market conditions of a particular country), with financial methods, with financials for a given project, or in any other area. In various embodiments, multiple areas of expertise may be listed for a given employee. In various embodiments, subject matter expertise field 5014 may assist the central controller 110 with ensuring that a meeting has an attendee with a particular area of expertise. For example, a meeting about launching a product in a particular country may benefit from the presence of someone with expertise about market conditions in that country. As will be appreciated, subject matter expertise field 5014 could be used for other situations as well.

Personality field 5016 may store information about an employee's personality. In various embodiments, information is stored about an employee's personality as exhibited within meetings. In various embodiments, information is stored about an employee's personality as exhibited in other venues or situations. In various embodiments, it may be desirable to form meetings with employees of certain personalities and/or to balance or optimize personalities within a meeting. For example, if one employee tends to be very gregarious, it may be desirable to balance the employee's personality with another employee who is focused and who could be there to keep a meeting on track. In various embodiments, it may be desirable to avoid forming meetings with two or more clashing personality types within them. For example, it may be desirable to avoid forming a meeting with two (or with too many) employees that have a confrontational personality. As will be appreciated, personality field 5016 may be used for other situations as well.

Security level field 5018 may store information about an employee's security level. This may represent, for example, an employee's ability to access sensitive information. An employee's security level may be represented numerically, qualitatively (e.g., “high” or “low”), with titles, with clearance levels, or in any other suitable fashion. In various embodiments, security level field 5018 may assist the central controller 110 in constructing meetings with attendees that have permission to view potentially sensitive information that may arise during such meetings.

Security credentials field 5020 may store information about credentials that an employee may present in order to authenticate themselves (e.g., to verify their identities). For example, field 5020 may store an employee's password. An employee may be required to present this password in order to prove their identity and/or to access secure information. Field 5020 may store other types of information such as biometric information, voiceprint data, fingerprint data, retinal scan data, or any other biometric information, or any other information that may be used to verify an employee's identity and/or access levels.

Temperature preferences field 5021 may store an employee's temperature preferences, such as an employee's preferred room temperature. This preference may be useful in calculating heating energy (or cooling energy), and/or any associated emissions that may be required to maintain a room at an employee's preferred room temperature. Employee temperature preferences may influence the temperature at which an employee's office is kept, the temperature at which a meeting room hosting the employee is kept, or any other applicable temperature.

Preferences

In various embodiments, meeting owners and meeting participants could register their preferences with the central controller relating to the management and execution of meetings. Example preferences of meeting participants may include:

    • I only want to attend meetings with fewer than ten people.
    • I do not want to attend any alignment meetings.
    • I prefer morning to afternoon meetings.
    • I do not want to attend a meeting if a particular person will be attending (or not attending).
    • I don't like to attend meetings outside of my building or floor.
    • I don't attend meetings that require travel which generates carbon output.
    • Gestures that invoke action can be set as a preference. Tap my watch three times to put me on mute.
    • Nodding during a meeting can indicate that I agree with a statement.
    • Food preference for meetings. I only eat vegetarian meals.
    • My personal mental and physical well-being at a given time.

Example preferences of meeting owners may include:

    • I don't want to run any meetings in room 7805.
    • I prefer a “U” shaped layout of desks in the room.
    • I prefer to have a five minute break each hour.
    • I prefer the lights to be dimmed 50% while I am presenting.
    • I never want food to be ordered from a particular vendor.
    • I want a maximum of 25 attendees at my Monday meetings.
    • I need to be able to specify camera focus by meeting type. For example, in a meeting at which a decision is being made I want the camera to be on the key decision makers for at least 80% of the time.
    • My personal mental and physical well-being at a given time.

Example preferences or conditions of the central controller may include:

    • There are certain days on which meetings cannot be scheduled.
    • For a given room, certain levels of management have preferential access to those rooms.

Preferences field 5022 may store an employee's preferences, such as an employee's preferences with respect to meetings. Such preferences may detail an employee's preferred meeting location or locations, preferred amenities at a meeting location (e.g., whiteboards), preferred characteristics of a meeting location (e.g., location has north-facing windows, the location has circular conference tables), room layouts (e.g. U-shaped desk arrangements), etc. Preferences field 5022 may include an employee's preferred meeting times, preferred meeting dates, preferred meeting types (e.g., innovation meetings), preferred meeting sizes (e.g., fewer than ten people), or any other preferences.

Preferred standard device configurations field 5024 may store information about how an employee would like a device configured. The device may be a device that is used in a meeting. The device may include, for example, a smartphone, a laptop, a tablet, a projector, a presentation remote, a coffee maker, or any other device. Exemplary preferences may include a preferred method of showing meeting attendees (e.g., show only the speaker on a screen, show all attendees on screen at once), a preferred method of broadcasting the words spoken in a meeting (e.g., via audio, via a transcript), a preferred method of alerting the employee when his input is required (e.g., via flashing screen, via a tone), a preferred method of alerting the employee when the meeting is starting, a preferred method of alerting the employee when a particular topic arises, a preferred method of showing the results of an in-meeting survey (e.g., via a bar graph, via numerical indicators for each available choice), or any other preferences.

Email field 5026 may store an employee's email address. In various embodiments, a company email address may be stored for an employee. In various embodiments, a personal email address may be stored for an employee. In various embodiments, any other email address or addresses may be stored for an employee.

Phone field 5028 may store an employee's phone number. In various embodiments, a company phone number may be stored for an employee. In various embodiments, a personal phone number may be stored for an employee. In various embodiments, any other phone number or numbers may be stored for an employee.

In various embodiments, any other contact information for an employee may be stored. Such contact information may include a Slack™ handle, a Twitter® handle, a LinkedIn® handle, a Facebook® username, a handle on a social media site, a handle within a messaging app, a postal address, or any other contact information.

In various embodiments, storing an employee's contact information may allow the central controller 110 to send a meeting invite to an employee, to send reminders to an employee of an impending meeting, to check in on an employee who has not appeared for a meeting, to remind employees to submit meeting registration information (e.g., a purpose or agenda), to send rewards to employees (e.g., to send an electronic gift card to an employee), or to communicate with an employee for any other purpose.

Referring to FIG. 51, a diagram of an example ‘meetings’ table 5100 according to some embodiments is shown. In various embodiments, a meeting may entail a group or gathering of people, who may get together for some period of time. People may gather in person, or via some conferencing or communications technology, such as telephone, video conferencing, telepresence, zoom calls, virtual worlds, or the like. Meetings (e.g., hybrid meetings) may include some people who gather in person, and some people who participate from remote locations (e.g., some people who are not present in the same room), and may therefore participate via a communications technology. Where a person is not physically proximate to other meeting attendees, that person may be referred to as a ‘virtual’ attendee, or the like.

Further details on how meetings may occur via conferencing can be found in U.S. Pat. No. 6,330,022, entitled “DIGITAL PROCESSING APPARATUS AND METHOD TO SUPPORT VIDEO CONFERENCING IN VARIABLE CONTEXTS” to Doree Seligmann, issued Dec. 11, 2011, at columns 3-6, which is hereby incorporated by reference.

A meeting may serve as an opportunity for people to share information, work through problems, provide status updates, provide feedback to one another, share expertise, collaborate on building or developing something, or may serve any other purpose.

In various embodiments, a meeting may refer to a single-event or session, such as a gathering that occurs from 2:00 PM to 3:00 PM on Apr. 5, 2025. In various embodiments, a meeting may refer to a series of events or sessions, such as to a series of ten sessions that occur weekly on Monday at 10:00 AM. The series of sessions may be related (e.g., they may all pertain to the same project, may involve the same people, may all have the same or related topics, etc.). As such, in various embodiments, the series of sessions may be referred to collectively as a meeting. Meetings may also include educational sessions like a Monday 2 PM weekly Physics class offered by a university for a semester.

Meeting identifier field 5102 may store an identifier (e.g., a unique identifier) for a meeting. Meeting name field 5104 may store a name for a meeting. A meeting name may be descriptive of the subject of a meeting, the attendees in the meeting (e.g., a meeting called ‘IT Roundtable’ may comprise members of the IT department), or any other aspect of the meeting, or may have nothing to do with the meeting, in various embodiments.

Meeting owner field 5106 may store an indication of a meeting owner (e.g., an employee ID, an employee name). A meeting owner may be an individual or a group of individuals who run a meeting, create a meeting, organize a meeting, manage a meeting, schedule a meeting, send out invites for a meeting, and/or who play any other role in the meeting, or who have any other relationship to the meeting.

Meeting type field 5108 may store an indication of a meeting type. Exemplary meeting types include learning; innovation; commitment; and alignment meetings. A meeting type may serve as a means of classifying or categorizing meetings. In various embodiments, central controller 110 may analyze characteristics of a meeting of a certain type and determine whether such characteristics are normal for meetings of that type. For example, the central controller may determine that a scheduled innovation meeting has more people invited then would be recommended for innovation meetings in general.

In various embodiments, central controller 110 may analyze the relative frequency of different types of meetings throughout a company. The central controller may recommend more or fewer of certain types of meetings if the number of a given type of meeting is out of proportion to what may be considered healthy for a company. In various embodiments, meeting types may be used for various other purposes.

Level field 5110 may store a level of a meeting. The level may represent the level of the intended attendees for the meeting. For example, the meeting may be an executive-level meeting if it is intended to be a high-level briefing just for executives. In various embodiments, prospective attendees with ranks or titles that do not match the level of the meeting (e.g., a prospective attendee's rank is too low) may be excluded from attending the meeting. In various embodiments, meetings of a first-level may take priority over meetings of a second level (e.g., of a lower level). Thus, for example, meetings of the first level may be granted access to a conference room before meetings of a second level when meeting times overlap. In various embodiments, meeting levels may be used for other purposes as well.

Location field 5112 may store a location of a meeting. The location may include a building designation, a campus designation, an office location, or any other location information. In various embodiments, if a meeting is to be held virtually, then no information may be stored in this field.

Room identifier field 5114 may store an identifier of a room in which a meeting is scheduled to occur. The room may be a physical room, such as a conference room or auditorium. The room may be a virtual room, such as a video chat room, chat room, message board, Zoom® call meeting, WebEx® call meeting, or the like. In some embodiments, a meeting owner or central controller 110 may switch the room location of a meeting, with the record stored in the room identifier field updated to reflect the new room.

Start date field 5116 may store the start date of a meeting. In various embodiments, the start date may simply represent the date of a solitary meeting. In various embodiments, the start date may represent the first in a series of sessions (e.g., where a meeting is recurring).

Time field 5118 may store a time of a meeting, such as a start time. If the meeting comprises multiple sessions, the start time may represent the start time of each session. In embodiments with offices in different time zones, time field 5118 may be expressed in GMT.

Duration field 5119 may store a duration of a meeting, such as a duration specified in minutes, or in any other suitable units or fashion. The duration may represent the duration of a single session (e.g., of a recurring meeting).

Frequency field 5120 may store a frequency of a meeting. The field may indicate, for example, that a meeting occurs daily, weekly, monthly, bi-weekly, annually, every other Thursday, or according to any other pattern.

End date field 5122 may store the end date of a meeting. For meetings with multiple sessions, this may represent the date of the last session. In various embodiments, this may be the same as the start date.

Phone number field 5124 may store a phone number that is used to gain access to a meeting (e.g., to the audio of a meeting; e.g., to the video of a meeting; e.g., to slides of a meeting; e.g., to any other aspect of a meeting). In various embodiments, phone number field 5124 or a similar type field may store a phone number, URL link, weblink, conference identifier, login ID, or any other information that may be pertinent to access a meeting.

Tags field 5126 may store one or more tags associated with a meeting. The tags may be indicative of meeting purpose, meeting content, or any other aspect of the meeting. Tags may allow for prospective attendees to find meetings of interest. Tags may allow for comparison of meetings (e.g., of meetings with similar tags), such as to ascertain relative performance of similar meetings. Tags may serve other purposes in various embodiments.

‘Project number or cost center association’ field 5128 may store an indication of a project and/or cost center with which a meeting is associated. Field 5128 may thereby allow tracking of the overall number of meetings that occur related to a particular project. Field 5128 may allow tallying of costs associated with meetings related to a particular cost center. Field 5128 may allow for various other tracking and/or statistics for related meetings. As will be appreciated, meetings may be associated with other aspects of an organization, such as with a department, team, initiative, goal, or the like.

Ratings field 5130 may store an indication of a meeting's rating. A rating may be expressed in any suitable scale, such as a numerical rating, a qualitative rating, a quantitative rating, a descriptive rating, a rating on a color scale, etc. A rating may represent one or more aspects of a meeting, such as the importance of the meeting, the effectiveness of the meeting, the clarity of the meeting, the efficiency of the meeting, the engagement of a meeting, the purpose of the meeting, the amount of fun to be had in the meeting, or any other aspect of the meeting. A rating may represent an aggregate of ratings or feedback provided by multiple attendees. A rating may represent a rating of a single session, a rating of a group of sessions (e.g., an average rating of a group of sessions), a rating of a most recent session, or any other part of a meeting.

In various embodiments, ratings may be used for various purposes. A rating may allow prospective attendees to decide which meetings to attend. A rating may allow an organization to work to improve meetings (e.g., the way meetings are run). A rating may aid an organization in deciding whether to keep a meeting, cancel a meeting, change the frequency of a meeting, change the attendees of a meeting, or change any other aspect of a meeting. A rating may allow an organization to identify meeting facilitators who run good meetings. A rating may be used for any other purpose, in various embodiments.

Priority field 5132 may store a priority of a meeting. A priority may be represented using any suitable scale, as will be appreciated. The priority of a meeting may serve various purposes, and various embodiments. A company employee who is invited to two conflicting meetings may attend the meeting with higher priority. If two meetings wish to use the same room at the same time, the meeting with higher priority may be granted access to the room. A meeting priority may help determine whether a meeting should be cancelled in certain situations (e.g., if there is inclement weather). Employees may be given less leeway in declining invites to meetings with high priority versus those meetings with low priority. As will be appreciated, the priority of a meeting may be used for various other purposes.

Related meetings field 5134 may store an indication of one or more related meetings. Related meetings may include meetings that relate to the same projects, meetings that are on the same topic, meetings that generate assets used by the present meeting (e.g., meetings that generate ideas to be evaluated in the present meeting; e.g., meetings that generate knowledge used in the present meeting), meetings that have one or more attendees in common, meetings that use assets generated in the present meeting, meetings run by the same meeting owner, meetings that occur in the same location, meetings that occur at the same time, meetings that occur at an approximate time, or meetings with any other relationship to the present meeting. Any given meeting may have no related meetings, one related meeting, or more than one related meeting, in various embodiments.

In various embodiments, table 5100, or some other table, may store an indication of meeting connection types. This may include an indication of types of devices that may be used to participate in a meeting (e.g., mobile, audio only, video, wearable). This may include an indication of types of connections that may be used to participate in the meeting (e.g., Wi-Fi®, WAN, 3rd party provider).

Referring to FIG. 52, a diagram of an example ‘Meeting attendees’ table 5200 according to some embodiments is shown. Meeting attendees table 5200 may store information about who attended a meeting (and/or who is expected to attend).

Meeting identifier field 5202 may store an indication of the meeting in question. Date field 5203 may store an indication of the date of the meeting or of a particular session of the meeting. In some cases, an attendee might attend one session of a meeting (e.g., of a recurring meeting) and not attend another session of the meeting.

Attendee identifier field 5204 may store an indication of one particular attendee of a corresponding meeting. As will be appreciated, table 5200 may include multiple records related to the same meeting. Each record may correspond to a different attendee of the meeting.

Role field 5206 may store a role of the attendee at the meeting. Exemplary roles may include meeting owner, facilitator, leader, note keeper, subject matter expert, or any other role or function. In various embodiments, a role may be ‘interested participant’ or the like, which may refer to a non-meeting participant, such as a CEO, CIO, VP/Director of Meetings, or Project Sponsor. In various embodiments, a role may be ‘central controller administrator’, ‘central controller report administrator’, or the like, which may refer to a participant that performs or oversees one or more functions of the central controller as it pertains to the meeting. In various embodiments, a role may be ‘meeting room and equipment administrator’ or the like, which may refer to a participant that oversees operations of the meeting room, such as ensuring that projectors and AV equipment are running properly.

An attendee with no particular role may simply be listed as attendee, or may be designated in any other suitable fashion.

Manner field 5208 may store an indication of the manner in which the attendee participated in the meeting. For example, an attendee may participate in person, via video conference, via web conference, via phone, or via any other manner of participation.

Referring to FIG. 53, a diagram of an example ‘Meeting engagement’ table 5300 according to some embodiments is shown. Meeting engagement table 5300 may store information about attendees' engagement in a meeting. Storing engagement levels may be useful, in some embodiments, for seeking to alter and improve meetings where engagement levels are not optimal. Engagement may refer to one or more behaviors of an attendee as described herein. Such behaviors may include paying attention, focusing, making contributions to a discussion, performing a role (e.g., keeping notes), staying on topic, building upon the ideas of others, interacting with others in the meeting, or to any other behavior of interest. In some embodiments, headset 4000 or camera 4100 may provide data that informs the determining of an engagement level (e.g. detection of head drooping down, eyes closing, snoring sounds).

Meeting identifier field 5302 may store an indication of the meeting for which engagement is tracked. Date field 5304 may store the date of the meeting or of a session of the meeting. This may also be the date for which engagement was recorded.

Time field 5306 may store an indication of the time when the engagement was recorded, measured, noted, observed, reported, and/or any other pertinent time. For example, engagement may be observed over a five minute interval, and time field 5306 may store the time when the interval finishes (or the time when the interval starts, in some embodiments). In various embodiments, time field 5306 may store the entire interval over which the engagement was recorded. In various embodiments, an attendee's engagement may be measured multiple times during the same meeting or session, such as with the use of surveys delivered at various times throughout a meeting. In such cases, it may be useful to look at changes in engagement level over time. For example, if an attendee's engagement has decreased during a meeting, then the attendee may be sent an alert to pay attention, may be provided with a cup of coffee, or may otherwise be encouraged to increase his engagement level. In one embodiment, if engagement levels are low for a particular meeting, central controller 110 may send an instruction to the company catering facilities to send a pot of coffee to the room in which the meeting is occurring.

Attendee identifier field 5308 may store an indication of the attendee for whom engagement is measured. Engagement level field 5310 may store an indication of the attendee's level of engagement. This may be stored in any suitable fashion, such as with a numerical level, a qualitative level, quantitative level, etc. In various embodiments, an engagement level may refer to a quantity of engagement, such as a number of comments made during a discussion. In various embodiments, an engagement level may refer to a quality of behavior, such as the relevance or value of comments made during a discussion. In various embodiments, an engagement level may refer to some combination of quality and quantity of a behavior. An engagement level may refer to any suitable measure or metric of an attendee's behavior in a meeting, in various embodiments.

In various embodiments, an engagement level may be connected to a biometric reading. The biometric may correlate to a person's visible behaviors or emotional state within a meeting. In various embodiments, for example, an engagement level may be a heart rate. A low heart rate may be presumed to correlate to low engagement levels. In various embodiments, field 5310 may store a biometric reading, such as a heart rate, breathing rate, measure of skin conductivity, or any other suitable biometric reading.

Engagement indicator(s) field 5312 may store an indication of one or more indicators used to determine an engagement level. Indicators may include biometrics as described above. Exemplary indicators include signals derived from voice, such as rapid speech, tremors, cadence, volume, etc. Exemplary indicators may include posture. For example, when a person is sitting in their chair or leaning forward, they may be presumed to be engaged with the meeting. Exemplary indicators may be obtained through eye tracking. Such indicators may include eye movement, direction of gaze, eye position, pupil dilation, focus, drooping of eyelids, etc. For example, if someone's eyes are just staring out into space, it may be presumed that they are not engaged with the meeting. As will be appreciated, many other engagement indicators are possible.

Burnout risk field 5314 may store an indication of an attendee's burnout risk. Burnout may refer to a significant or lasting decline in morale, productivity, or other metric on the part of an attendee. It may be desirable to anticipate a burnout before it happens, as it may then be possible to prevent the burnout (e.g., by giving the attendee additional vacation days, by giving the attendee less work, etc.). A burnout risk may be stored in any suitable fashion, such as on a “high”, “medium”, “low” scale, on a numerical scale, or in any other fashion.

A burnout risk may be inferred via one or more indicators. Burnout indicators field 5316 may store one or more indicators used to assess or detect an attendee's burnout risk. Exemplary indicators may include use of a loud voice, which may portend a high burnout risk. Exemplary indicators may include steady engagement, which may portend a low burnout risk. Burnout risk may also be inferred based on how often an attendee declines invites to meetings (e.g., an attendee might decline 67% of meeting invites). A high rate of declining invites might indicate that the attendee is overworked or is simply no longer interested in making productive contributions, and may therefore be burning out. An exemplary indicator might be a degree to which an attendee's calendar is full. For example, an attendee with a calendar that is 95% full may represent a medium risk of burnout. In various embodiments, multiple indicators may be used in combination to form a more holistic picture of an employee's burnout risk. For example, an employee's rate of declining meeting invites may be used in conjunction with the employee's calendar utilization to determine an employee's burnout risk.

Referring to FIGS. 54A and 54B, a diagram of an example ‘Meeting feedback’ table 5400 according to some embodiments is shown. Note that meeting feedback table 5400 extends across FIGS. 54A and 54B. Thus, for example, data in the first record under field 5420 (in FIG. 54B) is part of the same record as is data in the first record under field 5402 (in FIG. 54A).

Meeting feedback table 5400 may store feedback provided about a meeting. The feedback may come from meeting attendees, meeting observers, from recipients of a meeting's assets, from contributors to a meeting, from a meeting owner, from management, from facilities management, or from any other parties to a meeting or from anyone else.

Meeting feedback may also be generated via automatic and/or computational means. For example, the central controller 110 may process an audio recording received from microphone 4214 of presentation remote 4200 of the meeting and determine such things as the number of different people who spoke, the degree to which people were talking over one another, or any other suitable metric. In some embodiments, meeting feedback may be provided by a user via headset 4000, such as by a user providing a verbal message of support for another meeting attendee. In some embodiments, meeting feedback may be provided in the form of tags submitted by meeting participants.

In various embodiments, meeting feedback may be stored in aggregate form, such as the average of the feedback provided by multiple individuals, or such as the aggregate of feedback provided across different sessions of a meeting. In various embodiments, feedback may be stored at a granular level, such as at the level of individuals.

Meeting feedback may be useful for making changes and or improvements to meetings, such as by allowing prospective attendees to decide which meetings to attend, or for any other purpose. Meeting feedback can be expressed in any suitable scale, such as a numerical rating, a qualitative rating, a quantitative rating, a descriptive rating, a rating on a color scale, etc.

In various embodiments, feedback may be provided along a number of dimensions, subjects, categories, or the like. Search dimensions may cover different aspects of the meeting. In some embodiments, feedback could be provided regarding room layout, air conditioning noise levels, food and beverage quality, lighting levels, and the like.

Meeting identifier field 5402 may store an indication of the meeting for which feedback is tracked. Effectiveness of facilitation field 5404 may store an indication of effectiveness with which the meeting was facilitated. Other feedback may be stored in such fields as: ‘Meeting Energy Level’ field 5406; ‘Did the Meeting Stay on Track?’ field 5408; ‘Did the Meeting Start/End on Time?’ field 5410; ‘Room Comfort’ field 5412; ‘Presentation Quality’ field 5414; ‘Food Quality’ field 5418; ‘Room lighting’ field 5420; ‘Clarity of purpose’ field 5422; Projector quality’ field 5424; ‘Ambient noise levels’ field 5426; ‘Strength of Wi-Fi® Signal’ field 5428; ‘Room cleanliness’ field 5430; and ‘view from the room’ field 5432 where the field labels themselves may be explanatory of the type of feedback stored in such fields.

‘Overall rating’ field 5416 may store an overall rating for a meeting. The overall rating may be provided directly by a user or by multiple users (e.g. via detachable speaker 4274 of presentation remote 4200). The overall rating may be computationally derived from feedback provided along other dimensions described herein (e.g., the overall rating may be an average of feedback metrics for effectiveness of facilitation, meeting energy level, etc.). The overall rating may be determined in any other suitable fashion.

Other feedback may be related to such questions as: Were meeting participants encouraged to provide their opinions?; Was candor encouraged?; Was the speaker's voice loud enough?; Was the speaker understandable?; Did the meeting owner know how to use the technology in the room?

In various embodiments, the central controller 110 may inform the meeting owner during or after the meeting that clarity is low (or may provide some other feedback to the meeting owner or to any other participant). Feedback could be private to the meeting owner (e.g. delivered via display 4246 of presentation remote 4200), or it could be made available to everyone in the room, or just to management.

In various embodiments, feedback about the meeting owner goes to the meeting owners boss (or to any other person with authority over the meeting owner, or to any other person).

In various embodiments, feedback about the meeting may be metadata associated with the meeting. The metadata may be used in searching, for example.

In various embodiments, other feedback may relate to meeting content (e.g. presentation, presentation slides, agenda, meeting assets, ideas, discussions, graphs, flipchart notes), and may address such questions as: Was the content organized efficiently?; Was the content clear and concise?; Was the content appropriate for the audience? For example, was the presentation too technical for an executive level meeting?

In various embodiments, other feedback may relate to presentation material and slide content, and may address such questions as: How long did the presenter spend on each slide?; Were the slides presented too quickly?; Were some slides skipped?; What type of slides result in short or long durations?; How long did the presenter spend on slides related to the meeting purpose or agenda?; Did the presenter finish the presentation within the allotted time?; Were there too many words on each slide?; Did the presentation include acronyms?; Was there jargon in the presentation?; Were graphs, figures, and technical materials interpretable and readable?; Which slides were provided in advance to meeting participants for review? The answers to these questions could be used to tag low clarity scores to particular material, presentations, or individual slides.

In various embodiments, other feedback may relate to technology, and may address such questions as: Was all room equipment working throughout the meeting?; Did external factors (home Wi-Fi®, ISP provider, energy provider disruption) contribute to poor use of technology?; Was equipment missing from the room (for example chairs, projectors, markers, cables, flip charts, etc.)?

In various embodiments, other feedback may relate to room setup, and may address such questions as: Was the room difficult to locate?; Were participants able to locate bathrooms?; Was the room A/C or heating set appropriately for the meeting?; Was the room clean?; Were all chairs and tables available per the system configuration?; Was the screen visible to all participants?; Were the lights working?; Was the room unlocked?; Was the room occupied?; Was food/beverage delivered on-time and of high quality?

Referring to FIG. 55, a diagram of an example ‘Meeting participation/Attendance/Ratings’ table 5500 according to some embodiments is shown. Meeting participation/Attendance/Ratings table 5500 may store information about attendees' participation, attendance, ratings received from others, tags received from others, and/or other information pertaining to a person's attendance at a meeting. Information stored in table 5500 may be useful for trying to improve individual attendees' performances in meetings. For example, if an attendee is habitually late for meetings, then the attendee may be provided with extra reminders prior to meetings. Information stored in table 5500 may also be useful for planning or configuring meetings. For example, if it is known that many attendees had to travel far to get to a meeting, then similar meetings in the future may be held in a more convenient location. Information stored in table 5500 may be used for any other suitable purpose.

Meeting identifier field 5502 may store an indication of the meeting in question. Date field 5504 may store an indication of the date of the meeting or of a particular session of the meeting. In some cases, an attendee might attend one session of a meeting (e.g., of a recurring meeting) and not attend another session of the meeting.

Employee identifier field 5506 may store an indication of one particular employee or attendee of a corresponding meeting. Role field 5508 may store a role of the attendee at the meeting as described above with respect to field 5206. ‘Confirmed/Declined meeting’ field 5510 may store an indication of whether the employee confirmed his or her participation in the meeting or declined to participate in the meeting. In various embodiments, field 5510 may indicate that the employee actually attended the meeting, or did not actually attend the meeting.

‘Time arrived’ field 5512 may indicate when an employee arrived at a meeting. This may represent a physical arrival time, or a time when the employee signed into a meeting being held via conferencing technology, and/or this may represent any other suitable time. In some embodiments, time arrived data is received from presentation remote 4200 such as by a presenter who taps on the name of a meeting attendee on display 4246 when that attendee enters the meeting room.

‘Time departed’ field 5514 may indicate when an employee departed from a meeting (e.g., physically departed; e.g., signed out of a virtual meeting; etc.).

‘Travel time to meeting location’ field 5516 may indicate an amount of time that was required for the employee to travel to a meeting. The travel time may be the time it actually took the employee to reach the meeting. The travel time may be a time that would generally be expected (e.g., a travel time of the average person at an average walking pace, a travel time of the average driver at an average driving speed). In various embodiments, the travel time may assume the employee started at his office or his usual location. In various embodiments, the travel time may account for the employee's actual location prior to the meeting, even if this was not his usual location. For example, the travel time may account for the fact that the employee was just attending another meeting and was coming from the location of the other meeting.

‘Travel time from meeting location’ field 5518 may indicate an amount of time that was required for the employee to travel from a meeting to his next destination. Similar considerations may come into play with field 5518 as do with field 5516. Namely, for example, travel times may represent actual or average travel times, destinations may represent actual or typical destinations, etc.

‘Employee rating by others’ field 5520 may represent a rating that was given to an employee by others (e.g., by other attendees of the meeting). The rating may reflect an employee's participation level, an employee's contribution to the meeting, an employee's value to the meeting, and/or any other suitable metric. In some embodiments, employee rating information may be collected from one or more tags submitted by meeting participants.

Referring to FIG. 56, a diagram of an example ‘Employee calendars’ table 5600 according to some embodiments is shown. Table 5600 may store information about employees' scheduled appointments, meetings, lunches, training sessions, or any other time that an employee has blocked off. In various embodiments, table 5600 may store work-related appointments. In various embodiments, table 5600 may store other appointments, such as an employee's personal appointments. Table 5600 may be useful for determining who should attend meetings. For example, given two possible attendees, the central controller may invite the employee with more free time available on his calendar. Table 5600 may also be used to determine whether an employee's time is being used efficiently, to determine an employee's transit time from one appointment to another, in the nature of meetings with which employees are involved, or in any other fashion.

Employee identifier field 5602 may store an indication of an employee. Meeting identifier field 5604 may store an indication of a meeting. If the appointment is not a meeting, there may be no identifier listed. Subject field 5606 may store a subject, summary, explanation, or other description of the appointment. For example, field 5606 may store the subject of a meeting if the appointment is for a meeting, or it may describe a ‘Doctor call’ if the appointment is for the employee to speak to his doctor.

Category field 5608 may store a category of the appointment. Exemplary categories may include ‘Meeting’ for appointments that are meetings, ‘Personal’ for appointments that are not work related (e.g., for an appointment to attend a child's soccer game), ‘Individual’ for appointments to spend time working alone, or any other category of appointment. In various embodiments, categories are input by employees (e.g., by employees who create appointments, by meeting organizers, by employees conducting a manual review of calendars). In various embodiments, a category is determined programmatically, such as by classifying the subject of an appointment into the most closely fitting category.

Date field 5610 may store the date of the appointment. Start time field 5612 may store the start time of the appointment. Duration field 5614 may store the duration of the appointment. In various embodiments, a separate or alternate field may store an end time of the appointment.

‘Company/personal’ field 5616 may store another means of classifying the appointment. In this case, the appointment may be classified as either company (e.g., work-related), or personal (not work-related).

Referring to FIG. 57, a diagram of an example ‘Projects’ table 5700 according to some embodiments is shown. Table 5700 may store information about projects, initiatives, or other endeavors being undertaken by an organization. Tracking projects at an organization may be useful for various reasons. An organization may wish to see how many meetings are linked to a particular project. The organization may then, for example, decide whether there are too few or too many meetings associated with the project. The organization may also allocate a cost or a charge to the project associated with running the meeting. The organization may thereby, for example, see whether a project is overstepping its budget in light of the number of meetings it is requiring.

Project ID field 5702 may store an identifier (e.g., a unique identifier) for a project. Name field 5704 may store a name associated with a project. ‘Summary’ field 5706 may store a summary description of the project.

Exemplary projects may include a project to switch all employees' desktop computers to using the Linux™ operating system; a project to allow employees to work remotely from the office in a manner that maximizes data security; a project to launch a new app; a project to obtain up-to-date bids from suppliers of the organization. As will be appreciated, any other suitable project is contemplated.

Start date field 5708 may store a start date of the project. Priority field 5710 may store a priority of the project. Expected duration field 5712 may store an expected duration of the project.

Percent completion field 5714 may store the percentage of a project that has been completed. Various embodiments contemplate that other metrics of a project completion may be used, such as number of milestones met, percent of budget spent, quantity of resources used, or any other metric of project completion. Budget field 5716 may store a budget of the project.

Personnel requirements field 5718 may store personnel requirements of the project. In various embodiments, personnel requirements may be expressed in terms of the number of people required and/or in terms of the percentage of a given person's time (e.g., of a given workday) which would be devoted to a project. For example, a personnel requirement of ‘10 people at 75% time’ may indicate that the project will require 10 people, and that each of the 10 people will be utilizing 75% of their time on the project. In various embodiments, personnel requirements may be specified in additional terms. For example, personnel requirements may indicate the departments from which personnel may be drawn, the number of personnel with a given expertise that will be required (e.g., the number of personnel with java expertise), the number of personnel with a given title that will be required (e.g., the number of project managers), or any other requirements for personnel.

Referring to FIG. 58, table 5800 may store information about employees or other people involved in projects. In various embodiments, table 5800 may store information about key personnel involved in projects. In some embodiments, table 5800 may include information beyond employees, such as contractors, vendors, trainers, safety inspectors, or regulators who may be involved in the project (e.g. a laser safety trainer).

Project ID field 5802 may store an identifier of a project. Employee ID field 5804 may store an indication of an employee who is somehow involved or associated with the project. Role field 5806 may store an indication of an employee's role within a project. Exemplary roles may include: project manager; lead developer; communications strategist; procurement specialist; or any other role, or any other function, or any other association to a project.

Referring to FIG. 59, a diagram of an example ‘Projects milestones’ table 5900 according to some embodiments is shown. Table 5900 may store information about project milestones, phases, goals, segments, accomplishments or other components of a project.

Project ID field 5902 may store an identifier of a project. Milestone ID field 5904 may store an identifier (e.g., a unique identifier) of a milestone.

Sequence number field 5906 may store a sequence number representing where the present milestone falls in relation to other milestones within the project. For example, the first milestone to be accomplished in a project may receive a sequence number of 1, the second milestone to be accomplished in a project may receive a sequence number of 2, and so on. As will be appreciated, sequence numbers may be designated in any other suitable fashion, such as with roman numerals, with letters of the alphabet, by counting up, by counting down, or in any other manner. In various embodiments, field 5906 (or another field) may also store an indication of the total number of milestones in a project, or of the highest sequence number in the projects. For example, a sequence number may be stored as “3 of 8”, indicating that the milestone is the third milestone out of eight milestones in the project. In various embodiments, it may be intended that some milestones be completed in parallel. Exemplary milestones to be completed in parallel may be designated “3A”, “3B”, etc., or may use any other suitable designation.

Summary field 5908 may store a summary or other description of the milestone. Exemplary summaries include: draft request for proposal; implement pilot with legal group; stress test; review all vendor proposals; or any other summary or description.

Due date field 5910 may store a date when the milestone is due for completion. Percent complete field 5912 may store an indication of what percentage (or fraction) of a milestone has been completed.

Approver(s) field 5914 may store an indication of one or more people who have the authority or ability to approve that a milestone has been completed. For example, an approver might be a project manager, a vice president of a division overseeing a project, a person with expertise in the technology used to accomplish the milestone, or any other suitable approver. Violations field 5916 may store an indication of one or more violations that have occurred on a project. In some embodiments, violation information may come from received and/or stored tag information.

Referring to FIG. 60, a diagram of an example ‘Assets’ table 6000 according to some embodiments is shown. Assets may include encapsulated or distilled knowledge, roadmaps, decisions, ideas, explanations, plans, processing fees, recipes, or any other information. Assets may be generated within meetings (e.g., a meeting may result in decisions). Assets may be generated for meetings (e.g., included in presentation decks). Assets may be generated in any other fashion or for any other purpose.

In various embodiments, an asset may include information for improving company operations, or improving meetings themselves. In various embodiments, an asset may include a map, an office map, a campus map, or the like. An exemplary map 6800 is depicted in FIG. 68. For example, a map may assist in planning for meetings by allowing for selection of meeting locations that minimize participant travel times to the meeting, or match the meeting to the nearest available location with the appropriate capacity or necessary technology.

Table 6000 may store information about assets. Table 6000 may be useful for a number of reasons, such as allowing an employee to search for an educational deck, allowing an employee to find a summary of a meeting that he missed, allowing employees to act in accordance with decisions that have been made, allowing employees to review what had been written on a whiteboard, etc. In various embodiments, table 6000 may be used in addition to, instead of, and/or in combination with asset library table 1900.

Asset ID field 6002 may store an identifier (e.g., a unique identifier) of an asset. Asset type field 6004 may store an indication of an asset type. Exemplary asset types may be: a presentation deck; notes; meeting minutes; decisions made; meeting summary; action items; photo of whiteboard, or any other asset type. Exemplary asset types may include drawings, renderings, illustrations, mock-ups, etc. For example, an asset might include a draft of a new company logo, a brand image, a mock-up of a user interface for a new product, plans for a new office layout, etc. Exemplary asset types may include videos, such as training videos, promotional videos, etc.

In various embodiments, an asset may include a presentation or presentation template formatted for a particular meeting type or audience (e.g., formatted for executives, members of the board of directors, a project sponsor, a team meeting, a one-on-one).

In various embodiments, an asset may include a progress report, progress tracker, indication of accomplishments, indication of milestones, etc. For example, an asset may include a Scrum Board, Kanban Board, etc.

In various embodiments, assets may be divided or classified into other types or categories. In various embodiments, an asset may have multiple classifications, types, categories, etc.

Meeting ID field 6006 may store an identifier of a meeting with which an asset is associated. For example, if the asset is a deck, the meeting may be the meeting where the deck was used. If the asset is a decision, the meeting may be the meeting where the decision was made.

Creation date field 6008 may store a date when an asset was created. In various embodiments, one or more dates when the asset was modified (e.g., the date of the most recent modification) may also be stored.

Author field 6010 may store the author or authors of an asset. In various embodiments, authors may include contributors to an asset. For example, if an asset is a photo of a whiteboard, then the authors may include everyone who was at the meeting where the whiteboard was populated.

Version field 6012 may store the version of an asset. In various embodiments, an asset may undergo one or more updates, revisions, or other modifications. Thus, for example, the version number may represent the version or iteration of the asset following some number of modifications. At times, it may be useful for an employee to search through older versions of an asset, perhaps to see what the original thinking behind an idea was before it got removed or changed.

Tags field 6014 may store one or more tags associated with an asset. Tags may provide explanatory information about the asset, indicate an author of an asset, indicate the reliability of the asset, indicate the finality of the asset, indicate the state of the asset, indicate the manner in which the asset was generated, indicate feedback about an asset, or provide any other information pertinent to an asset. Illustrative tags include: rated 8/10; author eid204920; computer transcription; needs VP confirmation; short-term items; all items approved by legal; medium quality, etc.

Keywords field 6016 may store one or more keywords or other words, numbers, phrases, or symbols associated with an asset. Keywords may be excerpted from an asset. For example, keywords may be taken from the title of the asset. Keywords may be words that describe the subject or the nature of the asset but are not necessarily literally in the asset. Keywords may be any other suitable words. In various embodiments, keywords may serve as a means by which an employee can locate an asset of interest. For example, if an employee wants to learn more about a certain topic, then the employee may search for assets where the keywords describe the topic. In some embodiments, sets of keywords may include: mission statement, vision, market impact, value prop, customer segments, breakeven, technology roadmap, fiber cables, cloud, personnel, resources, European market, SWOT analysis.

Rating field 6018 may store one or more ratings for the asset. Ratings may represent the utility of the asset, the quality of the asset, the importance of the asset, and/or any other aspect of the asset, and/or any combination of aspects of the asset.

Asset data field 6020 may represent the data comprising the asset itself. For example, if the asset is a deck, then data field 6020 may store the actual Microsoft® PowerPoint® file data for the deck. If the asset is a photograph, then data field 6020 may store an actual JPEG file of the photograph. In various embodiments, table 6000 may store a link or reference to an asset, rather than the asset data itself (e.g., the asset may be stored in a separate location and table 6000 may store a link or reference to such location).

Presentation Materials

Many company presentations include a deck such as a Microsoft® PowerPoint® presentation that is emailed to participants and projected for meeting participants to view and discuss during a meeting. Presentation materials can also include videos, white papers, technical documents, instruction manuals, checklists, etc. These presentation materials, however, are often stored on local computers that are not searchable by other individuals.

Various embodiments bring the content of all presentation materials into the central controller 110 (or stored in a cloud provider in a way that is accessible by the central controller) so that they are available to any meeting owner, participant, or employee of the company. A central store of all presentations could include access to historical presentations.

Referring to FIG. 61, a diagram of an example ‘Presentations’ table 6100 according to some embodiments is shown. Presentations may include decks (e.g., PowerPoint® decks, Apple® Keynote decks, Google® Side decks, etc.). Presentations may include other types of files, such as PDF files, Microsoft® Word® documents, multimedia files, or any other type of file or any other type of information.

Table 6100 may store information about presentations. Table 6100 may be useful for a number of reasons, such as allowing an employee to search for a particular presentation, a presentation on a topic of interest, the latest in a series of presentations, highly rated presentations, etc. Table 6100 may also allow, for example, comparison of different attributes of a presentation (e.g., number of slides, number of tables), in order to ascertain what attributes of a presentation improve the presentation's effectiveness. Table 6100 may also allow a user to search through presentation decks on a particular topic so that he or she can use material from those decks to aid in the creation of a new presentation deck. Table 6100 may be used for various other purposes as well.

In various embodiments, table 6100 may be used in addition to, instead of, and/or in combination with meeting assets table 6000. In various embodiments, a presentation is a type of asset.

Asset ID field 6102 may store an identifier of an asset, where, in this case, the asset is a presentation. Number of slides field 6104 may store the number of slides. Number of words field 6106 may store the number of words in the presentation. In various embodiments, a density of words per slide may be computed from fields 6104 and 6106 (e.g., by dividing the number of words described in 6106 by the number of slides described in 6104).

Size of the file field 6108 may store the size of a file that represents the presentation (e.g., the size of a PowerPoint® file comprising the presentation). Presentation software version field 6110 may store the software, software version, application, program, or the like used for a presentation (e.g., Microsoft® PowerPoint® for Mac® version 16.35; Keynote® 11.0; Google® Slides).

Number of graphics field 6112 may store the number of graphics used in the presentation. Graphics may include pictures, charts, graphs, tables, maps, animations, illustrations, word clouds, or any other graphic, or any other information.

Number and type of tags field 6114 may store an indication of the number and/or types of tags associated with a presentation. Tags may include descriptive tags, which may describe the nature, subject matter or content of the presentation (e.g., to aid in searching for the presentation), or a portion thereof. Tags may include ratings tags, which may evaluate the presentation, or a portion thereof, along one or more dimensions (e.g., quality, clarity, relevance, reliability, currency, etc.). In various embodiments, a tag may apply to the presentation as a whole. In various embodiments, a tag may apply to a portion of the presentation, such as to an individual slide, an individual graphic, a group of slides, a group of graphics, a section of the presentation, or to any other portion of the presentation. With tags, an employee may be able to search for the ‘financials’ portion of a presentation on the ‘Mainframe architecture’ project, for example. In some embodiments, a user may apply a tag to a slide (e.g. ‘project milestone slide’, ‘Q1 sales chart’, ‘team members’) so that a presenter using presentation remote 4200 can enter a tag via presentation remote 4200 in order to jump directly to that slide during a presentation.

Number of times presented field 6116 may store an indication of the number of times the presentation has been presented (e.g., the number of meetings in which the deck has been featured).

Template used field 6118 may store an indication of a template that was used in creating the presentation. In various embodiments, it may be desirable that presentations on certain topics or for certain purposes follow a specific format. This format may be dictated by a template. For example, a project evaluation committee may wish that all proposals for new projects follow a set format that is dictated by a ‘Project proposal’ template. As another example, it may be desirable that all presentations that are seeking to educate the audience follow a particular format that has been found conducive to learning. Such presentations may follow a ‘Learning template’. The presence of templates may also assist the creator of a presentation in creating the presentation more rapidly.

In various embodiments, there may be multiple templates available for creating a certain type of presentation. For example, there may be multiple types of business plan templates. Those specific template children may depend on the nature of the business plan, the preferences of the presentation creator, or on any other factor. Example templates depicted for field 6118 include: learning template #3; business plan template #8; financials template #3.

Time to create presentation field 6120 may store an indication of the time it took to create the presentation. In various embodiments, this may be an indicator of the quality of a presentation. In various embodiments, a company may wish to make it easier or more efficient to create presentations, and therefore may wish to track how long it took to make every presentation and watch for decreases in creation time over time.

Key points field 6122 may store key points that are in the presentation. These may represent key insights, takeaways, summaries, topics, decisions made, or any other key points, or any other points. Field 6122 may allow employees to search for presentations covering points of interest to them.

Take away summary included field 6124 may indicate whether or not the presentation includes a take away summary. In various embodiments, it may be desirable to encourage presenters to include a take away summary, so the presence of such a summary may be tracked. In various embodiments, an employee with limited time may wish to search for presentations with takeaway summaries and read such summaries rather than reading the entire presentation. A takeaway summary may be used in other embodiments as well.

Security level field 6126 may indicate a security level of the presentation. The level may be expressed in terms of a minimum title or rank an employee must have in order to access the presentation. Example security levels include: general; manager +; VP +. Security levels may be expressed in other terms or scales as well. For example, security levels may be specified in terms such as ‘general’, ‘sensitive’, ‘secret’, ‘top secret’, or using any other scale or terminology.

In various embodiments, portions of a presentation may have their own security levels. For example, the first slide in a presentation may be available for general consumption at the company, whereas another slide may have a higher security level and be accessible only to managers and above. In various embodiments, security levels may apply to individual slides, groups of slides, sections of a presentation, individual graphics, groups of graphics, and/or any other portion or subset of a presentation.

Presentation creation date field 6130 may store the date the presentation was created. In various embodiments, this or another field may store the date of the last revision of the presentation.

Presentation rating field 6132 may store an indication of a rating given to the presentation. A rating may be expressed in any suitable scale (e.g., quantitative, qualitative, etc.). A rating may represent one or more aspects of a presentation, such as the importance of the presentation, the effectiveness of the presentation, the clarity of the presentation, or any other aspect of the presentation. A rating may represent an aggregate of ratings or feedback provided by multiple people. A rating may represent any other suitable statistic.

Acronyms field 6134 may store an indication of acronyms used in the presentation. The field may include an explanation or expansion of the acronym(s). In various embodiments, this may provide a convenient means for uninitiated readers to see what the acronyms mean. In various embodiments, acronyms may be tracked by a company with the desire to reduce the use of acronyms within presentations. Example acronyms include: DCE—data communications equipment; IMAP—internet message access protocol, FCE—frame check sequence.

Tags field 6136 may store one or more tags associated with a presentation. Tags may provide explanatory information about the presentation, indicate an author of the presentation, indicate the reliability of the presentation, indicate the finality of the presentation, indicate the state of the presentation, indicate the manner in which the presentation was generated, indicate feedback about an presentation, or provide any other information pertinent to an presentation. Illustrative tags include: pr75660791, pr71427249 (i.e., this presentation is associated with project IDs pr75660791 and pr71427249), DCE, learning; business plan, market assessment; Projections, financials, pr96358600.

Referring to FIG. 62, a diagram of an example ‘Presentation Components’ table 6200 according to some embodiments is shown. Presentations may include decks (e.g., PowerPoint® decks, Apple® Keynote® decks, Google® slide decks). Presentations may include other types of files, such as PDF files, Microsoft® Word documents, multimedia files, or any other type of file or any other type of information. A component of a presentation could be a subset of the content of the presentation.

Table 6200 may store information about components of presentations, such as a particular page of a PowerPoint® presentation or a chart from a pdf document. Presentation components could also include portions of a video or audio file. Table 6200 may be useful for a number of reasons, such as allowing meeting participants to rate particular components of a presentation, such as by providing a numeric rating (e.g. via headset 4000, via presentation remote 4200) for each of three important slides from a presentation as opposed to an overall rating for the presentation. Table 6200 may also allow a user to identify the highest rated sales chart from a large library of presentations, and to use that sales chart at a sales team Town hall presentation. Table 6200 may be used for various other purposes as well.

In various embodiments, table 6200 may be used in addition to, instead of, and/or in combination with meeting presentation table 6100. In various embodiments, a presentation component is a type of asset.

Asset ID field 6202 may store an identifier of an asset, where, in one embodiment, the asset is a presentation. Component ID field 6204 identifies a component of an asset, such as a single slide page from a presentation. In this example, the presentation is the asset and the component is the slide page. Each identified asset may contain many components identified by component ID 6204.

Component type field 6206 may store an indication of the component being identified. For example, a component type might be PowerPoint® slide 7, a graphic file from a Keynote™ presentation, a section of a presentation that discusses benefits of a new software package for the finance department, a two-minute audio clip from a 30-minute CEO all hands presentation, etc.

Average rating field 6208 may store one or more ratings for the component ID. Ratings may represent the utility of the component, the quality of the component, the importance of the component, and/or any other aspect of the component, and/or any combination of aspects of the component. Ratings could be aggregated numerical ratings one a scale of one to ten, such as ratings of 7.5 or 8.2. Ratings could be provided by meeting attendees (e.g. by using a smartphone to send ratings to presentation remote 4100) who attended one or more meetings in which the component was presented, providing a rating after review of the component via a user device in communication with central controller 110.

Ratings associated with presentation components could be useful in identifying employees who produce high quality assets. For example, a component with a high rating can be traced through component ID field 6204 to the corresponding meeting asset ID field 6202 and then, through presentation assets table 6000, to author field 6010 to determine the identity of the author or the presentation from which the component was a part.

Referring to FIG. 63, a diagram of an example ‘tag meanings and representations’ table 6300 according to some embodiments is shown. Table 6300 may store data descriptive of the meaning of a tag, the category of a tag, the appearance of a tag, and/or rules governing the use of a tag. Note that a given tag represented in a record (row) of table 6300 may be used more than one time. When a tag is used, table 6300 may serve as a reference for what the tag means.

Tag identifier field 6302 may store an identifier (e.g., a unique identifier) that identifies a tag.

Category field 6304 may store an indication of a category of a tag. In various embodiments, tags may be grouped into one or more categories. One category may be “positive tags”, which may include any tag with a positive connotation (e.g., “good work”, “nice comment”, etc.). One category may be “negative tags”, which may include any tag with a negative connotation (e.g., “speaking too fast”, “confusing presentation”, etc.). A category may include all tags with any other particular sentiment. A category may include all tags that can be applied to people (e.g., “creative”, “hard worker”). A category may include all tags that can be applied to objects (e.g., “broken”, “dangerous”, “out of place”, etc.). A category may include all tags that can be applied to some other set of recipients (e.g., to groups, locations, etc.). In various embodiments, tags may be categorized in any other suitable fashion.

Label field 6306 may store an indication of a label used by a tag. The label may be visible to a person using the tag, to a person receiving the tag, to a person who is viewing a report based on tags, and/or to any other person. For example, the label may appear on the tag, as part of the tag, and/or as the entire tag. The label may provide a summary or shorthand as to the tag's intended meaning or function. Exemplary labels may include “high impact”, “good point”, “key insight”, “congested”, “monotone”, etc.

Meaning field 6308 may store an indication of a tag's meaning. The meaning may represent the intended comment or statement that is made by placing the tag. The meaning may be an expanded version of what was said on the label 6306. An example meaning of a tag (e.g., when applied to an employee) is “made a statement that improved understanding or moved a discussion forward and was not otherwise obvious”.

Appearance field 6310 may store an indication of a tag's appearance. This may include image data for an image depicting the tag. This may include markup language, vector graphics definitions, and/or any other indication of a tag's appearance. An appearance may indicate that a tag appears as a gold star, a purple flower, an ice cream cone, a yellow square, a smiley face, or as any other depiction.

Rules field 6312 may store an indication of rules that govern the use of a tag. Rules may specify what individuals and/or categories of individuals can use a tag (e.g., only individuals of a certain rank, only individuals within a certain department, only individuals with a certain certification, etc.). Rules may specify situations in which a tag can be applied (e.g., only in meetings, only after comments, etc.). Rules may specify the subject or recipient of a tag (e.g., a tag may only be used on people, a tag may only be used on presenters, a tag may only be used on software developers, etc.). Rules may specify a maximum number of times that a given tag may be used (e.g., no more than twice per meeting, etc.). Rules may specify any other conditions, circumstances, and/or criteria under which a tag may be used.

Referring to FIG. 73, a diagram of an example ‘Tagging’ table 7300 according to some embodiments is shown. Table 7300 may store instances where a tag (e.g., a tag from table 6300) was actually assigned, placed and/or applied. For example, in a particular meeting, after being impressed by the meeting facilitator, a first meeting participant may assign a tag of “efficient facilitation” to the meeting facilitator. This assignment of a tag may be stored in table 7300. Table 7300 may include such information as the time and circumstances under which the tag was applied, the assignor, etc. In various embodiments, data stored in table 7300 may later be analyzed to determine an employee's performance, the efficiency of meetings, the effectiveness of a presentation, and/or any other aspect of an employee, object, meeting, group, team, organization, etc. Tags may be aggregated (e.g., the number of positive tags received by an employee may be determined). In various embodiments, actions may be taken based on a single tag application (e.g., an employee may receive a reward for a single positive tag). Tagging table 7300 may be used for any other purpose.

Tagging instance identifier field 7302 may store an identifier (e.g., a unique identifier) that identifies an instance of a tag being assigned or applied.

Meeting identifier field 7304 may store an identifier of a meeting. This may be the meeting during which a tag was applied.

In various embodiments, field 7304 may contain an indicator of a location (e.g., a room, address, etc.) if, for example, the tag is not applied in any particular meeting. In various embodiments, table 7300 may include an additional “location” field.

Source field 7306 may store an indication of a source of a tag. This may be a participant, employee, or other user who applied or assigned a tag. The source of a tag may also be a device (e.g., a camera, microphone, etc.). A device may receive data about a user (e.g., in the form of a video recording, audio recording, etc.), may analyze the data, and may assign a tag based on the analysis. For example, a microphone may receive audio data of a presenter, determine that the presenter is speaking too quickly, and automatically assign a tag, e.g., “speak too quickly”. In various embodiments, central controller 110 and/or any other entity, combination of entities, combination of devices and entities, etc., may be the source of a tag.

Tag identifier field 7308 may store an indication of a tag that was assigned (e.g., a tag as stored in table 6300). Tag presentation language field 7310 may store an indication of a language in which the tag was presented. This may indicate the language used for any label or text associated with the tag.

‘Tag presentation screen location’ field 7312 may store an indication of a location or area on a screen or display window where a tag was placed or applied. The particular location at which a tag is placed may indicate a person or object to which the tag is referring (e.g., the target of the tag). For example, if a tag is placed at a location on a screen during a video conference call, the tag may be referring to a participant whose video is currently displayed at that same location on the screen (such participant may be identified, for example, by reference to table 9200). If a tag is placed at a location on a slide of a presentation, the tag may be referring to text or graphics appearing at that location on the slide. If a tag is placed on an image of a room, the tag may be referring to a person, object, presentation, or other item appearing in the image at the location the tag is placed. A tag's location may be used for any other suitable purpose.

In various embodiments, the location of a tag may be expressed using pixels (e.g., pixels from the top and pixels from the left of a screen or window), using a percentage of a screen, using inches or other units of measurement, and/or using any other units. Exemplary locations include b3; 30%, 70%; 100px, 200px; bottom right; etc.

Tag target field 7314 may store an indication of target or object of the tag. This may be a user, device, asset, item of furniture, object, group, and/or anything else. Thus, the tag may represent a comment, feedback, evaluation, question, note, and/or other statement for and/or about the target.

Application time field 7316 may store an indication of a time when the tag was applied or placed.

Counter field 7318 may store an indication of a count or running count of tags that have been applied. The counter may apply to tags in general, to tags of the same type used in this instance (e.g., tags having the same tag identifier field 7308), to tags used in the same meeting, to tags from the same source, to tags used during some period of time, to tags with the same target, and/or to some other set of tagging instances. For example, if the present tagging instance represents the 48th time a tag was applied during a given meeting, then counter field 7318 may store the number 48.

It may be desirable to maintain a running count of tags that have been applied in order to conform to any rules governing the application of tags (e.g., as described in table 6300). For example, there may be a maximum number of tags permitted during a meeting. In various embodiments, it may be desirable to track tag usage by an individual (e.g., to ascertain engagement of the individual), to track tag receipt by a target (e.g., to ascertain performance of the target), and/or to maintain a counter of tags for any other reason.

Expiration time field 7320 may store an indication (e.g., date and/or time) of when an applied tag expires. An expiration time may represent, for example, the latest time for which a tag will count towards an award (e.g., an award for receiving the most tags). In various embodiments, a tag is removed (e.g., made invisible to its target, removed from its target, etc.) following the expiration time. The expiration time may be used for any other purpose.

Tag metadata field 7322 may store an indication of any metadata associated with the tag, such as an opinion by another user as to whether or not the tag was used appropriately.

In various embodiments, table 7300 may include a field (not shown) storing an indicator of a tag strength, degree, level or severity. For example if a tag represents “confusion”, then the strength of the tag represents a level of confusion. Thus, a level may provide a finer or more nuanced meaning to a tag.

Referring now to FIG. 74, a flow diagram of a method 7400 according to some embodiments is shown. Method 7400 details, according to some embodiments, a flow of tag information from the time tags are initially specified through generation of feedback based on tags that were placed.

At step 7403 tags may be established or prepared for use, such as in an upcoming meeting. A meeting owner/participant accesses the central controller tag repository and selects tags for use or enters new tags as might be useful or appropriate for the meeting.

At step 7406 the meeting, meeting content, objects, participants and/or any information to be tagged are opened (e.g., made available to be tagged).

At step 7409 tags are placed, selected or associated with the content, people, objects, etc., in accordance with participant instructions. The placed tags may be tags from amongst the tags established at step 7403. A sensor equipped device may collect (e.g., automatically collect) information about the meeting.

At step 7412 the tags and associated information, and any information collected from the sensor equipped device, are sent to the central controller 110 for processing.

At step 7415 the central controller algorithm analyzes the content from the participant or group of participants and provides feedback. Feedback may take the form of dashboards, reports, visual indicators, words or meeting improvement suggestions provided to a participant(s) or meeting owner. The central controller may analyze information obtained via sensors and process it through an AI algorithm. The algorithm may generate responses for the participant(s) to use (actively or passively) or confirm.

At step 7418 the tagged information in the central controller is used for reporting and dashboard view, such as during the meeting and after the fact.

Thus, a process for utilizing tags may include: meeting is set up; meeting owner chooses tags; meeting starts; participants tag content and people; sensors collect data; signals are generated; actions are taken; a post-meeting reporting dashboard is created.

Referring to FIG. 64, a diagram of an example room table 6400 according to some embodiments is shown. In various embodiments, a room may entail a physical location in which people gather to conduct a meeting, presentation, lecture, class, seminar, government hearing, etc. The room may be physical, or it could be virtual such as an online meeting via some conferencing or communications technology, such as telephone, video conferencing, telepresence, zoom calls, virtual worlds, or the like. Room ID could also refer to a location such as a walking trail of a corporate campus in which a ‘walking meeting’ was to take place. In another embodiment, a room could be a place within a local park, or a particular table at a local restaurant. Rooms may be temporary in nature, such as the use of an employee office to host occasional meetings. Rooms (e.g., hybrid meetings) may include some people who gather in person, and some people who participate from remote locations (e.g., some people who are not present in the same room), and may therefore participate via a communications technology. Where a person is not physically proximate to other meeting attendees, that person may be referred to as a ‘virtual’ attendee, or the like. A meeting may serve as an opportunity for people to share information, work through problems, provide status updates, provide feedback to one another, share expertise, collaborate on building or developing something, or may serve any other purpose.

In various embodiments, a room could be part of a group of several meetings that are all used by a single meeting. For example, one meeting might be split over two rooms in different countries so as to avoid too much travel between locations for a meeting.

Room identifier field 6402 may store an identifier of a room in which a meeting is scheduled to occur. The room may be a physical room, such as a conference room or auditorium. The room may be a virtual room, such as a video chat room, chat room, message board, Zoom call meeting, WebEx call meeting, or the like. In some embodiments, a meeting owner or central controller 110 may switch the room location of a meeting, with the record stored in room ID field 6402 updated to reflect the new room.

Address field 6404 may store an address associated with the room. For example, a room may be located at 456 Gold Street in New York, N.Y. While this may provide only a high-level designation of the location of a particular room, in some embodiments this information is helpful to employees or contractors who are visiting a meeting location for the first time and need to know how to find the building itself first.

Building field 6406 may store the name of a building within a group of buildings that host meetings. For example, this field might store ‘Building 1’ to indicate that of the eight buildings in a corporate campus, this meeting room is located in Building 1.

Floor 6408 may store an indication of the floor on which the room is located. Room number 6410 field may store a number associated with the room, such as room ‘486’. Such room numbers might be added to stored floor plan maps of a company building, allowing meeting attendees to quickly associate the room number of a meeting with a particular location on a digital map that might be sent to their user device such as a smartphone prior to the start of a meeting.

Room name field 6412 may store a name for a room. A meeting room may be descriptive of the location, such as the ‘Casey Auditorium’, so as to make it easier for meeting participants to quickly understand where the meeting room is located.

Room area field 6414 may store the square footage of the room. In some embodiments this may allow central controller 110 to approximate the number of people that may comfortably fit within the room.

Room height field 6416 may store the height of the room. This could be an average height, or a range of the highest to lowest points in the room. For example, a room might be ‘10 feet’ high or ‘8 to 12 feet’ high.

Capacity field 6418 may store a capacity limit of the room, such as a capacity of 300 people. In one embodiment, this capacity level is determined by the central controller based on data from room area field 6414.

Room setup field 6426 may store the way in which the room is typically set up. For example, the room may be set up in ‘classroom/lecture’ style—which may be good for presenters providing educational materials, though that style may be less effective for brainstorming.

Tables field 6428 may store the number and type of tables in the room. For example, a room may have ‘6 rectangular tables’ which are ‘movable’. In some embodiments this may be an ideal set up for meetings in which participants need to break up into small groups at some point during the meeting.

Number of chairs present field 6430 may store the number of chairs that are supposed to be present in the room. This information is useful when trying to find a room for a particular number of participants. In various embodiments, the chairs are peripheral devices which are in communication with central controller 110, and the chairs may update their room location (determined via GPS or other location system) so that that central controller 110 may update the number of chairs in a room with current and updated information.

AV configuration field 6436 may store a meeting type that is most appropriate for a particular room. For example, ‘rm703’ has an AV configuration of ‘Learning’, indicating that in some embodiments AV equipment in the room can support learning meetings in which one person is generally giving a presentation or lecture to a relatively large number of users. For example, the room may be equipped with a handheld microphone and flip charts.

AV quality field 6438 may store an average quality level of the AV equipment in the room. For example, a room might have an AV quality score of 5 out of 10 based on quality scores of the projector and the speakers in the room. In some embodiments, AV quality scores may come from users answering survey questions to gather feedback on the level of AV quality. In one embodiment, a meeting survey could include questions relating to AV equipment and forward the users answers to central controller 110 where they can be aggregated into an average score for storage in field AV quality 6438 of room table 6400.

Acoustics ratings field 6440 may store an average score representing the acoustic quality of the room. This might be useful to users looking for a room in which music is being played as part of a meeting, or users in an educational setting looking for a meeting room in which to practice a musical instrument.

Wheelchair accessibility field 6446 may store an indication of whether or not the room is accessible to users in wheelchairs. In some embodiments, this includes a description of what the access looks like, such as a description of ramps, their materials, and the angle of the ramp. In other embodiments, this field could also store other accessibility information such as whether or not there are places in the room to store the wheelchair or if there are desks in the room that can accommodate a wheelchair.

Referring to FIG. 65, a diagram of an example room peripheral table 6500 according to some embodiments is shown. A meeting room may contain one or more user peripherals, at different locations throughout the room. For example, meeting participants may use headsets, keyboards, mice, presentation remote controllers, projectors, and chairs during a meeting. While some of these peripheral devices are removed by users at the end of the meeting, other peripherals may be left behind.

In various embodiments, peripherals, or other equipment may include video equipment, microphones, phones, display panels, chairs (intelligent and non-intelligent), and tables.

Room identifier field 6502 may store an identifier of a room in which a meeting is scheduled to occur. The room may be a physical room, such as a conference room or auditorium. The room may be a hybrid room, such as a physical room with some participants joining via video chat room, chat room, message board, Zoom® call meeting, WebEx® call meeting, or the like.

Peripheral ID field 6504 may store an identifier of each peripheral currently in the room. Location in room field 6506 may store the location of a peripheral within a meeting room. The location may be determined, for example, by a peripheral device locating itself via GPS or other suitable locating technology and then transmitting this location back to central controller 110. For example, the peripheral may be identified as in the ‘corner of the far right wall’ or in the ‘center of the north wall.’ In other embodiments, the location data is presented on a digital map so that the exact location in the room is immediately clear. In various embodiments, this peripheral location data may be provided to a user looking for that peripheral. For example, a meeting participant could be sent a digital map onto her user device for display of the map.

In various embodiments, peripheral or equipment models may be stored.

In various embodiments, training videos for using peripherals or equipment of a room or of any other part of system 100 may exist. Videos may be stored, such as in asset library table 1900 or in any other location.

Referring to FIG. 66, a diagram of an example vendor database table 6600 according to some embodiments is shown. In one embodiment, vendor database table 6600 service makes service calls easier by storing vendor information that can be sent out to user devices and/or peripheral devices through central controller 110.

Vendor ID field 6602 may store a unique identifier for each stored vendor. In some embodiments, these stored vendors are all company approved vendors that are known to perform a specific service. Name field 6604 may store the name of the vendor, such as ‘Machine Cleaning Express’ or ‘Swift Copy Repair’. In some embodiments, vendors might include vendors supplying services for a meeting room such as supplying equipment, chairs, tables, cameras, lights, office supplies, training, etc. In some embodiments, vendors may offer services mediated by a remote person who delivers the services through a headset 4000 worn by an employee of the company, potentially decreasing the costs of vendor services.

Category field 6606 may store the type of service provided by the vendor. These categories may include ‘cleaning’, ‘printing’, ‘repair’, ‘consulting’, ‘software development’, ‘training’, ‘maintenance’, ‘security’, etc. Price field 6608 may store an average cost per hour for the service. This could be used by central controller 110 to generate total service cost estimates.

Min time field 6610 may store a minimum amount of time for a particular service call. For example, ‘Machine Cleaners Express’ requires 90 minutes per service call.

Hours field 6612 may store hours of service for a vendor.

Ratings field 6614 may store a numeric or level rating for the vendor, such as ‘4.5’ on a five point scale. In some embodiments such ratings could be generated by user feedback through a user device or peripheral device (e.g. headset, presentation remote, camera) connected to central controller 110 and then aggregated and stored in ratings field 6614. Stored ratings could also be stored and presented individually, so that ratings data for a vendor includes many comments from users of the service. Website field 6616 and phone field 6618 may store contact information for vendors so that requests can be placed or followed up on.

FIG. 67 illustrates a graphical user interface which may be presented to a user in order to apply tags to people, teams, objects, environments, classrooms, teachers, tutors, etc. FIG. 67 illustrates a respective graphical user interface (GUI) as it may be output on a peripheral device, mobile device, or any other device (e.g. on a mobile smartphone).

In accordance with some embodiments, the GUI may be made available via a software application operable to receive and output information in accordance with embodiments described herein. It should be noted that many variations on such graphical user interfaces may be implemented (e.g., menus and arrangements of elements may be modified, additional graphics and functionality may be added). The graphical user interface of FIG. 67 is presented in simplified form in order to focus on particular embodiments being described.

With reference to FIG. 67, a screen 6700 from an app controlled by users according to some embodiments is shown. The depicted screen shows app placing tags 6705 functionality that can be employed by a user (e.g. meeting owner, meeting facilitator, meeting participant, employee, project manager, facilities manager, game player, teacher, tutor) to apply tags to people, teams, objects, environments, etc. In some embodiments, the tag data is provided via central controller 110 to one or more user devices (e.g. smartphone, tablet computer, display screen) and/or user peripherals (e.g. headset, camera, presentation remote, mouse, keyboard). In various embodiments, tag data may be obtained from Tag Meanings and Representations' table 6300. In FIG. 67, the app is in a mode whereby users can apply tags.

In some embodiments, the user may select from a menu 6710 which displays one or more different modes of the software. In some embodiments, modes include ‘placing tags’, ‘choosing tags’, ‘responding to tags’, ‘upvoting tags’, etc.

In some embodiments, the app may show the identity of the user placing a tag, such as Tagger 6715 who is in this case ‘Ellen Jurden’. In this example, the user may enter this identity information via a virtual keyboard, via voice recording, retrieved from a processor of the user device, etc. In other embodiments, tagger 6715 may elect to remain anonymous.

In various embodiments, the user is able to use screen 6700 to apply one or more tags by selecting from virtual and/or physical buttons and then pressing a ‘submit tag’ button 6760. Exemplary tags could reflect something that a user needs in the middle of a meeting, such as by pressing an ‘I need a break to check email’ button 6720. Facilitation proficiency could be identified through a tag such as a ‘Facilitator included everyone’ button 6725. Problems with a meeting room could be brought to the attention of facilities personnel with the selection of a button tagging that the ‘Projector is broken’ 6730. A button 6735 ‘Chart on slide 7 is confusing’ may be applied while slide 7 is being displayed during a meeting, with the tag indicating confusion being transmitted to central controller 110 for association with slide 7 so that anyone using that presentation deck in the future might spend additional time on that slide explaining it, or might make changes to the slide ide to improve clarity. Environmental issues during a meeting might be tagged with a ‘The meeting room is cold’ button button 6740. Tags may also be applied to a group of people, such as by using a button 6745 ‘Directors are encouraging of candor’ to indicate that Directors in general are positively supportive of candor. In this embodiment, the tag may be stored in a record of each Director in employee table 5000. Tags may also be placed on a project, such as by pressing a ‘Project X is behind on testing’ button 6750, which may be routed to a project manager associated with Project X. A button 6755 indicating that ‘Task 37QZ is not complete’ may be applied to task 37QZ (e.g. a task to debug one hundred lines of code) to indicate that this task is not yet completed.

In various embodiments, when the user hits ‘Submit Tag’, the app may transmit (e.g., to the central controller) such information as a tag identifier, identity of the user applying the tag, the time the tag was applied, the recipient of the tag, the meeting during which the tag was applied, and/or any other information. Once a tag has been submitted, an instance of the tag being applied may be stored in Tagging table 7300.

In various embodiments, the device running the app (e.g., a smartphone or tablet), may communicate directly with central controller 110 and directly with peripheral devices (e.g., via Bluetooth®; e.g., via local wireless network), or may communicate with the corresponding peripheral devices through one or more intermediary devices (e.g., through the central controller 110; e.g., through the user device), or in any other fashion.

With reference to FIG. 68, a depiction of an example map 6800 according to some embodiments is shown. The map may represent a map of a campus, an office building complex, a set of office buildings, or the like. In various embodiments, the map may represent a map of any building, set of buildings, or other environment.

Map 6800 depicts two buildings 6802 and 6804 with an outdoor area 6806 between them. As depicted in map 6800, buildings 6802 and 6804 each have only one floor. However in various embodiments, buildings with multiple floors may be depicted. In some embodiments, devices within the map 6800 are under the control of a central controller 110 which may use wired or wireless connections to send commands or requests to various devices and locations within the campus. This allows meeting owners, facilitators, participants, and observers to employ user devices (such as a smartphone) to communicate with central controller 110 in order to command various devices throughout the campus. It will be understood that this layout of a company or educational campus is for illustrative purposes only, and that any other shape or layout of a campus could employ the same technologies and techniques.

The depicted campus layout view includes various devices and represents one exemplary arrangement of rooms, paths, and devices. However, various embodiments contemplate that any suitable arrangement of rooms, paths, and devices, and any suitable quantity of devices (e.g., quantity of chairs, quantity of cameras) may likewise be used.

Building 6802 has entrance 6810a and building 6804 has entrance 6810c. The outdoor area 6806 has entrance 6810b. In various embodiments, 6810b is the only means of entry (e.g., permitted means of entry) into the campus from the outside. For example, the outdoor area 6806 may be otherwise fenced-off.

Entrances 6810a, 6810b, and 6810c may be connected via a walking path 6814. In various embodiments, the path may be available for various modes of transportation, such as walking, skating, scooter, bicycle, golf cart, etc.

Inside buildings 6802 and 6804 are depicted various rooms, including such offices as 6816a, 6816b, 6816c, 6816d, and 6816e; including such conference rooms as 6824a, 6824b, 6824c, 6824d, and 6428e; small conference rooms 6826a, 6826b, and 6826c; an office with small conference table 6828; and including such kitchens as 6838a and 6838b. In some embodiments, offices and conference rooms may have different layouts of chairs, tables, desks, stages, etc. For example, conference room 6824a shows a seating arrangement that may be conducive to large presentations or training sessions, while 6824b may be a better room layout for a small meeting such as a small decision making meeting. Conference room 6824d shows two small tables with access to ample wall space for brainstorming and interactive exercises. Such room layouts may change over time, and may be stored with central controller 110 so that employees can have access to digital layouts in order to find a room that is best suited to their needs. In some embodiments, room locations may have associated disadvantages stores with location controller 8305 and/or central controller 110, such as small conference room 6826c being located next to kitchen 6838b which may result in a greater degree of noise in the room which may be distracting for participants meeting there. In some embodiments, central controller 110 may suggest room layouts based on the parameters of meeting room requests as described more fully in FIG. 85. Various embodiments contemplate that buildings may include other types of rooms even if not explicitly depicted (e.g., gyms, cafeterias, roof areas, training rooms, restrooms, closets and storage areas, atrium space, etc.).

Building 6802 includes reception area 6842a with reception guest seating area 6843a, and building 6804 includes reception area 6842b with reception guest seating area 6843b.

Building 6802 includes hallway 6846a, and building 6804 includes hallway 6846b. Map 6800 depicts various cameras, such as camera 6852b which observes the outdoor area 6815, and camera 6852a which observes hallway area 6846a.

Inside buildings 6802 and 6804 are depicted various windows, including such windows 6854a-e. In various embodiments, windows may influence the heating and cooling requirements for rooms (e.g., for meeting rooms), may influence the mood within a meeting through the view that is visible out the windows, and/or may have any other effect on meetings and/or on other aspects of life within buildings 6802 and 6804.

Inside building 6804 is depicted a facilities room 6848 that may be used to house cleaning staff and supplies, which in some embodiments may be used to clean conference rooms (e.g. taking out the trash, cleaning whiteboards, replacing flipcharts, resupplying food and beverages, changing table and chair configurations). In some embodiments, employees can employ a user device (e.g. a smartphone) to provide cleaning requests to facilities via central controller 110. In other embodiments, central controller 110 may use images of a conference room to create a work request for facilities. For example, an image from a camera in conference room 6824c might indicate that a trash can is overflowing, triggering a signal to facilities room 6848 to send someone to empty the trash can. In some embodiments, an employee may tag an object in a room as needing the attention of facilities. For example, participants in a meeting may tag a chair as being broken (e.g. in conference room 6824a chair number CH739921 is broken) and transmit that tag for storage (e.g. storing it in tag database table 7300) for review by facilities personnel. Other room issues that may be identified with tags include, broken air conditioning units, stained carpets, projector bulbs burned out, missing conference table phones, broken coffee pots, etc.

It will be appreciated that map 6800 depicts an arrangement of rooms according to some embodiments, but that various embodiments apply to any applicable arrangement of rooms.

Motion sensors 6850a, 6850b, and 6850c may be positioned throughout campus floor plan 6800. In some embodiments, motion sensors 6850a-c capture movements of occupants throughout campus 6800 and transmit the data to central controller 110 for storage or processing, e.g., for the purposes of locating employees, identifying employees, assessing engagement and energy level in a meeting, etc. In some embodiments, location and identity information and engagement levels of employees may be automatically associated with tags generated by employees for storage with central controller 110. In some embodiments, motion sensors 6850a-c may transmit data directly to central controller 110. In some embodiments, motion sensors 6850a-c capture data about people entering or leaving campus 6800 and transmit data to location controller 8305 or directly to central controller 110, e.g. for the purposes of updating the meeting attendee list or controlling access to the meeting based on a table of approved attendees.

Cameras 6852a, 6852b, 6852c, and 6852d may be configured to record video or still images of locations throughout campus 6800. In some embodiments, Cameras 6852a-d capture a video signal that is transmitted to location controller 8305 via a wired or wireless connection for storage or processing. In some embodiments, location controller 8305 may then transmit the video to central controller 110. In other embodiments, any of cameras 6852a-d send a video feed directly to central controller 110. In one embodiment, a meeting owner might bring up the video feed from one or more of cameras 6852a-d during a break in a meeting so that the meeting owner could keep an eye on meeting participants who left the meeting room during a break. Such a video feed, for example, could allow a meeting owner in conference room 6824d to see a feed from camera 6852a to identify that a meeting participant had gone back to building 6802 during the break and was currently standing in hallway 6846a and would thus not be likely to return to the meeting in the next two minutes. In some embodiments, location and identity information from cameras 6846a-d may be associated with tags generated by the viewed employees.

Employee identification readers 6808a, 6808b, and 6808c are positioned at the entry points 6810a-c, and serve to identify employees and allow/deny access as they attempt to move through the entry points. For example, employee identification readers can be RFID readers to scan an employee badge, a camera to identify the employee via face recognition, a scanner to identify an employee by a carried user device, a microphone for voice recognition, or other employee identification technology. In some embodiments, employee identification readers 6808a-c transmit data about people entering or leaving campus 6800 and transmit data to location controller 8305 or directly to central controller 110, e.g. for the purposes of updating the meeting attendee list or identifying employees who are on their way to a meeting.

Windows 6854a, 6854b, 6854c, 6854d, and 6854e can include dynamic tinting technology. In some embodiments, examples include electrochromic glass, photochromic glass, thermochromic glass, suspended-particle, micro-blind, and polymer-dispersed liquid-crystal devices. Windows 6854a-e can have an associated direction. For example, window 6854b is facing east while window 6854d is facing south. Knowing the direction in which windows are facing can be helpful in those embodiments in which calculations are done to determine the carbon footprint of a meeting (e.g. determining the angle of the sun and the impact on room temperature and thus room air conditioning requirements to maintain comfortable temperature in the room), sun angle may be used to determine optimum times during the day for viewing of screens during a presentation, or for knowing during which time frame sunlight might be expected to be in the eyes of meeting attendees in a particular room.

In some embodiments, map 6800 may be stored with central controller 110, and could thus be sent to user devices and/or peripheral devices as a way to help users know where their next meeting is. For example, a meeting participant in conference room 6824b may be finishing a meeting that ends at 3:00 PM, and wants to know how long it will take to get to their next meeting which begins at 3:00 PM in conference room 6824d. By downloading map 6800 from central controller 110, the user can clearly see the location of the next conference room and estimate how long it will take to walk to that room. With that in mind, the meeting participant may leave conference room 6824b extra early given that it looks like a long walk to conference room 6824d. In one embodiment, central controller 110 draws a path on map 6800 from room 6824b to 6824d to make it easier for the user to identify how to get to that room. In some embodiments, alternate routes may be shown on map 6800. For example, there may be two paths to get to a meeting room, but only one path passes by a kitchen where a user can get some coffee on the way to the meeting. In some embodiments, users have preferences stored with central controller 110, such as a preference to drink coffee between 8:00 AM and 10:00 AM. In this example, central controller 110 may create a meeting path for a user that includes a stopping point at a kitchen when a user is attending meetings in the 8:00 AM to 10:00 AM timeframe.

In various embodiments, central controller 110 may estimate how long it will take for a user to get from one meeting room to another. For example, after determining a path to take, central controller 110 may calculate the distance and then multiply this distance by the user's walking speed to estimate how long of a walk it is from one meeting room to another. In some embodiments, a path between two meetings may employ one or more different modes of transportation which have different estimated speeds. For example, a user might walk for part of the path and then drive during another part of the path. In some embodiments, the speed of one mode may depend on the time of day or other factors. For example, getting from a conference room in one building to a conference room in another building across town may require a drive across town. That might take 10 minutes during off-peak times, but could take 30 minutes when there is traffic or bad weather. Central controller 110 can retrieve traffic information and weather data to help create a more accurate estimate of meeting participant travel time in such cases. With better estimates of the time it takes to get to a meeting room, users can better calculate an appropriate time to leave for the meeting room. In some embodiments, central controller 110 may determine a path and estimated travel time from a user's current location (e.g. from a GPS signal of her user device) to a meeting room. In some embodiments central controller 110 can suggest meeting locations to a meeting owner that take into account different factors. For example, conference room 6824b might have a low rating between the hours of 3:00 PM and 4:00 PM in April when the angle of the sun makes it difficult to view a display screen across from window 6854b. During this time period, central controller 110 may suggest conference room 6824d which has no sun issues at that time since window 6854e faces west. When meeting room space is very tight, central controller 110 might suggest locations that are less than desirable for very small groups. For example, reception guest seating area 6843b might be suggested as long as the agenda of the meeting does not include anything confidential given that there may be guests walking by reception guest seating area 6843b. As an alternative location, central controller 110 might suggest office 6828 which has a small five person table, but only during times when the occupant of room 6828 is not present. In some embodiments, central controller 110 suggests meeting rooms based on a best fit between current availability and the number of expected meeting participants. For example, a group of four might request conference room 6824a, but instead be told to use small conference room 6826a so as to leave room 6824a for larger groups. In this example, central controller 110 might suggest outdoor table 6815 for this four person group, but only if weather conditions are favorable at the desired meeting time.

Referring to FIG. 69, a diagram of an example ‘meeting events’ table 6900 according to some embodiments is shown. Table 6900 may store data descriptive of events that occur during meetings. Events may include presentations made, comments spoken, decisions made, tasks assigned, arguments, resolutions, videos watched, demonstrations, breaks taken, food served, new arrivals (e.g., of attendees), early departures, announcements, ideas generated, and/or any other event or occurrence during a meeting.

Event identifier field 6902 may store an identifier (e.g., a unique identifier) that identifies an event. Meeting identifier field 6904 may store an identifier for a meeting in which the event occurred. In various embodiments, table 6900 may store an indication of a particular session of a meeting where an event occurred.

User identifier field 6906 may store an identifier for a user who was at the center of an event. For example, the user made a comment, made a presentation, made a decision, or otherwise was a central figure, protagonist, major contributor, major factor, etc., in an event. In various embodiments, there may be multiple users listed (e.g., if the event was a discussion, argument, group decision, etc.).

Event type field 6908 may store an indication of an event type. This may be a category or other broad characterization of an event. Example event types include: user comment; user presentation; user mediation; decision made; task assigned; etc.

Content field 6910 may store an indication of event content, details, particulars, or the like. Field 6910 may include text of the words that were spoken during an event. Field 6910 may include an actual decision that was made, an idea that was generated, a slide that was shown, a comment that was made, a transcript of a discussion, and/or any other information or details about an event. Field 6910 may include video, audio, transcripts, and/or other data captured of an event.

In various embodiments, meeting events may be captured by cameras, microphones, and/or other peripherals and/or other devices in a conference room and/or in any other suitable location. The recording of meeting events may be triggered by a calendar time (e.g., recording my start when a meeting is scheduled to begin). The recording of meeting events may be triggered by the detection of cues indicative of a meeting's start (e.g., “Let's get started”). Recording may begin as a result of explicit instruction (e.g., by a meeting owner). Recording may commence for any other reason.

Referring to FIG. 70, a diagram of an example videos library database table 7000 according to some embodiments is shown. There are many opportunities for using video to help employees complete work in an efficient and safe manner. In this table, video content is stored for delivery across a range of communication channels of the company.

Video ID field 7002 may store a unique identifier associated with a piece of video content. In some embodiments, video ID field 7002 may be referenced in tags submitted by employees when referring to video content. Content summary field 7004 may store a brief description of the video content, such as ‘training video’ or ‘instruction manual’. In various embodiments, videos stored in library database table 7000 may be accessible by peripheral devices (e.g. headset, presentation remote, camera, mouse, keyboard). For example, a presenter may use presentation remote 4200 to request video ID mtvd719065 which the presenter may request to be presented via projector 4276 onto a wall such that meeting participants could watch it.

Referring to FIG. 76, a diagram of an example local weather log database table 7600 according to some embodiments is shown. There are many opportunities for using weather data in order to enhance game play, improve the sense of connection between players, improve emotional connectedness during virtual calls, etc. In this table, weather data is stored for use by peripheral devices and user devices.

Location field 7602 may store an address of a user at which weather data is recorded.

Date field 7604 may store an indication of the date on which the weather data was recorded, while time field 7606 may store the time at which the weather data was recorded. Temperature field 7608 indicates the temperature in Fahrenheit at this location 7602, humidity field 7610 stores the percent humidity, and wind speed field 7612 may store the current wind speed in miles per hour.

The type of precipitation field 7614 may store types of precipitation such as rain, snow, hail, etc. Each form of precipitation may store an associated precipitation rate in precipitation rate field 7616, such as 0.15 inches per hour of rainfall or 0.46 inches per hour of snow. Light level field 7618 stores the number of lux, while cloud cover field 7620 provides a percentage of the sky that is covered by clouds.

In various embodiments, weather data could be entered by a user, received from a weather sensor, or received from government weather data agencies such as the National Weather Service. Weather data may be updated on a regular schedule, updated upon request of a user, or updated upon a triggering event such as when a user is detected to be walking out of a building.

Conference Room

With reference to FIG. 77, a conference room 7700 is depicted in accordance with various embodiments. While conference room 7700 depicts an exemplary environment and arrangement of objects, devices, etc., various embodiments are applicable in any suitable environment and/or with any suitable arrangement of objects, devices, etc.

Presenter 7705 has a headset 7715 and/or presentation remote device 7720 that may be used to control the main presentation 7730 (e.g., PowerPoint® slides) as well as one or more other devices, and which may have one or more other functions.

Attendee 7710 is physically present in room 7700, e.g., to view the presentation. Other attendees may be participating from other rooms (e.g., overflow rooms) as indicated at sign 7745, which shows which other rooms are “connected”.

Cameras 7725a and 7725b may track one or more events during the meeting and/or take actions based on such events. Cameras may track attendee attentiveness, engagement, whether or not the meeting stays on track, etc. Cameras may track any other events.

Projector 7735 may output a timely message, such as a “Congratulations on the record sales level!” message 7760 to a meeting attendee who, e.g., has just set a sales record.

Conference phone 7740 (e.g., a Polycom®) may allow in-person attendees to communicate with remote attendees or others.

Physical sign 7750 with 2D barcode may allow a user to scan the barcode and obtain relevant information. In various embodiments, headset 7715 or presentation remote device 7720 acts as a barcode scanner. In various embodiments, a user may scan the barcode to obtain or load the presentation (e.g., the presentation for the current meeting), to get a list of meeting attendees, to get the room schedule (e.g., schedule of meetings), and/or for any other purpose.

Display screen 7755 may include messages and/or information pertinent to the meeting (e.g., logistics, attendee whereabouts, attendee schedules, location of meetings taking place during or after the current meeting, aggregated tag information), and/or any other information.

Gestures and Custom Gestures

With reference to FIG. 78, a conference room 7800 is depicted in accordance with various embodiments. Conference room 7800 may include one or more users (e.g., meeting participants), objects, devices, sensors, fixtures, items of furniture, etc. While room 7800 depicts an exemplary environment and arrangement of users, objects, devices, etc., various embodiments are applicable in any suitable room or environment and/or with any suitable arrangement of objects, devices, etc.

As depicted, conference room 7800 includes four participants in a meeting (e.g., participants 7815, 7825, 7835, and 7845). Each participant is engaged in a thought process or other activity. In various embodiments, more or fewer participants may be present.

As may happen during a meeting, some participants may have unvoiced thoughts or opinions regarding the meeting. In various embodiments, it may be beneficial (e.g., to the function of the meeting; e.g., to the outcome of the meeting) that unvoiced thoughts be communicated in some fashion.

As depicted, participant 7815 is thinking, “I don't feel comfortable challenging that point” (7820) (e.g., challenging some recent point that was made during the meeting). Perhaps the point truly is not valid, and the failure of participant 7815 to challenge the point may lead to a poor decision or other meeting outcome.

As depicted, participant 7825 is thinking, “People keep talking over me” (7830). Perhaps participant 7825 has an important contribution to make, and his inability to obtain a speaking slot may also lead to a poor decision or other meeting outcome.

As depicted, participant 7835 is thinking, “I'm aligned with Mary” (7840). For example, participant 7835 may agree with Mary (another participant) on some issue. Perhaps if the alignment of participant 7835 with Mary was known, the issue could be brought to a quicker resolution, Mary would have the critical backing she needs to advance her side of the issue, etc.

As depicted, participant 7845 may be engaged in another activity (e.g., shopping) and not paying attention to the meeting. However, in various embodiments, participant 7845 may be answering a survey, submitting a tag, or otherwise engaging in an activity related to the meeting.

In various embodiments, participants in conference room 7800 may communicate or apply their unvoiced thoughts as tags. In various embodiments, participants in a meeting may make any other suitable communication in the form of a tag.

In various embodiments, a participant may indicate a tag (e.g., that they are assigning a tag), using a gesture. A gesture may indicate the type of tag, the degree or level of a tag, the assignee of a tag, the object of a tag, and/or any other pertinent information. In various embodiments, a gesture is made in public view, e.g., so the gesture can be picked up by a camera and interpreted (e.g., by central controller 110). As a consequence, the gesture may be visible to others. A participant may not want others to understand his gesture because, for example, the gesture may represent negative feedback. As such, in various embodiments, a participant may assign custom meanings to gestures and/or create custom gestures. In this way, another participant will not necessarily be able to understand the gesture.

In various embodiments, prior to a meeting, a user may interact with a program or app for assigning custom meanings to gestures. The custom meanings may be stored in association with the user and the gesture. When a camera (e.g., camera 7805) subsequently detects the gesture, the camera may identify the user, and look up the associated meaning of the gesture for the identified user.

Example gestures may include pointing two fingers down to the table (e.g., gesture 7827), pointing the thumb in the air (e.g., gesture 7837), spreading apart the ring and middle fingers, etc.

In various embodiments, a participant's thoughts or actions may be determined (e.g., determined automatically) even in the absence of an explicit gesture by the participant. For example, camera 7805 may detect that participant 7845 is looking down at his phone, and may thereby determine that participant 7845 is not thinking about the meeting at all.

In various embodiments, display 7810 may indicate statistics about an ongoing meeting. These may describe meeting engagement, a level of confusion among participants, a number of contributions made by participants and/or any other meeting statistics. In various embodiments, displayed statistics may represent an aggregation (e.g., sum, average, summary, etc.) of tags submitted by users, user actions, etc. Where statistics are displayed in the aggregate, individual instances of tagging by a participant need not reveal the identity of the participant. This may, for example, increase the comfort level of a participant in applying a tag (e.g., using a gesture).

Turning now to FIG. 79, illustrated therein is an example process 7900 for conducting a meeting, which is now described according to some embodiments. In some embodiments, the process 7900 may be performed and/or implemented by and/or otherwise associated with one or more specialized and/or specially-programmed computers (e.g., the processor 605 of FIG. 6). It should be noted, with respect to process 7900 and all other processes described herein, that not all steps described with respect to the process are necessary in all embodiments, that the steps may be performed in a different order in some embodiments and that additional or substitute steps may be utilized in some embodiments.

Turning now to FIG. 79, illustrated therein is an example process 7900 for conducting a meeting, which is now described according to some embodiments. In some embodiments, the process 7900 may be performed and/or implemented by and/or otherwise associated with one or more specialized and/or specially-programmed computers (e.g., the processor 605 of FIG. 6). It should be noted, with respect to process 7900 and all other processes described herein, that not all steps described with respect to the process are necessary in all embodiments, that the steps may be performed in a different order in some embodiments and that additional or substitute steps may be utilized in some embodiments.

Registering/Applying for a Meeting

At step 7903, a user may set up a meeting, according to some embodiments.

In setting up a meeting, the meeting owner might have to register the meeting or apply for the meeting with the central controller 110. This can provide a gating element which requires meeting owners to provide key information prior to the meeting being set up so that standards can be applied. For example, a meeting purpose might be required before having the ability to send out meeting invitations.

In various embodiments, the meeting owner (or meeting admin) could be required to apply to the central controller 110 to get approval for setting up a meeting. Without the approval, the central controller could prevent meeting invites from being sent out, not allocate a room for the meeting, not allow the meeting to be displayed on a calendar, etc. This process could be thought of as applying for a meeting license. To get a meeting license, the meeting might have to include one or more of the following: a purpose, an agenda, a designated meeting owner, a digital copy of all information being presented, an identification of the meeting type, an objective, a definition of success, one or more required attendees, evidence that the presentation has already been rehearsed, etc. Permitting may require meeting owner to apply a predefined number of points from a meeting point bank—e.g., different amounts of meeting points can be allocated to different employees, roles, expertise, levels once per given time period, with higher levels (e.g., VPs) being allocated more points (and accordingly being able to hold more meetings or meetings with more/higher ‘value’ attendees). Meeting points could also be earned, won, etc.

In various embodiments, the central controller 110 could also review the requested number of people in a meeting and compare that to the size of rooms available for that time slot. If a large enough room is not available, the central controller could make a recommendation to break the meeting into two separate groups to accommodate the available meeting size.

In various embodiments, the central controller could have a maximum budget for the meeting and determine an estimated cost of a requested meeting by using a calculation of the dollar cost per person invited per hour (obtained from HR salary data stored at the central controller or retrieved from HR data storage) multiplied by the number of people invited and multiplied by the length of the meeting in hours (including transportation time if appropriate). Such an embodiment would make the cost of meetings more immediately apparent to meeting organizers, and would impose greater fiscal responsibility in order to reduce the number of meetings that quickly grow in the number of attendees as interested—though perhaps not necessary—people join the meeting. In this embodiment, a meeting owner might be able to get budget approval for a meeting with ten participants and get that meeting on the calendar, but have requests for additional attendees approved only as long as the meeting budget is not exceeded. In various embodiments, the central controller could deny a meeting based on the projected costs, but offer to send an override request to the CEO with the meeting purpose to give the CEO a chance to allow the meeting because the achievement of that purpose would be so impactful in generating business value and shareholder value. Further, the central controller could allocate meeting costs to various departments by determining the cost for each attendee based on the time attended in the meeting.

In various embodiments, requesting a meeting could also require registering any projects(s) that the meeting is associated with. For example, a decision-making meeting might register one or more previously held brainstorming sessions which generated ideas that would serve as good fuel for the decision making session. Additionally, the meeting owner might be required to register any other meetings that will be held in the future that will be related to this meeting.

In various embodiments, meeting requests could require the meeting owner to tag elements associated with the meeting. For example, the meeting could be tagged with “Project X” if that is the main topic of the meeting. It might also be tagged with “Budget Decision” if the output will include a budget allocation amount. Another type of required tag could relate to whether or not legal representation is required at the meeting.

In various embodiments, when a meeting is requested, the meeting owner could be provided with meeting content/format/tips related to the type of meeting that they are trying to set up.

At step 7906, a user may determine meeting parameters, according to some embodiments.

Meeting Configurations

The central controller 110 may offer a number of standard configurations of equipment and software that will make it easier to configure a room.

In various embodiments, a meeting participant or meeting owner can set standard virtual meeting configurations. For example, there could be three standard packages available. Configuration #1 may include microphone type, camera to be used, volume levels, screens to be shared, multiple screen devices and background scenes to be used. Configuration #2 may include only audio/phone usage. Configuration #3 may include any combination of recognized devices to be used. Once settings are established, they may be controlled by voice activation or selection on any mobile or connected device.

In various embodiments, meeting owners can provide delegates with access to meeting set-up types (e.g. admins).

In various embodiments, a meeting owner assigns participants to meeting room chairs (e.g. intelligent and/or non-intelligent chairs). Intelligent chairs can pre-set the chair configuration based on the person sitting in the chair (height, lumbar, temperature).

In various embodiments, the central controller 110 automatically determines a more appropriate meeting place based on the meeting acceptance (in-person or virtual) to make the most efficient use of the asset (room size, participant role/title and equipment needed to satisfy the meeting purpose).

In various embodiments, a meeting presenter can practice in advance and the central controller 110 uses historical data to rate a presentation and the presenter in advance.

Meeting Right-Sizing

Many large companies experience meetings that start out fairly small and manageable, but then rapidly grow in size as people jump in—sometimes without even knowing the purpose of the meeting. Many employees are not familiar with how large meetings should be, and that the size of the meeting might need to vary significantly based on the type of meeting. For example, a decision-making meeting may work best with a small number of attendees.

Agenda

In various embodiments, the central controller 110 could understand the appropriate number of agenda topics for a meeting type and recommend adjustments to the agenda. For example, in a decision-making meeting, if the agenda includes a significant number of topics for a one-hour meeting, the central controller could suggest removing some of the decisions needed and moving them to a new meeting.

Participants

In various embodiments, the central controller 110 could recommend a range for the number of meeting invitees based upon the meeting type, agenda, and purpose. If a meeting owner exceeds the suggested number of invitees, the central controller can prompt the meeting owner to reduce the number of invitees, or to tell some or all of the invitees that their presence is optional.

Dynamic Right-Sizing During Meetings

Based upon the agenda, the central controller 110 can allow virtual participants to leave the meeting after portions of the meeting relevant to them have finished. A scrolling timeline GUI could be displayed, showing different portions of a meeting as the meeting progresses; e.g., with icons/avatars for attendees currently in, previously in, or expected to join for different sections/portions. Additionally, the central controller can identify portions of the meeting that contain confidential information and pause the participation of individuals without the appropriate permission to view that information.

Recurring Meetings

In various embodiments, the central controller 110 can prompt owners of recurring meetings to adjust the frequency or duration of meetings to right-size meetings over time. The central controller can also prompt owners of recurring meetings to explore whether invitees should still be participating as time goes on. The central controller can auto select time slots based on attendee list calendars, preferences, and/or historical data—such as higher measured level of attentiveness/interaction for one or more attendees at different times of day, days of week, etc.

Room Availability

Based upon the availability of larger meeting rooms, the central controller may prompt a meeting owner to reduce the number of participants or break the meeting into smaller meetings. Meetings that require more people than a room can accommodate, the central controller could recommend which participants should be present in the meeting room and those that should be virtual only. For example, if a decision-making meeting is taking place and three decision makers are key to achieving the goals, they should be identified as being required to be physically present in the meeting room. The other participants may only be invited to attend virtually.

Learning Algorithm

Over time, the central controller 110 may begin to collect information regarding the meeting type, agenda items, duration, number of participants, occurrences, time of day, logistics (e.g. building location, time zones, travel requirements, weather), health of employees (e.g. mental and physical fitness—for example the central controller could recommend smaller meetings during the peak of flu season) and meeting results to provide more informed right-sizing recommendations. In other words, an Artificial Intelligence (AI) module may be trained utilizing a set of attendee data from historical meetings to predict expected metrics for upcoming meetings and suggest meeting characteristics that maximize desired metrics.

Meeting Participant Recommendations

At step 7909, the central controller 110 may suggest attendees, according to some embodiments.

The central controller could take the agenda and purpose of the meeting and identify appropriate candidate meeting participants who could build toward those goals. In various embodiments, the central controller may take any other aspect of a meeting into account when suggesting or inviting attendees.

In various embodiments, given a meeting type (e.g., innovation, commitment, alignment, learning), the central controller may determine a good or suitable person for this type of meeting. In various embodiments, the central controller may refer to Meetings table 5100, which may store information about prior meetings, to find one or more meetings of a similar type to the meeting under consideration (or to find one or more meetings sharing any other feature in common with the meeting under consideration). In various embodiments, the central controller may refer to Meeting Participation/Attendance/Ratings table 5500 to determine a given employee's rating (e.g., as rated by others) for prior meetings.

In various embodiments, the central controller may refer to Employees table 5000 to find employees with particular subject matter expertise, to find employees at a particular level, and/or to find employees with particular personalities. Thus, for example, an employee can be matched to the level of the meeting (e.g., only an executive level employee will be invited to an executive level meeting). An individual contributor level meeting may, on the other hand, admit a broader swath of employees.

In various embodiments, if the meeting is about Project X then the central controller could recommend someone who has extensive experience with Project X to attend the meeting. The central controller may refer to meetings table 5100 (field 5128) to find the project to which a meeting relates. The central controller may recommend attendees who had attended other meetings related to Project X. The central controller may also refer to project personnel table 5800 to find and recommend employees associated with Project X.

The meeting owner, prior to setting up the meeting, could be required to identify one or more functional areas that will be critical to making the meeting a success, preferably tagging the meeting with those functional areas.

In various embodiments, the central controller 110 recommends meeting invites based on the ratings of the individuals to be invited (e.g., as indicated in Meeting Participation/Attendance/Ratings table 5500). For example, if this is an innovation meeting, the central controller can recommend participants that were given a high rating on innovation for the functional area they represent. In various embodiments, the central controller may find individuals or meeting owners with high engagement scores (e.g., as indicated in Meeting Engagement table 5300) involved in innovation, commitment, learning, or alignment meetings based on the relevant meeting tags (e.g., as indicated in Meetings table 5100, at field 5108).

In various embodiments, the central controller may find individuals named as inventors on patent applications and/or applications in different classifications, fields, technology areas that may be applicable to the meeting/project.

In various embodiments, the meeting owner in a meeting could request that the central controller 110 open up a video call with an employee who is going to be handed a baton as a result of the meeting discussions.

Cognitive Diversity

Having a diverse group of meeting participants can lead to better meeting outcomes, but it can be difficult to identify the right people to represent the right type of diversity. Employees can have a variety of backgrounds, experiences, personality types, and ways of thinking (cognitive types). These frameworks shape how individuals participate in meetings and interact with other members of the meeting. In various embodiments, the central controller 110 could improve meeting staffing by identifying employees' cognitive frameworks, suggesting appropriate mixes of these cognitive frameworks.

Identifying Cognitive Types

The central controller could identify employees' cognitive type through employee self-assessments, cognitive assessments or personality inventories (e.g., MMPI, ‘big 5,’ MBTI) conducted during hiring processes, or inductively through a learning algorithm of meeting data.

High Performance Meetings

Over time, the central controller 110 could learn which combinations of cognitive types are likely to perform better together in different types of meetings. High performance meetings can be assessed by measurements such as post-meeting participant ratings, by meeting engagement data, or by meeting asset generation. For example, the central controller could learn over time that innovation meetings produce ideas when individuals with certain cognitive types are included in the meeting.

Suggesting Invitees to Create Diversity

The central controller 110 could flag meetings with homogenous cognitive types and suggest additional meeting invitees to meeting owners to create cognitive diversity. Individual employees vary in their risk tolerance, numeracy, communication fluency, and other forms of cognitive biases. Meetings sometimes suffer from too many individuals of one type or not enough individuals of another type. The central controller can suggest to meeting owners that individuals be invited to a meeting to help balance cognitive types. For example, a decision-making meeting may include too few or too many risk tolerant employees. The central controller can prompt the meeting owner to increase or decrease risk aversion by inviting additional employees.

Optimization

At step 7912, the central controller 110 may optimize use of resources, according to some embodiments.

In order to maximize the business value from meetings, the central controller 110 can create optimal allocations of people, rooms, and technology in order to maximize enterprise business value. The central controller could have information stored including the goals of the enterprise, a division, a team, or a particular initiative. For example, if two teams requested the same room for an afternoon meeting, the team working on a higher valued project could be allocated that room.

In various embodiments, the central controller can balance requests and preferences to optimize the allocation of meeting rooms and meeting participants/owners.

In various embodiments, the central controller could allocate meeting participants to particular meetings based on the skill set of the meeting participant.

In the case of a meeting participant being booked for multiple meetings at the same time, the central controller could provide the meeting participant with the meeting priority. For example, a subject matter expert is invited to three meetings at the same time. Based on the enterprise goals and priorities, the central controller could inform the subject matter expert which meeting is the highest priority for attendance.

In the case of multiple key meeting participants being asked to attend multiple meetings at the same time, the central controller 110 could optimize participants so all meetings are covered. For example, five subject matter experts are invited to three meetings taking place at the same time. The central controller could inform the subject matter experts which meeting they should attend so all three meetings have at least one subject matter expert.

At step 7915, the central controller 110 may send meeting invitations, according to some embodiments. Meeting invites may be sent to an employee's email address or to some other contact address of an employee (e.g., as stored in table 5000). In various embodiments, meeting invites may be sent to peripheral devices (e.g. headset, mouse, presentation remote) and/or user devices (e.g. laptop computer, smartphone).

Automatic Meeting Scheduling

The central controller 110 could trigger the scheduling of a meeting if a condition is met based upon data from an external source. The central controller could suggest meeting invitees relevant to the event. For example, an extreme event such as an increase in service tickets or the forecast of a hurricane could trigger the scheduling of a meeting.

At step 7918, the central controller 110 may ensure proper pre-work/assets are generated (e.g., agenda, background reading materials), according to some embodiments.

Locking Functionality

In various embodiments, one or more privileges, access privileges, abilities, or the like may be withheld, blocked or otherwise made unavailable to an employee (e.g., a meeting owner, a meeting attendee). The blocking or withholding of a privilege may serve the purpose of encouraging some action or behavior on the part of the employee, after which the employee would regain the privilege. For example, a meeting organizer is locked out of a conference room until the meeting organizer provides a satisfactory agenda for the meeting. This may encourage the organizer to put more thought into the planning of his meeting.

In various embodiments, locking may entail: Locking access to the room; Preventing a meeting from showing up on a calendar; Video meeting software applications could be prevented from launching.

In various embodiments, locking may occur until a meeting purpose is provided. In various embodiments, locking may occur until a decision is made. In various embodiments, locking may occur if the meeting contains confidential information and individuals without clearance are invited or in attendance. In various embodiments, locking may occur if the meeting tag (e.g. identifying strategy, feature, commitment) is no longer valid. For example, a tag of ‘Project X’ might result in a lockout if that project has already been cancelled.

In various embodiments, locking may occur until the description of the asset generated is provided. In some embodiments, locking may occur if the budget established by Finance for a project or overall meetings is exceeded.

In various embodiments, a meeting owner and/or participants could be provided with a code that unlocks something.

In various embodiments, different meeting locations can be locked down (prevented from use) based on environmental considerations such as outside temperature (e.g., it is too costly to cool a particular room during the summer, so don't let it be booked when the temperature is too high) and/or all physical meeting rooms (or based on room size threshold) may be locked down based on communicable disease statistics such as a high rate of seasonal flu.

In various embodiments, during flu season, the central controller could direct a camera to determine the distances between meeting participants, and provide a warning (or end the meeting) if the distance was not conforming to social distancing protocols stored at the central controller.

At step 7921, the central controller 110 may remind a user of a meeting's impending start, according to some embodiments.

In various embodiments, a peripheral associated with a user may display information about an upcoming meeting. Such information may include: a time until meeting start; a meeting location; an expected travel time required to reach the meeting; weather to expect on the way to a meeting (e.g. from weather table 7600); something that must be brought to a meeting (e.g., a worksheet); something that should be brought to a meeting (e.g., an umbrella); or any other information about an upcoming meeting. In various embodiments, a peripheral may remind a user about an upcoming meeting in other ways, such as by providing an audio reminder, by vibrating, by changing its own functionality (e.g., a mouse pointer may temporarily move more slowly to remind a user that a meeting is coming up), or in any other fashion.

In various embodiments, the central controller may send a reminder to a user on a user's personal device (e.g., phone, smart watch). The central controller may text, send a voice message, or contact the user in any other fashion.

In various embodiments, the central controller 110 may remind the user to perform some other task or errand on the way to the meeting, or on the way back from the meeting. For example, the central controller may remind the user to stop by Frank's office on the way to a meeting in order to get a quick update on Frank's latest project.

At step 7924, the central controller 110 may track users coming to the meeting, according to some embodiments.

On the Way to a Meeting

Meetings are often delayed when one or more participants do not reach the meeting room by the designated start time, and this can cause frustration. In some cases, meeting information must be repeated when others arrive late.

Estimating Time of Arrival

The central controller 110 could estimate the time of arrival for participants from global positioning data and/or Bluetooth® location beacons and/or other forms of indoor positioning systems. The central controller could display these times of arrival to the meeting owner on display 4246 of presentation remote 4200, display them on a display of the meeting room, project them on a wall of the meeting room with a camera, etc.

Finding the Meeting

The central controller could provide meeting attendees with a building map indicating the location of the meeting room and walking directions to the room based upon Bluetooth® beacons or other indoor positioning systems. The central controller could also assist meeting participants in finding nearby bathroom locations or the locations of water fountains, vending machines, coffee machines, employee offices, copiers, chairs, security, etc.

Late Important Participants

The central controller could prompt the meeting owner to delay the start of the meeting if key members of the meeting are running late.

Late Participants Messaging

Late participants could record a short video or text message that goes to the meeting owner (e.g. ‘I'm getting coffee/tea now’, ‘I ran into someone in the hallway and will be delayed by five minutes’, ‘I will not be able to attend’, ‘I will now attend virtually instead of physically’).

Catching Up Late Arrivals

The central controller 110 could send to late arrivals a transcript or portions of a presentation that they missed, via their phones, laptops, or other connected devices.

Pre-Meeting Evaluation

At step 7927, the central controller 110 may send out pre-meeting evaluation, according to some embodiments.

Meeting agendas and presentations are often planned far in advance of the meeting itself. Providing meeting owners with information collected from attendees in advance of the meeting allows meeting owners and presenters flexibility to tailor the meeting to changing circumstances.

Pre-Meeting Status Update

The central controller could elicit responses from attendees prior to the meeting by sending a poll or other form of text, asking how the attendees feel prior to the meeting. Exemplary responses may include: ‘Excited’; ‘Dreading it’; ‘Apathetic’; ‘Sick’; a choice from among emojis.

At step 7930, the central controller 110 may set the room/meeting environment based on the evaluation, according to some embodiments.

Dynamic Response

Based upon these responses, the central controller can alter the physical environment of the room, order different food and beverage items, and alert the meeting owner (e.g. via presentation remote 4200) about the status of attendees. The room can use this information, for example, to decide whether to: Request responses from participants; Order snacks/candy; Play more soothing music; Reduce/increase the number of slides; Change the scheduled duration of the meeting; Set chairs to massage mode; Turn the lights down/up; or to make any other decision.

Based on the type of meeting, agenda and the responses sent to the meeting organizer, the central controller 110 can provide coaching or performance tips to individual participants, via text or video or any other medium. For example, if there is an innovation meeting where the meeting participant is dreading the meeting, the central controller may text the individual to take deep breaths, think with an open mind, and not be judgmental. If there is a learning meeting where the meeting participant is excited, the central controller may advise the individual to use the opportunity to ask more questions for learning and share their energy.

In various embodiments, there may be attendee-specific rewards for attending, achieving and/or meeting goals. Rewards may be allocated/awarded by the meeting organizer and/or system.

At step 7933, the central controller 110 may start the meeting, according to some embodiments. Users may then join the meeting, according to some embodiments.

During the Meeting

Continuing with step 7933, the central controller manages the flow of the meeting, according to some embodiments.

Textual Feedback (Teleprompter)

In various embodiments, a presenter may receive feedback, such as from central controller 110. Feedback may be provided before a meeting (e.g., during a practice presentation), during a meeting, and/or after a meeting. In some embodiments, presenter feedback is provided via display 4246 of presentation remote 4200.

Presenters will sometimes use devices such as teleprompters to help them to remember the concepts that they are trying to get across. In various embodiments, a teleprompter may show textual feedback to a presenter. Feedback may specify, for example, if the presenter is speaking in a monotone, if the presenter is speaking too fast, if the presenter is not pausing, or any other feedback. In some embodiments, the teleprompter is under the control of presentation remote 4200, or the textual information may be displayed to the presenter on display 4146 (or speaker 4110) of presentation remote 4200.

In various embodiments, a teleprompter may act in a ‘smart’ fashion and adapt to the circumstances of a presentation or meeting. In various embodiments, some items are removed from the agenda if the meeting is running long. In various embodiments, the teleprompter provides recommendations for changes in the speed/cadence of the presentation.

In various embodiments, a presenter may receive feedback from a wearable device. For example, a presenter's watch may vibrate if the presenter is speaking too quickly.

Request an Extension

In various embodiments, a meeting owner or other attendee or other party may desire to extend the duration of a meeting. The requester may be asked to provide a reason for the extension. The requester may be provided with a list of possible reasons to select from.

In various embodiments, a VIP meeting owner gets precedence (e.g., gets access to a conference room, even if this would conflict with another meeting set to occur in that conference room).

In various embodiments, if a project is of high importance, the central controller may be more likely to grant the request.

In various embodiments, a request may be granted, but the meeting may be moved to another room. In various embodiments, a request may be granted, and the next meeting scheduled for the current room may be moved to another room.

Deadline and Timeline Indications

Companies often impose deadlines for actions taken to complete work. In the context of meetings, those deadlines can take a number of forms and can have a number of implications.

In various embodiments, there could be deadlines associated with actions for a particular meeting, like the need to get through an agenda by a certain time, or a goal of making three decisions before the end of the meeting. Based upon the meeting agenda, the central controller 110 can prompt the meeting owner if the current pace will result in the meeting failing to achieve its agenda items or achieve a particular objective. If meeting participants do not achieve an objective in the time allotted, the central controller could: end the meeting; end all instances of this meeting; move participants to a ‘lesser room’; shorten (or lengthen) the time allocated to the meeting; require the meeting owner to reapply for additional meeting time; restrict the meeting owner from reapplying for additional time or from scheduling meetings without prior approval; etc.

Room Engagement Biometric Measurements

At step 7936, the central controller 110 tracks engagement, according to some embodiments.

In various embodiments, one or more of the following signs, signals, or behaviors may be tracked: Eye tracking; Yawning; Screen time/distraction; Posture; Rolling eyes; Facial expression; Heart rate; Breathing Rate; Number of overlapping voices; Galvanic skin response; Sweat or metabolite response; Participation rates by individuals.

In various embodiments, the central controller 110 may take one or more actions to encourage increased participation. For example, if Eric has not said anything, the central controller may ping him with a reminder or have him type an idea to be displayed to the room.

In various embodiments, there may be a range of ‘ping styles’ based on the MBTI of a participant, based on such aspects of personality as introversion/extroversion levels, or based on other personality characteristics. In various embodiments, a participant may choose their preferred ping style.

In various embodiments, one or more devices or technologies (e.g. peripheral devices and/or user devices) may be used to track behaviors and/or to encourage behavioral modification.

In various embodiments, a mobile phone or wearable device (watch) is used for collection of biometric feedback during the meeting to the central controller and for meeting owner awareness. Real-time information may include heart rate, breathing rate, and blood pressure. Analysis of data from all attendees alerts the meeting owner for appropriate action. This analysis may include: tension (resulting from higher heart and breathing rates), boredom from lowering heart rates during the meeting, and overall engagement with a combination of increased rates within limits.

In various embodiments, there exist wireless headsets 4000 with accelerometers 4070a and 4070b that detect head movement for communicating to central controller 110 and meeting owner. Downward movement includes boredom and lack of engagement. Nodding up and down can indicate voting/agreement by participants. Custom analytics of head movements may be based on attendee—for example, cultural differences in head movements may be auto-translated into expressive chat text, status, metrics, etc.

In various embodiments, virtual meetings display meeting participants in the configuration of the room for a more true representation of being in the room. For example, if the meeting is taking place in a horseshoe room known by the central controller 110, the video of each person in each chair around the table could be displayed. This may provide advantages over conventional views where you get a single view of a table. This can create a more engaged virtual participant.

Various embodiments may include custom or even fanciful virtual room configurations and/or locations.

Individual Performance Indicators

At step 7939, the central controller 110 tracks contributions to a meeting, according to some embodiments.

In various embodiments, the central controller could measure the voice volume of individual speakers and/or speaking time to coach individuals via prompts, such as sending a message to a speaker to tone it down a bit or to let others speak. The central controller could analyze speech patterns to tell individuals whether they are lucid or coherent and inform speakers whether they are not quite as coherent as usual.

At step 7942, the central controller 110 manages room devices, according to some embodiments. This may include air conditioners, lights, microphones, cameras, display screens, motion sensors, video players, projectors, and/or any other devices.

At step 7945, the central controller 110 alters a room to increase productivity, according to some embodiments. Alterations may include alterations to room ambiance, such as lighting, background music, aromas, images showing on screens, images projected on walls, etc. In various embodiments, alterations may include bringing something new into the room, such as refreshments, balloons, flowers, etc. In various embodiments, the central controller may make any other suitable alterations to a room.

Color Management

Color can be used for many purposes in improving meeting performance. In various embodiments, colors can be used to identify meeting types (e.g. a learning meeting could be identified as yellow, an innovation meeting could be identified as orange) and/or highlight culture (e.g., to proudly display company colors, show support for a group/cause).

In some embodiments, central controller 110 could use various inputs to determine whether or not the participants are aligned, and then color the room green, for example, if there is good perceived alignment based on non-verbal signals such as crossed arms, eye rolling, nodding/head shaking, people leaning toward or away from other participants, people getting out of their chairs, people pushing themselves away from the table, people pounding their fists on a table, etc. In some embodiments, room colors could be set to reflect the mood/morale of people in the room, or reflect confusion (e.g. a red color to indicate that there is a problem).

In some embodiments, when the meeting is going off topic the location controller 8305 could send a signal to lights in the room to cast a red light in the room as a reminder to participants that time may be being wasted. An orange light could be used to indicate whether meeting participants are bored.

Dynamic and Personalized Aroma Therapy

The central controller 110 can both detect and output smells to meeting participants as a way to better manage meetings. The central controller could be in communication with a diffuser that alters the smell of a room.

In some embodiments, when a meeting participant brings food into the room, the central controller could detect the strength of the smell and send a signal to the meeting owner that they may want to remove the items because it could be a distraction.

In various embodiments, when the central controller receives an indication that a meeting is getting more tense, it could release smells that are known to calm people—and even personalize those smells based on the participant by releasing smells from their chair or from a headset. During innovation meetings, the central controller could release smells associated with particular memories or experiences to evoke particular emotions.

Food/Beverage Systems

Getting food delivered during a meeting can be a very tedious process. Tracking down the food selections of participants, getting order changes, tracking down people who never provided a food selection, or having to call in additional orders when unexpected participants are added to the meeting at the last minute.

Various embodiments provide for vendor selection. The central controller 110 can store a list of company approved food providers, such as a list of ten restaurants that are approved to deliver lunches. When a meeting owner sets up a meeting, they select one of these ten vendors to deliver lunch. The central controller can track preferred food/drink vendors with menu selections along with preferences of each participant. If the meeting owner wants to have food, they select the vendor and food is pre-ordered.

Various embodiments provide for default menu item selections. The central controller 110 can have default menu selection items that are pre-loaded from the preferred food/beverage vendors. The administrator uploads and maintains the menu items that are made available to the meeting participants when food/beverages are being supplied. When participants accept an in-person meeting where food is served from an authorized vendor, the participant is presented with the available menu items for selection and this information is saved by the central controller.

Various embodiments provide for participant menu preferences. The central controller maintains the menu preferences for each individual in the company for the approved food/beverage vendors. This can be based on previous orders from the vendor or pre-selected by each meeting participant or individual in the company. For example, a participant might indicate that their default order is the spinach salad with chicken from Restaurant ‘A’, but it is the grilled chicken sandwich with avocado for Restaurant ‘B’. In that way, any meeting which has identified the caterer as Restaurant ‘B’ will create an order for the chicken sandwich with avocado for that participant unless the participant selects something else in advance.

Various embodiments provide for an ordering process. Once a meeting participant confirms attendance where food will be served, participants select their menu item or their default menu preference is used. The central controller aggregates the orders from all meeting attendees and places the order for delivery to the food vendor. A first participant confirms attendance to a meeting and is presented with the food vendor menu, they select an available option and the central controller saves the selection. A second participant confirms attendance to a meeting and is presented with the food vendor menu, but elects to use the default menu item previously saved. For those participants that did not select a menu item or have a previously saved preference for the vendor, the central controller will make an informed decision based on previous orders from other vendors. For example, ‘always orders salads’, ‘is a vegetarian’, or ‘is lactose intolerant’ as examples. At the appropriate time, based on lead times of the food vendor, the central controller places the order with the food vendor.

Various embodiments provide for default meeting type food/beverage selections. The central controller 110 could store defaults for some meeting types. For example, any meeting designated as an innovation meeting might have a default order of coffee and a plate of chocolate to keep the energy high. For learning meetings before 10 AM, the default might be fruit/bagels/coffee, while alignment meetings after 3 PM might always get light sandwiches and chips/pretzels.

At step 7948, side conversations happen via peripherals or other devices, according to some embodiments.

In various embodiments, it may be desirable to allow side conversations to occur during a meeting, such as in a technology-mediated fashion. With side conversations, employees may have the opportunity to clarify points of confusion, or take care of other urgent business without interrupting the meeting. In various embodiments, side conversations may be used to further the objectives of the meeting, such as to allow a subset of meeting participants to resolve a question that is holding up a meeting decision. In various embodiments, side conversations may allow an attendee to send words or symbols of encouragement to another attendee.

In various embodiments, side conversations may occur via messaging between peripherals (e.g., headsets, keyboards, mice) or other devices. For example, a first attendee may send a ‘thumbs up’ emoji to a second attendee, where the emoji appears on a display screen of the mouse of the second attendee. Where conversations happen non-verbally, such conversations may transpire without disturbing the main flow of the meeting, in various embodiments.

In various embodiments, the central controller 110 may create a whitelist of one or more people (e.g., of all attendees) in a meeting, and/or of one or more people in a particular breakout session. An employee's peripheral device may thereupon permit incoming messages from other peripheral devices belonging to the people on the whitelist. In various embodiments, the central controller 110 may permit communication between attendees' devices during certain times (e.g., during a breakout session, during a break), and may prevent such communication at other times (e.g. during the meeting).

In various embodiments, the central controller may store the content of a side conversation. In various embodiments, if there are questions or points of confusion evident from a side conversation, the central controller may bring these points to the attention of the meeting owner, a presenter (such as by sending a message to display 4246 of presentation remote 4200), or of any other party.

At step 7951, the central controller 110 manages breakout groups, according to some embodiments.

In various embodiments, a meeting may be divided into breakout groups. Breakout groups may allow more people to participate. Breakout groups may allow multiple questions or problems to be addressed in parallel. Breakout groups may allow people to get to know one another and a more close-knit environment. Breakout groups may serve any other purpose.

In various embodiments, the central controller 110 may determine the members of breakout groups. Breakout group membership may be determined randomly, in a manner that brings together people who do not often speak to each other, in a manner that creates an optimal mix of expertise in each group, in a manner that creates an optimal mix of personality in each group, or in any other fashion. In various embodiments, breakout groups may be predefined.

In various embodiments, an employee's peripheral device, or any other device, may inform the employee as to which breakout group the employee has been assigned to. In various embodiments, a breakout group may be associated with a color, and an employee's peripheral device may assume or otherwise output the color in order to communicate to the employee his breakout group.

In various embodiments, a peripheral device may indicate to an employee how much time remains in the breakout session, and/or that the breakout session has ended.

In various embodiments, communications to employees during breakout sessions may occur in any fashion, such as via loudspeaker, in-room signage, text messaging, or via any other fashion.

Voting, Consensus and Decision Rules

At step 7954, decisions are made, according to some embodiments.

During meetings, participants often use rules, such as voting or consensus-taking, to make decisions, change the agenda of meetings, or end meetings. These processes are often conducted informally and are not recorded for review. The central controller 110 could facilitate voting, evaluating opinions, or forming a consensus.

The central controller 110 may allow the meeting owner to create a rule for decision making, such as majority vote, poll or consensus, and determining which meeting participants are allowed to vote.

The central controller may allow the votes of some participants to be weighted more/less heavily than others. This could reflect their seniority at the company, or a level of technical expertise, domain expertise, functional expertise, or a level of knowledge such as having decades of experience working at the company and understanding the underlying business at a deep level.

The central controller may share a poll with meeting participants, and may display the aggregated anonymized opinion of participants on decision or topic.

In some embodiments, the central controller may display the individual opinion of participants on a decision or topic. Such opinions might include a rationale for a vote either through preconfigured answers or open-ended responses. The central controller 110 may display a summary of rationales. For example, the central controller could identify through text analysis the top three factors that were cited by those voting in favor.

In various embodiments, the central controller may use a decision rule to change, add or alter the agenda, purpose or deliverable of the meeting. The central controller may facilitate voting to end the meeting or extend the time of the meeting.

In some embodiments, the central controller may record votes and polls to allow review, and transmit the results to a user (e.g. via a presentation remote 4200). The central controller may determine over time which employees have a track record of success/accuracy in voting in polls or who votes for decisions that result in good outcomes through an artificial intelligence module. The central controller may allow for dynamic decision rules which weight participants' votes based upon prior performance as determined by an artificial intelligence module.

In some embodiments, the meeting owner could add a tag to a presentation slide which would trigger the central controller to initiate a voting protocol while that slide was presented to the meeting participants.

In various embodiments, votes are mediated by peripherals. Meeting attendees may vote on a decision using peripherals. For example, a screen on a mouse could display a question that is up for a vote. An attendee can then click the left mouse button to vote yes, and the right mouse button to vote no. Results and decisions may also be shown on peripherals. For example, after a user has cast her vote, a screen in the meeting room shows the number of attendees voting yes and the number of attendees voting no.

At step 7957, the central controller 110 tracks assets, according to some embodiments.

In various embodiments, the central controller 110 solicits, tracks, stores, and/or manages assets associated with meetings. Assets may be stored in a table such as table 6000.

The central controller 110 may maintain a set of rules or logic detailing which assets are normally associated with which meetings and/or with which types of meetings. For example, a rule may specify that a list of ideas is one asset that is generated from an innovation meeting. Another rule may specify that a list of decisions is an asset of a decision meeting. Another rule may specify that a presentation deck is an asset of a learning meeting. In some embodiments, if the central controller does not receive one or more assets expected from a meeting, then the central controller may solicit the assets from the meeting owner, from the meeting note taker, from the meeting organizer, from the presenter, from a meeting attendee, or from any other party. The central controller may solicit such assets via email, text message, or via any other fashion.

In various embodiments, if the central controller does not receive one or more assets expected from a meeting (e.g., within a predetermined time after the end of the meeting, within a predetermined time of the start of the meeting, within a predetermined time before the meeting starts), then the central controller may take some action (e.g., an enforcement action). In various embodiments, the central controller may revoke a privilege of a meeting owner or other responsible person. For example, the meeting owner may lose access to the most sought-after conference room. As another, the meeting owner may be denied access to the conference room for his own meeting until he provides the requested asset. As another example, the central controller may inform the supervisor of the meeting owner. Other enforcement actions may be undertaken by the central controller, in various embodiments.

Rewards, Recognition, and Gamification

At step 7960, the central controller 110 oversees provisions of rewards and/or recognition, according to some embodiments.

While management can't always be in every meeting, various embodiments can provide ways for management to provide rewards and/or recognition to people or teams that have achieved certain levels of achievement.

In various embodiments, the following may be tracked: Participation rate in meetings; Engagement levels in meetings; Leading of meetings; Questions asked; Assets recorded; Ratings received from meeting owner or other participants; Post-meeting deliverables and/or deadlines (met or missed); Meeting notes typed up; Demonstrated engagement levels with meeting materials such as reading time or annotations; Tagging of presentation slides.

In various embodiments, reward/recognition may be provided in the form of: Promotions; Role changes (e.g. the central controller begins to identify those highly regarded in the organization for different meeting types, such as a meeting owner who received good scores for running Innovation Meetings might be chosen to run more Innovation sessions, or to be a trainer of people running or attending Innovation meetings); Salary increase (e.g. central controller aggregates meeting participant scores and informs their manager when salary increases are taking place); Bonuses; Meeting room/time slot preferences (e.g. top meeting owners/participants get preferred status for best rooms, meeting times, other assets); Additional allocation of meeting ‘points’ (e.g. for scheduling/permitting meetings); Name displayed on room video screen; A recipient's peripheral device changes its appearance (e.g. an employee's mouse glows purple as a sign of recognition); An employee's peripheral device may change in any other fashion, such as by playing audio (e.g., by playing a melody, by beeping), by vibrating, or in any other fashion; Identify a person as a top meeting owner or top participant.

In various embodiments, certain stats may be tracked related to performance, like baseball card stats for meetings or people or rooms. Meeting attendees could be rewarded for perfect attendance, finishing on time, developing good assets, reaching good decisions, feeding good outputs as inputs to subsequent meetings. etc.

After the Meeting

In various embodiments, the central controller 110 asks whether or not a user attended the meeting.

In various embodiments, the central controller requests notes, meeting assets, and vote(s) from an attendee (and perhaps others), including ratings on the room and equipment itself and other configured items established by the meeting owner.

In various embodiments, the central controller provides meeting engagement scores for participants (or meeting owner, facilitator, admin, etc.) and leadership improvement data. For example, the central controller 110 might identify people with higher meeting engagement scores for use during coaching sessions. In some embodiments, the central controller asks if the meeting should be posted for later viewing by others.

Sustainability

At step 7963, the central controller 110 scores a meeting on sustainability, according to some embodiments. Some contributions to sustainability may include: environmental soundness, reduced meeting handouts (physical), increased remote participation, etc.

Many companies are now working diligently to respect and preserve the environment via Corporate Social Responsibility (CSR) focus and goals. These CSR goals and initiatives are key in improving and maintaining a company's reputation, maintaining economic viability and ability to successfully recruit the next generation of knowledge workers. Various embodiments can help to do that. For example, companies may take the following thinking into consideration: Making virtual participation more effective allows for fewer participants having to travel for meetings, reducing car exhaust and airplane emissions; With smaller meetings, smaller meeting rooms can be chosen that require less air conditioning; Carbon dioxide elimination/Green score/Corporate Social Responsibility score by meeting and individual—participants that are remote and choose to use virtual meetings are given a CO2 elimination/green score which can be highlighted in corporate communications or on the company website; Not printing content and making all presentations, notes, feedback and follow-up available electronically, can generate a green score by participants/meeting/organization; Brainstorming sessions can be done regarding making environmental improvements, with the results of those sessions quickly made available to others throughout the enterprise, and the effectiveness of those suggestions tracked and evaluated; The company heating/cooling system could get data from the central controller in order to optimize temperatures (e.g. when engagement levels start to drop, experiment with changes in temperature to see what changes help to bring engagement levels up); When the central controller knows that a meeting room is not being used, the air conditioning can be turned off, and it can also be turned back on just before the start of the next meeting in that room (e.g. at 3 PM if the last meeting is done, the AC should go off and the door should be closed); When the central controller knows a meeting participant is attending a meeting in person, the air conditioning or heating temperature could be adjusted in the attendee's office to reflect that they are not in their office; Room blinds could be controlled to minimize energy requirements.

In some embodiments, headsets equipped with temperature, environmental and light sensors—along with cameras and microphones—could collect data from each user in a meeting room. This data could be sent to the central controller and communicated to location controller 8305 to adjust the environmental elements or provide feedback for adjustments. The dynamic changes could help to conserve power and contribute to a positive CSR score. CSR scores could be broadcast throughout the company's headsets for education and awareness purposes.

In various embodiments, headsets may facilitate heating/cooling adjustments. Headsets could collect the body temperature of each person. If the temperature increases beyond a particular threshold, the central controller 110 could communicate with the in-room location controller or central HVAC system to start the air conditioning. Likewise, if the body temperatures are too cold, the central controller could communicate with the in-room location controller or central HVAC system to stop the air conditioning and possibly turn on the heat.

In some embodiments, headsets with cameras (or cameras alone) could detect the number of people in a meeting room. If the number of people in the room is significantly less than the accommodating size (e.g. two people sitting in a twenty person conference room), the HVAC system is not adjusted and conserves power. This could mimic the environmental control behavior of the central controller when a room is not in use and encourage the use of other rooms or virtual meetings. Room blinds could also be controlled to minimize energy requirements. If the headset senses light shining on a presentation panel or the room is becoming too hot, the in-room location controller could obtain information from the central controller and close the blinds. Likewise, if the room becomes too dark on a sunny day, the in-room location controller could obtain information from the central controller and automatically open the blinds letting in light, thus reducing the need to turn on lights.

In various embodiments, headsets may facilitate maintenance. With respect to office equipment and furniture, peripheral devices (e.g. headsets, cameras, presentation remotes) could identify that chairs are missing from the room and notify the facilities department via the central controller 110 that chairs are missing and could be brought to the conference room. This could occur for any missing asset that is not registered with the central controller for the associated room (e.g. trash cans, markers).

In some embodiments, with respect to maintaining office cleanliness, the headsets with cameras could notice that the trash can is full of lunch from a previous meeting or that there are crumbs on the floor and the cleaning staff could be dispatched to clean the room via the central controller. In addition, if the trash can is not full or the room is clean, the cleaning crew could be notified to not access the room and save on maintenance and power costs.

In various embodiments, the central controller 110 could have access to the organization's environmental Corporate Social Responsibility (CSR) goals and targets. These could be preloaded into the central controller. When meetings are scheduled, the central controller informs the meeting lead and participants of the meeting's CSR target score based on the overall organization goals. When team members elect to participate remotely or not print documents related to the meeting, these are components that generate a CSR meeting score. This score can be maintained real-time by the central controller and used to monitor and update in real-time the CSR score to target goal. This score can be promoted on both internal sites for employee awareness as well as external sites for public viewing. For example, meeting owner ‘A’ schedules a meeting with 10 people in location ABC. 5 people are remote, 3 work from home and 2 are co-located in location ABC. The meeting owner is provided with the CSR target goal of 25%. If 3 of the 5 remote attendees elect to not fly to the location or rent a car or stay in a hotel in location ABC, the meeting receives a positive contribution to the CSR goal. When 2 people decide to fly to the meeting, they receive a negative contribution to the CSR goal since they are contributing to more carbon dioxide emissions, renting fossil fuel vehicles and staying in hotels that use more energy. Likewise, the 3 people that work from home and do not drive to the office contribute positively to the CSR goal. The 2 co-located meeting participants in location ABC receive a score as well since they drive to the office daily and consume utilities at their place of employment. Furthermore, as attendees see the meeting CSR score in advance of the meeting and make alternative choices in travel and attendance, the score adjusts. As more people elect to attend in person, the score begins to deteriorate. If people begin to print copies of a presentation, the network printers communicate to the central controller and the CSR score begins to deteriorate as well. As more people attend in person, the AC/Heating costs begin to increase and again, this contributes negatively to the CSR score. Upon completion of the meeting, the final CSR score is provided to all attendees and the central controller maintains the ongoing analytics of all meetings for full reporting by the organization.

Even when meetings are not taking place in a physical room, the room itself could be contributing to a negative CSR score. Rooms require heat and cooling even when no one is in the workplace. The meeting controller should be aware of all meetings and proactively adjust the heating and cooling of each room. For example, if the meeting controller knows a meeting is taking place in conference room ‘A’ from 8:00 AM-9:00 AM, the meeting location controller 8305 should alert the heating and cooling system to adjust the temperature to 76 degrees Fahrenheit at 7:45 AM. Also, the meeting location controller should also notice that another meeting is taking place from 9:00 AM-10:00 AM in the same room and hence should maintain the temperature. If, however, there is no meeting scheduled from 9:00 AM-11:00 AM, the central controller should inform the heating and cooling system to turn off the system until the next scheduled meeting. When temperatures are adjusted to match the use of the room, the CSR score is positively impacted since less energy is used.

Since the central controller 110 also knows which individuals are attending the meeting in person, if the individual has an office, the heating and cooling system should be adjusted in the office to conserve energy. For example, person ‘A’, who sits in an office, elects to attend a meeting in conference room ‘13’ in person at 8:00 AM. At 7:55 AM, or whenever the time to travel to the meeting begins for the individual, the central controller informs the heating and cooling system to adjust the temperature for an unoccupied room. In this case, it could be set to 80 degrees Fahrenheit. Since the office is not occupied during the meeting time, less energy is spent heating and cooling the office. This contributes positively to the overall CSR target score and the central controller maintains this information for use by the organization.

As temperature conditions in the room are impacted by sun through windows, the central controller should interface with the window blind system accordingly. For example, in the winter, the central controller could retrieve weather data from weather table 7600 to determine that it will be sunny and 45 degrees Fahrenheit outside and that the room windows face the south. In this case, in order to use solar energy, the blinds of the meeting room should be opened by the central controller to provide heat and hence use less energy resources. Likewise, in the summer, with a temperature of 90 degrees Fahrenheit, this same southern facing conference room should have the blinds closed to conserve cooling energy. This data should be provided by the central controller to the overall CSR target goals for the organization. The central controller could integrate to sites to calculate the CSR savings/Green savings by not flying or driving. Since the central controller knows where the meeting participant is located and where the meeting is taking place they can determine the distance between the locations and calculate the savings. For example, the central controller knows the meeting is taking place at 50 Main Street in Nashville, Tenn. An individual in Los Angeles, Calif. elects to participate remotely and not travel. The central controller can access a third party site to calculate the CO2 emissions saved thus the positive contribution to the CSR target. In addition, a person in a suburb of Nashville decides to participate remotely and not drive to the meeting. The central controller can access third party mapping software and determine the driving distance and access a third party site to calculate the CO2 emission saved. This information is collected by the central controller and provided to the organization for CSR reporting.

Camera

Turning now to FIG. 80, a block diagram of a peripheral device 8000 according to some embodiments is shown. In various embodiments, a peripheral device (e.g., headset, camera, presentation remote, mouse, keyboard) may be a wearable device (e.g., built into a headset, worn on a belt, built into a ring, built into a mouse, built into eyeglasses) which receives inputs and provides outputs.

Peripheral device 8000 may include various components. Peripheral device 8000 may include a processor 8005, network port 8010, connector 8015, input device 8020, output device 8025, sensor 8030, screen 8035, power source 8040, storage device 8045, AI accelerator 8060, cryptographic accelerator 8065, and GPU (graphics processing unit) 8070. Storage device 8045 may store data 8050 and program 8055. A number of components for peripheral device 8000 depicted in FIG. 80 have analogous components in user device 106a depicted in FIG. 3 (e.g., processor 8005 may be analogous to processor 305) and in peripheral device 107a depicted in FIG. 4 (e.g. sensor 8030 may be analogous to sensor 430), and so such components need not be described again in detail. However, it will be appreciated that any given user device or peripheral device and any given presentation remote device may use different technologies, different manufacturers, different arrangements, etc., even for analogous components. For example, a particular user device may comprise a 20-inch LCD display screen, whereas a peripheral device may comprise a 2-inch OLED display screen. It will also be appreciated that data 8050 need not necessarily comprise the same (or even similar) data as does data 350 or data 450, and program 8055 need not necessarily comprise the same (or even similar) data or instructions as does program 355 or program 455. Input device 8020 may include audio input that may be provided by a user which results in a command sent to network port 8010.

In various embodiments, analogous components in different devices (and/or in different variations of a device) may use a similar and/or analogous numbering scheme. For example, reference numerals for like components may differ only in the “hundreds” or “thousands” digits, but may have similar trailing digits. For example, processor 305 in FIG. 3 and processor 405 in FIG. 4 may be analogous components, and have the same last two digits in their respective reference numerals. In various embodiments, where components in different figures have similar and/or analogous numbering schemes, such components may have similar and/or analogous functions and/or construction. In various embodiments, however, analogous numbering schemes do not necessarily imply analogous functions and/or construction.

In various embodiments, connector 8015 may include any component capable of interfacing with a connection port (e.g., with connection port 315). For example, connector 8015 may physically complement connection port 315. Thus, for example, peripheral device 8000 may be physically connected to a user device via the connector 8015 fitting into the connection port 315 of the user device. The interfacing may occur via plugging, latching, magnetic coupling, or via any other mechanism. In various embodiments, a peripheral device may have a connection port while a user device has a connector. Various embodiments contemplate that a user device and a peripheral device may interface with one another via any suitable mechanism. In various embodiments, a user device and a peripheral device may interface via a wireless connection (e.g., via Bluetooth®, Wi-Fi®, or via any other means).

AI accelerator 8060 may include any component or device used to accelerate AI applications and calculations. AI accelerator 8060 may use data collected by sensor 8030 and/or input device 8020 to use as input into various AI algorithms to learn and predict outcomes. AI accelerator 8060 may use storage device 8045 for both input and result data used in AI algorithms and calculations.

In various embodiments, AI accelerator 8060 can send a signal back to user device 106a upon making a prediction, determination, or suggestion. For example, if a user is giving a presentation and it is determined by AI accelerator 8060 that the user is performing poorly (e.g. not speaking loudly enough, moving too much, not making eye contact with the audience, keeping their hands in their pockets, slouching) a signal can be sent back to user device 106a to recommend more training for the user.

In various embodiments, AI accelerator 8060 can use multifaceted data collected by sensor 8030 as input to induce actions. The AI accelerator can use this information, for example, to: trigger recording of the current presentation session when a presenter shows excitement, induce a vibration in the camera if the presenter is showing signs of being distracted or sleepy, etc.

In various embodiments, AI accelerator 8060 may combine data from various sources including sensor 8030 and input device 8020 with its own data calculated and/or stored on storage device 8045 over a long period of time to learn behaviors, tendencies, idiosyncrasies and use them for various purposes. For example, the AI accelerator may determine that the person using peripheral device 8000 currently is not an approved user based on movement patterns, ambient sound, voiceprint, facial recognition, etc. and prevent unauthorized access of peripheral device 8000. The AI accelerator may find concerning medical conditions through sensing of heart rate, thermal scan of body temperature, movement patterns and notify the user to seek medical attention. The accelerator may determine the user's learning capabilities and knowledge base to determine complexity settings on future presentations, applications, templates, etc.

Cryptographic accelerator 8065 may include any component or device used to perform cryptographic operations. Cryptographic accelerator 8065 may use data collected by various sources including but not limited to sensor 8030 and/or input device 8020 to use as input into various cryptographic algorithms to verify user identity, as a seed for encryption, or to gather data necessary for decryption. Cryptographic accelerator 8065 may use storage device 8045 for both input and result data used in cryptographic algorithms.

In various embodiments, cryptographic accelerator 8065 will encrypt data to ensure privacy and security. The data stored in storage device 8055 may be encrypted before being written to the device so that the data can only be usable if passed back through 8065 on output. For example, a user may want to store sensitive information on the storage device on peripheral device 8000 so that they can easily authenticate themselves to any connected user device 106a. Using the cryptographic accelerator to encrypt the data ensures that only the given user can decrypt and use that data. In some embodiments, cryptographic accelerator 8065 includes multifactor authentication capability so that peripheral device 8000 may be used in authentication protocols.

In various embodiments, cryptographic accelerator 8065 will encrypt signals to ensure privacy and security. Signals sent to user device 106a through connector 8015 and connection port 315 can be encrypted so that only a paired user device can understand the signals. Signals may also be encrypted by the cryptographic accelerator and sent directly via network port 8010 to another peripheral device 107a via that device's network port 410. For example, a user may use a microphone associated with peripheral device 8000 to record speech for private communications and that data can pass through cryptographic accelerator 8065 and be encrypted before being transmitted. The destination device can decrypt using its cryptographic accelerator using shared keys ensuring no other party could listen in.

GPU (graphics processing unit) 8070 may include any component or device used to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output on one or more display devices. GPU 8070 may use data collected by various sources including but not limited to sensor 8030 or from the attached user device via connector 8015 to use in graphics processing. GPU 8070 may use storage device 8045 for reading and writing image data.

In various embodiments, GPU 8070 will create image data that will be displayed on screen 8035 or output device 8025. For example, when a user is managing a presentation GPU 8070 can be used to process data and display the data on a camera display (output device 8025), and can assist in processing graphics data.

In some embodiments, peripheral device 8000 includes controller 8075 which can manage multiple devices 8080 in order to reduce the computational load on processor 8005.

In some embodiments, storage device 8045 may store financial data (e.g. credit card numbers, bank account numbers, passwords, digital currencies, coupons), medical data, work performance data, media (e.g. movies, songs, books, audio books, photos, instruction manuals, educational materials, training materials, presentations, art, software applications, advertisements), etc. In various embodiments, users may be required to authenticate themselves to peripheral device 8000 before gaining access to data stored in storage device 8045.

Referring to FIG. 81, a diagram of an example ‘recommended capabilities by meeting type’ table 8100 according to some embodiments is shown. Table 8100 may store recommendations for what capabilities should be represented at meetings, depending on the type and topic of the meeting. For example, table 8100 may recommend the number of subject matter experts that should be present at an innovation meeting on the subject of software tools.

Recommendation identifier field 8102 may store an identifier (e.g., a unique identifier) that identifies a recommendation. Meeting type field 8104 may store an indication of a meeting type (e.g., innovation, learning, alignment, commitment, etc.). Meeting topic field 8106 may store an indication of a meeting topic (e.g., software tools, tax law changes, new bugs from code delivery, which OS to develop for first, etc.).

Based on the meeting type and meeting topic, table 8100 includes recommendations for various meeting parameters (e.g., for the numbers of people that should fill different meeting roles). Recommendations may include fixed numbers or ranges (e.g., a recommendation may indicate that a meeting should have between fifty and seventy-five people).

‘Number of facilitators/mediators’ field 8108 may store an indication of a number of facilitators and/or mediators that are recommended for a meeting. ‘Number of subject matter experts’ field 8110 may store an indication of a number of subject matter experts that are recommended for a meeting. ‘Number of decision-makers’ field 8112 may store an indication of a number of decision-makers that are recommended for a meeting. ‘Total number of people’ field 8114 may store an indication of a total number of people that are recommended for a meeting.

‘Room arrangement’ field 8116 may store an indication of a room arrangement that is recommended for a meeting. A room arrangement may indicate the layout, arrangements, and/or orientations of tables, chairs, benches, podiums, or other furniture. A room arrangement may indicate the location of devices or equipment, such as a projector, speaker, etc. Exemplary room arrangements include: has whiteboards; auditorium style; u-shape; round-table in small room; etc.

Fields 8108, 8110, and 8112, 8114, and 8116 represent different meeting parameters that may be recommended according to some embodiments. It will be appreciated that other parameters may be recommended, in various embodiments. In various embodiments, there may be recommendations for other meeting roles, for meeting props, for meeting formats, and/or for any other aspect of a meeting.

In various embodiments, recommendations may vary based on other meeting parameters, such as meeting format, time of day, familiarity of the participants with one another, stage of a project, etc. For example, there may be a first recommended size for in-person meetings, and a second recommended size for meetings held via video conferencing. For example, there may be a first recommended number of facilitators for an early morning meeting (e.g., when people are fresh), and a second recommended number of facilitators for meetings held right after lunch (e.g., when people are lethargic from eating).

With reference to FIG. 82 there is shown an illustration of a repair 8200. An office worker is attempting to repair broken machine 8215. The office worker is wearing headset 8210 which may include any of the functionality of headset 4000 of FIG. 40 (or of any other headset described herein) as well as the functionality of camera 4100 of FIG. 41. The office worker is needing assistance to repair the broken machine 8215 and uses headset 8210 to request that an experienced technician from the manufacturer provide instructions remotely. The office worker speaks into a microphone of headset 8210 and initiates a request to send a video feed of broken machine 8215 to the remote technician while looking at broken machine 8215. In some embodiments, the office worker may also generate a tag with information about one or more broken elements and apply that tag to broken machine 8215.

The remote technician joins with their headset and observes the broken machine 8215 and guides the office worker through the steps needed to repair the machine. Likewise, the office worker with headset 8215 may request that a video (e.g. a training video on how to fix the particular problem) be shown on the display to assist in fixing the broken machine 8215 independent of another person. The office worker may also request internal assistance from other workers who are more familiar with fixing the broken machine 8215 (e.g. an administrative assistant) using headset 8210. The office worker requests through the headset a display of all internal company employees with experience fixing the broken machine type. A list is provided on the headset display and the office worker selects an individual. Communication from the headsets is established with the other company employee and assistance is provided to fix the machine in a manner similar to the manufacturer representative.

In various embodiments, a keyboard is used to output information to a user. The keyboard could contain its own internal processor. Output from the keyboard could take many forms.

In various embodiments, the height of keys serves as an output. The height of individual keys (depressed, neutral or raised) could be controlled as an output.

In various embodiments, a keyboard contains a digital display screen. This could be a small rectangular area on the surface of the keyboard which does not interfere with the activity of the user's fingers while using the keyboard. This display area could be black and white or color, and would be able to display images or text to the player. This display would receive signals from the user device or alternately from the central controller, or even directly from other peripheral devices.

In various embodiments, the screen could be touch-enabled so that the user could select from elements displayed on this digital display screen. The screen could be capable of scrolling text or images, enabling a user to see (and pick from) a list of inventory items, for example. The screen could be mounted so that it could be flipped up by the user, allowing for a different angle of viewing. The keyboard display could also be detachable but still controllable by software and processors within the mouse.

In various embodiments, a keyboard may include lights. Small lights could be incorporated into the keyboard or its keys, allowing for basic functionality like alerting a user that a friend was currently playing a game. A series of lights could be used to indicate the number of wins that a player has achieved in a row. Simple lights could function as a relatively low-cost communication device. These lights could be incorporated into any surface of the keyboard, including the bottom of the keyboard. In some embodiments, lights are placed within the keyboard and can be visible through a semi-opaque layer such as thin plastic. The lights could be directed to flash as a way to get the attention of a user.

In various embodiments, a keyboard may render output in the form of colors. Colors may be available for display or configuration by the user. The display of colors could be on the screen, keys, keyboard, adjusted by the trackball or scroll wheel (e.g., of a connected mouse; e.g., of the keyboard), or varied by the sensory information collected. The intensity of lights and colors may also be modified by the inputs and other available outputs (games, sensory data or other player connected devices).

In various embodiments, a keyboard may render outputs in the form of motion. This could be motion of the keyboard moving forwards, backwards, tilting, vibrating, pulsating, or otherwise moving. Movements may be driven by games, other players or actions created by the user. Motion may also be delivered in the form of forces against the hand, fingers or wrist. The keyboard device and keys could become more firm or softer based on the input from other users, games, applications, or from the keyboard's own user. The sensitivity of the keys could adjust dynamically.

In various embodiments, a keyboard may render outputs in the form of sound. The keyboard could include a speaker utilizing a diaphragm, non-diaphragm, or digital speaker. The speaker could be capable of producing telephony tones, ping tones, voice, music, ultrasonic, or other audio type. The speaker enclosure could be located in the body or bezel of the keyboard.

In various embodiments, a keyboard may render outputs in the form of temperature (or temperature changes). There could be a small area on the surface of the keyboard keys or in the keyboard bezel which contains heating or cooling elements. These elements could be electrical, infrared lights, or other heating and cooling technology. These elements could output a steady temperature, pulsating, or increase or decrease in patterns.

In various embodiments, a keyboard may render outputs in the form of transcutaneous electrical nerve stimulation (TENs). The keyboard could contain electrodes for transcutaneous electrical nerve stimulation. These electrodes could be located in the keys or the areas corresponding with areas used by fingertips or by the palm of the hand. These electrodes could also be located in an ergonomic device such as a wrist rest.

In various embodiments, a keyboard may render outputs in the form of scents, smells, or odors. A keyboard may include a scent machine (odor wicking or scent diffuser). The keyboard could contain an air scent machine, either a scent wicking device or a scent diffusing device. This air scent machine could be located in the body or bezel of the keyboard.

Referring to FIG. 87, a diagram of an example meeting configurations table 8700 according to some embodiments is shown. Meeting configurations table 8700 may store one or more configurations for meetings. Each meeting configuration may represent one option under consideration for holding a meeting. Thus, for a given prospective meeting, table 8700 may include multiple meeting configurations under consideration. Eventually, one such meeting configuration may be selected as the final meeting configuration to which the actual meeting will adhere.

Among other things, meeting configurations table 8700 may score each meeting configuration based on the value of having a set of attendees present versus the opportunity cost for the attendees to be present and not doing something else. In various embodiments, the meeting configuration ultimately selected for the actual meeting may be the meeting configuration with the greatest value from having a attendees present net of opportunity cost.

Meeting ID field 8702 may store an indication of a meeting. The meeting may or may not have transpired yet. The meeting is the meeting for which the configuration is (or was) being considered as one possible option for how the meeting will actually take place.

Configuration ID field 8704 may include an identifier (e.g., unique identifier) for a configuration. As is illustrated in table 8700, there may be more than one configuration associated with the same meeting. For example, meeting ID mt5320323 has illustrated at least four associated configurations, including configuration ID's mcfg3209340332, mcfg3538102029, etc. These are or were four possible configurations considered for this meeting. The configuration that is ultimately selected (e.g., as indicated in configuration selected field 8722) may then determine what actually transpires or transpired during the meeting.

Date field 8706 may include a date for the corresponding meeting. I.e., this would be the date of the corresponding meeting (field 8702) in the event that this configuration is chosen.

Start time field 8708 may include a start time for the corresponding meeting associated with this configuration. Duration field 8710 may include a duration for the corresponding meeting associated with this configuration. Room ID field 8712 may include an indication of a room for the corresponding meeting associated with this configuration.

Attendees field 8714 may include an indication of the attendees that would appear for the corresponding meeting associated with this configuration.

Presence score field 8716 may include an indication of a score associated with having the specified attendees present. The score may represent inherent value being created for an organization through having the attendees presents. Value creation may come because the attendees are solving a problem, moving a project forward, improving their own learning to better help the company, etc. In various embodiments, the score may be specified in monetary terms, in numerical terms, and/or in any other terms. In various embodiments, the score may attempt to faithfully approximate value created by an employee's presence (e.g., in true monetary terms, such as in terms of dollars saved by virtue of the employee's presence). In various embodiments, the score may be a reference or standard, but with no equivalent real-world meaning.

In various embodiments, there is a score associated with the presence of each individual attendee, and an overall presence score in field 8716 is determined by summing the presence scores associated with the individual attendees. In various embodiments, the presence score in field 8716 may be more than the sum of scores associated with the presence of each individual attendee (e.g., because of synergistic effects from having multiple people present). In various embodiments, the presence score in field 8716 may be less than the sum of scores associated with the presence of each individual attendee (e.g., because there is a redundancy among the attendees, such as multiple subject matter experts with the same expertise).

In one illustrative example, a score associated with the presence of a subject matter expert (SME) is 50 points for the first hour of a meeting, and 20 points per hour thereafter. A score associated with every other attendee is 20 points for the first hour, and 15 points per hour thereafter. Assume that meeting configuration mcfg3209340332 would have one SME and five other attendees. The score associated with the SME for this two-hour meeting would be 50+20=70. The score associated with each other attendee would be 20+15=35. Accounting for the respective quantities of SME's and other attendees, the total presence score for configuration mcfg3209340332 would be 1×70+5×35=245 (e.g., assuming no synergies or redundancies).

In various embodiments, a presence score may be determined by a meeting owner, by a potential attendee, by a project manager, and/or in any other fashion. For example, a meeting owner may decide that a decision on a major project must be made urgently, and the decision requires the presence of a particular SME. Accordingly, the meeting owner may assign a very high presence score to the SME. In various embodiments, a potential attendee may decide that he does not have much to gain from a meeting, nor much to contribute, so the potential attendee may assign himself a low presence score.

Opportunity cost field 8718 may include an indication of a cost (e.g., a negative score) associated with having the specified attendees present. The cost may represent inherent value lost or foregone through having the attendees present, e.g., because the attendees are not working on other matters. In various embodiments, the cost may be specified in monetary terms, in numerical terms, and/or in any other terms.

In various embodiments, there is a cost associated with the presence of each individual attendee, and an overall opportunity cost in field 8718 is determined by summing the costs associated with the individual attendees.

In one illustrative example, a cost associated with the presence of a subject matter expert (SME) is 30 points per hour. A cost associated with every other attendee is 10 points per hour. Assume that meeting configuration mcfg3209340332 would have one SME and five other attendees. The cost associated with the SME for this two-hour meeting would be 2×30=60. The cost associated with each other attendee would be 2×10=20. Accounting for the respective quantities of SME's and other attendees, the total opportunity cost for configuration mcfg3209340332 would be 1×60+5×20=160.

Total score field 8720 may include an indication of a total score associated with having the specified attendees present. The total score may be determined by subtracting the opportunity cost from the presence score. For meeting configuration mcfg3209340332, the total score may be determined as 245−160=85.

Configuration selected field 8722 may store an indication of whether or not this configuration was selected. If no configuration has yet been chosen for a given meeting, then this may be indicated by a “choice pending” value, or by any other appropriate value. In various embodiments, the configuration with the highest total score (field 8720) is selected.

In various embodiments, an opportunity cost for an individual may vary by time and circumstances. For example, if an individual is currently facing a tight deadline on a task, or if the individual is in charge of overseeing an important product rollout, then the individual may have a high associated opportunity cost. An individual may have high opportunity cost for personal reasons, such as having a child's ballgame scheduled for the time of a meeting configuration. In various embodiments, an individual may indicate his opportunity cost at different times, such as by putting the opportunity cost in his calendar for each of the different times. In various embodiments, an individual may specify an opportunity cost in terms of a rate (e.g., a cost per hour, cost per day, etc.). An individual may specify an opportunity cost rate for a day (e.g., for a particularly busy day), for a week, etc.

In various embodiments, an opportunity cost may be determined automatically, such as through examination and analysis of an employee's calendar, projects, associated tasks, rank, experience, history of contributions, etc.

In various embodiments, selecting meeting configurations by considering costs and benefits of having potential attendees present may allow a company to operate more efficiently and make better use of its human resources. Where two people would serve equally well in a meeting, the person with the least opportunity cost may be invited to attend, thereby, e.g., allowing the other person to address an important matter. Where two dates or times would serve equally well, a date and time may be selected that allows for the attendance of an individual contributing greater value to the meeting. Various other benefits may also be realized, as will be appreciated.

Referring to FIG. 88, a graph 8800 of experience point data according to some embodiments is shown. For the indicated graph, data has been gathered over a date range of one year (represented on the ‘X’ axis 8810) with cumulative experience points earned (represented on the ‘Y’ axis 8805). The cumulative experience point levels are represented by a line 8815 which shows several points along the date range in which a user was awarded experience points based on tags received. At 8825a the user was awarded experience points because they had accumulated ‘10 tags upvoted for helpfulness’ by other users. At 8825b, a larger experience point award was made because the user had ‘Resolved 10 tags of meeting room issues’ by that point in time, such as by finding a displaced chair, cleaning a whiteboard, replacing a bulb in a projector, etc. At 8825c, the user received a ‘25th positive comment tag on facilitation skills’, which resulted in the user's cumulative experience points exceeding 5,000 points as illustrated in dashed line 8820. In some embodiments, users crossing certain thresholds of cumulative experience points may receive monetary awards, recognition, promotions, perks, etc. In various embodiments, users may have experience points taken away when negative tags are received.

With reference to FIG. 90, a headset 9000 according to some embodiments is shown. Headset 9000 includes a camera 9090 (which may have some or all of the functionality of camera 4100) attached to a bendable stalk 9080 which attaches camera 9090 to housing 9008. In various embodiments, bendable stalk 9080 allows a user to position camera 9080 to capture video or still images from many angles. In some embodiments, bendable stalk 9080 may be made from a material that is capable of bending, though it retains its position once bent. In some embodiments, camera 9090 may be detachable and communicate with headset 9000 or camera 4100, or may have the functionality of supplemental camera 4184. In various embodiments, camera 9090 may be aimed at an object in front of the user, aimed at another user (e.g. to determine the identity of a person who a user is applying a tag to), aimed at the users face (e.g. to capture distances between eyes, ears, nose and mouth for biometric calculations), aimed at one of the user's eyes (e.g. to capture an image of the user's iris for a biometric calculation), aimed at the user's lips (e.g. to capture lip movements to help other user's understand what the user is saying), aimed at a tattoo of the user (e.g. to transmit a photo of the tattoo to central controller 110 to aid in identifying or authenticating the user), aimed at clothing or jewelry of the user, aimed at the hair of the user, aimed at the skin of the user's neck (e.g. to determine an approximate age of the user), aimed at written text, aimed at tools required to fix an object (e.g. copy machine), aimed at a pet (e.g. to aid in identifying or authenticating the user), aimed at the users clothing, aimed at an aspect of the environment around the user which identifies the user's current location (e.g. street signs, a name plaque on a building, a recognizable building facade), etc. In some embodiments, lights 9042a, 9042b, 9044, and/or 9026 may be illuminated by headset 9000 in order to provide better lighting conditions for camera 9090. In some embodiments, camera 9090 includes one or more lights that may be directed at the object camera 9090 is pointed at. In some embodiments, headset 9000 includes microphone 9095.

In some embodiments, bendable stalk 9080 includes one or more motors which are under control of central controller 110 so that central controller 110 may “look around” the user. Such motors may also enable headset 9000 to maintain a video feed associated with a fixed object in the field of view even when the user turns her head.

In other embodiments, video captured by camera 9090 may be output via display screen 9046 and/or projector 9076, allowing the user to see what camera 9090 is pointed at. In some embodiments, headset 9000 uses data from accelerometers 9070a and 9070b in order to determine the position of the user's head, and uses that head position to better identify where the user is looking, such as for the purposes of determining the subject of a tag being applied by a user.

In various embodiments, headset 9000 may comprise other electronics or other components, such as a processor 9055, data storage 9057, etc.

Referring now to 91, a flow diagram of a method 9100 according to some embodiments is shown. Method 9100 may include a method for identifying an object, for associating history, tasks, and/or other information with the object, and/or for conveying the information to a user (e.g., when the user comes in contact with the object). For convenience, method 9100 will be described as being performed by camera 4100. However, as will be appreciated, various embodiments contemplate that method 9100 may be performed by central controller 110, by a user device, by a headset, by a peripheral device, and/or by any other device and/or combination of devices.

At step 9103, camera 4100 may capture a second image at a second time before a first time, according to some embodiments. The second image may be an image captured from a room or other location in a house (or other building or other location), an outdoor area for a house, a shed, a garage, a patio, a porch, and/or from any other location. In various embodiments, the “second time” when the second image is captured, is before a subsequent “first time” when a “first image” is captured. The first and second images may each show at least one object in common, and thus the “first image” may show the object at a later time than does the “second image”.

In various embodiments, camera 4100 may capture a video of the object at the second time. The video may include the second image (e.g., as a frame in the video). In various embodiments, a video may allow camera 4100 to recognize a dynamic gesture made by a user (e.g., a sweep of the arm), to capture an audio clip from the user, to see the object from multiple vantage points, and/or to perform any other function.

At step 9106, camera 4100 may identify an object in the second image. The object may be a household item, item of furniture, fixture, location, part of a larger object, and/or any other item.

Camera 4100 may use any object recognition algorithm, object classification algorithm, and/or any other method for identifying an object. In various embodiments, camera 4100 may reference data (e.g., image data 10308) about a prototype object (field 10304) or about any other object in object table 10300. The second image may be compared to the reference data in order to identify the object in the second image. In various embodiments, a user may assist with identifying an object. For example, a user may view the second image via an app, and may enter or select information about the object.

In various embodiments, camera 4100 does not a priori seek to find any particular object or type of object. Rather, in various embodiments, camera 4100 may seek to identify any object that it finds in the second image. In various embodiments, camera 4100 may identify multiple images in the second image.

In various embodiments, camera 4100 does seek to find a particular object or type of object. In one or more examples, camera 4100 may seek to find artwork. In one or more examples, camera 4100 may seek to find antiques. In one or more examples, camera 4100 may seek to find a skateboard (or any other particular object and/or any other type of object).

In various embodiments, once identified, a record for the object may be created in objects table 10300.

At step 9109, camera 4100 may identify a state of the object in the second image. A state of the object may include the object's color, size (e.g., if the object is a plant), configuration, state of repair, location, orientation, an indication of a possessor of the object, an indication of a user of an object, and/or any other state of the object.

In various embodiments, a state of the object may be of future historical interest. For example, a user admiring a piece of furniture (at some future date) may be informed that the furniture used to be blue, but was later reupholstered in green. A user looking at a toy may be informed that it originally belonged to Sammy, but then was passed down to Joey.

In various embodiments, a state of the object may be of interest for future comparison (e.g., with respect to cleanliness). For example, at a future date, a user may desire to restore an object to an earlier state of shine, sparkle, smoothness, etc.

In various embodiments, a state of the object may be of interest for any suitable or applicable purpose.

At step 9112, camera 4100 may identify a second user in the second image. The second user may be responsible for indicating, designating, and/or otherwise pointing out the object in the first place. In various embodiments, the second user may indicate, designate, and/or otherwise provide information about an object.

In various embodiments, the second user may be identified using facial recognition algorithms, face-detection algorithms, person-detection algorithms, and/or any other suitable algorithms. In various embodiments, the second user may be identified using voice recognition. For example, the second user may speak at or near the second time, when the second image is captured. In various embodiments, the second user may be identified via any biometric, any gesture, or via any other means. In various embodiments, the second user may possess a mobile phone or other electronic device or other device that produces and/or reflects a signal. Such a signal may be used as a signature or other identifier of the second user.

In various embodiments, the object is identified in the second image based on the object's relationship (e.g., physical relationship) to the second user. The object may be identified based on its proximity to the second user, based on its possession by the second user, based on the second user being in contact with the object, based on the second user pointing to the object, based on the second user looking at the object and/or based on any other relationship to the second user.

At step 9115, camera 4100 may determine a gesture made by the second user with respect to the object. In various embodiments, the gesture serves to identify or designate the object (e.g., as an object of historical interest, as an object with which a task may become associated, etc.). In various embodiments, the gesture provides information about the object (e.g., historical information, background information, task information, a target state for the object, and/or any other information).

A gesture may take any form, in various embodiments. A gesture by the second user may include placing his hand on the object, touching the object, lifting the object, looking at the object, pointing at the object, standing next to the object, standing behind the object, holding the object, casting a shadow on the object holding his hands apart from one another (e.g., to indicate a size or measurement associated with the object), and/or making any other gesture. In various embodiments, the second user makes a gesture using an electronic device or other signal emitting (or reflecting) device. Camera 4100 may then identify the gesture based on the location and/or trajectory of the signal source.

Camera 4100 may identify, recognize, and/or interpret gestures in any suitable fashion. In various embodiments, camera 4100 identifies a user's hand (or other body part) and determines the hand's proximity to the object (e.g., determines whether the hand is in contact with the object based on the adjacency in the image of the user's hand to the object). In various embodiments, camera 4100 compares the second image (or a sequence of images) of the second user to one or more reference images, in which a given reference image is associated with a known gesture.

In various embodiments, camera 4100 determines an interaction between the object and the second user. The user may be opening a present containing the object (and thereby having his first interaction with the object). The second user may otherwise be unveiling the object. The user may be playing with the object (e.g., if the object is a toy). The user may be creating the object (e.g., if the object is a work of art, a piece of furniture, a culinary dish, etc.). The user may be watching, holding, wearing, using, sitting on, and/or otherwise interacting with the object, and/or otherwise associating with the object.

In various embodiments, camera 4100 identifies a third user in the second image. The third user may be interacting with the object and/or with the second user. For example, the third user may be gifting the object to the second user, selling the object to the second user, looking at the object with the second user, and/or otherwise interacting with or associating with the object and/or the second user.

In various embodiments, a record may be created in object history table 10400 in which an indication of the second user is stored at field 10412 (“Party 1”) and an indication of the third user is stored at field 10416 (“Party 2”). Other fields in table 10400 may be populated as appropriate (e.g., with roles for the second and third users, etc.).

At step 9118, camera 4100 may determine, based on the gesture, the information about the object.

In various embodiments, if the second user first points at the object, then points away into the distance, the users gesture indicates that the object should be put away (e.g., the user is assigning a task to put the object away). If the user makes small circular hand movements over the object, the user's gesture indicates that the object should be cleaned. If the user points to an object, then crosses his arms in front of his face, then the gesture means the object is dangerous. If the user holds an object to his chest, then the gesture means that the object has high sentimental value. In various embodiments, gestures may have any other predetermined meaning and/or any other meaning. In various embodiments, any other type of gesture may be used.

In various embodiments, camera 4100 determines a gesture by identifying and tracking two parts of a users body (e.g., two “appendages”). In various embodiments, the two body parts are the user's face, and the users hand. In various embodiments, camera 4100 determines the distance between the two body parts at any given time, and then tracks this distance over time (e.g., over many instants in time). In various embodiments, the distance between the two body parts is sampled at regular intervals, such as at every 50 milliseconds, at every frame, or over any other suitable interval.

In various embodiments, not only the distance, but the relative positions of the two body parts are tracked over time.

In various embodiments, one of the two body parts may be regarded as fixed (e.g., the user's head may be regarded as fixed). The gesture may then be represented as a function or waveform, with the dependent variable distance as a function of the independent variable time. If full relative positions are tracked, then the independent variable may be position (e.g., a position in x, y, and z coordinates). In various embodiments, the position may be represented as a vector, such as a vector in 1, 2, or 3-dimensional space. Changes in the position of the user's body parts may be represented as a “movement vector”.

The process of gesture recognition may thereby be reduced to a process of matching a detected or determined waveform to waveforms for one or more reference gestures. In various embodiments, the reference gesture most closely matching the detected gesture (e.g., having the lowest sum-of-squares difference from the detected gesture) may be regarded as the intended gesture, and the user's meaning may be regarded as the meaning associated with the reference gesture. In various embodiments, detected gestures may be classified as reference gestures in any suitable fashion, such as by using any suitable classification algorithm.

In various embodiments, any two other body parts may be used to determine a gesture (e.g., the left and right hands, etc.). In various embodiments, more than two body parts may be used to determine a gesture. In various embodiments, a gesture may be determined in any other suitable fashion.

Further details on performing gesture recognition can be found in U.S. Pat. No. 9,697,418, entitled “Unsupervised movement detection and gesture recognition” to Shamaie, issued Jul. 4, 2017, e.g., at columns 17-20, which is hereby incorporated by reference.

In various embodiments, the second user may provide information to camera 4100 in any other fashion (e.g., in any fashion besides gestures). In various embodiments, a user provides information via an electronic device, user device and/or peripheral device. A user may interact with an app where the user can enter information about an object. The user may snap a picture of the object using a mobile phone (or other device), designate the object as an object of interest (e.g., as an object for storage in object table 10300), and enter information about the object (e.g., type in information, speak information, etc.). In various embodiments, a user may tag the object (e.g., using an app). The tag may describe or otherwise signify or encapsulate information about the object.

In various embodiments, the second user holds an electronic device near to an object (e.g., touching the object). The camera detects a signal from the electronic device (e.g., a Bluetooth® or Wi-Fi® signal), determines the location of the device, and thereby determines the location of the object. The camera may then capture a picture of the object. In this way, the second user may designate the object. In various embodiments, a user designates an object by placing a marker, pattern, beacon, sticker, signaling device, and/or any other indicator on the object. For example, the user may illuminate the object with the flashlight of his mobile phone. Camera 4100 may detect the resultant spot of light, and may thereby recognize that it should store information about the object on which the light is falling.

In various embodiments, the second user verbally describes information about the object, e.g., within audible range of camera 4100.

In various embodiments, a user wearing a headset may look at an object. The headset may include a camera, which may thereby see the object in its view. The user may designate the object, identify the object, say the name of the table, and/or provide any other information about the object. The camera 4100 may thereby associate information with the object.

In various embodiments, camera 4100 identifies an object and then asks the user to provide information about the object. The user may be asked when the image is captured and/or at a time substantially after the image is captured. For example, when a user is sitting at his home computer, the camera 4100 may communicate with the computer and cause an app on the computer to show images to the user that were captured by the camera. The app may ask the user about the images. For example, the app may provide one or more fields where the user can enter information about the images. In various embodiments, the user may drag tags onto objects in the image in order to tag such objects (e.g., to provide information about such objects).

In various embodiments, a camera 4100 captures an image of an object but does not necessarily recognize the image. The camera may ask the user to identify the object in the image (e.g., to provide a name, type, category, brand, model, use, purpose, etc. for the object).

At step 9121, camera 4100 may store information (which may include state information) in association with the object. Information may include state information (e.g., location, state of repair, orientation, etc.) for the object. Information may include background and/or historical information. In various embodiments, information may be stored in the form of an event, such as in object history table 10400. For example, a user's interaction with an object may be stored as an event. In various embodiments, information may be stored in the form of a tag, such as in tagging table 7300.

In various embodiments, camera 4100 may store actual images or footage of the second user's interaction with the object. The images and/or footage may include gestures made by the second user. In such embodiments, camera 4100 need not necessarily interpret such gestures. Rather, it may be presumed that such gestures will later be recognized by another user (e.g., a first user) to whom the footage is subsequently shown. For example, the first user will know that the gesture is telling the first user to put the object away (e.g., as part of a task).

In various embodiments, information may include a classification and/or category for an object. In various embodiments, an object may be classified as educational. A category or classification may be stored in a table such as table 10300 (classification field not shown), or tagging table 7300 (e.g., where a tag represents the classification).

Information may include task information, which may be stored, e.g., in task table 10500. Information may include tag information, which may be stored, e.g., in tagging table 7300. Information may include any other information about the object, about the second user, about the third user and/or about anything else.

Information may include information on dangers or hazards of an object. In various embodiments, an object may present such hazards as the potential to fall, cut, shock, create a mess, etc. In various embodiments, an object may present a hazard only under certain conditions. For example, a glass object may only be hazardous when a toddler or pet is present and able to reach the object.

In various embodiments, information may include a triggering condition which, when met, may cause a warning, alarm and/or other output to be generated. In various embodiments, a triggering condition may include the presence of a child, the presence of a pet, a predetermined proximity of a child or pet, etc. In various embodiments, a triggering condition may include that a child is heading in the direction of an object, a child is looking at an object, a child is reaching for an object, and/or any other suitable triggering condition.

At step 9124, camera 4100 may capture a first image at a first time that is after the second time. Put another way, the second time may be a “previous time” with respect to the first time. The first image may show a first user and the object (e.g., in the same room with one another, near to one another, touching, etc.). Camera 4100 may capture the first image as part of a video (e.g., as part of routine surveillance video). Camera 4100 may capture the first image in response to a sensor reading (e.g., a motion sensor signals that there is a user in the room, so the camera takes a picture). Camera 4100 may capture the first image for any other reason.

In various embodiments, the first image is captured by a different camera (or different device) than the camera (or device) that captured the second image. The first image may be captured in a different room or different location than the second image. The first image may be captured from a different vantage point than the second image. The object may have moved between the second time when the second image was captured, and the first time when the first image is captured.

At step 9127, camera 4100 may identify the object in the first image. Camera 4100 may identify the object using object recognition algorithms, using a beacon or signaling device placed on the object (e.g., a beacon with a unique identifying signal, an RFID tag) using the sound of an object (e.g., the sound of a wood sculpture as it is placed on a glass table), and/or based on any other property of the object.

In various embodiments, camera 4100 may identify the object using the location of the object. For example, camera 4100 may infer what an object is because of its location. For instance, if an object is on a bookshelf, camera 4100 may infer that it is a book. For example, if an object is on a shoe rack, camera 4100 may infer that it is a shoe. In various embodiments, camera 4100 may retrieve stored data about what object is typically at a given location, and may infer that an object seen at the location corresponds to the object from the stored data.

At step 9130, camera 4100 may identify a first user in the first image. The first user may be a friend, relative and/or other houseguest and/or other user who is looking at the object. The first user may be a child and/or other family member and/or other user. The first user may be a pet. The first user may be one and the same as the second user.

In various embodiments, camera 4100 may identify an interaction of the first user and the object. The interaction may be any sort of interaction as described herein with respect to the second user (and/or with respect to any other user). The first user may be looking at, holding, using, touching, approaching, reaching for, wearing, examining, and/or otherwise interacting with the object.

In various embodiments, camera 4100 may compute a distance or “proximity” from the first user to the object. The distance may be computed in any suitable fashion. In various embodiments, the distance may be computed via triangulation, as described herein. For example, camera 4100 may compute distances and angles to each of the object and the first user, thereby obtaining a “SAS” triangle amongst the object, user, and camera. The distance between the first user and the object may then be computed based on the known sides and angle of the triangle.

In various embodiments, camera 4100 may determine if the distance between the first user and the object is less than or equal to a predetermined proximity threshold (e.g., less than or equal to two feet, less than or equal to zero). In various embodiments, if the distance is less than or equal to a predetermined proximity threshold, a triggering condition may be satisfied, and a signal may subsequently be output (e.g., projected). Various embodiments contemplate other triggering conditions, such as conditions where the user is looking at the object, looking in the direction of the object, gesturing towards the object (e.g., a “movement vector” computed for the motion of the first user's appendages is directed towards the object), holding the object, and/or interacting with and/or relating to the object in some other way. In various embodiments, a triggering condition may trigger the output of a signal. In various embodiments, different signals may be associated with (e.g., output in the event of) different triggering conditions.

At step 9133, camera 4100 may retrieve information (which may include a stored state) associated with the object. Information may include background and/or historical information (e.g., from object table 10300, from object history table 10400; from tagging table 7300), task information (e.g., from task table 10500; e.g., from tagging table 7300), images, video, text, audio, and/or any other information. Information may include a prior location of the object, a prior use of the object, an identity of an individual from which the object was received, historic purchase data for the object, a date of manufacture of the object, and/or a country of manufacture of the object. Information may include a current value of the object, a sales price for the object, a status of the object, a video associated with the object, and/or audio associated with the object.

At step 9136, camera 4100 may output a signal based on the retrieved information. The signal may be output in any form, such as in the form of an audible broadcast, images, video, lighting, light changes, text, smells, vibrations, and/or in any other format. The signal may be output in accordance with notification method 10516.

The signal may be a directed spotlight, laser pointer, or other lighting output or change. The signal may be output from camera 4100 (e.g., from display 4146, speaker 4110, light 4142a/4142b, optical fibers 4172a/4172b, projector 4176, laser pointer 4178, smell generator 4180, vibration generator 4182), from a separate speaker, display screen, projector, laser, light, and/or from any other device.

In various embodiments, the signal may be output in such a way that it is likely to be perceived by the first user. For example, the signal may be a tag or text projected on a wall in front of the first user. For example, an audio signal may be output at sufficient volume as to be heard by a user (e.g., taking into account the users proximity to camera 4100 or other audio output device, taking into account ambient noise levels, etc.).

In various embodiments, outputting a signal may include printing a document. For example, if there is a task associated with an object, camera 4100 may cause a printer to print a document describing the task (e.g., the goal of the task, instructions for performing the tasks, etc.). In various embodiments, outputting a signal may include sending an email, text message, electronic document, and/or any other communication.

In various embodiments, the signal may convey information (e.g., literal information about the object). For example, the signal may be a picture of the object as it was 5 years ago. For example, the signal may be text describing the date and circumstances of when the object was first acquired.

In various embodiments, the signal may convey information associated with a task. The signal may provide instructions (e.g., projected text, e.g., audible instructions) describing the task and/or how to perform the task. In various embodiments, the signal may convey information about a reward associated with the task (e.g., from field 10518). In various embodiments, the signal may convey any other information associated with a task.

In various embodiments, the signal represents an action or a part of an action that camera 4100 is taking based on the information. If there is a task associated with the object (e.g., as stored in table 10500), then the signal may follow or conform to the notification method 10516. In various embodiments, a signal is a laser beam, a laser pulse, a spotlight, or the like, that shines on the object. The resultant laser dot appearing on the object may convey to the user that there is a task associated with the object. In various embodiments, a signal is a laser beam, etc. that shines on another location, such as a location where the object should be put away, on another object with which the object is associated (e.g., a laser may alternately shine on three sculptures to show that the three are part of a set by the same artist), on a tool that the user needs to perform a task (e.g., on a screwdriver, on cleaning equipment), on a location where the object should not be placed (e.g., on a little shelf accessible to a child), on a place where the object should be connected or plugged in (e.g., an outlet where the object should be plugged in, a USB drive where the object should be connected, etc.), and/or any other location or object pertinent to the task.

In various embodiments, a signal describes a game in which the object will play a part. For example, the object may be a pillow and the game may involve 3 pillows (including the object), with the objective of stacking the three pillows in a particular arrangement. The signal may include a diagram or a rendering (e.g., projected on a wall) of how the pillows should be arranged. The signal may include a spotlight or other illumination of places where the pillows should be placed (e.g., in a row on a floor). The signal may include any other instructions or specifications for playing a game.

In various embodiments, a game is a geography-based game where a user must indicate a particular location or set of locations on a map. In various embodiments, the user must indicate a location using an object. For example, the user must toss the object (e.g., a beanbag) at a rendering of a map, and try to hit the geographic location of interest (e.g., Mount Everest). Various geographic game challenges may include showing where the “ring of fire” is located, locating a desert, pointing out a water-based route between two cities, etc.

In various embodiments, a user may interact with a map by casting a shadow on the map. For example, a user is asked to indicate the location of the state of Arkansas by casting a shadow onto that state on a map (e.g., on a projected map). In various embodiments, a user may interact with a map by pointing a laser pointer at the map, or in any other fashion.

In various embodiments, a game is an anatomy based game where the user is asked to point out bones, organs, limbs, and/or other anatomical features.

In various embodiments, the signal is a tone, a chime, a flashing light, or some other signal that may get a user's attention. In various embodiments, a signal may convey that there is danger or a warning associated with an object (e.g., a fragile object is near the edge of a table, a toddler is near a wall socket, a window is open during a storm, a pot is boiling over, a pipe is leaking, a door is unlocked at night, etc.).

In various embodiments, a signal may distract a pet, toddler, etc. from a potentially dangerous, destructive, or messy situation or encounter. For example, if a toddler is approaching a potted plant, camera 4100 may anticipate that the toddler could knock the plant over, and may therefore shine a laser pointer at a nearby toy to draw the toddlers attention to the toy. In various embodiments, camera 4100 need not necessarily anticipate a particular event, but rather may simply output a signal based on stored information or instructions. E.g., instructions associated with the plant may specify that, whenever a toddler is within 3 feet, a tone should be played, and a spotlight shined on the toy nearest the plant.

In various embodiments, camera 4100 attempts to divert an individual (e.g., user, toddler, pet) from an object by creating a distraction at least a threshold distance (e.g., a “threshold offset value”) from the object. For example, camera 4100 attempts to create a distraction at least six feet away from the object. To do so, camera 4100 may determine, in an image, a first vector between the object and the individual (e.g., user, toddler, pet), which may represent a first distance and a first direction separating the object and the individual. Camera 4100 may also identify at least one location in the image that defines a second vector with the individual. The second vector may represent a second distance and a second direction separating the location and the individual. The location is where camera 4100 will create the distraction (e.g., by projecting a laser pointer or other light to the location). As such, the camera may identify the location such that the second vector is offset from the first vector by at least a threshold offset value, e.g., the distraction is at least the threshold offset value away from the object. The camera may then determine a direction (“bearing”) from an output device (e.g., a laser pointer, light, etc.) to the location. The camera may then cause the output device to project a signal (e.g., the distracting signal) in accordance with the bearing (e.g., in the direction of the bearing).

At step 9139, camera 4100 may verify performance of a task (e.g., a task assigned via a signal and/or otherwise associated with the signal). The camera may take a third image. The camera may identify the object in the third image. The camera may determine a location, position, configuration, and/or other state of the object. If the determined state matches target state 10510 associated with the task, then camera 4100 may determine that the task has been completed. Camera 4100 may accordingly update completion field 10522 in table 10500 with the completion date.

At step 9142, camera 4100 may provide a reward. In various embodiments, if the task has been completed by deadline 10514, then camera 4100 may cause reward 10518 to be provided to assignee 10508. For example, camera 4100 may cause a stored value account associated with the assignee to be credited. Camera 4100 may notify the assignor 10506 that the task has been completed.

In various embodiments, once a task has been completed, camera 4100 may notify assignee 10508 of another task, such as the highest priority (field 10520) task that has been assigned to the assignee, and which has not yet been completed.

Referring to FIG. 92, a diagram of an example ‘Video feed display cell’ table 9200 according to some embodiments is shown. Table 9200 may store an indication of where on a viewing participant's screen is shown a particular feed (e.g., a video feed from another participant). For example, supposing Bob is logged into a video conference and sees the video of another participant, Sue, then table 9200 may store an indication that Sue's video appeared in the upper left-hand corner of Bob's screen.

Table 9200 may be useful, for example, in associating tags with meeting participants. For example, if Bob drags a tag to the upper left-hand corner of his screen, then table 9200 may be used to determine that Sue's video was then being displayed in the upper left-hand corner of his screen, and so the tag was intended for Sue. In various embodiments, a tag may be associated with anything in a feed or video (e.g., with a presentation), not just with another participant.

Feed location ID field 9202 may include an identifier (e.g., unique identifier) for circumstances under which a particular feed was displayed at a particular location on a screen. Meeting ID field 9204 may store an indication of a meeting. The meeting may be the meeting during which a feed appears (e.g., and is viewed).

Time field 9206 may store an indication of a date and/or time during which a feed appears at a particular location. This may be significant, for example, because the location of a participant's feed may change over the course of a call (e.g., as participants come and go).

Displayed participant field 9208 may store an indication of a participant who appeared in a feed (e.g., a video feed). In various embodiments, if the feed represents a presentation, video, or other object, then an identifier for such object may be stored in field 9208.

Location field 9210 may store an indication of a location of a feed on a screen. A location may be specified using any suitable units, such as pixels, inches, percentage of the screen, etc. In various embodiments, a screen or display window is assumed to be divided into a grid having some known width and some known height (e.g., a 5×5 grid). A grid location may be represented using a coordinate system, such as a letter of the alphabet to represent one dimension, and a number to represent the other dimension. Accordingly, “a1” may represent one corner of a 5×5 grid, while “c3” may represent the center of the grid. A grid location may be represented in any suitable fashion.

Screen arrangement field 9212 may store an indication of an arrangement of feeds on a screen or display window. If feeds are arranged in a grid formation, then the arrangement may be specified in terms of the dimensions of the grid (e.g., 3×4 may indicate an arrangement of three rows by four columns, or up to 12 feeds). In various embodiments, other arrangements are possible, such as a circular arrangement of feeds, hexagonal tiling of feeds, irregular arrangement, etc. In such cases, an arrangement may be specified in any suitable fashion (e.g., by indicating a specific location of each feed).

Viewing participant field 9214 may store an indication of a participant viewing the feed. In various embodiments, the viewing participant may place a tag on a particular feed, and the tag may then become associated with the displayed participant featured in that feed.

Turning now to FIG. 93, a block diagram of a system 9300, including devices with software modules, is shown according to some embodiments. System 9300 includes a first user device 9302 (e.g., a personal computer; e.g., a laptop computer), a first peripheral device 9304 (e.g., mouse, keyboard, camera, presentation remote, headset), a second user device 9306, and a second peripheral device 9308 (e.g., mouse, keyboard, camera, presentation remote, headset). One or more of devices 9302, 9304, and 9306 may be connected to a network (e.g., network 9310). Also, the first peripheral device 9304 may be in communication with the first user device 9302 (e.g., via a cable, via Wi-Fi® connection), and the second peripheral device 9308 may be in communication with the second user device 9302. Also, the first peripheral device 9304 may be in communication with the second peripheral device 9308 as will be appreciated, the depicted devices represent some exemplary devices, and system 9300 may include more or fewer devices, in various embodiments. Also, various embodiments contemplate that any combination of devices may be in communication with one another.

In various embodiments, a message is sent from the first peripheral device 9304 to the second peripheral device 9308. For example, the message may be a congratulatory message being sent from the owner of peripheral device 9304 to the owner of peripheral device 9308. The message may have any other form or purpose, and various embodiments.

The message originating from peripheral device 9304 may be transmitted via user device 9302, network 9310, and user device 9306 before reaching peripheral device 9308. At peripheral device 9308, the message may be output to a user in some fashion (e.g., a text message may be displayed on a screen of peripheral device 9308; e.g., an audible message may be broadcast from a speaker of a headset). In various embodiments, the message originating from peripheral device 9304 may be transmitted via network 9310, and via user device 9306 before reaching peripheral device 9308. In various embodiments, the message originating from peripheral device 9304 may be transmitted directly to peripheral device 9308 (e.g., if peripheral device 9304 and peripheral device 9308 are in direct communication).

In various embodiments, as a message is conveyed, the form of the message may change at different points along its trajectory. The message may be represented in different ways, using different technologies, using different compression algorithms, using different coding mechanisms, using different levels of encryption, etc. For example, when originally created, the message may have the form of electrical impulses read from a mouse button (e.g., impulses representing the pressing of the button). However, within the peripheral device 9304, the electrical impulses may be interpreted as discrete bits, and these bits, in turn, interpreted as alphanumeric messages. Later, when the message is transmitted from the user device 9302 to the network, the messages may be modulated into an electromagnetic wave and transmitted wirelessly.

Various embodiments include one or more modules (e.g., software modules) within devices 9304, 9302, 9306, and 9308. In various embodiments, such modules may contribute to the operation of the respective devices. In various embodiments, such modules may also interpret, encode, decode, or otherwise transform a message. The message may then be passed along to another module.

Modules may include programs (e.g., program 455), logic, computer instructions, bit-code, or the like that may be stored in memory (e.g., in storage device 445) and executed by a device component (e.g., by processor 405). Separate modules may represent separate programs that can be run more or less independently of one another and/or with some well-defined interface (e.g., API) between the programs.

Operating system 9326 may be a module that is capable of interfacing with other modules and/or with hardware on the peripheral device 9304. Thus, in various embodiments, operating system 9326 may serve as a bridge through which a first module may communicate with a second module. Further, operating system 9326 may coordinate the operation of other modules (e.g., by allocating time slices to other modules on a processor, such as processor 405). Further, operating system 9326 may provide and/or coordinate access to common resources used by various modules. For example, operating system 9326 may coordinate access to memory (e.g., random access memory) shared by other modules. Exemplary operating systems may include Embedded Linux™, Windows® Mobile Operating System, RTLinux™, Windows® CE, FreeRTOS, etc.

Component driver 9312 may serve as an interface between the operating system and an individual hardware component. As depicted, peripheral device 9304 includes one component driver 9312, but various embodiments contemplate that there may be multiple component drivers (e.g., one component driver for each component of the device). A component driver may translate higher level instructions provided by the operating system 9326 into lower-level instructions that can be understood by hardware components (e.g., into instructions that specify hardware addresses, pin numbers on chips, voltage levels for each pin, etc.). A component driver may also translate low level signals provided by the component driver into higher level signals or instructions understandable to the operating system.

Frame buffer 9314 may store a bitmap that drives a display (e.g., screen 435). When another module (e.g., application 9318) wishes to output an image to a user, the module may generate a bitmap representative of the image. The bitmap may then be transmitted to the frame buffer (e.g., via the operating system 9326). The corresponding image may then appear on the display. If another module (e.g., application 9318) wishes to output a video to a user, the module may generate a sequence of bitmaps representative of sequential frames of the video. These may then be transmitted to the frame buffer for display one after the other. In various embodiments, the frame buffer may be capable of storing multiple images at once (e.g., multiple frames of a video), and may thereby ensure that video playback is smooth even if there are irregularities in transmitting the video bitmaps to the frame buffer.

User input/output controller 9316 may serve as an interface between the operation system 9326 and various input and output devices on the peripheral. As depicted, peripheral device 9304 includes one user input/output controller 9316, but various embodiments contemplate that there may be multiple user input/output controllers (e.g., one controller for each input device and output device on the peripheral). A user input/output controller provides an interface that allows other modules (e.g. application 9318) to retrieve data or messages from an input device (e.g. the left button was clicked). The user input/output controller also provides an interface that allows other modules (e.g. application 9318) to send data or commands to an output device (e.g. vibrate the peripheral). The data or messages sent via this controller may be modified so as to translate module level data and commands into ones compatible with the input and output devices.

Application 9318 may be any computer code run in the operating system 9326 that runs algorithms, processes data, communicates with various components, and/or sends messages. As depicted, peripheral device 9304 includes one application 9318, but various embodiments contemplate that there may be multiple applications (e.g. one application to send messages to peripheral device 9308 and another that plays a video on screen 435). Applications may be run independently but may share resources (e.g. two applications running may both use database 9322 to read and store data).

AI Module 9320 may process various data input sources (e.g. input device 420) to learn and predict user behavior. The AI Module may apply various heuristics and algorithms to parse the input data to construct and update models that can predict future input (e.g. predict when the next mouse click will come) or prepare a custom output (e.g., display a congratulatory message on screen 435 when a user completes a new level in a game). The module may use database 9322 to read saved models, create new models, and update existing ones that are stored on storage device 445.

Database 9322 may serve as an interface to structured data on storage device 445. The database module provides an abstraction to other modules to allow high level read and write requests for data without knowledge of how the data is formatted on disk. As depicted, peripheral device 9304 includes one database 9322, but various embodiments contemplate that there may be multiple databases (e.g., one storing click history and another an AI model). The database may store data in any format (e.g. relational database) and may be stored in multiple files and locations on storage device 445. A database may also access remote data, either on user device 9302 or in the cloud via network 9310. The database may restrict access to data to certain modules or users and not allow unauthorized access.

Computer data interface controller 9324 may serve as an interface between the peripheral 9304 and the attached user device 9302 or peripheral device 9308. The interface controller allows messages and data packets to be sent in both directions. When another module (e.g., application 9318) wishes to send a message to a remote device, the module would use the API provided by the computer data interface controller 9324 to do so. The interface controller collects messages and data packets received by the peripheral and transmits them via operating system 9326 to the module that made the request or that is necessary to process them.

User device 9302 may include one or more modules, e.g., operating system 9340, computer data interface controller 9328, peripheral device driver 9330, application 9333, AI module 9334, database 9336, and network interface controller 9338. In various embodiments, user device 9302 may contain more or fewer modules, and may contain more or fewer instances of a given module (e.g., the user device may contain multiple application modules).

Operating system 9340 may have an analogous function on user device 9302 as does operating system 9326 on peripheral device 9304. Exemplary operating systems include Apple® macOS, Microsoft® Windows™, and Linux™.

Computer data interface controller 9328 may serve as an interface between the user device 9302 and the peripheral device 9304. Computer data interface controller 9328 may have an analogous function to computer data interface controller 9324 in the peripheral device 9304.

Peripheral device driver 9330 may translate unique or proprietary signals from the peripheral device 9304 into standard commands or instructions understood by the operating system 9340. The peripheral device driver may also store a current state of the peripheral device (e.g., a mouse position). Peripheral states or instructions may be passed to operating system 9340 as needed, e.g., to direct progress in application 9332.

In various embodiments, peripheral device driver 9330 may translate messages from an application or other module into commands or signals intended for the peripheral device 9304. Such signals may direct the peripheral device to take some action, such as displaying text, displaying an image, activating an LED light, turning off an LED light, disabling a component of the peripheral device (e.g., disabling the left mouse button), enabling a component of the peripheral device, altering the function of the peripheral device, and/or any other action.

Application 9332 may include any program, application, or the like. Application 9332 may have an analogous function to application 9318 on the peripheral device 9304. In various embodiments, application 9332 may include a user-facing application, such as a spreadsheet program, a video game, a word processing application, a slide program, a music player, a web browser, or any other application.

AI module 9334 and database 9336 may have analogous functions to AI module 9320 and database 9322, respectively, on the peripheral device 9304.

Network interface controller 9338 may serve as an interface between the user device 9302 and the network 9310. In various embodiments, network interface controller 9338 may serve as an interface to one or more external devices. The interface controller 9338 may allow messages and data packets to be sent in both directions (e.g., both to and from user device 9302). When another module (e.g., application 9332) wishes to send a message over network 9310 and/or to a remote device, the module may use an API provided by the network data interface controller 9338 to do so. The interface controller 9338 may collect messages and data packets received by the user device and transmit them via operating system 9340 to the module that made the request or that is necessary to process them.

Although not shown explicitly, user device 9302, peripheral device 9304, central controller 110, and/or any other device may include such modules as: a text to speech translation module; a language translation module; a face recognition module; and/or any suitable module.

Although not shown explicitly, user device 9306 may have a similar set of modules as does user device 9302. Although not shown explicitly, peripheral device 9308 may have a similar set of modules as does peripheral device 9304.

With reference to FIG. 94, a screen 9400 from an app controlled by users according to some embodiments is shown. The depicted screen shows a Tag selections' 9405 functionality that can be employed by a user (e.g. meeting owner, meeting facilitator, meeting participant, employee, project manager, facilities manager, game player, teacher, tutor) to select tags that can later be applied (e.g., tags that will later be available for application). In various embodiments, the tags may be available for an upcoming meeting. In various embodiments, the tags may be available indefinitely, until selections are changed, for some fixed period of time, etc. In various embodiments, tag availability may constitute a rule for using the tag. In various embodiments, tag availability data may be stored in Tag meanings and representations' table 6300. In FIG. 94, the app is in a mode whereby users can select tags for later application.

In some embodiments, the user may select from a menu 9410 which displays one or more different modes of the software. In some embodiments, modes include ‘tag selections’, ‘tag rules’, ‘placing tags’, ‘choosing tags’, ‘responding to tags’, ‘upvoting tags’, etc.

At 9415 is shown a tag name or other identifier (e.g., “Meeting effectiveness”), and an associated checkbox. By checking the box, an app user is able to select the tag and make it available for later use. At 9420 is shown additional information about the tag, including tag text (e.g., “I came away inspired”), a tag category (e.g., “Productivity”), possible values (e.g., degrees or levels) that the tag may assume (e.g., “high”, “medium”, or “low”), and possible or suggested uses of the tag (e.g., to “Indicate productivity of meeting”). The additional information may provide the app user with more context while deciding upon selection of a tag. In various embodiments, an app user is able to modify or customize tags, such as selecting more or fewer values that the tag may assume (e.g., only selecting “high” and “low” levels).

At 9425, 9435, and 9445 are shown additional tag names and associated checkboxes. At 9430, 9440, and 9450 are shown additional information, respectively, about tags 9425, 9435, and 9445.

As depicted, tags 9415 and 9435 are checked off, meaning only these two tags are currently selected by the app user.

In various embodiments, the depicted screen 9400 and/or the associated app may allow a user to select additional tags. In various embodiments, more or fewer tags may be depicted. In various embodiments, different tags may be depicted.

In various embodiments, a user is able to sort available tags by one or more fields (e.g., by “Tag text”, by “Tag category”, etc.), to filter tags, to perform searches (e.g., text searches), etc. This may allow a user to find a particular tag more easily (e.g., when there are too many tags to fit on screen 9400).

In various embodiments, screen 9400 may allow a user to select a particular meeting in which tags will apply. For example, the screen may provide one or more buttons, each representative of a meeting (e.g., a scheduled upcoming meeting). The user may then activate one or more buttons in order to select the corresponding meeting(s). Previously selected tags may then apply to the selected meeting.

In various embodiments, when the user hits a ‘Submit tag availability’ button, or the like, the app may transmit (e.g., to the central controller) an indication of the checked tags. Once tag availability has been submitted, the tag availability rules may be stored in a table (e.g., table 6300) or other data structure.

Referring to FIG. 95, a diagram of an example ‘Peripheral component types’ table 9500 according to some embodiments is shown. Peripheral component types table 9500 may store information about types of components that may be used in peripherals. Such components may include hardware output devices like LED lights, display screen, speakers, etc. Such components may include sensors and input devices, like pressure sensors, conduction sensors, motion sensors, galvanic skin conductance sensors, etc.

Component type identifier field 9502 may store an identifier (e.g., a unique identifier) for a particular type of component. Component description field 9504 may store a description of the component. This may indicate (e.g., in human-readable format) what the component does, what the function of the component is, what type of output is provided by the component, what type of input can be received by the component, what is the sensitivity of the component, what is the range of the component's abilities, and/or any other aspect of the component. For example, a component description may identify the component as an LED light, and may indicate the color and maximum brightness of the LED light.

Manufacturer field 9506 may store an indication of the component's manufacturer. Model field 9508 may store an indication of the component model. This may be a part number, brand, or any other model description.

In various embodiments, information in table 9500 may be useful for tracking down component specifications and/or for instructions for communicating with a component.

Referring to FIG. 96, a diagram of an example ‘Peripheral component address table’ table 9600 according to some embodiments is shown. Peripheral component address table 9600 may store information about particular components that are used in particular peripheral devices. By providing a component address, table 9600 may allow a processor 405 and/or component driver 9312 to direct instructions to a component and/or to interpret the origination of signals coming from the component.

Component identifier field 9602 may store an identifier (e.g., a unique identifier) for a particular component (e.g., for a particular LED light on a particular mouse). Component type field 9604 may store an indication of the component type (e.g., by reference to a component type listed in table 9500). Reference name field 9606 may store a description of the component, which may include an indication of the component's location on or within a peripheral device. Exemplary reference names include “Left light #1”, “right LED #2”, “Front speaker”, and “Top left pressure sensor”. For example, if there are two LED lights on the left side of a mouse, and two LED lights on the right side of a mouse, then a reference name of “Left light #1” may uniquely identify a component's location from among the four LED lights on the mouse.

Address field 9608 may store an address of the component. This may represent a hardware address and/or an address on a signal bus where a component can be reached.

Referring to FIG. 97, a diagram of an example ‘Peripheral component signal’ table 9700 according to some embodiments is shown. Peripheral component signal table 9700 may store an indication of what signal is needed (e.g., at the bit level) to achieve a desired result with respect to a type of component. For example, what signal is needed to turn on an LED light. Table 9700 may also indicate how to interpret incoming signals. For example, table 9700 may indicate that a particular signal from a particular button component means that a user has pressed the button.

Signal identifier field 9702 may store an identifier (e.g., a unique identifier) for a particular signal. Component type field 9704 may store an indication of the component type for which the signal applies.

Incoming/Outgoing field 9706 may store an indication of whether a signal is outgoing (e.g., will serve as an instruction to the component), or is incoming (e.g., will serve as a message from the component). Description field 9708 may store a description of the signal. The description may indicate what the signal will accomplish and/or what is meant by the signal. Exemplary descriptions of outgoing signals include “turn the light on” (e.g., an instruction for an LED component), “Turn the light on dim”, and “tone at 440 Hz for 0.5 seconds” (e.g., an instruction for a speaker component).

Signal field 9710 may store an actual signal to be transmitted to a component (in the case of an outgoing signal), or a signal that will be received from a component (in the case of an incoming signal). As depicted, each signal is an 8-bit binary signal. However, various embodiments contemplate that a signal could take any suitable form. In the case of an outgoing signal, when a component receives the signal, the component should accomplish what is indicated in the description fields 9708. In the case of an incoming signal, when the signal is received (e.g., by component driver 9312), then the signal may be interpreted as having the meaning given in description field 9708.

In various embodiments, a complete instruction for a component includes a component address (field 9608) coupled with a signal (field 9710). This would allow a signal to reach the intended component, (e.g., as opposed to other available components). The component could then carry out a function as instructed by the signal.

Referring now to FIG. 98, a flow diagram of a method 9800 according to some embodiments is shown. Method 9800 details, according to some embodiments, the trajectory of a message entered by a first user into a first peripheral (“peripheral 1”) 9304 as it travels to a second peripheral (“peripheral 2”) 9308 where it is conveyed to a second user. En route, the message may travel through a first user device (“user device 1”) 9302, and a second user device (“user device 2”) 9306. For the purposes of the present example, the message transmitted is a text message with the text “Good going!”. However, various embodiments contemplate that any message may be used, including a message in the form of an image, video, vibration, series of movements, etc.

At step 9803, peripheral 1 receives a series of signals from components. These may be components of the peripheral device such as input device 420. Exemplary signals originate from button clicks (e.g., button clicks by a user), key presses, scrolls of a mouse wheel, movements of a mouse, etc.

Initially, signals may be received at component driver module 9312. As the signals are incoming signals (i.e., incoming from components), table 9700 may be used to interpret the meaning of such signals (e.g., “click of the right mouse button”). In various embodiments, signals are received at ‘user input output controller’ 9316. In various embodiments, signals received at component driver module 9312 are then passed to ‘user input output controller’ 9316, e.g., by way of operating system 9326.

At step 9806 peripheral 1 aggregates such signals into an intended message. Thus far, peripheral 1 only recognizes the received signals as a collection of individual component activations (e.g., as a collection of clicks). At step 9806, peripheral 1 may determine an actual message (e.g., a human-interpretable message; e.g., a text message) that is represented by the component activations.

The component driver 9312 or the user inputs/output controller 9316 may pass its interpretation of the incoming signals to the application 9318. The application may then aggregate, combine, or otherwise determine a message intended by the signals. Application may reference ‘Generic actions/messages’ table 2500 or ‘Mapping of user input to an action/message’ table 2600 in database 9322, in order to determine an intended message. In various embodiments, the signals may represent characters or other elementary components of a message, in which case such elementary components need only be combined (e.g., individual characters are combined into a complete text message). In various embodiments, a message may be determined using any other data table, and/or in any other fashion.

In various embodiments, there may not necessarily be a precise correspondence between incoming signals and a message. For example, mouse movements (e.g., gestures) may be representative of words or concept in American Sign Language. However, the precise boundaries between a gesture representing one concept and a gesture representing another concept may not be clear. In such cases, AI module 9320 may be used to classify a mouse movement as representative of one concept versus another concept. In various embodiments, AI module 9320 may be used in other situations to classify signals into one intended meaning or another.

At step 9809 peripheral 1 conveys the intended message to user device 1. Once application 9318 has determined the intended message, the application may pass the message to the computer data interface controller 9324. The message may then be encoded and transmitted to user device 1 (e.g., via USB, via firewire, via Wi-Fi®, etc.)

At step 9812 user device 1 receives the intended message at its computer data interface controller 9328. The received message may then be passed to peripheral device driver 9330, which may need to transform the message from a format understood by the peripheral device 9304 into a format understood by user device 9302 (e.g., by the operating system 9340 of user device 9302).

At step 9815 the peripheral device driver passes the message to a user device application (e.g., application 9332). In various embodiments, in accordance with the present example, application 9332 may be a messaging application that works in coordination with peripheral device 9304. The messaging application may maintain a running transcript of messages that have been passed back and forth to peripheral device 9304. In this way, for example, a user may scroll up through the application to see old messages in the conversation. However, in various environments, application 9332 on the user device may serve only as a relayer of messages.

At step 9818 the user device application passes the intended message through the Internet to the central controller 110. Application 9332 may initially pass the message to the network data interface controller 9338, where it may then be encoded for transmission over network 9310. In various embodiments, application 9332 may include an intended recipient and/or recipient address along with the message.

At step 9821 the central controller passes the message through the Internet to user device 2 (e.g., to user device 9306). In various embodiments, the central controller 110 may also log the message (e.g., store the message in a data table such as ‘Peripheral message log’ table 2400).

At step 9824 the message is received at an application on user device 2. The message may initially arrive at a network data interface controller of ‘user device 2’ 9306 before being decoded and passed to the application.

At step 9827 the application on user device 2 passes the message to a peripheral device driver.

At step 9830 the peripheral device driver passes the message to peripheral 2. In various embodiments, the peripheral device driver may pass the message by way of a computer data interface controller. Peripheral 2 may receive the message at its own computer data interface controller, where the message may be decoded and then passed to an application on peripheral 2.

At step 9833 peripheral 2 determines a high-level message. In various embodiments, a high-level message may be determined in an application. Example messages may include, display the text “Good going!”, create a “wave” of green LEDs, output an audio jingle with the notes “C-C-G-G-A-A-G”, etc.

At step 9836 peripheral 2 determines components required to convey the message. For example, if a message includes text or images, then a display screen, an LCD display, or any other suitable display may be used to convey the message. In various embodiments, if a message is text, then the message may be conveyed by depressing or lighting keys on a keyboard peripheral. If the message involves lights (e.g., sequences of light activation), then LEDs may be used to convey the message. If the message involves audio, then a speaker may be used to convey the message. In various embodiments, a message may be intended for more than one modality, in which case multiple components may be required.

Peripheral 2 may determine available components with reference to a database table, e.g., to table 9600. Table 9600 may also include component locations, so that peripheral 2 may determine the geometrically appropriate component required to convey a message (e.g., peripheral 2 may determine which is the frontmost LED as required by a message). In various embodiments, the application on peripheral 2 may determine the required components.

At step 9839 peripheral 2 determines component states required to convey the message. Component states may include whether a component is on or off, the intensity of an output from a component, the color of an output, the degree of depression of a key, and/or any other state. Exemplary component states include a light is green, a light is red, a light is dim, the “x” key is depressed by 1 mm, etc. In various embodiments, the application on peripheral 2 may determine the required component states.

At step 9842 peripheral 2 determines an activation sequence for the components. An activation sequence may specify which component will activate first, which will activate second, and so on. In various embodiments, an activation sequence may specify a duration of activation. In various embodiments, two or more components may be activated simultaneously and/or for overlapping periods. In one example, an LED goes on for five seconds, then a haptic sensor starts vibrating, etc. In various embodiments, the application on peripheral 2 may determine the activation sequence.

At step 9845 peripheral 2 determines instructions to create the states in the components. In various embodiments, determining instructions may entail determining component addresses and determining signals to transmit to the components. In various embodiments, component addresses may be obtained by reference to a database table, such as to table 9600 (e.g., field 9608). In various embodiments, signals may be obtained by reference to a database table, such as to table 9700 (e.g., field 9710). Since such signals will be part of instructions to a component, such signals may be listed as “outgoing” at field 9706. A complete instruction may be assembled from the address and from the signal to be sent to that address. For example, given an 8-bit address of “10010101”, and an 8-bit signal of “11101110”, a complete instruction may read “1001010111101110”. In various embodiments, instructions may be determined in an application, in a user input/output controller and/or in a component driver of peripheral 2.

At step 9848 peripheral 2 issues the instructions according to the activation sequence. The instructions determined at step 9845 may be sequentially transmitted (e.g., at appropriate times) to the various components of peripheral 2. The instructions may be transmitted by a user input/output controller and/or by a component driver of peripheral 2. In various embodiments, an application may govern the timing of when instructions are issued. With instructions thus issued to a peripheral's components, the message may finally be related to the second user. E.g., user 2 may see on his mouse's display screen the message, “Good going!”.

Process 9800 need not merely relate to inputs intentionally provided by a first user, but may also relate to actions, situations, circumstances, etc. that are captured by peripheral 1, or by other sensors or devices. In various embodiments, one or more sensors on peripheral 1 (or one or more other sensors) may capture information about the first user (e.g., the first user's breathing rate) and/or about the first users environment. Sensor data may be aggregated or otherwise summarized. Such data may then be relayed ultimately to the second user's peripheral device, peripheral device 2. Peripheral device 2 may then determine how the data should be displayed, what components are needed, what states are needed, etc. User 2 may thereby, for example, receive passive and/or continuous communication from user 1, without the necessity of user 1 explicitly messaging user 2.

In various embodiments, a message transmitted (e.g., from peripheral 1 to peripheral 2) may include intentional inputs (e.g., inputs explicitly intended by user 1) as well as data passively captured about user 1 and/or user 1's environment. For example, if user 1 sends a “hello” text-based message to user 2, and user 1 is eating, the fact that user one is eating may be captured passively (e.g., using cameras) and the “hello” message may be rendered for user 2 on the image of a dinner plate.

Referring now to FIG. 99, a depiction 9900 of aggregated or summarized data about tags is shown, according to various embodiments. The depiction may represent a dashboard, a report and/or any other view or depiction of tag data. The depiction 9900 shows an ordered list of tag recipients (e.g., tag recipients shown by “Rank” 9925), and broken down by category of recipient. One category of recipients is “Developers” 9905. Another category of recipients is “Software architects” 9930. In various embodiments, any other category of recipients may be used. In various embodiments, all recipients fall within a single category (e.g., a general category). Although two categories are depicted, more or fewer than two categories may be depicted, in various embodiments. Breaking down recipients by category may allow a comparison of recipients who have similar work environments, similar roles, similar duties, similar responsibilities, similar opportunities, similar experiences, and/or any other similarity in common. Thus, a difference in numbers of tags received between two recipients on a single list is more likely to be attributable to a difference in recipient performances rather than simply to different environments or opportunities.

In various embodiments, the tag recipients are ordered according to “Total tags” 9920 received. Also shown for each recipient are numbers of received “Positive tags” 9910 and “Highly rated tags” 9915. Note that the “Total tags” 9920 may include “Positive tags” 9910, “Highly rated tags” 9915, and any other tags (not shown) received by the recipient. However, in various embodiments, recipients may be ordered in terms of any category of tag (e.g., positive tags, highly rated tags, negative tags, tags received in innovation meetings, etc.), any combination of categories of tags, and/or any other statistic related to tags received. Recipients may be ordered based on receipt of a single type of tag (e.g., based on a “Good meeting facilitation” tag). In various embodiments, a dashboard may show (e.g., rank) users based on tags given by the users to others. In various embodiments, recipients may not be ordered at all and/or may be ordered in a fashion that is unrelated to tags received (e.g., in alphabetical order by name, in order of employment duration, etc.).

The depiction 9900 illustrates five recipients in each category, however, any number of recipients per category may be listed. In various embodiments, a dashboard or other depiction shows a given number of tag recipients at a time, but a viewer is able to scroll, to page down, and/or to otherwise see additional recipients.

In various embodiments, a dashboard or other depiction allows for an overview (e.g., a rapid overview) of employee performance. For example, an employee who has received a large number of positive tags may be given a reward. For example, an employee who has received relatively few tags in a particular category may be given coaching to improve his performance in that category. In various embodiments, a viewer of a dashboard may not have a good idea of what might constitute “good” or “poor” performance with respect to tags received (e.g., what absolute number of tags received constitutes “good” or “poor” performance). By ranking recipients, a viewer can at least ascertain relative performance amongst tag recipients. It may then be assumed, for example, that the top 10% of recipients are exhibiting good performance, and the bottom 10% are exhibiting poor performance. However, any suitable set of assumptions about performance may be used, and/or any suitable actions may be taken based on dashboard findings.

In various embodiments, the output of a depiction such as depiction 9900 may be customized, such as based on one or more input parameters. For example, a viewer may set a date range, a category of tags, a category of recipients, a number of recipients to return in each category, etc. Thus, a viewer may obtain an overview of tag receipt that is most useful to their purposes.

Referring now to FIG. 100, a depiction 10000 of aggregated or summarized data about tags is shown, according to various embodiments. The depiction may represent a dashboard, a report, a visualization, and/or any other view or depiction of tag data.

Depiction 10000 may represent a timeline 10020 of a meeting (or other event), with tags (e.g., tag 10010) shown at the points on the timeline when they were applied (or times when the tags were composed, or times that events happened to which the tags apply, etc.). For example, tag 10010 reads “Good review of agenda” and is applied towards the beginning of the meeting (e.g., when the agenda would have been reviewed). A viewer of the timeline 10020 (e.g., a meeting owner) may thus have an easier time associating a tag with a meeting event. Timeline 10020 may include references to a start time 10030 (e.g., 2:00 PM) and/or an end time (e.g., 3:00 PM).

In various embodiments, a timeline view may provide a good visualization of the cadence of tag application. For example, if lots of tags are applied within one 5-minutes interval, this may be readily apparent via a cluster of tagging activity at one point on the timeline. A meeting owner, or other interested party, may then take special note of events, discussions, decisions, etc. that happened during that interval.

In various embodiments, a user is able to zoom in on a portion of the timeline (e.g., if there is a dense cluster of tags that is otherwise difficult to parse). In various embodiments, a viewer may set the limits of the timeline (e.g., the start and end time).

In various embodiments, a timeline may be represented as a heat map of tags overtime. Time periods of high tag activity may receive warm colors (e.g., red, orange), while time periods of low tag activity may receive cool colors (e.g., blue, green).

Mouse and Keyboard Logins

In some embodiments, a mouse and/or keyboard may log into a user computer by transmitting a signal representing mouse movement or a keyboard character (e.g. a space bar character) in order to wake up a user computer. At that point, one or more usernames and passwords may be passed from a mouse and/or keyboard in order to log into the user device. Once logged in, the mouse and/or keyboard may then get access to the operating system of the user computer in order to read or write data. In some embodiments, a mouse logs into a user computer on a scheduled basis (e.g. every 20 minutes) in order to gather information about the status of another user. For example, software on the user computer may request status updates stored at central controller 110 every time the user computer is woken up. If there are any new updates since the last query, that information is then transmitted to storage device 445 of the user computer. In embodiments in which a mouse or keyboard autonomously logs into a user computer periodically in order to receive status updates relating to one or more other users, some functionality of the mouse may be disabled when a user is not present. For example, the xy positioning data generated by mouse movements may be disabled during these autonomous logins so that an unauthenticated person trying to use the mouse while it is logged into the user computer to get status updates will not be able to generate any xy data and will thus be unable to perform any actions with the user computer while it is activated by the autonomous logins.

Mouse and Keyboard Security

In some embodiments, a mouse may be used in a way that supplements the security of a user device. For example, passwords and cryptographic keys may be stored in storage device 445, or within an encryption chip (not shown). These keys may be transmitted to a user device in order to wake up and/or login to the user device. In such embodiments, passwords stored within the mouse may be more secure than those stored in the memory of a user device because the operating system of the mouse will not be familiar to potential attackers seeking to obtain (e.g. via hacking) those passwords or cryptographic keys. In embodiments in which a mouse autonomously logs into a user computer periodically in order to receive status updates relating to one or more other users, some functionality of the mouse may be disabled when a user is not present. For example, the xy positioning data generated by mouse movements may be disabled during these autonomous logins so that an unauthenticated person trying to use the mouse while it is logged into the user computer to get status updates will not be able to generate any xy data and will thus be unable to perform any actions with the user computer while it is activated by the autonomous logins.

Referring to FIG. 83, a block diagram of a system 8300 according to some embodiments is shown. In some embodiments, the system 8300 may comprise a plurality of office or house devices in communication via location controller 8305 or with a network 104 or enterprise network 109a. According to some embodiments, system 8300 may comprise a plurality of office or house devices, and/or a central controller 110, In various embodiments, any or all of the office or house devices may be in communication with the network 104 and/or with one another via the network 104. Office or house devices within system 8300 include devices that may be found within an office or house which help to ensure effective management and support of the locations, including managing meetings, detecting safety issues, providing feedback, applying tags, object identification, game playing by users, etc. Office and house devices include chairs 8329, tables 8335, cameras 8352, lights 8363, projectors 8367, displays 8360, smartboards 8333, microphones 8357, speakers 8355, refrigerators 8337, color lighting 8365, smell generator 8371, shade controllers 8369, weather sensors 8375, motion sensors 8350, air conditioning 8373, identification readers 8308, and room access controls 8311.

With reference to FIG. 84, a screen 8400 from an app controlled by users according to some embodiments is shown. The depicted screen shows a Tag rules' 8405 functionality that can be employed by a user (e.g. meeting owner, meeting facilitator, meeting participant, employee, project manager, facilities manager, game player, teacher, tutor) to set rules for applying tags. In various embodiments, the rules may apply to an upcoming meeting. In various embodiments, the rules may apply indefinitely, until changed, for some fixed period of time, etc. In various embodiments, rules data may be stored in Tag meanings and representations' table 6300. In FIG. 84, the app is in a mode whereby users can set rules for applying tags.

In some embodiments, the user may select from a menu 8410 which displays one or more different modes of the software. In some embodiments, modes include ‘tag rules’, ‘placing tags’, ‘choosing tags’, ‘responding to tags’, ‘upvoting tags’, etc.

In some embodiments, the app may show the identity of the user setting rules for placing a tag, such as ‘Meeting owner’ 8415 who is in this case ‘Lee Nguyen’. In this example, the user may enter this identity information via a virtual keyboard, via voice recording, retrieved from a processor of the user device, etc. In various embodiments, the user setting rules need not be a meeting owner, but may be a high ranking individual, and/or anyone else.

At 8415 the app user may set a maximum number of tags that can be used by each participant 8420 (e.g., each participant in a given meeting). In screen 8400, the maximum number of tags is set at field 8425 to five.

At 8430 the app user may set the type of recipient 8435 to which a tag may be applied. Depicted types of recipients include person, object, room, environment, group, presentation. In screen 8400, the user has checked off four recipient types, indicating that the tags may only be applied to these types of recipients. In various embodiments, other types or categories of recipients may be listed and selectable. In various embodiments, more or fewer types or categories of recipients may be listed and selectable.

At 8440 the app user may set the times or circumstances 8445 in which a tag may be applied. Depicted times/circumstances include “During breaks”, “After meeting”, in the “First 5 minutes” of the meeting, and in the “Last 5 minutes” of the meeting. In screen 8400, the user has checked off two times/circumstances, indicating that the tags may only be applied during these times/circumstances. In various embodiments, other times/circumstances may be listed and selectable. In various embodiments, more or fewer times/circumstances may be listed and selectable.

At 8450 the app user may set people or categories of people 8455 who are eligible to submit tags. Depicted people/categories include “Architects”, “Developers”, people with “3 years seniority”, “Managers”, people “In the room” (e.g., in the meeting room at the time of the meeting), people “In building 6” (e.g., people who work in building 6). In screen 8400, the user has checked off three people/categories, indicating that the tags may only be applied by these people/categories. In various embodiments, other people/categories may be listed and selectable. In various embodiments, more or fewer people/categories may be listed and selectable.

At 8465 the app user may set people or categories of people 8465 who are eligible to review tags. Depicted people/categories include “Meeting owner only”, and “Directors and above”. In screen 8400, the user has checked off “Directors and above”, indicating that the tags may only be reviewed by those with the title of Director or higher. In various embodiments, other people/categories may be listed and selectable. In various embodiments, more or fewer people/categories may be listed and selectable.

In various embodiments, the depicted screen 8400 and/or the associated app may allow a user to set additional rules, restrictions, constraints, etc. In various embodiments, more or fewer settings may be depicted. In various embodiments, different settings may be depicted.

A tag rule may restrict viewing of a tag for some period of time. For example, it may be desirable that a participant/team not observe tags until a certain point in time (e.g., until a meeting is finished, until the project is finished, until they have provided their own tags, etc.).

A tag rule may require that a minimum number of people are present in a meeting before the tag can be used.

In various embodiments, there is tag scarcity (eg., there is only 1 ‘MVP’ tag). In various embodiments, only a limited number of tags can be visible or present. Thus, for example, adding tag forces or prompts removal of another tag.

In various embodiments, when the user hits a ‘Submit rules’ button, or the like, the app may transmit (e.g., to the central controller) the rules. Once rules have been submitted, the rules may be stored in a table (e.g., table 6300) or other data structure.

With reference to FIG. 85, a screen 8500 from an app controlled by users according to some embodiments is shown. The depicted screen shows functionality that can be employed by a user (e.g. meeting owner, meeting facilitator, meeting participant, employee, project manager, facilities manager, game player, teacher, tutor) to create a meeting. In various embodiments, a user is able to specify one or more parameters of a meeting, and other parameters of the meeting (e.g., a meeting configuration) are then suggested and/or generated automatically (e.g., by the app, by the central controller 110). The suggestions may be made with the purposes of efficiently utilizing employee time (e.g., inviting only employees that are necessary, inviting sufficient employees as to allow the meeting to accomplish its purpose, scheduling only as much time for the meeting as necessary), efficiently utilizing meeting space, etc.

In some embodiments, the user may select from a menu (not shown) which displays one or more different modes of the software. In some embodiments, modes include ‘meeting creation’, ‘tag selections’, ‘tag rules’, ‘placing tags’, ‘choosing tags’, ‘responding to tags’, ‘upvoting tags’, etc.

At 8505 is shown a meeting parameter, namely “meeting type”, and at 8510 is shown an associated value or values of the meeting parameter, namely “commitment”. Thus, as depicted, the meeting type is a commitment meaning.

Other depicted meeting parameters include “purpose” 8515 (with an associated value of “make strategic marketing decisions” 8520); “number of attendees” 8525 (with an associated value of “4-8” 8530); “functions needed” 8535 (with associated values of “marketing”, “finance”, and “sales” 8540); “capabilities needed” 8545 (with associated values of “product pricing—2”, “international market experience—1”, and “global marketing—1” 8550); “suggested room layouts” 8555 (with three associated values 8560); “asset goal” 8562 (with an associated value of “identify first international market to enter” 8565); and “suggested attendees” 8570 (with associated values of “Rosa Delgado”, “Kanara Amar Hari”, “Ivan Borisova” and “Tanaka Kazu” 8575).

In various embodiments, a user may specify values for some number of parameters (e.g., for some subset of the depicted parameters), after which the app may generate or suggest values for one or more other parameters (e.g., for all other depicted parameters). For example, a user may specify values for the meeting type 8505, and meeting purpose 8515, after which the app may generate or suggest values for the other parameters.

In various embodiments, a user may specify some values for a given parameter, but not all values for the parameter. The app may thereupon generate or suggest remaining values for the given parameter. For example, a user may specify some meeting attendees, and the app may suggest other meeting attendees (e.g., until the meeting has sufficient attendees to fulfill the functions needed 8535, until the meeting has sufficient attendees to fulfill the capabilities needed 8545, until the meeting has obtained a suggested number of attendees 8525).

In various embodiments, a user may constrain values of a meeting parameter, and the app may suggest values for the parameter subject to those constraints. For example, a user may specify that a given employee should not attend a meeting, whereupon the app may suggest a set of attendees that does not include the given employee.

In various embodiments, capabilities may be required in various quantities. For example, the meeting may require two of a “Product pricing” capability. A quantity may refer to a number of people required with a given capability. For example, in the depiction 8500, two employees are required, each possessing a product pricing capability. A quantity of each capability required is indicated numerically at 8550 after the text description of the capability.

In various embodiments, capabilities may be represented with badges, icons, images, or the like. As depicted, each capability listed at 8550 (for meeting parameter 8545) has an associated badge 8580. In various embodiments a number of badges shown may indicate a quantity of a capability listed. For example, at 8550, two “Product pricing” capabilities are needed, and this is graphically illustrated using two like badges at 8580 shown to the right of the capability description. On the other hand, only one “International marketing experience” capability is needed. In various embodiments, a capability description is not shown at all, and only the badges are shown.

In various embodiments, capabilities possessed by an employee may be listed or illustrated in association with the employee's name (or other employee identifier). At 8575, suggested employees' names are listed, each followed by badges 8585 indicative of the employees' capabilities. An app user may thereby, for example, obtain a quick visual overview of capabilities of suggested attendees by visually scanning the badges representing the employee capabilities. Further, the app user may compare the badges associated with the suggested employees to the badges listed under capabilities required (at 8580). The app user may thereby, for example, receive a quick visual indication of capabilities possessed by suggested attendees versus capabilities needed. If the badges at 8580 and 8585 match up (e.g., capabilities possessed equal capabilities required; e.g., capabilities possessed exceed capabilities required), then the app user may know that a suggested list of attendees will satisfy the meeting requirements.

In various embodiments, badges indicating needed capabilities (e.g., badges at 8580) may assume different appearances based on whether such capabilities are currently fulfilled by attendees and/or suggested attendees. For example, a given badge may appear in a light or faded color if an associated capability is not fulfilled by a list of suggested attendees. On the other hand, the badge may appear darker or more saturated if the associated capability is fulfilled by a list of suggested attendees. In various embodiments, a badge's appearance may vary in other ways (e.g., the badge has a border in one case, but no border in another case, etc.). Where a badge's appearance may vary, an app user may obtain a quick visual indication of what meeting capabilities are still lacking amongst a list of attendees, e.g., by noting all badges that are displayed in a faded color.

In various embodiments, capabilities for suggested attendees may be shown only if such capabilities are among the capabilities needed (listed at 8550). In various embodiments, capabilities for suggested attendees may be shown even if they are not among the capabilities needed. This may allow an app user to invite an attendee with a “nice to have” capability, even if it is not absolutely needed.

In various embodiments, a capability (e.g., in an area, on a topic, with a subject, etc.) may be quantified in various ways. A capability in an area or subject may be quantified as a number of years experience (e.g., 3 years experience); a certification level (e.g., “2nd degree blackbelt”, “master”, etc.); a degree (e.g., bachelor's, masters, etc.); years of schooling on the subject; a number of years teaching the subject; a number of years in a position related to the subject (e.g., years as a professor of the subject); a number of products completed related to the subject (e.g., number of products built using jQuery); a number of others trained on the subject; a number of papers published on the subject; a number of citations received on this subject; an average rating of skill level received from others (e.g., a 4.3 star average rating of skill level); a skill level; a number of honors or rewards received in the subject; a number of lectures given on the subject; an amount of grant money received related to the subject; a number of achievements related to the subject (e.g., number of court battles won); an amount of prize money received related to the subject; and/or in any other suitable fashion.

In various embodiments, a capability is considered binary (e.g., an employee has the capability if he has more than three years of experience in a subject area, otherwise the employee does not have the capability). In various embodiments, a capability may be expressed in terms of more than two values, such as in terms of a positive integer value, a continuous value, etc. In various embodiments, a needed capability represented by some quantity (e.g., 5 years experience with microservices) may be satisfied by two or more employees who, in the aggregate, possess the needed capability, even if neither employee does on his own. In various embodiments, a single employee must, on his own, satisfy a needed capability.

Screen 8500 depicts badges in association with capabilities. However, badges may be depicted for other attributes, such as for an employee's function. Using a system of badges, for example, an app user may similarly ascertain whether a meeting has needed functions (or other needed attributes) sufficiently represented amongst a list of attendees.

Screen 8500 depicts an asset goal parameter 8562, with an example value of “Identify first international market to enter” depicted at 8565. An asset goal may be a goal for an asset that will be generated by a meeting. In this case, the goal would be to identify a first international market (e.g., the Japanese market, the Korean market) to enter.

In various embodiments, employee functions, capabilities, and/or other attributes may be obtained from a table such as employees table 5000. In various embodiments, employee functions, capabilities, and/or other attributes may be obtained or inferred from tagging table 7300, e.g., where employees may be tagged with capabilities possessed. In various embodiments, employee functions, capabilities, and/or other attributes may be obtained in any other fashion.

In various embodiments, suggested values for meeting parameters may be obtained from, or with reference to, ‘Recommended capabilities by meeting type’ table 8100. Given a user-provided meeting type at 8510 (and/or given one or more other user-provided meeting parameters), the app may reference table 8100 to obtain a recommended quantity of various capabilities (e.g., as listed at fields 8108, 8110, and 8112); a recommended total number of attendees (e.g., as listed at fields 8114); a recommended room arrangement (e.g., as listed at fields 8116); and/or any other recommended or suggested value of a meeting parameter.

In various embodiments, suggested values for meeting parameters may be obtained from, or with reference to meeting configurations table 8700. Using table 8700, for example, the app may suggest employees based on their opportunity costs for attending the meeting. Using table 8700 the app may determine a “Presence score” associated with each attendee based on capabilities possessed by the attendee, and based on whether such capabilities match the capabilities needed listed at 8550. For example, if an employee possesses needed capability, the employee may receive a presence score of twenty, otherwise the employee may receive a presence score of ten. In various embodiments, an employee's presence score may scale with a degree, strength or level of the employee's capability. For example, an employee's presence score may be set to twenty plus one for each year of experience the employee has with a particular capability.

In various embodiments, the depicted screen 8500 and/or the associated app may allow a user to specify additional meeting parameters. In various embodiments, more, fewer, or different suggestions may be made for parameter values (e.g., by the central controller). In various embodiments, values for more, fewer, and/or different parameters may be suggested.

In various embodiments, when the user hits a ‘Submit configuration’ button, or the like, the app may transmit (e.g., to central controller 110) an indication of the current meeting configuration (e.g., of the current values listed for the meeting parameter on screen 8500). Once the meeting configuration has been submitted, parameter values may be stored in one or more tables (e.g., meetings table 5100, meeting attendees table 5200, etc.) or other data structure. In various embodiments, further arrangements may be taken, such as sending invitations to suggested attendees, finding a room (e.g., finding a room matching a layout listed at 8560), reserving a room, etc.

Exercise Reminders

As modern workers increasingly sit all day doing information work, they run the risk of developing health issues if they do not get up and take occasional breaks to stretch and move around. In various embodiments, when a meeting participant has been in a long meeting, the chair could send a signal to the location controller 8305 indicating how long it had been since that participant had stood up. If that amount of time is greater than 60 minutes, for example, the central controller could signal to the chair to output a series of three buzzes as a reminder for the participant to stand up. The central controller could also send a signal to the meeting owner that a ten-minute break is needed for the whole room, or even initiate the break automatically. The central controller could send signals to smart variable-height desks to automatically adjust from sitting to standing position as an undeniable prompt that participants should stand up. In various embodiments, if the central controller identifies a meeting participant who is in back to back meetings for four hours straight, it could send a signal to the participant device with verbal or text reminders to stretch, walk, take some deep breaths, hydrate, etc. In various embodiments, if a meeting participant is scheduled for four hours of meetings in a row, the central controller could send the participant alternate routes to walk to those meetings which would take more steps than a direct route. In various embodiments, for virtual meeting participants, the central controller can also send reminders to participants that they should take a break and walk outside or spend a few minutes doing stretching/exercising. These suggestions could be linked to heart rate readings from a mouse, slouching or head movements seen by a camera, a fidgeting signal from a chair, etc.

Mental Fitness

As employees perform more and more information-driven work, keeping their minds functioning well is more critical than ever. An employee who is tired, distracted, unable to focus, or perhaps even burned out will have a hard time performing complex analytical tasks. Research has shown, for example, that software developers need large blocks of uninterrupted time in order to write good software. If their minds are not sharp, significant business value can be lost. In various embodiments, the central controller reviews the meeting schedule of all knowledge workers in order to assess the impact that the schedule may have on the mental fitness of the employee. For example, when the central controller sees that an employee has back to back meetings for a six hour block on two consecutive days, the employee may receive direction in ways to reduce some of the stress associated with those meetings. Stress alleviation suggestions could include: Meditation; Exercise (e.g., light yoga, stretching); Healthy snacks; Naps; Fresh air; Focus on a hobby or something of personal interest; Calming videos or photos; Positive/encouraging messages from company leadership; or any other suggestions. The central controller reviews the meetings of the knowledge worker and compares them to other knowledge workers in similar roles to see if any are getting oversubscribed. For example, if certain key subject matter experts are being asked to attend significantly more innovation meetings than other subject matter experts, the central controller can alert the management team of possible overuse. In addition, the overused subject matter expert could be alerted by the central controller to consider delegating or rebalancing work in order to maintain a healthy lifestyle. In the converse, as an example, if a subject matter expert or key role (e.g. decision maker) individual is currently undersubscribed compared to others, the central controller can alert management or other meeting leads to put this person at the top of the list if they have a need for this expertise.

In various embodiments, the central controller 110 may review information collected about a meeting participant to look for signs that an employee may be heading toward burning out. Such signals could include the employee is: Using a loud voice in a meeting; Having a rapid heartbeat; Slouching or not being engaged with other participants; Interrupting other participants; Declining meetings at a more significant rate than most in similar roles; Significantly more out of office or absentees in a short period of time; Changes in level of meeting engagement; No breaks for lunch; or any other signals. In various embodiments, the central controller 110 can also monitor biometric information (such as heart rate, posture, voice, blood pressure) and compare the results to the entire organization to determine if the pattern is higher than expected. For example, if the individual on the verge of burnout shows that they are interrupting individuals using a loud voice more frequently than most, the central controller can alert the individual during the meeting to consider alternative approaches for engagement such as, taking a break, breathing deeply, meditating or any predetermined approaches deemed appropriate by the organization. If the data continue to support potential burnout, the central controller can inform the individuals management for intervention and coaching. In various embodiments, the central controller 110 can interrogate the calendars of individuals to determine if they are getting uninterrupted time for lunch during a specific time. For example, the central controller can look at an individual's calendar over a month time period. If the time slot between 11:30 AM-1:30 PM is consistently booked with meetings more than 50% of the time, the central controller can alert the individual to reconsider taking lunch breaks for healthy nutrition and also inform meeting leads that the use of lunch meetings could be excessive.

In various embodiments, the central controller 110 could also have the ability to look at the home calendar of employees so that it has an understanding of how busy they might be outside of work. For example, the central controller can look to see if exercise routines are typically scheduled on an individual's calendar. If so, and suddenly they begin to not appear, the central controller can provide reminders to the individual to reconsider adding exercise routines to their calendar to maintain a healthy lifestyle. Another example could be for the central controller to view events on an individual's calendar outside of normal work hours (pre-8:00 AM and post-5:00 PM) to determine if enough mental free time is being allocated for mental health. If calendars are continually booked with dinner events, children's events, continuing education or volunteer work without time for rest, this could be early signs of burnout. The central controller could remind the individual to schedule free time to focus on mental rest, prioritize activities and provide access to suggested readings or activities to promote mental wellbeing. In various embodiments, the central controller 110 can maintain analytics on the number of declined meetings that are typical in an organization and compare to an individual. If the number of declined meetings for the individual is higher than average, helpful information can be provided. For example, if the organization typically has 5% of their meetings declined and meeting participant “A” has an average of 25% of meetings declined, the central controller can prompt to individual to consider other alternatives to declining a meeting such as delegating, discussing with their manager any situation prompting them to decline meetings, or make use of mental and physical wellness activities for improvement. Many enterprise organizations have access to an array of mental and physical health content and individual health providers via the insurance companies that provide health benefits. The central controller could identify these individuals and direct them to their health insurance provider. This immediate intervention and access to a professional in the field of mental health via their insurance providers could help mitigate the health issues.

Virtual Audience Feedback

When presenting at a meeting which has a high percentage of virtual participants, it can sometimes be disconcerting for a presenter to speak in front of a largely empty room. In various embodiments, one or more video screens are positioned in front of the speaker to provide images of participants, and to guide the presenter to make head movements that will look natural to virtual participants. In various embodiments, color borders (or other indicia) may be used for VPs, or other key people. In various embodiments, three people (e.g., stand-in people) are set up before the call (can be dynamic based on what slide the presenter is on). The presenter can then practice presenting to these three people. In various embodiments, it is oftentimes important to know the roles or organizational level of individuals in a meeting to make sure that the presenter is responding appropriately. For example, if a Decision meeting is taking place, it is important to quickly be able to identify these individuals so you can speak more directly to them. The central controller could gather this information from the meeting presenter in advance. Once they join the meeting, their images could have a border in a different thickness, pattern or color to more easily identify them. Since they are the key members in this particular meeting, their images could display larger than others and be represented on the various display devices. If any of these individuals speak, the central controller could adjust the border to brighten in color, flash a particular pattern and gray out the images of others. This allows the presenter to quickly focus on the key participant speaking and make better eye contact.

In various embodiments, an audience (emoji style) is displayed to the presenter. In meeting settings it is important to connect with the audience and even more so in a virtual meeting. Each meeting attendee can provide an image of themselves or use an already approved picture via a corporate directory to the central controller. When the meeting begins, the individual images are presented on the various display devices. As emotions and biometric data is collected by the central controller, the emoji can change to reflect the state of the individual. If the audience is happy, the emojis change to provide the presenter immediate feedback. Conversely, if the central controller detects the audience is confused or frustrated, the emoji changes immediately to reflect the new state. This feedback allows the presenter to collect real time audience information and adjust their presentation accordingly. Furthermore, if a presenter needs to practice a presentation remotely in advance of the live presentation, the central controller can present a random set of emojis and images for the presenter to practice. In various embodiments, a real-time emoji dashboard is displayed to the presenter for selected reactions. The central controller should allow the meeting participants to provide emoji style feedback to the presenter in real time. For example, if a presenter is training an audience on a new product and some attendees are confused, others are happy and some are bored, the audience members can provide the appropriate emoji to the presenter. The central controller collects all emojis and displays them in dashboard format to the presenter. In this case, 10 confused emojis, 50 happy emojis and 2 bored emojis appear on the dashboard bar chart for interpretation by the presenter. They may elect to pause and review the slide showing 10 confused faces. In addition, the central controller could record the emotions on each slide, along with the participant, and inform the presenter. After the meeting, the presenter can address the reaction on each slide with those that had the issue/concern.

In various embodiments, feedback can be presented to the speaker/coordinator/organizer in a graphical form that privately (or publicly) parses out responses, statuses, etc., by attendee. The speaker can easily view, for example, who has provided an answer to a question (e.g., a poll) and who still needs to answer. In various embodiments, as presenters are speaking, a feeling thermometer dynamic dashboard is presented for review and real-time adjustments to their presentation. For example, the central controller could provide each participant with an opportunity to rate the presentation using a feeling thermometer based on any dimension the meeting owner selects. Is the presentation material clear? The participant can adjust the thermometer to indicate very clear to very unclear. The collective ratings of all thermometer scores is dynamically presented to the presenter for any needed adjustments. In addition, the pace at which a presentation is being delivered can also be measured and presented on the dashboard as well.

Virtual Producer

As meetings become more virtual, it may be increasingly important for meeting owners and meeting participants to maintain a natural look during meetings. The way that they are looking and the angle of the head will convey a lot of non-verbal information. In this embodiment, the central controller uses software to make suggestions to participants and to pick camera angles much like a producer would in a control room of a television news show which can do things like cut to the best camera angle or include a small video frame to support the point that the presenter is making. In various embodiments, there are three cameras (or some other number have cameras) and the system picks the best angle. For example, the central controller 110 identifies who is speaking and where they are in relation to the display you are using. When you look in the direction of the person speaking (virtually or not) the appropriate camera focuses the angle in the direction you are looking. In various embodiments, the system tells you how to turn when you are on video. For example: As a presenter to a virtual audience, you may need to turn your head to appear to speak to a larger audience and not give the appearance that you are staring at them. The central controller can track how long you are focused in one direction and prompt you to move your head and look in a different direction. This provides a more realistic view of the presentation to the audience and can put them at ease as well.

In various embodiments, the presenter talks with his/her hands, the camera should zoom out. The central controller 110 could determine if you are using your hands to speak more or illustrate a point. Your hands and arms may appear to come in to focus more often. In this case, the central controller could communicate with the camera to zoom out and pick up movements in a larger frame. Pan-Tilt-Zoom (PTZ) camera can be auto controlled by the system to meet production goals (e.g., zoom in to emphasize speaker as speaker volume or role increases). In various embodiments, a meeting lead can determine if other speakers are brought in to view or remain focused on them only. Example: if I am a lecture or in a town hall, I may only want the camera in me and not go to others. The meeting lead can interact with the central controller in advance of the meeting to determine if participants will be brought in to focus during the meeting. If the preference is to not allow the participant to be in focus, when they speak, the central controller will not display the individual, but camera focus will remain on the presenter/meeting lead. In various embodiments, the system may bring participants in or out of focus. When a speaker comes in to focus, the other participants gray out or turn to a different hue. This forces people to focus on the person speaking. For example, in interview situations, question/answer sessions or learning meetings, it is important that the vast majority of participants stay focused on a primary individual. When an individual begins to speak for a few seconds, they quickly come into focus while the others are displayed in a monochromatic display. In this case, the eyes of the participants are drawn to the speaker that remains in full color. In various embodiments, the system determines if focus is on the content displayed or the presenter. During a presentation, while the attendees may be listening and watching the presenter, they are interested in the presentation content as well. In advance of the presentation, the presenter can set a preference via the central controller to make the presentation deck the main focus and a small image of the presenter in the corner of the screen. The central controller could know when the presentation is complete and refocus on the presenter. If the presenter goes back to the slide presentation, the central controller can revert back to the original setting.

Eye Tracking

Tracking where participants are looking can be very helpful in evaluating presentations and estimating the level of meeting participant engagement. Various embodiments track where on a slide that participants are looking. This could provide an indication of the level of engagement of the audience. Various embodiments track where in the room participants are looking. Automatically identify potential distractions; prompt the meeting owner or a particular meeting participant to turn off TV, close window blind, etc. Various embodiments track which other participants a participant is looking at and when. For example, the central controller could track eye movements of people to determine if an issue exists. If multiple participants look over at someone working on a laptop/phone this may mean they are frustrated with this person because they are not engaged. The central controller could track eye movements of people coming and going from the room which may be an indication that a break is needed. If a meeting participant is routinely looking at another participant during a presentation, this could indicate they are not in agreement with the content and looking for affirmation from another participant. Various embodiments include tracking eye rolling or other visual cues of agreement or disagreement. For example, if eyes roll back or are simply staring, this could indicate they are in disagreement with the topic or person and inform the meeting owner.

Gesture Tracking

With cameras, GPS, and accelerometers, there are many physical gestures that can be tracked and sent to the central controller. Example gestures include: arms folded; holding up some number of fingers (e.g., as a show of support or objection to some proposition; e.g., a first of five); hands clasped together or open; clapping; first on chin; getting out of one's chair; pushing back from a table; stretching or fidgeting. Some gestures of possible interest may include head movement. In various embodiments, head movement can be an excellent way to provide data in a natural way that does not disrupt the flow of the meeting. Head movements could be picked up by a video camera, or determined from accelerometer data from a headset, for example. In various embodiments, virtual participants could indicate that they approve of a decision by nodding their head, with their headset or video camera sending the information to the location controller 8305 and then summarizing it for the meeting owner. Participants could also indicate a spectrum of agreement, such as by leaning their head way left to indicate strong disagreement, head in the center for neutrality, or head far to the right to indicate strong agreement. In various embodiments, virtual participants could enable muting of their connection by making a movement like quickly looking to the right. For example, when a dog starts to bark, it is natural for participants who are not muted to look in the direction of the dog or child making noise, which would automatically mute that person. They could be muted for a fixed period of time and then automatically be taken off mute, or the participant could be required to go back off mute when they are ready. Virtual participants could also make a gesture that would bring up a background to hide something. For example, a participant who had a small child run up behind them while on a video call could tip their head backward to bring up the background which would prevent others on the call from seeing the child.

Verbal Queues not Intended for Meeting Participants

There are times when meeting participants make soft comments that are not meant to be heard by the meeting participants or that are not understood by the participants. These verbal queues oftentimes indicate some other emotion from the meeting participant. The central controller could detect these verbal queues and use them to generate the meeting participants immediate reaction or emotion. For example, if a participant is listening to a presentation and does not agree with the content, they may make comments like, ‘I don't agree, no way, that's absurd or some other short phrase, the central controller could pick this phrase up and use it to populate the meeting owner dashboard or other device recording/displaying their emotion.

Help that can be Provided by the Central Controller

In various embodiments, the central controller 110 may manage the type of connection made from a user device. The central controller may manage the connection with a view to achieving a stable connection while also giving the user the best experience possible. In various embodiments, if the central controller determines that a user device can only maintain a low bandwidth connection, the central controller may admit the user to a meeting as a virtual participant using only a low-bandwidth feed (such as an audio-only feed or a low-resolution video feed). On the other hand, if the user device can maintain a stable connection at high bandwidth, then the user may be admitted as a virtual participant using a high-bandwidth feed, such as via high-resolution video. In various embodiments, if a connection to a meeting participant is lost, the central controller may inform the meeting owner, the meeting presenter, and/or some other party. The central controller may attempt to re-establish a connection, perhaps a lower bandwidth connection. Once a connection is re-established, the central controller may again inform the meeting owner.

Central Controller Actions

In various embodiments, the central controller 110 may monitor a meeting or a room for problems, and may take corrective action. In various embodiments, the central controller 110 may take away the room if you have three people in an eight person room. It can then suggest other available rooms with the needed amenities and a simple 1 button acceptance or suggested change with notification to all participants. If there are technical issues in a room, the central controller 110 may take such actions as: Shut down room and turn off lights; Have video screens with shut down signal; Reschedule all meetings for other rooms; Notify facilities/IT personnel. If the room is not clean or has not been serviced, the central controller may arrange for food/beverage/trash removal. If a meeting has not been registered, the meeting may use a conference room on a “standby” status. That is, the room can be taken away (e.g., If the room is required by a meeting that was properly registered). If a person is absent from a meeting, or it is desirable to bring a particular person into a meeting, then the central controller may assist in locating the person. The central controller may take such actions as: Can ping them; Can break into a call or meeting room to contact the person; Can cause their chair to buzz or vibrate; Can buzz their headset; Can text them. In various embodiments, the central controller may perform a system self/pre-check prior to the meeting to make sure all devices are functioning (e.g. audio, video, Wi-Fi®, display, HVAC) and alert the responsible technical party and meeting organizer/owner. Meeting options to be provided if not resolved within 1 hour prior to the meeting.

Tagging the Presentation

Presentations contain valuable information but must be linked in a way to quickly and easily retrieve information at any point in time. The central controller could maintain access to all presentations and content along with the relevant tags. Tags may be used in various ways. These include: The main slide with the financials is tagged “financials”; Tag the slide which begins discussions around Project X; Tag slides as “optional” so they can be hidden when time is running low; Tag a presentation as “main microservices training deck”; Show who is a delegate for someone else; Tag for HR review later (and send meeting notes); Tag for legal review later (and send meeting notes). As an example, during an alignment meeting, a meeting owner is asked about the financials for project ABC which are not included in the current meeting presentation. The meeting owner asks the central controller to retrieve the financial information for project ABC. The central controller responds by sending the most recent financial slides for project ABC for display in the meeting.

Generating Meeting Notes/Minutes

While many meeting owners and meeting participants have the best of intentions when it comes to creating a set of meeting notes or minutes at the end of a meeting, all too often they are forgotten in the rush to get to the next meeting. A more efficient and automatic way to generate notes would allow for greater transparency into the output of the meeting. This is especially important for individuals who count on meeting notes to understand the action items that have been assigned to them. In various embodiments, meeting participants could dictate notes during or after the meeting. If a decision was made in a meeting, for example, the meeting owner could alert the location controller 8305 by getting its attention by saying a key word expression like “hey meeting vault” or “let the record reflect”, and then announcing that “a decision was made to fully fund the third phase of Project X.” The location controller would then send this audio recording to the central controller which would use speech to text software to generate a text note which is then stored in a record associated with the unique meeting identifier. Similar audio announcements by meeting participants throughout the meeting could then be assembled into a document and stored as part of that meeting record. Voice recognition and/or source identification (e.g. which device recorded the sound) can be utilized to identify each particular speaker and tag the notes/minutes with an identifier of the speaker. In various embodiments, the central controller listens to key phrases for diagnostic purposes such as items “you're on mute,” “can you repeat that,” “we lost you,” “who is on the call,” “can we take this offline,” “sorry I'm late . . . ” In various embodiments, cameras managed by the location controller could take images (or video) of walls during the meeting. A team that had done some brainstorming, for example, might have notes attached to the walls. In various embodiments, meeting notes could be appended to another set of meeting notes. In various embodiments, decisions from one meeting could be appended to decisions from another set of meeting notes.

Using Meeting Notes

While storing meeting notes is important, it may be desirable to make it easier for meeting participants to use those notes to enhance effectiveness and boost productivity. In various embodiments, the full corpus of all notes is stored at the central controller and fully searchable by keyword, unique meeting ID number, unique meeting owner ID, tags, etc. In various embodiments, less than the full corpus may be stored, and the corpus may be only partially searchable (e.g., some keywords may not be available for use in a search). In various embodiments, notes are sent to some portion of attendees, or everyone who attended or missed the meeting. In various embodiments, attendees are prompted for voting regarding the notes/minutes—e.g., attendees vote to indicate their approval that the notes/minutes represent a complete and/or accurate transcript of the meeting. In various embodiments, meeting notes are sent to people who expressed an interest in the notes (e.g. I work in legal and I want to see any set of notes that includes the words patent, trademark, or copyright). Various embodiments provide for automatic tracking of action items and notification to meeting participants upon resolution/escalation.

Meeting Assets and Batons

It may be desirable that meetings generate value for the business. The central controller 110 can provide transparency into whether meetings create value by recording the assets created during a meeting. Additionally, there may be task items generated during the meeting that need to be assigned to a person or team. These task items become a kind of “baton” which is handed from one person to another—across meetings, across time, and across the enterprise.

Recording Meeting Assets

Based upon the type of meeting, the central controller 110 can record and tag the asset created during the meeting. For example, in a decision meeting, the central controller could record that a decision was made and the reasoning. For innovation meetings, the central controller could record the ideas generated during the meeting.

Action Items

Some meetings generate action items, to-do items, or batons as an asset. The central controller 110 could record these actions items, the owner of these action items, and who created these action items. The central controller could alert employees of new action items. The central controller could provide these employees with a link to the meeting notes and presentation of the meeting that generated the action item, which would provide information and context to the action item.

Links Between Meetings

The central controller 110, based upon batons or other assets, could identify links between meetings. The central controller could identify duplicative, overlapping, or orphaned meetings. This can trigger actions based on meeting hierarchy—e.g., sub-meeting resolutions may trigger parent meetings to discuss/review resolutions/assets from sub-meetings.

Dormant Assets and Action Items

The central controller 110 could identify dormant assets or action items and flag them for review by their owners or schedule a new meeting.

Low Value Meetings

The central controller could flag meetings that produce few assets, result in dormant action items, or produce few assets relative to the expense of holding the meeting.

CEO (or Project Sponsor) Controls

Various embodiments provide a CEO (or other leader, or other authority, or other person) a chance to ask a challenge question in advance of a meeting based on the registered purpose of the meeting. For example, if the purpose of the meeting is to make a decision, the CEO can have an experienced and highly rated meeting facilitator ask a meeting owner (or some other attendee) exactly what they are trying to decide. The CEO may require that the meeting owner has to respond before the meeting, or deliver the output as soon as the meeting is done. In various embodiments, a CEO has the option to require an executive summary immediately after a meeting (e.g., within half an hour), on decision(s), assets generated, outcomes, and/or Other aspects of a meeting.

Request an Approval

In various embodiments, it may be desirable to obtain an approval, authorization, decision, vote, or any other kind of affirmation. It may be desirable to obtain such authorization during a meeting, as this may allow the meeting to proceed, for example, further agenda items that are contingent upon the approval. The approval may be required from someone who is not currently in the meeting. As such, it may be desirable to contact the potential approver. In various embodiments, the central controller 110 may set up a real-time video link from a meeting room to a potential approval. In various embodiments, the central controller 110 may email the decision maker with the data from the meeting to get an asynchronous decision. In various embodiments, the central controller 110 may message someone authorized to make a decision (or vote), e.g., if the main decision maker is not available.

Subject Matter Experts (SMES)

In various embodiments, it may be desirable to find someone with a particular expertise. The expert may be needed to provide input in a meeting, for example. For example, meeting participants may desire to find the closest available SME with an expertise of “Java”. Categories of expertise/SMEs may include the following: Coding; Supply chain/logistics; Finance; Marketing/Sales; Operations; Strategy; Value stream mapping; Quality/Lean; HR; IT Architecture; Customer Experience and Core Business knowledge; Meeting facilitator by meeting type (e.g. an SME whose expertise is facilitating Innovation Meetings); and/or Any other area of expertise.

Employee Handheld/Wearable Devices

In various embodiments, an employee device, such as a handheld or wearable device (e.g., a user device of table 900 or a peripheral device of table 1000), may assist an employee with various aspects of a meeting. In various embodiments, an employee device may: Show the employee the location of your next meeting; Show the employee who is running the meeting; Show the employee who the participants will be; Let the employee vote/rate during meetings; Connect the employee via chat/video with someone you need temporarily in a meeting; Display the meeting purpose; Display the slides of the deck; Take a photo of the whiteboard and send it to the central controller for that meeting ID number; Take a photo of stickies which the central Controller can OCR and add to meeting notes; and/or may I assist with any other action.

Network/Communications

In various embodiments, the central controller 110 could play a role in managing communication flow throughout the enterprise. If there are dropped connections from participants (e.g., from participant devices) provide immediate notification to the meeting owner for appropriate action. In various embodiments, a meeting owner could initiate a communication link between two ongoing meetings. The central controller could also automatically create a video link between two ongoing meetings that had agendas that were overlapping. For example, two meetings that identified Project X as a main theme of the meeting could be automatically connected by the central controller. In various embodiments, when network bandwidth is constrained, the central controller could turn off the video feeds of current virtual participants and switch them to audio only. If there is failed video/audio, the central controller may provide immediate notification to the meeting owner and other participants. Communication channels could also be terminated by the central controller. For example, a side channel of texting between two different meetings could be stopped while key decisions are being made in those meetings. During a meeting, the meeting owner could ask the central controller to be immediately connected to an SME who had expertise in data security.

Ratings and Coaching

A potentially important part of improving the performance of meetings (and employees) and bringing greater focus and purpose to work is to gather data from employees and then provide assistance in making improvements. One way to gather such data is by having participants provide ratings, such as polling all meeting participants in a 20-person meeting to ask whether or not the meeting has been going off track. Additionally, the central controller 110 could gather similar data via hardware in the room. For example, during that same 20-person meeting the central controller could review data received from chairs in the room which indicate that engagement levels are probably very low. These ratings by machine and human can be combined, building on each other. The ratings can then be used as a guide to improving performance or rewarding superior performance. For example, someone who was using a lot of jargon in presentations could be directed to a class on clear writing skills, or they could be paired with someone who has historically received excellent scores on presentation clarity to act as a mentor or coach. In this way, the performance of employees can be seamlessly identified and acted upon, improving performance levels that will translate into enhanced performance for the entire enterprise.

The ratings produced according to various embodiments can also be used to tag content stored at the central controller. For example, ratings of individual slides in a PowerPoint deck could be stored on each page of that deck so that if future presenters use that deck they have an idea of where the trouble spots might be. Edits could also be made to the deck, either by employees or by software at the central controller. For example, the central controller could collect and maintain all ratings for slides that deal with delivering financial information. Those financial slides with a high rating are made available to anyone needing to develop and deliver a financial presentation. This continual feedback mechanism provides a seamless way to continually improve the performance of the individual (person preparing the presentation) and the enterprise. Less time is spent on failed presentations and relearning which presentations are best at delivering information and making those available to anyone in the enterprise. Furthermore, in addition to providing the highly rated presentation, the actual video presentation could be made available for viewing and replication. If a presenter earned a high rating for delivering the financial presentation, the content and actual video output of the presentation could be made available to anyone in the enterprise for improvement opportunities. In various embodiments, ratings may be used to tag content. Thus, for example, content may become searchable by rating. Content may be tagged before, during, or after the meeting. Tags and ratings me until some of the feedback described with respect to FIG. 54.

Feeling Thermometer

As a PowerPoint™ presentation is being presented, meeting participants could use a dial on their meeting participant device to indicate whether the material is clear. As a speaker is leading a discussion, meeting participants could use the same dial to indicate the level of engagement that they feel in the meeting. The output of such continuous rating capabilities could be provided in a visual form to the meeting owner, such as by providing that meeting owner with a video of the presentation with a score at the top right which summarizes the average engagement score as indicated by the participants.

Rating Participants

Participants can be rated by other participants on various meeting dimensions. These may include, contribution to the meeting, overall engagement and value as the role being represented. The central controller could collect all participant feedback data and make available to the participant, meeting owner and manager for coaching opportunities.

Dynamic Ratings and Coaching

During meetings, the central controller 110 could prompt presenters and participants for ratings. For example, the central controller could provide cues to the meeting owner or presenter to slow down or increase the speed of the meeting based upon time remaining. The central controller also could prompt individual participants to rate particular slides or parts of a presentation if it detects low levels of engagement based, for example, on eye tracking or chair accelerometers. Based upon ratings from prior meetings, the central controller could assign a “Meeting Coach” who can provide feedback at future instances of the meeting.

Signage in Room

Meetings often start with administrative tasks taking place and waste time getting to the true purpose of the meeting. Reinforcing relevant information at the start of a meeting can help to streamline the meeting time and set a positive tone in advance of the actual start. In various embodiments, signage (or some other room device) displays the meeting purpose (or says it out loud). In various embodiments, the central controller 110 knows the purpose of the meeting based on the meeting owner's input in the invitation. The central controller could display the purpose on all monitors in the meeting room and display devices accessing the meeting remotely. In various embodiments, signage (or some other room device) shows a meeting presentation. The central controller 110 can queue up the appropriate presentation based on the meeting owner input. As the meeting agenda is followed, each subsequent presentation can be queued as to not cause a delay in connecting a laptop and bringing up the presentation. In various embodiments, signage (or some other room device) shows people who have not yet arrived. Many meetings take enormous amounts of time taking attendance. The central controller can dynamically list those that have not joined the meeting either in person or virtually. Those attendees that have informed the meeting owner they will be late or not attend via the central controller can be displayed and also when their estimated arrival time will be. Those that actually attend can be sent to the meeting owner.

In various embodiments, signage (or some other room device) shows people who need to move to another meeting. Signage may give people their “connecting gates” for their next meeting. The central controller could provide proactive alerts to attendees requiring them to leave the meeting in order to make their next meeting on time. This can be displayed on the monitors or on personal devices. For example, if participant “A” needs to travel to another meeting and it takes 15 minutes of travel time, the central controller could provide a message to display that participant “A” needs to leave now in order to make the next meeting on time. Likewise, if participant “B” in the same meeting only needs 5 minutes of travel time, participant “B” could be altered 5 minutes prior to the start of the next meeting. In various embodiments, signage (or some other room device) shows people who are no longer required at this meeting. As meetings progress through the agenda, certain topics no longer require specific individuals in a meeting. Providing a visual indication of only those participants needed can help streamlining decisions and make everyone more productive. For example, if the first agenda topic takes 10 people in a meeting, but the second agenda item only needs 5 people, the central controller could notify those 5 they can now leave the meeting and display the message on the monitor and devices. In various embodiments, signage (or some other room device) shows a decision that was made last week which was relevant to the current meeting topic. Each agenda item/action item has a tag identified. As action items are resolved and decisions made, these can be displayed in advance of the meeting or throughout the tagged agenda items. For example, the central controller has access to all agenda items, action items and decisions and each has an associated tag. As the meeting progresses and topics in the agenda are covered, the central controller can display resolved action items and decisions relevant to the agenda topic and used in the discussions.

In various embodiments, the room knows what to say. Using meeting time to celebrate and communicate important information not directly related to the agenda items can be a way to reinforce key topics and focus on the people aspects of a company. In various embodiments, the room may display messages. The central controller can access HR information (birthdays, work anniversaries, promotions), third party external sites (traffic, weather alerts, local public safety information) and internal text or video messages from key leaders (CEOs, Project Sponsors, key executives). Example messages may pertain to: Promotions; Anniversaries; Birthdays; Company successes; Employee Recognition; CEO message; Traffic updates; “We just shipped the fifth plane with medical supplies”; “Did you know that . . . ?” In various embodiments, it may be desirable that messages take the right tone and be at the right time. The central controller knows each type of meeting taking place (informational, innovation, commitment and alignment). Based on the meeting type, the central controller displays meeting specific information on display devices and to attendees in advance. Innovation sessions should have lighter/more fun messages. On the other hand, commitment meetings might prevent all such messages. Learning meetings could feature pub quiz type messages. Alignment meetings may show messages indicating other people or groups that are coming into alignment. For example, a message may show four other teams in Atlanta are meeting about this same project (show a map of locations). In various embodiments, a message or view may be changed based on a particular tag (e.g. a participant may select a tag to show all microservices meetings). As another example, a participant may ask to see the top priorities for other orgs/ARTs/teams.

Audio/Video

In various embodiments, the central controller 110 may store audio and/or video of a meeting. The central controller may store the full audio and/or video of a meeting. In various embodiments, the central controller may store part of the audio or video of a meeting based on one or more factors. The central controller may store part of the audio or video of a meeting based on a request from participants (e.g. “please record the next two minutes while I describe my idea for improving collaboration”) (e.g. “please clip the last two minutes of discussion”). The central controller may record any time loud voices are detected. The central controller may record any time the word “decision” or “action item” is heard. The central controller may record a random portion of the meeting. In various embodiments, a presentation has built in triggers on certain slides that initiate recording until the meeting owner moves to the next slide.

Other Hardware Devices

Various devices may enable, enhance and/or complement a meeting experience.

Virtual Reality

In various embodiments, virtual reality goggles may be used in a meeting. These may provide a more complete sense of being in a meeting and interacting with those around the wearer. In various embodiments, these may obviate the need for a camera, screens, rooms—instead, the meeting controller handles it all.

Headsets

As more and more meetings are held virtually, a greater number of meeting participants are not physically present in a room. Those participants are connecting via phone, or more commonly via video meeting services such as Zoom® or WebEx®. In these situations, it is common for participants to be wearing headsets. Connected into the central controller 110, this could allow a headset to help sense more information from meeting participants. The headset could contain any of the following sensors and connect to them the central controller: accelerometer, thermometer, heating and/or cooling device, camera, chemical diffuser, paired Wi-Fi® ring or smart watch, galvanic skin response sensors, sweat sensors, metabolite sensors, force feedback device. In various embodiments, an accelerometer is used to detect head movements, such as:

    • Detecting whether or not a meeting participant is currently nodding in agreement or shaking their head from side to side to indicate disagreement.
    • Detecting head movements along a continuum so that the participant can indicate strong agreement, agreement, neutrality, disagreement, or strong disagreement based on the position of their head in an arc from left to right.
    • Detecting whether a person is getting sleepy or bored by having their head leaned forward for a period of time.
    • If a head turns abruptly, this could indicate a distraction and mute the microphone automatically. When a dog enters or someone not a part of the meeting (a child), oftentimes people turn their head quickly to give them attention.
    • Detecting whether someone has been sitting for long periods to remind the wearer to take breaks and stand up.
    • Head movements coupled with other physical movements detected by the camera could be interpreted by the central controller. For example, if a participant's head turns down and their hands cup their face, this may be a sign of frustration. Fidgeting with a headset might be a sign of fatigue.
    • The central controller could interpret head movements and provide a visual overlay of these movements in video conferencing software. For instance, the central controller could interpret a head nod and overlay a “thumbs up” symbol. If the central controller detects an emotional reaction, it could overlay an emoji. These overlays could provide visual cues to meeting participants about the group's opinion at a given moment.

In various embodiments, a thermometer is used to measure the wearer's temperature and the ambient temperature of the room.

    • The central controller could record the wearer's temperature to determine if the wearer is healthy by comparing current temperature to a baseline measurement.
    • The central controller could determine if the individual is hot or cold and send a signal to environmental controls to change the temperature of the room.
    • The central controller could use temperature to determine fatigue or hunger and send a signal to the wearer or the meeting owner to schedule breaks or order food.

In various embodiments, a headset could contain a heating and/or cooling device to signal useful information to the wearer by change temperature, such as whether they are next in line to speak, whether a prediction is accurate (“hotter/colder” guessing), proximity in a virtual setting to the end of level or “boss”, or signal time remaining or other countdown function. In various embodiments, the headset could have a camera that detects whether or not the users mouth is moving and then check with virtual meeting technology to determine whether or not that user is currently muted. If they are currently muted, the headset could send a signal to unmute the user after a period of time (such as 10 seconds), or it could trigger the virtual meeting technology to output a warning that it appears the user is talking but that they are currently muted. In various embodiments, the headset could contain a chemical diffuser to produce a scent. This diffuser could counteract a smell in the room, use aromatherapy to calm an individual, evoke a particular memory or experience, or evoke a particular physical place or environment. In various embodiments, the headset could be paired with a Wi-Fi® ring/smart watch which would set off an alarm in the headset when the user's hand approached their face. This could allow presenters to avoid distracting an audience by touching their face, or it could be used to remind participants not to touch their face when flu season is in full swing. In various embodiments, the headset could contain galvanic skin response sensors, sweat sensors, and/or metabolite sensors. The central controller could record the galvanic skin response or the rate of sweat or metabolite generation to determine whether the wearer is healthy by comparing the current measurement to a baseline measurement. The central controller could then signal to the meeting owner whether the meeting should continue or be rescheduled.

Force Feedback

One or more devices could employ force feedback. This could include hardware associated with the device which causes the device to buzz when prompted. In various embodiments, the presentation controller could be used for the meeting owner to contact a meeting participant verbally. For example, a meeting owner may need to ask a question specific to another person without others hearing in the room. They could speak the question in the presentation controller and it could be heard by the meeting participant to respond. Also, they could use the same capability to request the meeting participant to engage in the discussion.

Microphones

Microphones may have various uses in meetings. Meetings are routinely interrupted by background sounds from remote meeting attendees causing a break in the meeting cadence and lost productivity. By using pre-recorded sounds that invoke a response by the central controller, the microphone could be put on mute automatically. For example, if your dog's bark is pre-recorded, the central controller could be listening for a bark and when recognized, the microphone is automatically put on mute. Similarly, if a doorbell or a cell phone ring tone is recognized, the microphone is put on mute automatically. In various embodiments, microphones should be muted automatically if they are outside the range of the meeting or the person is no longer visible on the video screen. Remote workers take quick breaks from meetings to take care of other needs. For example, a parent's child may start screaming and need immediate attention. If the meeting controller recognizes the meeting participant has moved from the video screen or several feet from their display device, mute the microphone automatically. Another example may be where someone leaves the meeting to visit the restroom. In various embodiments, a microphone is always listening (e.g., for a participant to speak). For participants that are on mute, once they begin to speak, the microphone detects this and automatically takes them off mute. For example, there are many occasions where meeting participants place themselves on mute or are placed on mute. Oftentimes, they do not remember to take themselves off of mute and it forces them to repeat themselves and delay the meeting.

Presentation Controllers and Remote Control Devices

Presentation controllers, remote control devices, clickers, and the like, may be useful in meetings. In various embodiments, hardware/software added to these devices can be used to increase their functionality, especially by allowing for direct communication with the central Controller 110 or location controller 8305. In various embodiments, a presentation controller and/or remote control device may include a Wi-Fi® transmitter/receiver (or Bluetooth®). This may allow the device to communicate with the central controller, a location controller, participant device, smartphones, screens, chairs, etc. Wi-Fi® data can also be used in determining the position of the device. In various embodiments, a presentation controller and/or remote control device may include a GPS or other positioning device. This may allow the central controller to determine where the presentation clicker is and whether it is moving. In various embodiments, a presentation controller and/or remote control device may include one or more accelerometers. By knowing the position of the device in three dimensions, it can be determined where the pointer is pointing within a room, which can allow for the presenter to obtain and exchange information with participants or devices within the room. In various embodiments, a presentation controller and/or remote control device may include a microphone. This could pick up voice commands from the meeting owner directed to the central controller or meeting controller to perform certain actions, such as recording a decision made during a meeting. In various embodiments, a presentation controller and/or remote control device may include a speaker. The speaker may be used to convey alerts or messages to a presenter. For example, the presentation controller may alert the user when one or more audience members are not paying attention. As another example, a member of the audience may ask a question or otherwise speak, and the presenter may hear the audience member through the remote control device. In various embodiments, messages intended for the audience (e.g., messages originating from the central controller, from the CEO, or from some other party), may be output through the speaker. As will be appreciated, a speaker may be used for various other purposes.

In various embodiments, a presentation controller and/or remote control device may include a force feedback. This could include hardware associated with the device which causes the device to buzz when prompted. In various embodiments, a presentation controller and/or remote control device may include a display screen. This could be touch enabled, and could show maps, meeting participant information, slide thumbnails, countdown clocks, videos, etc. In various embodiments, meeting participants need to quickly move between virtual meeting breakout rooms. In order to easily navigate between rooms, the attendee could touch the meeting room they need to attend and the central controller automatically puts them in the meeting room for participation. Furthermore, if attendees need to be assigned to a meeting breakout room, the meeting room owner could easily touch the person's picture and drag the icon to the appropriate room. This can be done individually or in bulk by clicking on multiple picture icons and dragging to the appropriate room. In various embodiments, a presentation controller and/or remote control device may include lighting, such as one or more lights capable of displaying different colors and capable of flashing to get the attention of the presenter. Presentation controllers and remote control devices may have one or more capabilities enabled, according to various embodiments. Capabilities may include alerting/communicating with other devices.

Capabilities may include responding to or interacting with an object being pointed at. A presenter (or other person) may point a presentation controller at people to get information about their mood. A presenter may point a presentation controller at a statistic on a slide to pull up additional info. A presenter may point a presentation controller at a chart on a slide to email it to someone. In various embodiments, a clicker vibrates when it is pointed at someone who is waiting to ask a question. In various embodiments, a clicker vibrates when it is pointed at someone who is confused. In various embodiments, Augmented Reality (AR), such as through smart glasses, highlights different attendees in different colors to identify different votes, answers, moods, status, participation levels, etc. In various embodiments, AR may highlight an attendee if the clicker is pointed at the attendee. In various embodiments, a presentation controller and/or remote control device may change colors. In various embodiments, the device can turn red to reflect stress levels of participants. The device can automatically cue up a coaching video on a room display screen based on the current stress level of the room. In various embodiments, voice recognition capabilities may be useful (e.g., as a capability of a presentation controller and/or remote control device) in that they allow for the presenter to perform tasks without having to type messages and without breaking the flow of the presentation. In various embodiments, voiced instructions could be used for jumping to particular slides For example, the presenter could tell the device to jump ahead to “slide 17”. For example, the presenter could tell the device to jump ahead “five slides”. For example, the presenter could tell the device to jump ahead “to the slide with the financials”.

Managing a Meeting Break

Various embodiments may facilitate efficient meeting breaks. In various embodiments, a room screen shows everyone's current location. This may allow a meeting owner to more easily round up late returnees from a break. In various embodiments, people can text in a reason for being late to return. In various embodiments, participants could vote to extend the break. In various embodiments, the central controller could recommend a shorter break. In various embodiments, a countdown clock is sent to participant devices. In various embodiments, a countdown clock is sent to kitchen screens. In various embodiments, lights can go up during a break.

Playing Videos

In various embodiments, one or more videos may be played during a meeting, during a meeting break, prior to a meeting, or after a meeting. Videos may have a number of uses. During a meeting, videos may help to calm people down, instruct people, inspire people, get people excited, get people in a particular state of mind, etc. In various embodiments, a background image or video is used to encourage a particular mood for a meeting. For a commitment meeting, a calming image may be used, e.g., a beach. Music may also be chosen to influence the mood. For an innovation meeting, there may be upbeat music. There may also be a varying background. In various embodiments, the tempo of music (e.g., in a video) may be used to influence the mood. For example, music gets faster as you get closer to the end of the meeting. A video of the CEO may get participants thinking about purpose (e.g., a purpose for the meeting). The video may play two minutes before the meeting. An innovation session may start with a video of what problem the session is trying to solve. Financial stats scroll by so you can see where the company needs help. A program increment (PI) planning meeting (i.e., a standard meeting used as part of the SAFe/Agile development framework) may begin with a video explaining the purpose of the meeting as one to align employees to a common mission and vision. In various embodiments, any other meeting type may begin with a video explaining the purpose of the meeting.

In various embodiments, a background video may show customers being served. Meeting participants may get the feeling, “I want to be part of that”. In various embodiments, a cell phone (or other participant device) shows each participant a photo of a different customer. Virtual participants in a meeting may feel a kind of emotional distance to other participants as a result of the physical distance and/or separation. It may be desirable to break down the space between two physically distant people, i.e., to “connect them” more deeply. In various embodiments, participants may pick emojis to represent themselves. Emojis may represent a mood, a recent experience (e.g., emojis show the three cups of coffee that the participant has consumed), or some other aspect of the participant's life, or some other aspect of the participant. In various embodiments, some description (e.g., personal description) of a participant may appear on screen to better introduce the participant. For example, text underneath the participant's video feed may show for the participant: kids names, hobbies, recent business successes and/or a current position in a discussion of a commitment. Various embodiments may include a library of Subject Matter Expert videos in which these SMEs explain technical issues or answer questions related to their subject matter expertise. Videos may be stored, for example, in assets table 6000. SME videos may give people more confidence to make decisions because they have a deeper understanding of technical issues that may improve the decision quality. Videos may provide methodical injections of confidence builders. Videos may provide feedback from previous decisions. Videos may provide Agile software user story expertise. In various embodiments, an attendee has an opportunity to provide reasons that he is late for a virtual or physical meeting. In various embodiments, the meeting platform (e.g., Zoom) texts the attendee and gives him several options to choose from, such as: I will be five minutes late; Having trouble with my PC; I forgot, logging in now; I will not be there.

Enterprise Analytics

In various embodiments, analytics may help with recognizing patterns and making needed adjustments for efficiency and may contribute to the success of an enterprise. The central controller could collect some or all data related to meetings to train Artificial Intelligence (AI) modules related to individual and team performance, meeting materials and content, and meeting processes. Insights from these data could be made available to leadership or other interested parties through a dashboard or through ad hoc reports. An AI module may be trained utilizing meeting data to identify individual performance in leading and facilitating meetings, creating and delivering presentations, and contributing to meetings. Additionally, an AI module may be trained to optimize meeting size, staffing requirements, and the environment and physical layout of meetings. An AI module may be trained to identify meetings that are expensive, require large amounts of travel, or result in few assets generated. Some examples of meeting data that could be used as a training set for these and other AI modules include:

    • Meeting size (number of participants, split out into physical and virtual)
    • Meeting length (including allocations for travel time if appropriate)
    • Number of meetings per day
    • Meeting type
    • Results accomplished
    • Spawned action items or new meetings
    • Time of day/week
    • Purpose
    • Presentation materials
    • Participation rate
    • Meetings linked to enterprise goals
    • Tagged meetings and assets
    • Cost of meeting
    • Number of meeting invites forwarded for attendance
    • Rating of meeting by participants
    • Biometric data (for example, average level of engagement as determined via a combination of data from cameras in the room and motion data tracked by headsets)
    • All other collected meeting information

Some examples of data related to meeting participants/owners that could be used as a training set for these and other AI modules include:

    • Participant rating by meeting and aggregated over time
    • Meeting owners rating by meeting and aggregated over time
    • Ratings by seniority level. For example, do executives rate the meeting owner higher than their peers?
    • Time spent in meetings over a period of time
    • Number of meetings attended over time, by project and by enterprise goal
    • Sustainability score by participant, owner, department and enterprise
    • All other collected meeting information for participants and owners
    • Hardware utilized
    • Biometric data (for example, level of engagement of a particular meeting participant as determined via a combination of data from cameras in the room and motion data tracked by headsets).

In various embodiments, analytics may be used for generating reports, dashboards, overviews, analyses, or any other kind of summary, or any other view. Analytics may also be used for indexing, allowing for more efficient or more intelligent searches, or for any other purpose. In various embodiments, analyses may include:

    • An overview of meeting assets generated.
    • Reporting based on tags associated with meetings or presentation materials.
    • Find the decision that was made on whether or not we are going into the German market; find the materials generated (e.g. the Kepner Tregoe method of decision analysis, the Porter's 5 forces analysis, the macroenvironment analysis, the Strengths, Weaknesses, Opportunities and Threats (SWOT)) that supported the decision to go into the German market based on asset tagging.
    • Provide reporting for spikes in meetings. Provide reporting on the number of meetings on a certain day during a specific time period.
    • Ratings. Provide reports on ratings for meeting, meeting types, assets and individuals (meeting owners and participants)
    • System notices that the quality of meetings about Project X has decreased. This might then get a manager to audit the next meeting.
    • Central controller has a database of pre/post meeting questions requiring rating by participants and selected by the meeting owner.
    • Tables/chairs/layout (e.g. how many meeting rooms are “U” shaped, how many chairs does an average meeting room contain, etc.)/equipment type/equipment age
    • Rooms (physical and virtual)
      • Tend to go well—based on ratings by participants and meeting owners
      • Facilities issues—based on ratings from meeting participants and meeting owners, including functioning equipment and cleanliness.
      • Do people stay awake, engagement and mental and physical fitness based on biometric data collected during the meeting.
      • Do actions (audio, warnings, lighting, AC changes, etc.) generate effects? Provide reporting based on environmental changes and the impact to meeting results and biometric data collected.
      • All other collected meeting information for meeting rooms

The central controller 110 could collect all data related to headset communications and functions so that statistics and insights could be sent back to individuals and teams using a headset. The collected data could also be used to train Artificial Intelligence (AI) modules related to individual and team performance, meeting materials and content, meeting processes, business and social calls, in-game communications, athletic performance, and the like. Insights from these data could be made available to interested parties through a dashboard or through ad hoc reports. An AI module may be trained utilizing headset data to identify individual performance in leading and facilitating meetings, creating and delivering presentations, contributing to meetings, managing calls, athletic achievement, social achievement, and achieving success in a game. Additionally, an AI module may be trained to optimize meeting size, meeting effectiveness, and meeting communications. An AI module may be trained to identify meetings that are expensive, require large amounts of travel, or result in few assets generated.

In some embodiments, a CEO is interested in being more connected with those who work for her, and wants to be able to help a greater number of employees without spending all of her time attending meetings. The CEO could designate “office hours” which could be transmitted to a central controller, or saved into a data storage device of the headsets of all company employees. This would allow employees to connect seamlessly with the CEO, regardless of where they are or where the CEO is. The user's headset could include information via a video display of the headset (or via speakers) with information on whether or not the CEO was already in a call, and an indication of how many people might be currently in line to speak with her. The CEO could also use her headset to manage the priority of incoming calls, moving callers on hold up or down in priority. Users could also provide a short audio clip summarizing the reason for the call via a microphone of the users headset which can be made available to the CEO via a speaker of her headset, enabling more effective prioritization of calls.

In some embodiments, users could subscribe to audio channels by tag, such as a software architect subscribing to all current audio feeds tagged with “architecture.”

Analytics regarding the performance of users on a call could also be provided to appropriate personnel at a company. Performance regarding call data could include speaking time, quality ratings from other participants, engagement levels of the user, etc. Input data could include call-related data, biometric inputs, user location, physical movements, volume and pitch of voice, direction of gaze, post-call 360 s, tagging data, etc.

Predictive analytics could also be used to help user's avoid making mistakes or saying the wrong thing. For example, if a user's headset pulse rate sensor indicates that the user may be agitated while on a call, the processor of the headset may put the user on mute until his pulse rate drops to a level which indicates he is going to be more level-headed. Instead of automatically being muted, the user might be given a verbal warning by the headset or he might be connected via a sub-channel with a coach who can help guide him toward improved performance.

The user headset could also make predictions, either via the processor of the headset or in conjunction with the central controller, predicting when people are not at their best by reviewing camera, microphone, accelerometer, and other sensor data. Predictions by the headset could include whether or not the user is in good health, is tired, is drunk, or whether he might need a boost of caffeine.

Some examples of data that could be used as a training set for these and other AI modules include health data (e.g., blood pressure, pulse rate, pupil dilation, breathing rate, biometric data), athletic performance data (e.g., velocity, location, form, step length and width, exertion based on image evaluation, duration and type of activity), emotional data, environmental sensor data (e.g., pollution levels, noise levels).

Security

Maintaining a secure meeting environment may be important to an enterprise. It may be important that only those meeting participants and owners that have privileges to a meeting can actually join and participate. The central controller should maintain information about each person that is used as an additional layer of meeting security. Dimensions that can be used to authenticate a meeting owner and/or participant include: facial recognition; voiceprint; etc.

Various embodiments include a mouse that shows me that my opponent is someone that I have played against before. The mouse may also show prior moves or strategies of my opponent. Similar to how sports teams watch game videos to learn the playing style and strategies of other teams, the same approach may be used with peripherals. For example, Player 1 is invited to play a game with Player 2 or initiates play with Player 2 using a peripheral (e.g. mouse, keyboard). Player 1 requests through the peripheral 3800 to the network port 410 the previous opening game moves or typical movements from Player 2's processor 405 and storage device 445. Player 1 receives the stored game information from Player 2 through the house controller 6305a-b and central controller 110 to her device for display on screen 3815. Examples of the information Player 1 receives on the peripheral from Player 2 at the start of the game is that they frequently move to the right in the map sequence, hide behind a building in a combat game, during a chess match make the move 1.e4 75% of the time. This information may be displayed on Player 1's screen 3815 in text form or image form (e.g. chess board showing the typical moves). In addition, Player 1 may receive the complete statistics of Player 2 for a game being played such as the number of lives lost, the type and number of weapons used, the number of chess moves before a win or loss, the amount of time spent playing the game over some time period (e.g. 3 hours of Fortnite® during the last 7 days). All of the information allows Player 1 to gain more insight to Player 2's strategy, strengths and weaknesses for the game being played.

Authentication

In various embodiments, a user's pattern of interaction with a peripheral device may serve as a presumed unique identifier or authenticator of the user. In such embodiments, it may be assumed that different users interact differently with a peripheral device, and such differences can be discerned using an algorithm. For example, a user's interaction pattern with a peripheral device may be quantified in terms of one or more features. In a first example, when a user types the word “the” on a keyboard, the ratio of (1) the elapsed time between typing the “t” and the “h”; to (2) the elapsed time between typing the “h” and the “e”, may serve as one feature. In another example, the absolute elapsed time between typing the “h” and the “e” may be another feature. In another example, the amount of pressure a user uses on a key (or on a button) may be another feature. In fact, there may exist a separate feature for each key or button. In another example, the top speed at which a user moves a mouse may be a feature. In another example, the average speed at which a user moves a mouse during the course of a motion may be a feature. In another example, the pressure a user exerts on a mouse button when the user is not clicking the button may be a feature.

For any given user, values for the aforementioned features, a subset thereof, or any other features, may be recorded and/or calculated based on historical usage data (e.g., based on three hours of usage).

When it is desirable to verify the identity of a user, or otherwise authenticate the user, a new sample of usage data may be obtained from the user. For example, the user may be asked to type a paragraph, or to perform a series of tasks on a website or app that involve clicking and moving a mouse. Usage features may be calculated from the newly obtained usage data. The new values of the usage features may be compared to the values of the usage features obtained from the users historical usage data. If the newly obtained values match the historical values (e.g., the sum of the absolute values of the differences is less than a predetermined amount), then the user may be considered verified.

In various embodiments, a classification algorithm may be used (e.g., a decision tree), to classify an unknown user by deciding which known users data is most closely matched by data newly obtained from the unknown user. As will be appreciated, various embodiments contemplate other ways in which the usage patterns of a peripheral device by a user may be used to authenticate the user.

In various embodiments, data passively obtained from users, such as via sensors (e.g., heart rate sensors) may also be used to create features, and/or to authenticate a user. In various embodiments, sensor data may be used in combination with usage data.

In various embodiments, usage patterns, features obtained from usage patterns, sensor data, and/or features obtained from sensor data may serve as a biometric.

In various embodiments, a biometric may serve as a way to identify or authenticate a user. In various embodiments, biometric may serve as a basis for responding to the user, adapting to the user, enhancing the user experience, or otherwise making a customization for the user. For example, a usage pattern may correlate to a skill level in a game, and the central controller may utilize the inferred skill level to adjust the difficulty of a game.

In various embodiments, certain activities may have legality, eligibility, regulatory, or other rules that vary from location to location. For example, gambling may be legal in one jurisdiction, but not in another jurisdiction. In various embodiments, a peripheral device may be used to authenticate a user's location, or some other aspect of the user, in order to comply with any applicable laws or regulations.

In various embodiments, a peripheral device includes a GPS sensor, a positioning sensor, or any other location sensor or determinant. When a user is contemplating a regulated activity, the peripheral device may transmit to the central controller, or to some other authority, an indication of the user's location. The user may then be granted permission to participate in the regulated activity based on whether or not the activity is permitted in the user's location.

In various embodiments, a peripheral device may be used as part of a process of multi-factor authentication. A user may initially be associated with a particular peripheral device (e.g., with a trusted peripheral device). For example, the user registers a trusted peripheral device in association with his name. Presumably, this peripheral device would henceforth be in the possession of the user. In various embodiments, when a user is attempting to authenticate himself for some reason, a temporary code, personal identification number (PIN), or the like may be sent to the same peripheral device. The user may then key in the same code (e.g., on some other device, such as on a personal computer) as part of the authentication process.

In various embodiments, as part of a multi-factor authentication process, a user is prompted to use a peripheral device. The user's unique pattern of usage may then serve as a confirmation of the user's identity.

The biometric data from the devices could be used for validating survey responses and embedded survey experiments. For example, whether a person actually took the survey and whether the individuals were confused or frustrated by particular survey questions. Additionally, the object of the survey could be to measure an individual's biometric responses when asked particular questions.

Online advertisers often pay per click or impression. These revenue systems are often spoofed by bots or other means. The devices according to various embodiments could be used to authenticate “true clicks” or “true impressions” by verifying that an actual person clicked or viewed the ad. In some embodiments, peripheral device (e.g. mouse, keyboard, headset) movements generated by a user may be transmitted to central controller 110 for correlation of their timing with any clicks on advertising. Clicks that are not associated with any peripheral movement would be deemed as illegitimate clicks. In other embodiments, cameras or sensors (e.g. motion sensors, microphones) may similarly send information to central controller 110 as corroborating data regarding verification of user mouse clicks on advertisements.

Many websites prohibit online reviews, posts, or comments which are posted by bots or other automated means. The devices according to various embodiments could be used to authenticate that online reviews, posts, or comments were made by an actual individual.

In various embodiments, peripheral devices may serve as a first or second check that a live user is providing information. Sensors built into peripheral devices, and vital signs or biometrics read from peripheral devices, may be used to verify that a live user is providing some information or instruction, such as a password, credit card number, review, post, game input, etc.

Advertisers often have difficulty in distinguishing between different users on shared devices and tracking individuals across multiple devices. The devices according to various embodiments could help advertisers disambiguate and track users, either because individuals sign into their devices, or because a user's “fist,” or characteristic patterns of inputs could allow the central controller to identify particular individuals using a device or an individual across several devices.

Turning now to FIG. 89, a diagram of a person with associated biometric data 8900 according to some embodiments is shown.

The depicted biometric data is intended for illustrative purposes, and does not necessarily depict actual data read from an actual human being.

In FIG. 89, an individual 8902 has various types of associated biometric data. Further, a given type of biometric data may be associated with a given part of the body. Facial measurements 8904 are associated with the user's face. Electroencephalogram (EEG) data 8906 is associated with the user's head (i.e., with the brain). Iris and/or retinal data 8908 are associated with the user's eye(s). Voice data 8910 and 8912 is associated with the user's mouth. Fingerprint data 8914 are associated with the user's hand. Heart waveforms 8916, such as electrocardiogram (ECG/EKG), arterial pressure waves, etc. are associated with the user's heart. It will be noted, however, that associations between data and body parts are made for convenience and could be made in any suitable fashion. For example, voice data may just as well be associated with a user's lungs as with his mouth.

In various embodiments, biometric data is used to establish features and/or combinations of features that can be uniquely linked or tied to an individual. The following discussion represents some methods of extracting and using features according to some embodiments. However, it will be appreciated that other methods of extracting and features could be used and are contemplated by various embodiments herein.

With respect to facial measurements 8904, raw data may include an image of a face, such as an image captured by a video camera. The image may be processed (e.g., using edge detection, peak detection, etc.) to determine the location of “landmarks”, such as the centers of eyes, the corners of lips, the tips of cheekbones, the bridge of a nose, etc. Distances may then be determined between various combinations of landmarks (e.g., between nearby landmarks). At 8904 are depicted various exemplary distances, including a distance between the centers of the eyes 8920a, a distance from the bridge of the nose to the tip of the nose 8920b, a distance from a first corner of the nose to a first cheekbone 8920c, and a distance from a second corner of the nose to a second cheekbone 8920d. In various embodiments, any suitable landmarks may be used, and any suitable distances may be used.

In various embodiments, to allow for different ranges from the subject at which an image may be captured, distances between landmarks may be normalized, such as by dividing all distances between landmarks by a particular distance (e.g., by the distance between the centers of the eyes 8920a). In such cases, all distances are effectively expressed as multiples of the particular distance (e.g., as multiples of distance 8920a). Normalized distances may then be used as the “X” input (i.e., a vector of inputs) to a classification algorithm, or other AI algorithm, or other algorithm.

Whereas some biometric markers remain relatively constant (e.g., fingerprints), EEG data can change in response to a user's actions or to stimuli experienced.

Methods for classifying individuals based on EEG data are discussed in the paper ‘Exploring EEG based Authentication for Imaginary and Nonimaginary tasks using Power Spectral Density Method’, Tze Zhi Chin et al 2019 IOP Conf, Ser.: Mater, Sci, Eng. 557 012031, the entirety of which is incorporated herein for all purposes.

With respect to EEG data 8906, raw data may be determined from electrodes placed at two or more points on a user's head. In various embodiments, one of the electrodes is placed proximate to the motor cortex. In the “10-20 system”, the electrode may correspond to the “C4” electrode.

A user is asked to imagine performing a task repeatedly, such as opening and closing his hand once every second for sixty seconds, where the seconds are marked with an audible tone (e.g., with a metronome), In various embodiments, any suitable task may be performed. In various embodiments, the task need not be repetitive.

As the user performs the imaginary task, a voltage differential is measured between two electrodes. An amplifier may be used to amplify the voltage differential. The voltage differential may be recorded as a function of time (e.g., using multiple samples; e.g., with a sample rate of 1024 Hz), thereby generating a time series waveform. In fact, voltage differentials may be recorded across multiple pairs of electrodes, thereby generating multiple waveforms (i.e., one waveform for each pair of electrodes). Graphic 8906 shows exemplary waveforms from 16 different pairs of electrodes.

The raw waveform(s) may be filtered to preserve only certain ranges of frequencies. Commonly recognized frequency bands with respect to EEG data include delta, theta, alpha, beta, and gamma frequency bands. In various embodiments, a bandpass filter (e.g., a Butterworth bandpass filter) is used to preserve the beta frequency band (from 13 to 30 Hz).

The spectral density of the filtered waveform is then estimated using Welch's method, Welch's method includes segmenting the filtered time-series into overlapping 1-second segments, applying a windowing function at each segment, transforming the results using a discrete Fourier transform, and computing the squared magnitudes of the transformed results. The squared magnitudes are then averaged across all the results (i.e., all the segments). At the end is a set of frequency “bins” and associated power measurements for each bin, a power spectral density. In various embodiments, other methods of computing a power spectral density may be used.

Features are then extracted from the power spectral density. In some embodiments, features include each of the: mean (i.e., the mean power magnitude across all the frequency bins), median, mode, variance, standard deviation, minimum and maximum.

In some embodiments, features are the individual power levels for the respective frequency bins.

Once extracted, features then serve as an input to a K-nearest neighbor classification algorithm. In various embodiments where authentication of a user is desired, the feature vector (i.e., the “X” vector) must fall within a predetermined “distance” of the reference vector (i.e., the “Y” vector) for the user in order to make an affirmative authentication. In various embodiments, any other suitable algorithm may be used.

In various embodiments, rather than asking a user to perform a particular task, the headset or central controller 110 may observe a task that the user is performing and/or a stimuli that the user is experiencing. For example, the headset may observe (e.g., via a forward facing camera in the headset) that a user is looking at a particular piece of machinery. A waveform may be determined at the time of the task or stimuli, and this waveform may be compared to a reference waveform generated under similar conditions (e.g., when the user was performing a similar task, or experiencing similar stimuli).

In various embodiments, a classification algorithm (or other algorithm), seeks to determine not whether a subject corresponds to a particular individual, but rather whether a subjects mental state corresponds to a particular mental state (e.g., “alert”, “drowsy”, “drunk”). For example, it may be desirable to assess whether an individual is in an alert mental state prior to entering a room containing dangerous equipment.

The process for classifying a mental state may proceed along similar lines, but where a reference signal is not necessarily derived from the subject being tested. Rather, a reference signal for an “alert” mental state may come from a different individual, or may represent an “average” signal from various individuals each of whom is known to be in an “alert” mental state.

Various embodiments seek to classify a mental state of “recognition” or “familiarity”, in contrast to such states as “novelty” or “confusion”. In such embodiments, a user may see or be shown a stimulus (such as a piece of lab equipment). After having experienced the stimulus (e.g., seen the object), the users mental state may be classified as one of “recognition”, or “novelty”. It may thereby be determined whether or not the user has had prior experience with the stimulus (e.g., whether the user has seen the object before), In authentication embodiments, a user may be shown an object which the authentic user will likely recognize, but which an imposter likely will not. Then, based on the user's classified mental state, the user's identity may be confirmed, or not.

With respect to iris and/or retinal data 8908, raw data may include an image of an iris or retina. The captured image may be divided into sectors. These sectors may be of standardized size and shape (e.g., a sector encompasses 45 degrees of arc and one third the radius of the image of interest, e.g., one third the radius of the iris). Exemplary sectors are depicted at 8924a, 8924b, and 8924c. Various embodiments contemplate, however, that more or fewer sectors could be used, and differently shaped sectors could be used.

For each sector, an overall grayscale metric may be determined. For example, a sector that is very light in color receives a metric of 0, while a sector that is very dark in color receives a metric of 1. In various embodiments, the grayscale metric may be determined by averaging the color across the whole sector (e.g., by taking an average value of all the constituent pixels falling within a sector).

In various embodiments, to allow for different illuminations at which an image might be captured, grayscale values for sectors may be normalized. For example, the brightest sector receives a value of 0, the darkest sector receives a value of 1, and grayscale values for other sectors are scaled so that their proportionate distances from the values of the brightest and darkest sectors remain the same.

Once sectors receive grayscale values, such values may then be used as the “X” input to a classification algorithm, etc.

With respect to voice data 8910, raw data may include pressure data sampled from a microphone (e.g., at 48 kHz), thereby generating the depicted time series waveform. The waveform may be transformed into the frequency domain, such as via a Fourier transform, thereby generating a frequency spectrum 8912. A peak detection algorithm may then be used to find peak frequencies (La, frequencies representing local maxima in the frequency spectrum). A predetermined number of the most strongly represented peak frequencies may be selected. For example, the 10 strongest peak frequencies may be selected. These may be sorted by amplitude, and then used as the “X” input to a classification algorithm, etc.

In various embodiments, when peak frequencies are detected, only fundamental frequencies are considered, and harmonic frequencies are eliminated from consideration. For example, if there are peaks detected at 440 Hz and at 880 Hz, the peak at 880 Hz may be eliminated from consideration.

In various embodiments, rather than detecting peak frequencies, amplitudes a1, a2, a3, etc. may be recorded for a set of predetermined frequencies f1, f2, f3, etc. The amplitudes may then be used as the “X” input to a classification algorithm, etc.

With respect to fingerprint data 8914, raw data may include an image of a fingerprint. The captured image may be divided into regions. These regions may be of standardized size and shape (e.g., a region is a square 0.5 millimeters on a side). Exemplary regions are depicted at 8940a, 8940b, and 8940c. For each region, an overall grayscale metric may be determined. And analysis may proceed as described above with respect to iris/retinal data 8908.

With respect to heart waveforms 8916, raw data may include, for example, an ECG waveform. A typical ECG waveform may include five standard segments, labeled P, Q, R, S, and T. Each has a biological significance (e.g., the P segment corresponds to contraction of the atrium). Each segment may have an associated duration and an associated amplitude. For example, the P segment may last 0.11 seconds and have an amplitude of 0.3 mV. In addition, since not all segments are contiguous, additional segments may be defined with combinations of letters (e.g., where ST represents the interval from the end of S to the beginning of T).

In various embodiments, the durations and amplitudes of the different standard segments may serve as features. Additionally, durations for the additional segments (e.g., for ST) may also serve as features. These features may then be used as the “X” input to a classification algorithm, etc.

Gestures

In various embodiments, it may be desirable to identify someone based on their gestures, such as by their head motions when they are wearing a headset. As such, it may be desirable to extract and/or utilize certain features of detected gestures as input to a machine learning model, algorithm, AI algorithm, and/or as input to any other algorithm. For example, the output of such an algorithm may be an identification of an individual (e.g., from among multiple possible individuals), or the closeness of fit between an input gesture and a reference gesture (e.g., an indication of confidence that a person is who he says he is). In various embodiments, gestures may be recorded and/or detected by means of motion sensors, accelerometers (e.g., accelerometers 4070a and 4070b), or the like.

In various embodiments, features of gestures may include one or more of: the distance moved in one direction (e.g., the distance of a head motion from top to bottom when someone is nodding his head); the number of reversals in direction per unit time (e.g., the speed with which someone shakes their head or nods their head); the maximum upward distance moved when compared to a neutral position (e.g., how far does someone lift their head during a head nod); the maximum downward distance moved when compared to a neutral position; the most commonly assumed position (e.g., how does someone commonly hold their head, whether it be straight, tilted slightly to the right, tilted forward, etc.); the amount of head motion associated with speaking; the amount of head motion associated with drinking; the amount of head motion exhibited when responding to a voice from behind the user (e.g., does the user turn his head to face the other person); and/or any other suitable features.

Productivity/Performance Enhancements

In various embodiments, a peripheral device measures the performance of an associated user device (e.g., the speed, processor load, or other performance characteristics). The peripheral device may determine such performance in various ways. In some embodiments, a user device informs the peripheral device of the current processor load, the current availability for inputs, or some other measure of performance. In various embodiments, a peripheral device may sense how frequently it is being polled by the user device for user inputs at the peripheral device, how frequently the user device is accepting messages from the peripheral device, how frequently the user device is sending signals back to the peripheral device, or any other indication of the performance of the user device. In various embodiments, a peripheral device may indirectly infer the performance of a user device. For example, if a user is repeating the same input motions at a peripheral device, it may be inferred that the user device has been slow to register such motions. For instance, a user may be trying to click a tab on a web browser, however the tab may be very slow to come up on the user device because the user device is occupied with some other process or is otherwise exhibiting poor performance characteristics. A peripheral device may infer poor performance of a user device if the user is making repetitive inputs or motions, if the user is employing exaggerated motions, if the user is waiting an unusually long time between motions (e.g., the user is waiting for the user device to register an earlier motion before making a new motion), if the users rate of typing has slowed down, or if the pattern of user inputs at the peripheral has changed in any other fashion.

In various embodiments, by providing insight into the performance of a user device, a peripheral device may assist in the pricing of a warranty or other service contract for the user device. For example, if the user device is exhibiting poor performance, a warranty may be priced more expensively than if the user device is exhibiting good performance characteristics. In various embodiments, peripheral devices may be used to suggest to a user that the user obtain professional assistance with improving the performance of the user device. In various embodiments, a peripheral device may trigger an application or other program that is designed to increase performance of a user device (e.g., a memory defragmenter).

In various embodiments, a peripheral device may adjust the data it sends to a user device based on the performance of the user device. For example, if the user device is exhibiting poor performance characteristics, then the peripheral device may limit data sent to the user device to only high-priority data. For example, the peripheral device may prioritize data on basic motions or other user inputs, but may refrain from sending data about the user's vital signs, ambient conditions, voice messages created by the user, or other types of data deemed to be of lesser priority. If performance characteristics of a user device later improve, then the peripheral device may send data or signals that had been previously held back.

In various embodiments, a peripheral device may be the property of a company, or other organization. In many organizations, peripheral devices are assigned to individuals. For example, an individual has his or her own desk, and peripheral devices reside more or less permanently at the desk. However, in situations where individuals do not work full-time, are not in the office full-time, are not at their desk frequently, or in other situations, a peripheral device may remain unused for a significant period of time.

In various embodiments, a company or organization may increase the utilization of peripheral devices by allowing such devices to be shared among different users. For example, users with complementary schedules (e.g., one user works mornings, and the other user works afternoons) could share the same peripheral device. This would allow a company or other organization to get by with fewer peripheral devices, or to permit greater usage of expensive peripheral devices.

In various embodiments, users may schedule time to use peripheral devices. When it is a given user's turn to use a device, the user's name, initials, or other identifying information may appear on the peripheral. In various embodiments, when it is a user's turn with a peripheral, only that user may activate the peripheral, such as with a password or a biometric.

In various embodiments, a peripheral may track its own usage. The peripheral may discover patterns of usage. For example, the peripheral may discover that it is never used on Wednesdays. Based on the pattern of usage, the peripheral may advertise its availability during times when it would otherwise be idle. For example, a peripheral may advertise its availability every Wednesday. A user in need of a peripheral during such idle times may sign up to use the peripheral at these times. Alternatively, a scheduler (e.g., the central controller) may assign peripherals to different users who are known to be in need at such times.

In various embodiments, a peripheral may provide instructions to a user as to where to leave the peripheral when a user is done with it (e.g., leave it on the conference table of the marketing department), so that the next assigned user can begin using the peripheral.

In various embodiments, a peripheral may be configurable to communicate with different user devices. A switch or other input device on the peripheral may allow the user to associate the peripheral with different user devices. For example, a user may place a switch on a keyboard in one position, after which the keyboard will direct keystrokes to a personal computer; the user may place the switch on the keyboard in another position, after which the keyboard will direct keystrokes to a tablet computer. The switch may be physical. In various embodiments, the switch is virtual, such as a picture of a switch on a touch screen.

In various embodiments, a peripheral device saves one or more inputs to the device. Such inputs may include key presses, button presses, wheel scrolls, motions, touches on a touchpad, turns of a trackball, or any other inputs. In various embodiments, a peripheral device may save sensor readings. Saved inputs may include timestamps or other metadata. Such data may allow the inputs to be placed in chronological order.

In various embodiments, a user may search through old inputs to a peripheral device. For example, a user may enter a sequence of inputs which he wishes to find from among historical inputs. In the case of a keyboard, a user may wish to search for a sequence of keystrokes, such as a word or a phrase. The user may key in such keystrokes into the keyboard. The keyboard may then display to the user (e.g., via a display screen) any matches to the user's search. The keyboard may display context, such as keystrokes that were entered before and after the particular keystrokes that are the subject of the search. In various embodiments, the keyboard may present search results in another fashion, such as by transmitting the results to a separate display device, by saving the results to a memory (e.g., to an attached USB thumb drive), or in any other fashion.

Where a user is able to search for inputs on a peripheral device, the search may effectively span across multiple applications and even across virtualized OS partitions. In other words, a single search may locate inputs that were directed to different applications, and even two different OS partitions.

In various embodiments, a peripheral device may track usage statistics. Such statistics may include number of buttons pressed, number of times a particular button was pressed, number of times a particular key was pressed, the distance a peripheral was moved, the number of different sessions during which a peripheral was used, the number of times a headset was put on, or any other usage statistic. Usage statistics may also be tracked by another device, such as a user device linked to a tracked peripheral device.

In various embodiments, an app may allow a user to view usage statistics. The app may communicate directly with a peripheral device, such as for the purposes of uploading usage statistics. In various embodiments, the app obtains usage statistics from the central controller, which in turn receives such statistics from a tracked peripheral device (e.g., directly, e.g., indirectly).

In various embodiments, a peripheral may track patterns of usage and associate such patterns with either productive or non-productive work. Examples of non-productive work may include playing video games, surfing the web, arranging photos, or any other activities. Initially, a peripheral may receive information about an app or program with which a user is interacting. Based on the type of app, the peripheral may classify whether such activity is productive or not. In various embodiments, a user may classify different apps or activities as productive or not, and may indicate such classifications to a peripheral device.

The peripheral device may then learn to recognize patterns of inputs associated with a productive activity, versus those associated with a non-productive activity. For example, in a game of solitaire, a peripheral device may learn to recognize the repetitive motions of dragging cards to different locations. A peripheral device may later classify a user's pattern of inputs without direct knowledge of the app to which such inputs are directed.

In various embodiments, if a peripheral device determines that a user is engaged in non-productive activities, the peripheral device may take one or more remedial actions. Actions may include: shutting off, reducing functionality, temporarily shutting off, alerting a user that he is engaged in a non-productive activity, or any other remedial action.

In various embodiments, video footage may be captured of a user typing. Video footage may be captured, for example, by a camera, such as by a camera peripheral device. The video footage may be used for improving auto suggestion, auto complete, computer generated text, or for any other tasks. Context clues from the video (e.g., derived from the video) may include speed, typing mistakes, deleted words, text that gets modified, and any other clues. These contextual clues or features may be used in combination with surrounding text in order to make new predictions (e.g., in order to predict the remaining words in a sentence). In various embodiments, contextual clues may be used for sentiment analysis. For example, if a user is typing in a very animated way, then a happy or excited sentiment may be inferred. In various embodiments, contextual clues are used in combination with the inferred meaning of the text in order to estimate a sentiment.

In various embodiments, a peripheral device may correct or otherwise alter user inputs. The peripheral device may make such corrections or alterations prior to transmitting the inputs to a user device. In various embodiments, a keyboard may correct typing inaccuracies before displaying, transmitting, or otherwise handling user inputs. For example, a user might type ‘teh’ and the keyboard outputs ‘the’ to the associated user device (e.g., computer).

In various embodiments, a peripheral device may make automatic corrections based on both a particular input (e.g., an erroneous input), and a user behavior (e.g., typing style). For example, one type of error may be common with a particular typing style. Thus, for example, if an error is detected, then the error may be corrected if it is known that the user employs that typing style. Identified errors or mistakes may be handled differently depending on whether the typing style is, for example, ‘touch’, ‘chop-stick’, ‘looking at’, ‘anthropometry’, etc.

In various embodiments, certain mistakes or errors may be more common with certain types of keyboards. For example, the relative key spacing on certain types of keyboards may make it more common for certain keys to be inadvertently interchanged. In various embodiments, an identified error may be corrected one way if a user has one type of keyboard, or another way if the user has another type of keyboard.

In various embodiments, a user's game performance, chess performance, productivity, etc., is predicted based on initial movements, initial activities, initial performances, and/or environmental queues. For example, the central controller may predict a user's ultimate score in a game based on his first five minutes of play. As another example, the central controller may predict a user's performance based on the ambient noise level. If it is predicted that the user will achieve a high performance, then the user may be encouraged to continue. However, if it is predicted that the user will achieve a poor performance, then the user may be advised to halt his activities (e.g., halt his game playing), seek to change his environment (e.g., move to a quieter place), or to take some other action (e.g., to take a deep breath).

In various embodiments, tracking performance on a game (or other task, e.g., typing speed) may be used to measure the effectiveness of vitamins, food, red bull, drugs, etc. For example, it may be desirable to market a product as a performance enhancer, or it may be desirable to ensure that a product does not have harmful side effects, which might manifest themselves as poor performance in a video game or other tasks. Thus, in various embodiments, players may be asked to document when they have ingested certain vitamins, food, drinks, or other items. The player's performance (e.g., game score) may then likewise be documented. In various embodiments, a player is asked to play a game or perform some other task both before and after ingesting a food, beverage, vitamin, drug, etc. In this way, the effects of the item ingested can be better discerned. In various embodiments, when a sufficient number of players have ingested an item and also performed a task, a conclusion may be drawn about the effects of the ingested item on the performance of the task.

Following an aforementioned experiment, for example, an energy drink manufacturer might advertise that after one drink, game performance is elevated for 2 hours, versus only 1 hour for the competition.

In various embodiments, a user's ingestion of an item may be documented in an automated fashion. For example, a pill bottle may communicate wirelessly with a user device, with the central controller, or with some other device. The pill bottle may automatically note when it has been opened, and transmit the time of opening to another device for documentation.

Functionality Enhancements

In various embodiments, a mouse or other peripheral may generate a collision alert. The alert may be generated when the mouse is in proximity to another item, when the mouse is heading in the direction of another item, or under some other suitable circumstance. It is not uncommon for a user to have a beverage (e.g., a hot beverage) on a desk with a peripheral. A collision detection alert may save the user from knocking over the beverage. In various embodiments, the alert may be in the form of a beep or some other audible sound. In various embodiments, a peripheral device will brake, such as by locking a wheel on the underside of the device.

In various embodiments, a mouse pointer may be configured to move in non-standard ways. For example, rather than moving in a continuous fashion that mirrors the motion of a mouse, a mouse pointer may follow an edge (e.g., of an application window), jump from one discreet location to another (e.g., from one text entry box to another), or take some other non-standard path. The configuration of mouse movement may be program or app dependent. For example, within the window of an app, the mouse pointer behaves one way, while outside the window of the app the mouse pointer behaves in another way.

In various embodiments, the motion of a mouse is projected from two dimensions into one dimension. The one dimension may correspond to some edge in an app, such as to the edge of a table, the edge of a row of cells (e.g., in a spreadsheet), the edge of a page, or to any other edge, or to any other one-dimensional object. Thus, for example, if a user moves the actual mouse perpendicular to the edge, then the mouse pointer does not move at all. On the other hand, if the mouse moves parallel to the edge, then the mouse pointer will move along the edge.

In various embodiments, a mouse pointer may move only between certain objects. For example, the mouse pointer moves only from one cell to another cell in a spreadsheet. As another example, a mouse pointer moves only between examples of a particular phrase (e.g., “increased revenue”) in a text document. This may allow a user to quickly find and potentially edit all examples of a particular phrase or wording. In various embodiments, a mouse pointer moves only to instances of the letter “e”. In various embodiments, a mouse pointer moves only to proper names. In various embodiments, a mouse pointer is configured to move only among instances of a particular category of words or other objects.

In various embodiments, a mouse pointer is configured to move from one text entry box to another. For example, if a user is filling in a form, each nudge of the mouse will automatically move the mouse pointer to the next box to fill in. The mouse may also auto-fill text entries based on stored information or based on deductions.

In various embodiments, a peripheral provides noise cancellation. A peripheral may receive an indication of ambient sounds, such as via its own microphone, or via signals from other devices. The peripheral may then emit its own sounds in such a way as to cancel the ambient sounds. For example, a peripheral device may emit sound waves that are of the same frequencies, but 180 degrees out of phase with the ambient sound waves. The peripheral device may further estimate the location of a user, such as via physical contact with the year, via a visual of the user (e.g., using a camera), via knowledge of a user's typical positioning with respect to the peripheral device, or in any other fashion. Having estimated the location of the user, the peripheral device may better generate sound waves that cancel the ambient sound waves at the location of the user.

Customization and Tailoring

In various embodiments, the outputs of a peripheral device (e.g., a mouse, keyboard, or headset) may be customized. Outputs may include beeps, tones, clicking sounds, pressing sounds, alerts, alerts to incoming messages, warning tones, lights, light blinks, or any other outputs. Customizations may include changing volume of a sound or other noise. For example, to avoid irritation, a user may wish to silence any audible outputs coming from a peripheral device. This may constitute a silence mode. In various embodiments, a volume of audio outputs may be set to any desired level.

In various embodiments, a particular melody, tune, jingle, tone, note, beat, rhythm, or other audio may be set for an output of a peripheral device. For example, a user may customize a sound that will be made by a mouse when there is an incoming message from another user. In various embodiments, a user may customize the sound of mouse clicks, scrolls of a mouse wheel, key presses on a keyboard, or any other sound. For example, a mouse click may assume the sound of a chime. In various embodiments, a user may customize any audible output that may be made by a peripheral device.

In various embodiments, sounds emanating or resulting from a peripheral device may be broadcast only by a headset. For example, the sound of a mouse click is broadcast only within a headset that a user is wearing. In this way, for example, sounds made by a peripheral device may avoid irritating other people in the vicinity.

In various embodiments, a user may purchase, download, and/or otherwise obtain sound effects for a peripheral device.

In various embodiments, the physical appearance and/or the physical structure of a peripheral device may be customizable. A user may have access to various component physical structures of a peripheral device. The user may have an opportunity to assemble the component structures in different configurations as desired by the user. For example, a user may have access to blocks, beams, rods, plates, or other physical structural components. These components may then snap together, bind together, screw together, join with hooks, or otherwise come together.

By assembling his or her own peripheral device, a user may customize the size of the device to best suit his hand size or hand orientation. A user may select components with a desired texture, hardness, weight, color, etc. A user may select components with a desired aesthetic. A user may also construct a peripheral device with an overall appealing shape.

In various embodiments, a user may add components that provide entertainment, distraction, or other appeal. For example, a user may build a fidget spinner into a mouse.

In various embodiments, inputs received at a peripheral device may be reflected or manifested in a game character, in a game environment, or in some other environment. Inputs received may include button presses, mouse motions, key presses, shakes of the head, nods of the head, scrolls of a wheel, touches on a touchpad or touch screen, or any other inputs. Inputs may include pressure used (e.g., to press a key or a button), speed (e.g., the speed of a mouse motion), or any manner of providing an input. Inputs may also include sensor readings, such as readings of a user's heart rate, breathing rate, metabolite levels, skin conductivity, etc. In various embodiments, features or derivative values may be computed based on inputs. For example, the rate at which keystrokes are made, the variation in time between mouse motions, the longest mouse motion in a given period of time, or any other value derived from inputs may be computed.

In various embodiments, inputs or derivatives of inputs may be translated into characteristics or attributes of a game character or game environments. Attributes may include the manner in which a character makes footsteps. For example, if a user's inputs are made with a relatively large amount of force (e.g., relative to the typical force used by a user), then the footfalls of a game character associated with the user may be more forceful. Attributes may include the footwear of a character, the attire of a character, the weight of a character, the speed at which a character moves, the facial expressions of a character, the breathing rate of a character, hairstyle of a character, or any other attribute of a character or a game environment.

In various embodiments, the weather in a game environment is dependent on user inputs. For example, if a user's heart rate is high, the clouds in the sky of a game environment may be moving quickly.

In various embodiments, a user may create custom mouse pointers. The user may create a mouse pointer that incorporates a favored picture (e.g., a picture of the user's dog), logo, or other graphic. In various embodiments, a user may send a custom mouse pointer to another user, such as by sending the mouse pointer to the other user's mouse. The other user may then have the opportunity to view the mouse pointer, e.g., reflected on a screen of an associated user device. The user may then have the opportunity to continue using the mouse pointer, or to decline to use the mouse pointer.

In various embodiments, a mouse pointer may react to its environment. For example, if the mouse pointer is a dog, and the mouse pointer comes near to a word (e.g., in a text document) describing a food item, then the dog may lick its lips.

Multiple Modes

In various embodiments, a mouse (or other peripheral device) may be capable of operating in different modes or states. Each mode may utilize received inputs (e.g., mouse click, mouse movements, etc.) in different ways. In a first mode, a mouse may allow interaction with a local or internal application (e.g., with an application 9318 running on the mouse). If the application is a survey application, then, for example, different mouse inputs (e.g., left button versus right button) may correspond to different answers to a multiple choice question. If the application is a messaging application, then, for example, the scroll wheel of a mouse may allow the user to scroll through different pre-composed messages for selection and submission to a friend.

In a second mode, a mouse may function as a traditional mouse, and inputs received at the mouse may be passed to a user device, such as to control an application being run on the user device.

As a mouse may have a limited number of input components (e.g., buttons), it may be difficult for the mouse to operate a local or internal application and serve as a traditional mouse at the same time. If the mouse attempted both, then a given input provided by a user for one purpose (e.g., to answer a survey question on the mouse) could be inadvertently misinterpreted as being intended for another purpose (e.g., as a click within an application on a user device).

Thus, it may be advantageous that a mouse can switch between modes whereby in one mode user inputs are directed to an internal application, and in another mode the mouse is functioning traditionally. In various embodiments, a user may switch between modes using some predetermined input (e.g., three rapid clicks on the right mouse button). In various embodiments, a mouse may include a dedicated switch, toggle, or other component for switching between modes. In various embodiments, a mouse may be capable of operating in more than two modes.

Social Connectivity

Various embodiments provide for a quick and/or convenient way for a player to initiate a game. Various embodiments provide for a quick and/or convenient way for a player to initiate a game with a select group of other players (e.g., friends). Various embodiments provide for a quick and/or convenient way for a player to invite other players into a gaming environment, such as a private gaming environment, or such as a private game server.

In various embodiments, a player may use a sequence of keystrokes or button presses (such as a hotkey sequence) to initiate a game, invite players to a game, invite players into a gaming environment, etc. For example, a single click of a mouse by a player brings the player's friends into a private game server.

In various embodiments, two or more peripheral devices are configured to communicate with one another. The lines of communication may allow transmission of messages (e.g., chat messages, taunts, etc.), transmission of instructions, transmissions of alerts or notifications (e.g., your friend is about to start playing a game), and/or transmission of any other signals.

However, in various embodiments, it may be desirable for a given user to indicate that the user is unwilling or unavailable to receive communications at his peripheral device. For example, the user may be working, or may be away from his user device and associated peripheral device. In various embodiments, a peripheral device may be configured to receive communications only during certain times, such as only on weekends, only between 8 a.m. and 10 p.m., etc. In various embodiments, a peripheral device may be configured to not receive communications during particular hours. These may be, e.g., “Do not disturb” hours.

In various embodiments, a peripheral device can be manually set to be unavailable as for communication. For example, when a user steps away from a peripheral device, the user may manually set the peripheral device to be unavailable to receive communications. In various embodiments, a peripheral device may automatically detect when a user has stepped away from the peripheral device, or is no longer using the peripheral device for the time being. For example, if there has been more than five minutes of inactivity, then a peripheral device may automatically configure itself to stop receiving communications. When a user returns to a peripheral device, the peripheral device may detect the usage by the user, and may once again configure itself to receive communications.

In various embodiments, if a peripheral device is configured to not receive communications, the peripheral device may transmit an indication of such configuration to any other device that attempts to communicate with it. For example, if a second user tries to communicate with the peripheral device of a first user, the peripheral device of the first user may send an automatic message to the second user indicating that the first user is not available to receive communications.

In various embodiments, a peripheral device may receive communications, but may also indicate that the user is away or is otherwise not paying attention to such communications. In such cases, for example, any communications received at the peripheral device may be stored and revealed to the user once the user is again available to peruse or respond to communications.

In various embodiments, a document may include metadata describing the author or creator of some part of the document. The document may be a collaborative document in which there have been many contributors. Example documents may include a slideshow presentation, a PowerPoint® presentation, a text document, a spreadsheet, or any other document. A user may click or otherwise select some portion of the document, such as a chart of financial data embedded within the document. The user may then be shown the creator of that part of the document. For example, the name of the creator may appear on the peripheral device of the user. In various embodiments, a user may click on a portion of the document and may thereupon become connected to the author of that part of the document. The connection may take the form of a communications channel between the peripheral devices of the initiating user and of the author.

Engagement

In various embodiments, it may be desirable to ascertain an engagement level of a user. This may measure the degree to which a user is focusing on or participating in a task, meeting, or other situation. In various embodiments, it may be desirable to ascertain an engagement level of a group of users, such as an audience of a lecture, participants in a meeting, players in a game, or some other group of users. If there is low measured engagement, it may be desirable to change course, such as changing the format of a meeting, allowing users to take a break, introducing exciting material, explicitly calling on one or more users, or making some other change.

In various embodiments, engagement may be measured in terms of inputs provided to a peripheral device. These may include button or key presses, motions, motions of the head, motions of a mouse, spoken words, eye contact (e.g., as determined using a camera), or any other inputs. Engagement may also be ascertained in terms of sensor readings, such as heart rate or skin conductivity. A level of engagement may be determined or calculated as a statistic of the inputs, such as an aggregate or summary of the inputs. For example, a level of engagement may be calculated as the number of mouse movements per minute, a number of head nods per minute, a number of words typed per minute, the percentage of time that eyes were directed to a camera, or as any other suitable statistic. As another example, engagement may be calculated as a heart rate plus five times the number of mouse movements per minute.

In various embodiments, some inputs may detract from a calculated engagement level. For example some movements of a peripheral device may be associated with distracted behavior (e.g., movements associated with playing a game while a meeting is in place). Thus, the more of such movements, the lower the perceived engagement level.

With respect to a group, an engagement level may be calculated as a mean or median of engagement levels for the individuals within the group. In various embodiments, an engagement level is calculated based on all the inputs received from the group. For example, a group is considered highly engaged if there are more than ten mouse movements amongst all the group members within a given time period. As will be appreciated, various embodiments contemplate other ways of calculating an engagement level.

Game Enhancements, Leveling the Playing Field

In various embodiments, a player may wish to celebrate, taunt, irritate, distract, or otherwise annoy another player. Ways in which one player can irritate another player include playing a sound in the other players headset. These may include the sound of a mosquito, bee, baby crying, siren, fingers on a chalkboard, Styrofoam™ bending, a shrieking wind, or any other irritating or distracting sound. In some embodiments, the sound may be controlled by one player who has won a battle or a round of a game, and they may be able to continue the sound for a certain period of time, while the receiving player cannot turn it off, or down.

In various embodiments, a player may pay for pre-packaged taunts. These may include pre-recorded phrases, sounds, images, videos, or other media that can be used to taunt or annoy another player. In other embodiments, these may also include phrases, sounds, images, videos, or other media that the player can record themselves. When triggered by a first player, the taunts may be delivered to a second player (e.g., with the intermediation of the central controller or some other intermediate device). In various embodiments, a taunt is communicated directly from a first user's peripheral device to a second user's peripheral device.

In various embodiments, a player may receive pre-packaged or recorded media in other ways, such as a reward for winning.

A first player may also irritate a second player by causing the second player's mouse to act in various ways. The second player's mouse cursor may write out “you suck”, or some other taunting phrase or gesture. The mouse pointer itself may change to “you suck”, “Player 1 rules,” or to some other taunting phrase or gesture.

In various embodiments, random inputs or outputs may be added to a player's peripheral device as a way to irritate the player. For example, random motions may be introduced to a players mouse, or added to the intentional motions made by a player with a mouse; or the motions made by a player may be left-right swapped, or up-down swapped, or randomly magnified or scaled down, or randomly slowed down or sped up, or completely disabled for a period of time. Random keys may be pressed on a player's keyboard, or some keys may be disabled, or the entire keyboard may be disabled for a period of time. Random noise, or pre-recorded messages, music, or other sounds may be added to a player's audio feed so that the player has a harder time hearing and processing what is happening in a game. In other embodiments, a players display may be dimmed, flipped upside down or left-right flipped, or random colors or images may be introduced, or the display could be completely disabled for a period of time. As will be appreciated, other distracting or random inputs or outputs may be added to a player's peripheral device or to any device associated with a player.

In various embodiments, a player of a game may wish to be informed of choices or actions made by other players under similar circumstances to those currently facing the player (or under circumstances that the player had encountered). This may allow a player to learn from the decisions of other players, to become aware of what other players did, and/or to compare his own performance to that of other players. When a player reaches a particular game state, the central controller may recount other times that other players had been in similar states. The central controller may generate statistics as to what decision or what actions were made by the other players in the similar game states. The central controller may cause such statistics to be presented to the player. For example, a player may be informed that 60% of players took a left at a similar juncture in the game, with an average subsequent score of 234 points. On the other hand, 40% of players took a right with an average subsequent score of 251. In various embodiments, a player may wish to see decisions of only a subset of other players. This subset of other players may be, for example, the players friends, or top players.

In various embodiments, a user may receive offers of work, labor, jobs, or the like. Such offers may come via peripheral devices. For example, offers may be presented on the screen of peripheral devices. In various embodiments, the work offered may involve the use of such peripheral devices. For example, work may include editing documents, providing instruction on using a peripheral device (such as in the context of a particular application), controlling a video game character through a tricky sequence, answering a captcha question, assisting a handicapped user, or any other offer of work. In return for performing work, a user may receive payment, such as monetary payment, game currency, game privileges, or any other item of value or perceived value.

In various embodiments, the usage of peripheral devices may indicate the presence or absence of employees (or other individuals) at a company, or other organization. For example, if an employee's mouse is not used all day, it may be inferred that the employee was absent. Company-wide (or department-wide, etc.) data may be gathered automatically from peripherals to determine patterns of employee absence. Furthermore, peripheral devices may be capable of determining their own proximity to other peripheral devices. For example, a peripheral device may determine that it is near to another device because a wireless signal from the other device is relatively strong.

Proximity data, compared with usage data, may allow a company to determine a spatial pattern of absences among employees. This may, for example, represent the spread of an illness in a company. For example, it may be determined that 80% of employees within twenty feet of a given employee, were absent. Further, the presence or absence of employees may be tracked over time. In this way, a spatial pattern of absences may be correlated to a temporal pattern of absences. For example, it may be determined that, over a given five-day period, the number of absent employees has been increasing, and the distances of the desks of newly absent employees has been increasing relative to a fixed reference point (e.g., to the first employee in a company who was sick).

In various embodiments, peripheral devices may provide early warnings of contagious illness within a company. This may allow a company to take proactive actions to prevent further illness among its employees. This may, in turn, increase employee morale, reduce sick days, reduce insurance costs, or provide other benefits.

In various embodiments, peripheral devices may detect other signs of illness. Such signs may include sneezing (e.g., detected via a microphone), skin conductivity, or other vital signs, or other biometrics. Employees suspected of being ill may be allowed to leave early, may be given their own private offices, may be provided with a mask, etc.

In a gaming context, a player or a viewer may click on another player's character and see what hardware that character is using. There may be a link to purchase the hardware. An avatar may wear a logo or other indicia indicating which hardware is currently controlling it.

In various embodiments, a teacher, professor, or other educator may wish to receive feedback about student engagement. Feedback may be particularly useful in the context of remote learning where a teacher may have less direct interaction with students. However, feedback may be useful in any context. In various embodiments, feedback may take the form of biometrics, vital signs, usage statistics, or other data gathered at students' peripheral devices.

In various embodiments, a heart rate is collected for the entire class and the average (or some other aggregate statistic) is sent to the teacher (e.g., to the teacher's mouse). The statistic could be displayed in different colors depending on the value of the statistic. For example, if the average heart rate is high, the teacher might see the color red on her mouse, whereas the teacher might see green if the average heart rate is low. It could display in a different color if elevated. Information about students' heart rates, or other vital signs, may allow a teacher to determine when students are anxious, confused, unfocused, etc. The feedback may allow a teacher to adjust the learning activity.

In various embodiments, an educator may receive information about whether or not students' hands are on their respective mice. If there is a lack of mouse movement among students (e.g., on average) then this may be indicative of a lack of engagement by students.

In various embodiments, rather than receiving continuous feedback about student engagement, a teacher may receive alerts if engagement data or engagement statistics satisfy certain criteria. For example, a teacher receives an alert if the average number of mouse motions per student per minute falls below 0.5. The alert may take the form of a colored output on the teacher's peripheral device (e.g., the teacher's mouse turns red), or it may take any other form.

In various embodiments, a teacher may cause the peripheral devices of one or more students to generate outputs. Such outputs may be designed to grab the attention of students, to encourage student engagement, to wake up students, or to accomplish any other purpose.

In various embodiments, a teacher may cause a student's peripheral to exhibit movements (e.g., a mouse may vibrate, keyboard keys may depress and elevate), to produce sounds, to show color, or to otherwise generate outputs. Such outputs may be designed to encourage student engagement.

In various embodiments, a teacher pushes a quiz to students. The quiz may be presented via a student's mouse or via some other peripheral device. Each student may receive a randomized quiz. For example, each student may receive different questions, or each student may receive the same questions but in different orders, or each student may receive the same questions with multiple choice answers in different orders. The randomization of quizzes may reduce the chance of collaboration among students. Three clicks by one student may be the right answer/response for that one student, and two clicks and a tracking ball move may be the right answer to the same question for another student.

Mouse Output Examples

In various embodiments, a mouse is used to output information to a user. The mouse could contain its own internal processor. Output from the mouse could take many forms. Because some of these embodiments could include relatively expensive components, the mouse could include hardening or an external case of some kind to protect the mouse.

In various embodiments, a mouse includes a display screen, such as a digital display screen. This could be a small rectangular area on the surface of the mouse which does not interfere with the activity of the user's fingers while using the mouse. This display area could be black and white or color, and would be able to display images or text to the player. This display would receive signals from the user device or alternately from the central controller, or even directly from other peripheral devices. The screen could be touch enabled so that the user could select from elements displayed on this digital display screen. The screen could be capable of scrolling text or images, enabling a user to see (and pick from) a list of inventory items, for example. The screen could be mounted so that it could be flipped up by the user, allowing for a different angle of viewing. The mouse display could also be detachable but still controllable by software and processors within the mouse.

In various embodiments, a mouse includes one or more lights. Lights (e.g., small lights) could be incorporated into the mouse, allowing for basic functionality like alerting a user that a friend was currently playing a game. A series of lights could be used to indicate the number of wins that a player has achieved in a row. Simple lights could function as a relatively low-cost communication device. These lights could be incorporated into any surface of the mouse, including the bottom of the mouse. In some embodiments, lights are placed within the mouse and can be visible through a semi-opaque layer such as thin plastic. The lights could be directed to flash as a way to get the attention of a user.

In various embodiments, a mouse may display or otherwise output one or more colors. Colors may be available for display or configuration by the user. The display of colors could be on the screen, mouse buttons, or on any other part of the mouse (or on keys of keyboard). In various embodiments, colors (e.g., color, intensity, color mix, etc.) may be adjusted by the trackball or scroll wheel, or varied by the sensory information collected. The intensity of lights and colors may also be modified by the inputs and other available outputs (games, sensory data or other player connected devices).

In various embodiments, a mouse may generate output in the form of motion. This could be motion of the device forwards, backwards, tilting, vibrating, pulsating, or other motions. Motions may be driven by games, other players, actions created by the user, or by any other cause. Motion may also be delivered in the form of forces against the hand, fingers or wrist. The mouse/keyboard device could become more firm or softer based on the input from other users, games, applications, or by the actual user of the mouse/keyboard.

In various embodiments, a glove may be a peripheral device. In various embodiments, a glove may be part of a peripheral device. For example, a glove may be attached to a mouse. A device attached to a mouse could allow for compression or pulsing of the hand for therapy purposes. The device could provide feedback to the user from other users by simulating compression and pulsing as well.

In various embodiments, a mouse may generate output in the form of sound. The mouse could include a speaker utilizing a diaphragm, non-diaphragm, or digital speaker. The speaker could be capable of producing telephony tones, ping tones, voice, music, ultrasonic, or other audio type. The speaker enclosure could be located in the body of the mouse.

In various embodiments, a mouse may generate output in the form of temperature. There could be an area (e.g., a small area) on the surface of the mouse or on keyboard keys which contains heating or cooling elements. These elements could be electrical, infrared lights, or other heating and cooling technology. These elements could output a steady temperature, pulsating, or increase or decrease in patterns.

In various embodiments, a mouse may generate output in the form of transcutaneous electrical nerve stimulation (TENs). The devices could contain electrodes for transcutaneous electrical nerve stimulation. These electrodes could be located in the surface of the mouse corresponding with areas used by fingertips or by the palm of the hand. These electrodes could also be located in a mousepad or in ergonomic devices such as a wrist rest.

In various embodiments, a mouse or other peripheral device may generate output in the form of smells, scents, or odors. A peripheral device may output scent via an air scent machine (odor wicking or scent diffuser). The devices could contain an air scent machine, either a scent wicking device or a scent diffusing device. This air scent machine could be located in the body of the mouse.

In various embodiments, a mouse may convey messages or other information using standard signals provided to a user device, thereby causing a mouse pointer to move on the user device in a desired way. For example, a mouse may cause a mouse pointer to trace out the word “Hello”. In various embodiments, a mouse may cause a pointer to rapidly trace and retrace the same path, thereby creating the illusion of a continuous line, ark, or other shape. I.e., the mouse may cause the mouse pointer to move so quickly that the human eye is unable to discern the mouse pointer as its own distinct object, and sees instead the path traced out by the mouse pointer. In this way, a mouse may output text, stylized text, shapes (e.g., a heart shape), images, cartoons, animations, or any other output. An advantage of creating messages in this way is that such messages need not necessarily be application-specific. In other words, the mouse may cause a cursor to move along a particular trajectory regardless of the application at the forefront of the user device.

In various embodiments, a mouse may convey a message through interaction with an application on a user device. For example, a user device may have a keyboard app that allows a user to “type” alphanumeric keys by clicking on a corresponding area of a displayed keyboard. To convey a message, the mouse may automatically move the mouse pointer to appropriate keys and register a click on such keys, thereby causing the message to be typed out. For example, to convey the message “hello”, the mouse may sequentially cause the cursor to visit and click on the “h”, “e”, “l”, “l”, and “o” keys.

In another example, a mouse may interact with a drawing application (e.g., with Microsoft® Paint) to create shapes, drawings, etc., for a user to see.

In various embodiments, a mouse or other peripheral may store a script or other program that allows it to interact with an application in a particular way (e.g., so as to output a particular message).

In various embodiments, a mouse or other peripheral may have a message to convey to a user, but may require that the user be utilizing a particular application on the user device (e.g., the mouse may only be able to deliver the message through Microsoft® Paint). In various embodiments, the mouse may detect when a user is using the appropriate application from the users mouse movements. The mouse may recognize certain emotions as indicative of use of a particular application. The mouse may then assume that such application is in use, and may then cause a message to be conveyed to the user with the aid of the application.

Software

The peripherals according to various embodiments may include processors, memory, and software to carry out embodiments described herein.

Mouse/Keyboard with Stored Value

Mice or keyboards according to various embodiments may become personalized, and could contain items of monetary value such as digital currencies, game rewards, physical items, coupons/discounts, character skins and inventory items, etc. It could also store the identity of the player (and the identity of her game characters), game preferences, names of team members, etc. Game highlight clips could also be stored for later viewing or uploading to a central controller. Access to the stored value/data could require the user to provide a voice print, password or fingerprint to gain access. The value could also be stored with a user device (or central controller) and accessed through a mouse or keyboard.

In various embodiments, users could store their identity for use across games, computers, and operating systems. For example, the mouse could store the player names and passwords associated with all of their favorite game characters. This would enable a player to take their mouse from their home and go to a friend's house to use it during game play there. The user device (e.g., game console) owned by their friend would then read in data from the users mouse, enabling that user to log in with any of their characters and have access to things like saved inventory items like a +5 sword or a magic healing potion. The user's mouse could display the items in inventory on a display screen of the mouse, allowing the user to touch an item to select it for use, with the mouse transmitting the selection to the user device, game controller, or central controller. The user could also have access to store preferences and customization for things like custom light patterns on their mouse. The user's mouse might also have stored game value that would allow a user to buy game skins during a game session at their friend's house.

Because the mouse or keyboard might include items of value, in some embodiments the user must provide a password in order to gain access to the mouse. For example, the user might have to enter a PIN number by touching digits that are displayed on the surface of the mouse, or enter a PIN into the user device which then uses that PIN to get access information from the central controller in order to get access to the value in the mouse. Items stored within the mouse or keyboard could be encrypted, with the user required to provide a decryption key in order to retrieve the item. In other embodiments, unique biometrics (such as an iris scan, fingerprint, heart rate, and the like) could be required in order to gain access to the value stored in the mouse. In one embodiment, the value is unlocked when a unique pace of mouse movements or keyboard pacing matches to those of the user.

In various embodiments, the mouse itself could store encryption/decryption keys for use by the user device, allowing the mouse to act like a secure dongle.

With payment transaction software and processors/storage within the mouse, various embodiments could enable users to make microtransactions in-game. For example, a user could provide a credit card number to the central controller and arrange to have $20 in value loaded onto the storage area of the users mouse. When the user is then playing a game, he could encounter an object like a Treasure Map that could be obtained for $1. The game controller sends the offer to the display screen of the user's mouse, and the user then touches an acceptance location and the $1 is taken out of the $20 in stored value and transferred to the game controller or central controller, after which the Treasure Map is added to the inventory items of the player, either in-game or within the user's mouse itself.

In various embodiments, micropayment transactions could also enable a user to rent game objects rather than buying them. For example, the user might want to obtain a rare game skin for his character in a game, but feels that the purchase price of $10 is too high. After rejecting the purchase, the game controller could send an offer to the user's mouse of a weekly rental period for the game character skin for $1/week. The user accepts the offer and $1 is transferred to the game controller or central controller and the character game skin is then enabled for that user. Each week the player pays $1 until cancelling the subscription. Alternatively, the subscription could be for a fixed period of time, or for a fixed period of game time. For example, the player could get ten hours of use of the game character skin for $1.

Another use for micropayment transactions is to allow a user to send small amounts of money to another player, transferring funds from the user's mouse to the central controller to the mouse of the other user. Such transactions could also be used to support game streamers by enabling simple and quick transfers of value to the streamer.

Some games have treasure chests that a user can elect to open, either by paying an amount of gold coins from the game or real money (such as a micropayment from stored value in the user's mouse) or by simply electing to open it. In one embodiment, the treasure chest requires a random selection from the user. For example, the player might pick a number between one and five (by pressing the number on the touch enabled display screen on the surface of the users mouse), with the Treasure Chest only opening if the player selected the number four.

In various embodiments, a mouse may reveal or unlock items in a game. For example, a player using a mouse may see hidden trap doors when hovering the mouse pointer over a particular region in the game area. A mouse may enable access to particular game levels or areas that may otherwise be inaccessible.

By creating a physical storage location within the mouse, the user could store items like a ring, sentimental items, currency, coins, mementos, etc. For example, the user could store a thumb drive within a locked portion of the mouse, with access requiring the use of a password or thumbprint to access.

Physical items could also be included in the mouse by the manufacturer, with the user able to access that item after achieving a goal such as using the mouse for ten hours, achieving a particular level of a particular game, identifying a list of favorite games, or the like. Once this goal had been achieved, the user device could send a signal to the mouse unlocking the compartment which held the manufacturer's object. To make the object more secure, the compartment could be designed such that attempting to break the compartment open would result in the functionality of the mouse being disabled or reduced in capability. Attempts to break open the compartment could also generate a signal sent to the user device which would then initiate a phone call to the user of the device and also trigger a camera to get video/photos of the mouse.

Gameplay could also unlock keys on a keyboard. For example, the user's keyboard could have three keys that are initially non-functional. They are enabled as the user completes certain goals. For example, the user might have a key unlocked when the user defeats ten opponents in a 24-hour period. This unlocked key could enable a user to open a communication link to game secrets that would improve their chances to win a particular game.

Another aspect of the user's identity is rating information about the user's ability to play a particular game, or a rating of the user's ability to function well on a team. For example, a users mouse might store an evaluation of the user's team skills, such as by storing a rating (provided by other players or determined algorithmically by one or more game controllers) of 9 on a 10 point scale. When the user uses his mouse to play in a new game, that new game can access the 9/10 rating from the user's mouse and use the rating to match the user with other players of a similar team rating level. Even though the user may have never played that particular game before, the user's team rating would allow the player to join a more experienced team than the users beginner's status would at first indicate.

Access to a mouse or keyboard could also be used by other parties to restrict game play. For example, a parent might set play time parameters for a mouse that would lock out a user when that user exceeds three hours of game play in a given day, or it could lock the player out between the hours of 3 PM and 6 PM on weekdays. The mouse or keyboard could also be restricted to certain types of game. For example, the mouse could be set to not operate in a third person shooter type of game.

Access to the mouse could also be restricted based on the condition of the user. For example, the user device or game controller might determine that, based on the mouse inputs currently being received, the user seems to be reacting slower than normal. This might be due to the player being tired or sick. If the player falls below a threshold amount, such as a reaction time of 90% or less of normal, then the mouse could be instructed to end current game play for a predetermined period of time, such as one hour. After that hour is up, the user would again have access to the mouse, but further checks of reaction time would be made. The mouse could also end game play if the user appeared to not be playing their best game. For example, a user playing three minute speed chess might have the game controller set to send the users current chess rating to be stored in the mouse, and when that rating falls by 100 points the mouse automatically ends game play for a period of time. A user playing poker might have access to the mouse and keyboard denied after the user most too much money or was playing in a way that was indicative of a player on tilt.

Stored value in a mouse could also be used to pay for items outside of a game environment. For example, a user at a coffee shop with a laptop computer and mouse could use value in the muse to pay for a coffee. In another embodiment, value stored in a mouse could be used to buy dinner via Seamless.

In various embodiments, value stored in a mouse could be locked up if the mouse was taken out of a designated geofenced area.

In various embodiments, stored value is associated with a mouse or with another peripheral. Value may take physical form, such as gold or currency physically locked inside of a mouse. Stored value may take other forms, such as cryptocurrency, electronic gift certificates, etc. In various embodiments, a user may perform certain actions on a peripheral in order to unlock, receive, or otherwise benefit from stored value. In various embodiments, a user must type in some predetermined number of words (e.g., one million words) to unlock value. In various embodiments, the words must be real words, not random key sequences. In various embodiments, a user must make a certain number of cumulative mouse motions in order to unlock value. For example, the user may move a mouse for one kilometer in order to unlock value.

In various embodiments, a mouse/keyboard or other peripheral device could respond to game conditions; in various embodiments, the mouse and keyboard may gain or lose functionality, or have altered functionality as a result of in-game development, and/or as a result of player actions during a game. In various embodiments, as a result of a player action, or an in-game development, a peripheral device becomes disabled for some period of time. For example, if, in a game, player one shoots the gun out of player two's hand, then player two's mouse may become disabled for thirty seconds. As another in-game example, if player one kills player two, player two's mouse and keyboard are disabled for five minutes. As another example, if a player takes damage in a game (e.g., in boxing), the player's mouse response lags or precision drops. As another example, if a player is drinking alcohol in a game (or while playing a game), mouse responsiveness becomes unpredictable, lags, or the keyboard begins to output more slowly or the wrong character now and then. Gamers would have the option of limiting this type of control to certain people.

In various embodiments, a player may pay to recover lost functionality of a peripheral device. The player may be able to pay to recover lost functionality immediately, or may pay to reduce the period of time for which functionality is lost. A player might pay the central controller, a game provider, or the person who caused the player to lose functionality in his peripheral device.

Mouse Extra Sensors Alter In-Game Character or Avatar or Actual Response from a Mouse-Keyboard

A peripheral device (e.g., mouse, keyboard, etc.) may be equipped with various sensors that allow for collection of sensory data. This data could be used to alter the experience of the user(s) in both the virtual world (e.g. the game or virtual activity) and physical world (e.g. the physical mouse or keyboard).

In various embodiments, a mouse includes an accelerometer and/or another motion sensor. The sensor may be used to control the movement of objects in a game, including the movement of objects in three dimensions in a game. The sensor may also be used to control the movement of objects in other environments. In various embodiments, a user may provide an input to the sensor by positioning the mouse, such as positioning the mouse somewhere in 3-D space. A player in a game could use the accelerometer data to control the 3-D movement of objects either above, below, in front or behind the player. This is in contrast to the current 2-D dimensional play and movement. As an example, a player engaged in a combat game could pick up a flare and instead of using a 2-D enabled button or mouse control to launch the flare, the accelerometer equipped mouse could allow the user to move the mouse up to throw the flare up in the air or in the direction the mouse moves. This provides a more realistic experience for the game player.

In various embodiments, an accelerometer or other motion sensor may sense movement or momentum. For example, a user may move a mouse. In response, a character may move in the direction and pace of the mouse. Conventionally, movement of a character is controlled by static processing of buttons or joysticks to move the character in various directions within a game. In order to provide a more enhanced experience, the sensor-enabled mouse could be used to control the pace of movement and direction of the character. For example, if a character is running from the enemy, the mouse could be picked up and held with arms moving as if the user were running. The movement of the arms and pace of the arms could be reflected in the character and their movement. Once the arms stop moving, the character stops. If the user moves to the left, right, jumps up or lowers, the movement of the mouse in those directions could be reflected in the character as well.

In various embodiments, a user may move a mouse to perform a desired action in a game. Movements may include: the tap of the mouse on a surface; the tilting of the mouse to the left, right, front or back; quick movement to the left or right (front/back); or any other movements. Conventionally, mouse clicks or finger taps on a mouse may reflect some action that the user wants to occur on the screen. With a sensor-equipped mouse, the various unique movements of the user could reflect their specific choice in a game or any application setting. For example, as a card game player, the user may signal the dealer to deal another card by simply tapping the mouse; if the user wants to pass, they may quickly move the mouse to the right; or if the user wishes to fold and end the game, they may raise the back of their mouse. These movements could be configured to reflect actions particular to each game.

In various embodiments, a mouse may contain a tactile sensor. A tactile sensor may include galvanic sensors or other tactile sensors. The tactile sensor may be used, for example, to measure and adjust excitement level of the user. A tactile sensor may gather sensory information collected through the skin (e.g., temperature, pressure, moisture, metabolites, vibration).

Many games have predetermined levels and paths to successfully accomplish the game. Users either navigate successfully without much difficulty or fail repeatedly trying to accomplish a task. Measuring the relative excitement/intensity/frustration level (or lack thereof) may possibly make the game more fun. With the collection of sensory data in the mouse-keyboard, the tactile data collected could be used to alter the user experience and make the game more or less difficult. For example, a skilled game player may always navigate through a section of the game with little or no trouble. The tactile sensor is reading that the player's skin temperature, pulse rate and pressure applied to the mouse-keyboard are relatively consistent. In this case, to add to the excitement, the game could automatically introduce new and more challenging scenarios to raise the heart rate, force applied to the mouse-keyboard and overall temperature of the player. Conversely, if a novice player repeatedly fails in areas of the game and the tactile sensors are reading elevated levels, the game could provide on screen coaching to maneuver through the game or introduce easier levels to increase their skill.

In various embodiments, a tactile sensor may measure excitement levels in one player. Other players may then be apprised of the player's excitement level. In various embodiments, sensory information is collected through the skin (e.g., temperature, pressure, moisture, vibration information). Today, player information is either observed on screen or through audio queues. With the collection of tactile information from all players via mouse-keyboard, this information could be sent to each player's mouse-keyboard as another piece of data to enhance the experience and gain insight to their opponents reaction to the game. For example, a player may have an increased heart rate or elevated temperature during an intense battle. This information could be sent to an opponent's mouse-keyboard via lights/vibration during the game in order to adjust their playing style. If they are your enemy in the game, you may notice they are getting agitated and may wish to bring in other forces as they are nearing a point of failure. On the other hand, if the tactile sensory data provided indicates a teammate has increased sensory data and is reflected in your mouse/keyboard, you may wish to abandon your current task and go to assist.

In various embodiments, a tactile sensor may take measurements, which are then reflected in a user's avatar. In various embodiments, a tactile sensor may collect galvanic measure of temperature or moisture levels. Using galvanic measurements, the collected information could reflect in the in-game avatar. For example, if the sensor measures a person's temperature or moisture level (sweat) increasing, the in-game avatar could dynamically change to show the avatar sweating, face becoming red, facial expression of exhaustion, change of clothing to reflect body temperature (e.g., the avatar may wear lighter clothing), and/or the avatar may consume fluids. Conversely, if the sensor measures indicate a calm manner, the avatar could show a pleasant expression, casual stride or cooperative behavior.

In various embodiments a mouse or keyboard may include a biometric sensor. The sensor may determine a heart rate or other vital sign or other biometric measurement. The sensor reading may be incorporated into a game. In various embodiments, a finger sensor (or other sensor) collects the heart rate of the user. The heart rate of the player (user) is collected and provided to the other game players with sensor-enabled mice or keyboards. As the heart rate of the player is collected, the pulsing rate is sent to the other users in the form(s) of light pulses or actual vibration reflecting the exact heartbeat of the player. As a player enters an intense part of the game, or when the player loses the game, the players heart rate may increase. In various embodiments, this increase in heart rate may be seen in another's mouse-keyboard and/or felt via a corresponding vibration. This allows each player to feel more connected to the physical person, making the game appear more realistic.

In various embodiments a mouse or keyboard may include a force sensor. In various embodiments, the force sensor may allow force or pressure controlled movement of game/application items. Forces applied to a mouse-keyboard can be used to invoke actions in a game or application. For example, in a combat game with multiple weapon types, each may require a different level of force to pull a trigger. Instead of clicking a button or moving a joystick to fire a weapon, force applied to a mouse could be used. If one weapon is easier to shoot, the force needed on the mouse could be minimal, whereas larger, more complex weapons may require a higher degree of pressure and/or may require pressure from multiple locations on the mouse-keyboard (e.g. two fingers and the palm of your hand).

As a competitor, the player may wish to manipulate the play of their opponent. The game could allow the player to increase the mouse pressure making it more difficult for an opponent to engage a weapon, or require them to use multiple force actions on the mouse-keyboard to engage a weapon.

In various embodiments, an amount of force or pressure sensed may indicate tension/frustration on the part of a player. Such tension or frustration may be reflected in an avatar. Using forces applied to the mouse-keyboard could indicate frustration by the user. In this case, the in-game avatar could display an expression of frustration or the game could adjust to make elements of the game easier until the frustration level is reduced. If the mouse-keyboard are slammed on the table, this could reflect frustration and cause the avatar to slam their first on an object or stomp on the ground in a game.

In various embodiments a mouse or keyboard may include one or more lights. In various embodiments, lights may adjust light to display activity, such as player activity. In various embodiments, data about player activity may be collected including player progress, opponent progress, availability, excitement level, rating, etc. Player (user) information may be collected in game or on device; opponent (other user) information may be collected in game or on device or via other connected devices.

Using information collected from multiple sources such as sensor equipped mouse-keyboard, external data sources like weather alerts, amber alerts, alarm systems, temperature sensors, gaming data from other opponents, player availability indicators (active indication versus calendar notification), the lights on a mouse-keyboard could be turned on, off, adjust brightness and patterns to reflect the specific event taking place. For example, if the player is engaged in a combat gaming scenario, the lights on a mouse-keyboard may display a rapid pulsing bright red color on the mouse or keyboard to indicate the battle is intense. On the other hand, if my doorbell rings, my mouse may suddenly reflect a bright green light indicating someone is at the door. These colors, patterns and brightness levels can be adjusted by the user.

Players often have teammates they frequently engage in games. When one player wants to play a game, they may wish to alert others of their availability or see another player's availability. For example, if one player is available to play a game, they may simply press a button on the mouse-keyboard that immediately lights up a green indicator on their friend's mouse-keyboard. This signals to their friend to join a game. Conversely, if for some reason a player is not able to play a game, they could hit a button on the mouse that indicates to others they are not available. This could be a green color or any other visual indicator.

In various embodiments a mouse or keyboard may include one or more audio output devices. In various embodiments, the audio output may be used to locate a misplaced device. In various embodiments, users desire the ability to find devices. As the mouse-keyboard becomes more customized devices that are carried from location to location, the opportunity to lose the device increases. Users may desire the ability to ping their device. For example, if a player takes their mouse to a friend's house to play a game and it is misplaced, the user can log in to their other electronic device and ping the mouse. The sound from the mouse-keyboard can be heard and the device located.

Game players or other users can send an audio signal to a mouse-keyboard. During a game, a user may send their friend or opponent a sound to distract them, encourage them or alert them. For example, if a person is playing a combat game and they ambush an opponent, they could send a loud sound to their opponent to scare them or distract them. Likewise, if during a game they see their teammate about to be attacked, they could alert them via a sound. Furthermore, at the end of a successful win, all team members' sounds could play various tones indicating success.

In various embodiments a mouse or keyboard may include a metabolite sensor. The metabolite sensor may collect or detect chemical content (e.g., potassium, sodium content).

Game players, when alerted to low levels of potassium or sodium (or any measured chemical level via the sensor), could have the game and avatar modified to indicate the response requested in the physical world. For example, if the sensor detects low levels of potassium, the game avatar may suddenly pick up a banana to eat or have it incorporated in the game to find and eat as another challenge. This may also remind the player to actually eat a food rich in potassium to resolve the deficiency. Likewise, other players that notice this activity may also be reminded to encourage the player to eat a food rich in potassium. In this regard, all players are observing and suggesting to each other to maintain good health habits.

In various embodiments, a mouse or keyboard may include an electroencephalogram (EEG) sensor. The EEG sensor may collect brainwave activity.

Game play invokes brain waves and can provide insight into the physical impacts of games on a players brain and also how to develop more challenging and intense games. A headband that measures brain waves could be used to collect this data and send the data to a central controller (possibly via a connected or associated mouse-keyboard) for analysis.

During a game, the EEG sensor could determine if you are having a headache and adjust the game to lessen the intensity. In addition, the brightness in the room, game, mouse-keyboard and any sensory controlled device in the room could be adjusted to lessen the impact on the brain and headache intensity.

During the game, if brain activity indicates stressful signals, the in-game avatar could dynamically change to indicate a potential issue by placing their hands on their head, taking a break or signaling to other players they are not feeling well. This could be an early indication to the player as well that a break from the game is needed.

During a game, if the brain signals are not very active, the game could dynamically change to introduce more complex or challenging activities to stimulate the brain.

In various embodiments a mouse or keyboard may include an electrocardiogram (EKG/ECG) sensor. The EKG/ECG may collect cardiac electrical waveforms. This may allow for game intensity to be measured and adjusted. As games become more complex or other players introduce activities that engage a player, the heart rate can be measured. If the heart rate increases, decreases or remains consistent, the game could be adjusted accordingly. For example, if a user is playing a soccer game and is constantly making goals while their heart rate remains constant, it may indicate the game is not challenging and could lead to boredom or switching the game. The game could introduce more challenging opponents or adjust the player skill and make it more difficult to score goals. Likewise, if the players heart rate is elevated for an extended period of time, the game difficulty could be adjusted to allow for recovery of the heart and a slowing of the heat rate.

In various embodiments a mouse or keyboard may include an electromyography (EMG) sensor. The EMG sensor may collect muscle response.

The mouse-keyboard could be equipped with an EMG sensor to measure muscle activity in the hands, fingers, wrists and arms. The user's muscle response to a game can be measured and game play adjusted. For example, if the EMG recognizes that the hand on the mouse demonstrated weak muscle activity, the sensitivity on the mouse-keyboard could change dynamically to not require such intense pressure to invoke a function during a game. If a user is shooting a weapon and requires pressing of a button, the button friction could change to make it easier if the EMG recognizes weak muscle response.

In various embodiments, players' skills may be ascertained based on EMG data. Adjustments may be made to level the playing field among different players. In order to create a more uniform play for games requiring teams, the EMG data collected from all players could be used to adjust the necessary mouse-keyboard settings, removing any advantage any player may have. For example, if a group of players are engaged in a team sport (e.g., football) and the passing, kicking and handoffs require a mouse-keyboard to be used with some level of muscle activity, those with stronger muscles may have an advantage. Adjusting each player's mouse-keyboard to be consistent so all players' intensity is the same, could provide a more balanced game.

In various embodiments, an EMG sensor in a mouse (or other peripheral) may detect if a player is leaning forward.

In various embodiments, a mouse or keyboard may include a proximity (IR-Infrared) sensor. The proximity (IR-Infrared) sensor may collect information indicative of obstacles or objects in the room.

In various embodiments, using proximity sensors in a mouse-keyboard device can alert the user of objects in the room. Oftentimes a user's back is facing a door making it difficult to see if someone walks in or is looking at the user's computer screen. The proximity sensor can provide the user with immediate information that someone is near them. This can be done by interfacing to the computer screen (or application), providing a message or visual indication of the actual object. The mouse-keyboard could vibrate or display a different color as well.

External Sensors Change In-Game Environment or Virtual Environment

The proliferation of external sensors allow for the data collected to be included as part of a user's in-game experience and reflect an indication of what is taking place in the real world.

In various embodiments, weather sensor data is reflected in a game. The game can collect real-time data from the various weather sources (such as the national weather service) for the physical location in which the player is playing the game. If the central controller receives data indicating rain in the area, the on-screen game environment could change to make it appear that it is raining or provide a sound mirroring the real weather events. In addition, if it is raining in the game environment, an in-game avatar could change to reflect that rain gear is worn. Another example could be tornado activity in the area. If this occurs, the game could alert the player by flashing lights on the player's mouse to get his attention. The player, who may be distracted by the game, could be instructed to take cover and look for a safe place. Likewise, a tornado could display on the screen and disrupt the players competitors.

The indication of thunder in real life could cause the mouse or keyboard of remote team members to vibrate to mirror the feeling of thunder. The same could be done if a snowstorm or heat wave is in the area and the temperature of the mouse or keyboard dynamically changes.

In various embodiments, garage door/doorbell data is reflected in a game. An increased number of garage doors are monitored and controlled electronically. This data could be displayed on the user's game screen or mouse display area as informational to the player/user. For example, as a teenager who is playing a game after school, they may want to be notified that the garage door/doorbell is being activated to determine who is home or to stop the game and focus on another activity (e.g., homework, chores, dinner).

In various embodiments, time of day can be mirrored in the sun/moon brightness on the mouse or keyboard. Based on the geographical location of the mouse, external sources such as the national weather service could provide the sunrise/sunset/cloudiness/moon brightness data. This information can be reflected in the mouse or keyboard display. For example, if the user is playing a game at 2 pm when the sun is bright, the keyboard backlighting could illuminate a bright sunny color. As time progresses and gets closer to dusk, the illumination in the keyboard backlighting could dynamically change to mirror the conditions outside—becoming less bright and softer in color. When sunset occurs and it is dark, depending on the brightness of the moon, the keyboard could adjust to reflect this intensity as well. A sun/moon could display on the mouse screen to match the ambient environment throughout the day.

In various embodiments, ambient sounds could change the in-game environment. Microphones on the users peripheral devices could detect sounds within the environment of the player to incorporate into the game environment. For example, if the bark of a dog was picked up by a microphone, the game controller could add a barking dog character into the game environment. Users could transmit a photo of the dog to the game controller so that a virtual representation of the user's dog can be seen in the game environment. In another embodiment, when a peripheral microphone picks up loud sounds, the game controller could create a sign in the game environment above the head of the user's game character which says “Currently in noisy environment.”

In various embodiments, local news/events could be incorporated in the in-game environment. Items from a newsfeed (e.g., a feed of news that is local to the player's location) can be incorporated into a game. For example, an in-game billboard may display, “Congratulations to the Jonesville high school football team!!”

Sharing of Video Highlight Reels

When game players have success while playing a game, they sometimes want to brag about it to their friends, but that process can be clumsy and complicated. Various embodiments allow for players to quickly and easily capture video of game highlights and make them available in a variety of formats that make sharing them more fun and enjoyable. One or more peripherals can enable clipping, commenting, editing and display of short video clips. These clips could be video, streams of text, audio, animations, or computer simulations of the player successes.

When a user believes that they are about to execute gameplay—such as a game character about to attempt a dramatic leap across a ravine—that they feel might be of interest to their friends, the user could tip back the front of their mouse to initiate a signal to start a recording of gameplay at that moment. For example, the accelerometer in the mouse could identify that the mouse was tipped back and then send a signal to the user device (or central controller, or a game controller) requesting that a video be started at that moment. Once the leap across the ravine was successfully completed, the user could again tip back the mouse in order to send a signal indicating that the video recording should be stopped at that moment. The user device (or game controller) could then save the clip and send the clip to the central controller for storage in an account associated with the user unique identifier. There are many ways in which the user could initiate and terminate a gameplay clip. For example, the user might tap the mouse twice to begin recording and three times to end the recording. Another option would be for the user to say “record” into a microphone of the mouse, with software in the mouse capable of speech to text that can translate that verbal request into a ‘start recording’ signal to the user device or game controller. A physical or virtual button on the mouse could also be used to provide start and stop signals for the generation of gameplay clips.

The game controller could also start and stop video recording based on user biometrics. For example, gameplay could be recorded whenever a heart rate sensor of the user's mouse exceeded a particular number of beats per minute. In this way, the player does not have to initiate the creation of the gameplay clips, but rather the clips are recorded whenever the heart rate biometric indicates that the player is in an excited state.

Another way to generate start and stop times for gameplay clips could be via algorithms of the game software that predict that the user is about to do something exciting in the game. For example, the game software might begin to record gameplay whenever a user is involved in a sword fight with a more experienced opponent. After the sword fight was concluded, the game software could ask the user whether or not they wanted a clip of that sword fight to be sent to the users mouse for storage.

The user could also initiate a clip of gameplay to be recorded, but have the recording end within a particular period of time. For example, the user might set a preference stored in the mouse which indicates that clips should always end three minutes after initiation.

Rather than initiating a gameplay clip to be created as above, the user could initiate a streaming session by having the game software send all gameplay video directly to a video game streaming service such as Twitch. This initiation could be done via a series of taps on the mouse, verbal commands, biometric levels, or algorithmically by the game software.

Rather than creating video clips, the game software could be directed by the user to capture screenshots, audio files, maps of terrain traversed, a list of objects obtained, a list of enemies defeated, etc.

In various embodiments, the user initiates a video clip of his own face as seen through the front facing camera of the user device (e.g., user computer) during gameplay. For example, the user could send an initiation signal (such as taps on a mouse, or two quick blinks while facing the camera) to start a recording of the user's face while engaged in a particularly interesting or exciting activity in-game. Such a video could similarly be sent to the users mouse for storage, or be sent directly to the central controller for storage in the user's account. This user video could be combined with a clip of the gameplay associated with the game character, and saved as two side-by-side videos synchronized to capture the emotions of the player while showing the exciting gameplay that produced the emotions.

User clips stored in his account at the central controller could allow the user to build a video game highlight reel that could be sent to friends. Such video clips could be listed by game or chronologically. This could be combined with game statistics much like a baseball card. For example, for a game like Fortnite® the player might have several video clips as well as statistical information like the number of games played and the average success rate in those games. For players on teams, statistics and gameplay clips could be cross posted to teammates' pages.

One of the advantages of storage at a central controller is that the user can accumulate videos and statistics across all game platforms and game types.

Device-Assisted Discovery of Social Connections

More than ever, people are searching and engaging in various forms of social connection, both virtually and physically. The mouse and/or keyboard could be devices that applications use to alert a user when a connection is made. The mouse and/or keyboard could be devices that users use to indicate interest in an activity.

In various embodiments, applications alert a user via mouse-keyboard that a connection is made. As a user of an application, I may be interested in a topic or requesting recommendations. Once the request is sent in to various sites (e.g. Pinterest®, Nextdoor™, dating sites, local volunteer organizations, local interests (running club, chess club, gardening club), Ebay®), unless the user is routinely checking email, alerts may be missed. The mouse-keyboard could take these alerts and provide feedback that a connection or message has been made. Once notified, a simple mouse-keyboard movement could take a user instantly to the information. For example, a user is interested in getting a recommendation for the best appliance repair person in the area on Nextdoor™. After the request is submitted, the user resumes other activities using their mouse-keyboard. After some time, a recommendation is made. At that point, an alert is sent by Nextdoor™ to the user's mouse-keyboard. The mouse-keyboard could display a color, sound or skin display indicating that a message has been received.

In various embodiments, a user utilizes a mouse-keyboard to respond to connections. A user can respond to the mouse-keyboard indication that a connection is made in various ways. For example, once a user has indication that a message/connection is made via the mouse-keyboard, they can simply click the mouse (or press a key on the keyboard) and the message/action is immediately retrieved from the sending application. This not only provides immediate feedback to the sending application but makes a simple interaction between the user and the application thus creating efficiencies and improved experience. Likewise, in addition to retrieving messages in textual format, a user could open an audio or video channel to instantly connect to the application/other user. This could occur if a person is interested in playing a new game and is seeking an additional player. Once found and the device alerted, the person could communicate directly with the player to establish a time to play. If the response meets the user's needs or the connection is established, another simple click can turn off future alerts from the applications and end the communication.

In various embodiments, a mouse-keyboard assists in making or responding to in-game connections. An in-game player may want some immediate assistance from other players (already in the game or not) on the game overall or a particular section of the game. The user simply selects a mouse-keyboard action and a connection request is made to current and previous players. Once a player determines they want to connect (by selecting the action on the mouse-keyboard), the requesting player is notified on their mouse-keyboard. The connection is made by selecting the mouse-keyboard inputs and assistance is provided via a dedicated audio channel in-game, a textual message or video chat. Once either player decides to end the connection, a simple click on the mouse-keyboard is made.

In-Game Rewards Displayed on Socially-Enabled Peripherals

Game players sometimes gain abilities, levels, titles (like grandmaster, wizard), ratings, (such as a chess or backgammon rating) inventory items (like gold coins, weapons, ammunition, armor, potions, spells, extra lives, etc.) or other benefits achieved during game play. Players also accumulate statistics, such as win rates or accuracy rates. Many players like to show off such achievements, and to let their friends know how much they have achieved.

When a user achieves a level in the game, that level could be displayed on the surface of the user's mouse or keyboard. For example, a display area on the mouse could display that the user was a wizard who had achieved a level 50 of experience. This indication could be displayed whenever the player was using the mouse, or it could be displayed at all times. The user device or game controller could send a signal to the mouse of the achievement level and store it within storage media in the mouse. In another embodiment, the achievement level indication is displayed only when the mouse is not being used or does not have a hand on it. Pressure, temperature, or motion sensors built into the mouse could detect use and automatically turn off the ability level indication. The achievement level display could be an e-ink display which would reduce power consumption requirements.

An achievement level indication could change frequently during a game, such as when a chess player's rating moves up and down after a series of many blitz games with each lasting only a few minutes. The constantly updating rating could be displayed on the mouse display, or it could also be displayed on a keyboard according to various embodiments. For example, the keyboard could have back lighting for each individual key which is capable of causing keys to glow in an order determined by a signal from the user device or game controller. So if the users new blitz chess rating was 2375, the “2” key would light up and then turn off, followed by the “3” key, then the “7” key, and then finally the “5” key.

Achievement level indicators could also be shared among multiple players. For example, a team of three users could have inventory items of all team members displayed on the mouse of each team member. For example, if player “A” has a Healing Potion, player “B” has a +5 Sword, and player “C” has 35 Gold Pieces, then each of these items would be listed on the display area of the three mice. So player “A” would see “Healing Potion, +5 Sword, and 35 Gold Pieces” displayed on his mouse. These items could be continuously displayed, with updates to the inventory items being sent from the game controller to the mouse whenever an item was added or used. Players could also trigger the display of the inventory items with the click of a button on the mouse, a verbal command to “show inventory”, depressing a function key on the keyboard, or the like.

The mouse could also change its physical shape to reflect changing achievement levels. For example, in a first person shooter game the users mouse could extend out a small colored plastic plate at the top and bottom of the mouse when the user achieved victory over five opponents in the game. This would allow other users present to see at a glance that the player was doing well, and the extended plates could be positioned to not interfere with ongoing game control via the mouse.

Multiple Controllers, Single Cursor

Devices according to various embodiments could enable multiple users to control a single instance of software. The inputs of individual devices could be communicated to the central controller and then communicated from the central controller to the game controller or software. By allowing multiple users to input into a single piece of software, the devices could enable social game play.

For example, users could swap control of the inputs of a single character, avatar, vehicle, or other aspect of gameplay. Players could swap control voluntarily. Alternatively, the game controller could swap control probabilistically or based upon another dimension, such as relative skill at different aspects of a game, which player has had the least time of control, or which player generates the most excitement for non-controlling players.

Users could control a single input type for a composite character, avatar, vehicle, or other aspect of game play. For example, control of X, Y, Z movement, visual field, and weapon might be controlled by separate players. For example, a player might control the movement of a vehicle such as a ship, while another player might control its ability to shoot.

In various embodiments, one user controls a primary character or entity, and another user controls a sub-entity. For example, a first user controls a mothership, while a second user controls a space probe released by the mothership. As another example, one user controls a main character (e.g., a foot-soldier), while another user controls an assistant, such as a bird or drone that flies overhead and surveys the terrain.

In various embodiments, opponents may take control of one or more functions of input while the device owner might retain other aspects of input. For example, opponents might control the facial expressions of a character, while the device owner retains all other control over the character. As another example, opponents might control the communications (e.g., text or voice messaging) from a character, while the device owner retains all other control of the character. As another example, opponents might control the speed of a character's movement, while the device owner retains control over the direction of the character's movement.

In various embodiments, the central controller might average, select the most popular input, or otherwise combine the input of several users to control aspects of game play. For example, the character's direction of motion may be determined by the direction that was selected by a majority of users having input to the character's actions. As another example, the character's motion may be determined as the vector sum of inputs received from users controlling the character. In various embodiments, all users controlling a character or other game aspect have to agree on an input before some action is taken.

In various embodiments, aspects of control of a character or of other gameplay may not be explicitly communicated to a user. In other words, a user may not always know what effects his inputs will have on a character or on gameplay in general. For example, a user may not know that a particular key on his keyboard controls the speed of a character's trajectory. The user may be left to experiment in order to figure out the effects of his input on character actions or on other aspects of gameplay. In various embodiments, the effects of a particular key (or other input) may change without notice. A user may then be left to figure out what he is now controlling, and what he is no longer controlling.

In various embodiments, two or more users may play a game where one user serves as an instructor while the other user is a student. The instructor may be helping the student learn how to play the game, or to learn how to improve his game play. In various embodiments, the student may be allowed to control a character, vehicle, or other aspect of gameplay. However, when the instructor deems it appropriate, the instructor may assume control and guide the character, vehicle, or other aspect of gameplay. The instructor may thereby help the student with a tricky sequence, with a strategy that had not occurred to the student, with an improved set of motions, or with any other aspect of the game.

Mouse Voting

Teams playing games sometimes require decision making by the group, requiring some discussions between team members.

In various embodiments, game players needing to make a decision could conduct voting protocols through the mice of the players. In this embodiment, a team of five players registers their names with the game controller for communication to the user device and/or the central controller (which can associate the player names with the unique mouse identifiers associated with those player names). The five players then use their mice in gameplay and tap the surface of the mouse three times to initiate a voting protocol. For example, Player #3 might initiate the voting protocol in order to facilitate the group deciding whether or not to cast a spell that would build a bridge over a river. In this example, Player #3 taps her mouse three times quickly and a signal is sent to the user device and then on to the central controller. The central controller then sends a signal out to the mice of all five players, which displays on the surface of those five mice a yes/no option. Each of the five players taps once for ‘yes’, and twice for ‘no’. This selection is communicated back to the central controller, and the option receiving the most votes is then communicated back to be displayed on the surface of each of the five mice.

Many voting protocols could be stored with the central controller, allowing options like giving users the ability to provide greater weights to the votes of more experienced players, or requiring unanimous consent or a two-thirds majority in order to make a decision.

Voting by users could be done anonymously, or the votes could be connected to their real name or game character name.

Mouse to Mouse Communication

Communication between players is very common in game environments, with players often texting each other or calling each other to communicate. This can sometimes be clumsy as players may have to take their hands off of the keyboard or mouse to initiate, manage, or end the communications.

In various embodiments, mice are enabled to communicate directly with each other. For example, a user could triple tap the surface of their mouse to initiate a communication channel with a particular friend, and then speak into a microphone contained within the mouse. That audio signal would then be transmitted to the user device and sent to the user device of the users friend, and finally sent to the friend's mouse for broadcast via an output speaker in the mouse. In this way, a pair of mice can communicate like a pair of hardwired walkie talkies.

The user could also store a list of the unique mouse identifiers of five of the users friends, and then initiate a mouse to mouse connection by tapping once on the user's mouse to be connected to the mouse of Friend #1, tapping twice on the mouse to initiate communication with the mouse of Friend #2, etc.

Communication could also be conducted through a microphone within the users keyboard in a similar manner. The user could say “Friend #3” into the microphone of the keyboard, which would then transmit the signal to the user device, which sends the signal to the user device of Friend #3, which then sends a signal to the speaker built into the keyboard of Friend #3, to thereby enable the direct communication from keyboard to keyboard.

Interactions with Streamers

Streaming platforms such as Twitch®, YouTube® Gaming, and Mixer™ now allow individuals to livestream video game sessions to audiences of thousands or even tens of thousands of fans. While fans can join chat streams with messages of encouragement, there is a need to allow fans to increase the level of interaction with streamers.

In various embodiments, fans of streamers can use their mice to vote for the actions that they want the streamers to take. For example, the streamer could send out a voting prompt to appear on the display screens of the mice of fans, asking them whether the streamer's game character should head North or South. Players then vote by touching the phrase “North” or “South” that is now displayed on their mouse. That signal would go to the user device and then to the central controller, and finally to the controller of the streaming platform to indicate to the streamer what action is requested by the fans.

In another embodiment, fans would be able to provide a direct input into the controls of one or more peripherals used by the streamer. For example, fans could provide input via their mice as to the direction and velocity with which to move over the next 60 seconds of gameplay, with the input from all of those mice combined by the central controller into a single aggregated direction and velocity with which the streamers game character would be moved for the next 60 seconds.

The ability to subscribe, re-subscribe, donate, or tip small amounts of money would also be facilitated in embodiments where a user's mouse stores value (such as currency) that can be transmitted to the streamer via the central controller.

The streamer could also enable loot boxes, raffles, and giveaways to users that appear on the display screen of a users mouse. The users mouse could glow red whenever the streamer was currently streaming.

The users mouse could include a streamers insignia or an image of his face on the display screen of a user's mouse.

A streamer could design a custom mouse that included design elements or colors associated with his brand. Such a mouse could include stored preferences including ways for the user to easily connect with the streamer.

Device Changing Shape

While many people work or play games with others remotely, there is a need for increasing the feeling of connection that can help bridge the distance gap.

In various embodiments, the mouse of a user is configured to have a look and feel evocative of a pair of lungs that reflect the actual breathing rate of a second remote user. The rate of breathing can be determined by receiving a breathing rate sensor value from the mouse (or other peripheral capable of determining breathing rate) from the second user, and replicating that breathing rate on the first user's mouse. The breathing effect could be generated by having a soft light glow on and off at a rate equal to the second user's breathing rate. Alternatively, the first users mouse could have an internal mechanism that allows the mouse to expand on a cadence with the breathing rate. In these embodiments, the breathing rate of the first user could be reflected on the second user's mouse while the second users breathing rate could be reflected on the first user's mouse. In this way the two users would feel more connected even though they may be thousands of miles apart.

Another way in which the breathing effect could be embodied would be for some or all of the keys of the users keyboard to be directed to move up and down reflective of the breathing rate of the second user (and vice versa).

The ergonomic shape of peripherals could also change based on the needs of a user. For example, a keyboard could be directed by the user device to incline by a few degrees based on data generated by the user's camera.

Peripherals could also change shape when a user signals that the peripherals are being put away for storage or are being transported to another location. The altered form factor could make the peripherals less likely to sustain damage from being bumped or jostled.

Devices according to various embodiments could include a foldable form-factor in which the devices fold, hinge, or otherwise enclose themselves to protect the device during travel.

Mouse Actions

There are other ways in which a mouse can provide inputs beyond traditional two dimensional plane movements, clicking, and rolling wheels or trackballs.

In various embodiments, the user generates a signal from a mouse by tipping up the front of the mouse, but keeping the rear end of the mouse relatively stationary.

In various embodiments, a mouse may remain fixed or stationary and may interpret mere pressure from different sides as signals to move a mouse pointer. For example, if a person applies pressure to the right side of a stationary mouse (as if moving a mobile mouse to the left), the mouse pointer may move to the left.

A user mouse could also generate a unique signal by turning the mouse over. For example, a user could turn the mouse over to indicate that they were temporarily away from their keyboard, and then turn the mouse back over when they return to gameplay. The game controller could then relate that time away from the keyboard to the other players so that they know the user will be unresponsive during that time.

Connected Devices for Mobile Work

Individuals often use mobile computing devices, such as laptops, tablets, or phones, to conduct work outside of traditional office or home settings. These devices have built-in input devices, and detached keyboards and mice are accessory peripherals. The devices according to various embodiments could improve the functionality of these accessories.

Accessory keyboards and mice are frequently stolen or lost. To prevent theft, a device owner, for example, could set an alarm mode, allowing the owner to leave the device unattended. If the device is touched, the device could be set to produce a loud noise or flash bright colors. In an alarm mode, the device could be set to take a picture if it moved. If the device is connected with another computing device while in alarm mode, it could, for example, trigger the device to send its current GPS coordinates or the IP address of the device to the original owner. For example, to locate a lost device, an individual might enable a “lost device” mode that causes the device to produce a loud noise or cause the device to flash a bright light.

Devices could have additional functionality enabled by geofences or other location-context information, such as the ability to order items and process transactions. For example, a device might recognize that its owner is using it at a cafe and allow the device owner to order a coffee. Prior transactions in the same location might be stored in the memory of the devices for ease of reordering.

Charging devices can be challenging for mobile workers when electrical outlets are scarce or unavailable. Devices according to various embodiments might be able to charge wirelessly from other peripheral devices or from a mobile computing device.

Mobile workers often transport mice and keyboards in purses, backpacks, briefcases, and other bags without putting them in protective cases. Devices according to various embodiments could include a foldable form-factor in which the devices fold, hinge, or otherwise enclose themselves to protect the device during travel.

Parents Playing Games with Kids

Some parents enjoy playing computer games with their kids, but they feel like it would be a better experience if they could more fully participate in the gameplay experience.

One way to improve the shared experience of gameplay would be to have the game allow a single game character to be controlled by two players at the same time. In this way, a parent and child could play a game as one character rather than as competing characters.

Another example would be for the adult to be able to control a particular element of the game character that might be more complicated (like handling spell casting), while the child had the ability to control a simpler element of the game character (like the direction that the character walks). In various embodiments, two or more players controlling a single game character need not have any particular relationship to one another (e.g., such players need not have a parent-child relationship).

Dynamically Change Game Difficulty, Excitement Level, or Other Game Content

A key challenge for game creators is sustaining engagement and excitement over time, as well as balancing difficulty level. Players often lose interest in games over time. Games that are too difficult frustrate less skilled players, while games that are too easy frustrate more skilled players. Mice and keyboard devices according to various embodiments could facilitate a game controller dynamically changing in-game content to increase excitement, difficulty level, game play time, amount of money spent in-game, the amount of social interaction among players, or another goal of the game controller.

Mice and keyboard devices according to various embodiments could facilitate the onboarding of new players or users. An onboarding tutorial or help function could use the outputs of the devices to indicate to new players which mouse actions, key actions, and combinations of inputs control game actions. For example, a tutorial could use the visual outputs to light up keys in a sequence to demonstrate how to perform a complicated movement.

The mouse and keyboard of this device could be utilized to train an AI module that analyzes player input data to detect how a player responds to particular in-game stimuli. An AI module could then predict how the player would respond to different variations of in-game content, difficulty level, in-game loot, resource levels or other aspects of gameplay in order to elicit particular emotional responses, such as excitement or fear. Likewise, an AI module could predict how a player would respond to variation in game play to increase engagement, game play time, amount of money spent-in game, levels of social interaction among players, or another goal of the game controller. For example, a horror game might use an AI module trained on past player responses to stimuli, as measured through galvanic responses or heart rate changes, to dial in the appropriate level of fright for an individual player. For example, an AI module might detect that a player has reduced levels of game engagement and increase the likelihood of a player earning in-game loot boxes or other rewards in order to stimulate higher levels of engagement.

The mouse and keyboard of this device could be utilized to train an AI module that analyzes player skill level in order to dynamically vary the difficulty of the game. This AI module could be trained using device inputs, such as cursor speed or keystroke cadence, to detect patterns of game play by users of different skill levels and to predict skill level of the device owner. An AI module could detect the rate of learning for players and adjust game difficulty or skill level dynamically in response to skill acquisition.

In many games, dominant or popular strategies emerge (“the metagame” or “meta”), as players discover which strategies are likely to succeed and which strategies counter other strategies. An AI module could be trained to detect clusters of player behavior (“strategies”) and analyze the relationship between strategy and in-game success. An AI module could then dynamically alter the difficulty of the game through managing in-game resources, non-player characters, or other aspects of game play, either dynamically during a game or by creating new levels, maps, or forms of game play that add novelty to the meta.

Because the game controller has information about all player actions, as well as perfect information about procedurally generated aspects of the game such as resources, non-player characters, and loot boxes, an AI module could predict when something exciting or interesting is likely to happen. Exciting or interesting elements could be players converging in the same area, a less skilled opponent beating a high skilled opponent, an improbable event happening, or another aspect of game play that has in the past elicited high levels of engagement, spikes in biometric data, social media shares or another aspect of excitement. If the AI module predicts that something interesting is likely to happen, it could visually indicate it to players. It could also automatically generate a clip (e.g., video clip) of the event and share it with players in-game, post it to social media, or share it on the internet. For example, because the game controller knows the locations and could predict likely paths of players, the controller could trigger a camera to capture the facial expressions of an individual likely to be in a line of fire or about to be ambushed. For example, the controller could message “watch out” to a player who is likely to crash in a racing game or “close call” to a player who escaped a predicted crash.

Digital Skins and Game Environment Synchronized with Physical Device

Mice and keyboards according to various embodiments can be customized through visual outputs, such as lights, screens, e-inks, and other visual outputs. These visual customizations can be controlled by the player, by the game controller, by the central controller or by other software. These visual outputs (“digital skins”) can change dynamically while using a piece of software or may be set in a persistent output that lasts after the user has stopped using a piece of software.

In-game content that a player has earned, acquired or purchased can be displayed on the device in a manner similar to a trophy case. For example, the device might output visual representations of badges, trophies, interesting or valuable loot items, “season passes”, skill trees, personalized in-game content, or other representation of the game.

Game play or in-game content can dynamically alter the outputs of these devices. The status of a player, current player performance, or the digital environment of the game, for example, might be dynamically displayed via visual output, tactile output, or other device outputs. Game play could for example change the appearance of the device. For example, if a player in an action game is being attacked or wounded, the device can display an output to show the direction of attack or whether the attack succeeded. Player performance might change the appearance of the device to indicate a streak of performance. For example, keys might light up one by one as the streak increases in length. Likewise, a “hot” or “cold” streak might result in the temperature of the device increasingly growing cold or hot to indicate the length of the streak. If a player, for example, was approaching the end of a level, suffering in the game, close to a boss, low on resources or running out of time to complete a task, the temperature of the device could change to indicate the situation to the player. A game for example could utilize device outputs such as lights as keys, puzzles, or other aspects of unlocking game functionality. For example, synchronizing lights on a keyboard or mouse with combinations of lights in a game could solve a puzzle or be used as a key to open a door. Likewise, a game set in a particular environment could display visual representations of that environment, such as trees or mountains, vibrate to indicate in-game terrain, or increase or decrease in temperature to match in-game environment. If a player, for example, is playing a game in a space or futuristic setting, the device can display stars and parallax movement.

Video game players often create “digital skins” for digital content by customizing the color, patterns, and visual textures of in-game content, such as the appearance of a digital character, vehicle, weapon, or other object. Various embodiments allow the player or the game to synchronize these digital skins to the device's visual output. These visual outputs could be displayed only during the game, or they could be displayed, like a trophy, when the player is not playing.

Individuals often customize the digital appearance of software (“themes”). The devices in this presentation could be customized in a similar manner as visual extensions of the software theme. Users often create different themes that dynamically transition over time of day or level of ambient light to diminish discomfort or to reduce the amount of blue light, which affects circadian rhythms and other biological clocks. The devices could also change visually according to time of day and ambient light to create a “light or day” mode and a “night and dark mode.” The devices could alter levels of blue light over the course of day, or they could be used to increase exposure to blue light when users have insufficient exposure.

The devices could indicate whether software is being used, for example showing the logo of an application the device owner is using. For example, during a videoconference, the device could visually indicate that a call is on-going or is being recorded.

Other software controllers could alter the outputs of the device. For example, while watching digital videos or listening to music, the title and creator of a song or video could be displayed. Likewise, album cover art or a clip of the music video could be displayed.

User Customizations

Game players often like to customize their gameplay experience. Various embodiments allow users to store information about desired customizations for use in customizing gameplay experiences. Customizations could be for digital actions/characters, or for physical changes.

Physical customization that a user might establish could include elements like the height of a chair, the springiness of keys on a keyboard, the tracking speed of a mouse, the angle of view of a camera, and the like.

Customization of a mouse could also include the location of display areas, size of the mouse, preferred color patterns, the weight of the mouse, etc.

Virtual customization could allow players to establish preferences for a wide range of enhancements. For example, the player might save a preference that when his mouse signals that he is away from the keyboard that the other players are alerted that he will return in ten minutes time. Customizations could also include a list of friends who are desired team members for a particular game. These players could automatically be added to a chat stream when that particular game was initiated.

Customizations could be stored in a peripheral device such as a mouse, in the user device, or at the central controller.

Status Updates Via Peripherals

With many players engaging in cooperative games from remote locations, knowing the status of another player in another location can be challenging. Is the player on a break? Does the player want to quit soon? Do they currently have a good internet connection? Getting answers to these questions can be time consuming and distract from player focus during ongoing games.

In various embodiments, a user identifies a number of other game players that he wants to get status updates from. For example, a user might identify three friends that he likes to play games with—Friend #1, Friend #2, and Friend #3. The identity of these friends is transmitted to the central controller. Periodically, status updates generated by the peripherals of these three players are sent to the central controller and then made available to the user on one of his peripherals. In one example, every five minutes the mouse of each of the three players checks for movement, sending a signal to the central controller if there is movement. If one or more of the three mice are moving (in this example that might be only Friend #2), the central controller sends a signal to the user device of the user which sends a signal to the user's mouse, storing an indication that Friend #2 now seems to be active. The users mouse might light up with a color associated with Friend #2, or an insignia associated with Friend #2 might be displayed on the users mouse, such as an icon for a wizard character that Friend #2 often uses in games. In this embodiment, it is easy for the user to know which of his friends are currently starting a game session. For example, a high school student might come home from school with the intent to play a game. He looks at his mouse to see if any of his friends are currently playing. If not, the user might begin to work on his homework while keeping an eye on his mouse, looking out for the telltale color which indicates gameplay is now underway.

In another embodiment, the user's mouse shows a constant indication of the status of the mice of all three friends. For example, the mouse may have a display area which is segmented into three locations, with each location lighting up when the corresponding friend is now using their mouse.

Player status can be much more than just an indication of whether or not the player is currently moving their mouse. It could also indicate whether or not the player was typing on their keyboard, moving in their chair, moving their headset, or moving/being in the field of view of a computer camera.

In another embodiment, players register a current status with the central controller. For example, a player might register that they are currently ready to begin a game with one of their friends. The central controller then sends a signal to the mice of those friends and displays a flashing light to inform that player that a friend is currently looking for a game. Similarly, a status of “I'll be ready to play at 3 PM” could be communicated to the other friends. A player might also send a status that they would like to talk with another player.

Users can also get information during gameplay about the status of remote players. For example, a player could tap three times on their mouse to initiate a signal to the central controller that they were currently on a break. The break status of the player is then sent to the user device of each of the other friends for display on their mice.

Communicating the status of a remote player could be done via the keyboard of a user by backlighting individual keys, For example, the “G” could be backlit when Gary is currently looking to begin a game.

The users mouse could display a wide range of statuses for remote friends. In one embodiment, a user sees an indication for each friend of the current quality of their internet connection. A user's mouse could also indicate the type of game that a friend currently wants to play, or the top three games that the friend would like to play.

The user's mouse could also display information regarding inventory items, resources, or in-game statistics or remote friends.

Another status that could be of value to remote players is the engagement level or level of fatigue of a player. These could be used as a proxy for whether or not a player should not be relied upon during an upcoming period of complex gameplay.

Referring now to FIG. 101, a flow diagram of a method 10100 according to some embodiments is shown. Method 10100 may be used to infer a user's activity and/or intention based on the user's actions and/or based on sensor data gathered from the user. As used in the illustrative example, method 10100 seeks to determine a user's activity with regards to a type of work the user is doing, and/or to determine the user's intention as to how long such activity will continue. If it is determined that the user's activity is “checking emails, reading, or handling other routine items”, for example, then the user's activity may be communicated to another user (e.g., to the users coworker), so that the other user may commence a meeting with the user. On the other hand, if it is determined that the user is engaged in purposeful work, then such activity may also be indicated to another user, but now with the purpose of tempering the other user's hopes of commencing a meeting with the first user.

It will be appreciated that the illustrative example represents some types of inferences, but that other types of inferences may also be performed, in various embodiments. For example, various embodiments may seek to infer a user's mood, a user's intended purchase, a type of game that a user would like to play, a type of video that a user would like to watch, or anything else.

In various embodiments, FIG. 101 may represent a decision tree, such as is used in machine learning and artificial intelligence applications. The terminal nodes, or leaf nodes in the decision tree may represent an inferred user activity and/or intention. Other nodes may branch in one direction or another based on the value of an input variable.

In the illustrative example depicted in FIG. 101, there are three input variables gathered from a user. These are: number of mouse movements in the last five minutes (represented by the variable “M”); number of clicks in the last five minutes (represented by the variable “C”); and heart rate (represented by the variable “H”). As will be appreciated, these represent exemplary inputs that may be gathered, and any other suitable inputs or combination of inputs may be used, in various embodiments. In various embodiments, other input variables may include: a number of keystrokes (e.g., at a keyboard); a number of mouse movements larger than five pixels; a number of turns of a mouse scroll wheel; a number of double clicks; a number of mouse drags; a number of different peripherals that have been used (e.g., 1 peripheral; e.g., 2 peripherals); a number of gestures made by the user (e.g., as detected by a camera); a number of words spoken by the user (e.g., as detected by a microphone); and/or any other input variables.

Also, data may be gathered or tallied over other time windows (e.g., over time windows greater than or less than five minutes). In various embodiments, a decision tree may use more or less than three input variables. In various embodiments, any suitable classification algorithm may be used aside from a decision tree (e.g., a support vector machine, random forest, neural network, etc.). In various embodiments, any suitable algorithm may be used to discern or infer user intent.

For the purposes of the present example, the variable M may be understood to represent any mouse movement, however great or small, that would be sufficient to register a change in an x or y coordinate of a mouse pointer, and which is delimited by a pause (i.e., lack of movement) lasting at least 0.1 seconds. For the purposes of the present example, the variable C may be understood to represent any mouse click, whether left, right, or middle. For the purposes of the present example, the variable H may be understood to represent the users heart rate, in beats per minute, as measured over the preceding five-minute interval. However, as will be appreciated, any other suitable variable definitions could be used.

At block 10103, the values for variables M, C, and H are determined. Exemplary values might be 5, 11, and 77, respectively. The variable M is then compared to the predefined threshold of zero. If M is equal to zero, then it is inferred that the user is not present (block 10106). In other words, if there has been no mouse movement in the past five minutes, it may be inferred that the user is not present. Flow now stops (e.g., flow proceeds to “End” block 10136). If M is greater than 0, it is inferred that the user is present (block 10109).

At block 10109, M is compared to the predefined threshold of five. If M is less than five, it is inferred that the “User is checking emails, reading, or handling other routine items” (block 10112), and flow stops. If M is greater than or equal to five, it is inferred that the “User is engaged in purposeful activity”, block 10115.

At block 10115, the variable H is compared to the predefined threshold of eighty. If H is less than eighty, it is inferred that the “User is working”, and flow proceeds to block 10118. If M is greater than or equal to eighty, it is inferred that the “User is having a discussion”, and flow proceeds to block 10121. In this example, a higher heart rate is assumed to correlate to the act of engaging in a discussion.

At block 10118, the variable C is compared to the predefined threshold of ten. If C is less than ten, it is inferred that the “User may be done with work soon” (block 10124), and flow stops. If C is greater than or equal to ten, it is inferred that the “User will probably be working for a while” (block 10127), and flow stops.

At block 10121, the variable C is compared to the predefined threshold of twenty. If C is less than twenty, it is inferred that the “User is having a conversation” (block 10130), and flow stops. If C is greater than or equal to twenty, it is inferred that the “User is working in a shared space” (block 10133), and flow stops. For example, if the user is in a shared workspace, the user may be making frequent mouse clicks as he alters elements of the workspace.

One or more actions may then be taken (e.g., by central controller 110), based on the outcome of the decision tree. For example, if it is determined that the user is checking emails, reading, or handling other routine items, a light on a second users mouse may turn green, suggesting that the second user would likely be successful in commencing a meeting with the first user (e.g., should the second user decide to invite the first user). For example, if it is determined that the user is working but may be done with work soon, a yellow light on a second user's mouse may turn yellow, suggesting that the second user may be successful in commencing a meeting with the first user, at least if the second user waits a few more minutes. As will be appreciated, any suitable action may be taken resultant from an outcome of a decision tree.

Referring now to FIG. 102, a flow diagram of a method 10200 according to some embodiments is shown. Method 10200 may allow a user (user 2 in the present examples) to monitor the status and/or availability of other users (including user 1 in the present examples), so that user 2 may connect in some way with one of the monitored users (e.g., to initiate a meeting with the other user; e.g., to discuss the progress of a task with the other user; e.g., to play an online game together; e.g., to share in the experience of the other user; e.g., to exchange messages with the other user). In various embodiments, user 2 may see when another user is available (e.g., when user 1 is available), and may then invite the other user to a meeting. In various embodiments, user 2 may see when another user is available (e.g., when user 1 is available), and may then challenge the other user to a game. In various embodiments, user 2 may see that another user (e.g., user 1) is having an interesting experience (e.g., seeing a nice sunset; e.g., having a good performance in a video game; etc.) and may wish to share in the experience with the other user. In various embodiments, user 2 may see that another user is available to have a conversation and may wish to open up a dialogue with the other user.

At step 10203, user 1 indicates who is allowed to see the users data. In various embodiments, a user's status or availability (e.g., user 1's status or availability) will be broadcast to other users (e.g., to coworkers of the user; e.g., to a supervisor of the user; e.g., to friends of the user). The users status or availability may represent potentially sensitive information of the user. For example, a user's status information may indicate that the user is not home, sleeping, out of town, etc. As such, a user may wish to limit which other users may see information about the user's status or availability. In various embodiments, a user may indicate other users through a GUI.

In various embodiments, user 1 may indicate that another user (e.g., user 2) can see one type of data of user 1, and that still another user (e.g., user 3) can see another type of data of user 1. For example, user 2 is allowed to see when user 1 is available for a meeting, while user 3 is allowed to see if user 1 is home or not. In this way, for example, less sensitive data can be made available to a wider set of users, and more sensitive data (e.g., data about whether user 1 is home or not) can be restricted to a narrower set of users (e.g., to more trusted users).

At step 10206, user 1 indicates what data about the user can be seen. In various embodiments, data may include raw data, such as sensor readings, video footage, audio recordings, mouse movement data, etc. In various embodiments, data may include inferred, deduced, or conclusory data. For example, data may include an identity of an individual in user 1's home (e.g., as deduced from video footage in user 1's home). Data may include an activity the user is involved in (e.g., eating, working, watching TV, etc.). Data about a user's activity may also represent inferred data, since it may rely on interpretation of video footage, mouse movements, or other raw data inputs.

In various embodiments, data about user 1 may include peripheral usage data, such as mouse movements, keyboard strokes, head motions captured by a headset, etc. Such data may be stored in, and/or obtained from peripheral activity log table 2200.

In various embodiments, data about user 1 may include data obtained from sensors at user 1's peripheral device. Such data may be stored in, and/or obtained from peripheral sensing log table 2300. Data obtained from sensors may include a heart, a blood pressure, a skin conductivity, a metabolite level, and/or any other sensor data.

In various embodiments, data about user 1 may include user device usage data. Such data may be stored in, and/or obtained from user device state log table 2100. Data obtained about user device usage may include data about what applications a user was using, when the user was using such applications, what the user was doing with such applications (e.g., which websites the user was viewing using a browser; e.g., what type of document the user with editing using a word processing application), and/or any other user device usage data.

In various embodiments, data about user 1 may include data gathered from one or more devices (e.g., sensing devices; e.g., home automation devices; e.g., appliances) in the user's home. Such devices may include motion sensors, video cameras, thermal sensors, audio sensors, light sensors, and/or any other sensors. In various embodiments, data about user 1 may include data gathered from one or more home automation devices or appliances. For example, a thermostat may report data on when it was used, what settings it was placed at, when settings were changed, etc. As another example, a refrigerator may report when it was opened. As another example, a microwave oven may report when it was used and for how long. As another example, a closed circuit television camera may report video footage.

Data from home sensors and/or appliances may be stored in a table, such as in ‘Home sensor and appliance logs’ table 7500 of FIG. 75. With reference to FIG. 75, ‘Appliance sensor reading ID’ field 7502 may store an identifier (e.g., a unique identifier) of a reading or setting from a home sensor or appliance. Field 7504 may store an indication of a home sensor or appliance (e.g., an identifier or name for the appliance). Description field 7506 may store a description of the sensor, appliance, or component thereof (e.g., “refrigerator door”). Fields 7508 and 7510 may store, respectively, start and end times for when the reading was taken or received. Field 7512 may indicate the nature of the reading (e.g., that a door was opened). In various embodiments, field 7512 may store raw data, such as video footage from a camera.

User 1 may indicate what data can be seen by other users. The user may indicate what data can be seen by the central controller 110. The user may indicate, by user, or by group of users, which other users can see which items of data. For example, users in group A (e.g., a group as stored in user groups table 1500) can see raw motion sensor data from user 1's home. On the other hand, users in group B can only see inferred data about what room user 1 is in.

At step 10209 user 2 indicates that user 2 wishes to monitor user 1. User 2 may indicate that he wishes to monitor one or more other users as well. For example, user 2 may provide a list of friends that user 2 wishes to monitor. These may represent people with whom user 2 might wish to connect at some point (e.g., in order to play a game; e.g., in order to share an experience; etc.). As another example, user 2 may provide a list of co-workers that the user wishes to monitor. The user may wish to know when such coworkers are available, in case the user needs to talk to one of them.

In various embodiments, when user 2 indicates that he wishes to monitor user 1, the central controller 110 may verify that user 2 is among the people who are allowed to see user 1's data (e.g., as determined at step 10203; e.g., by verifying that user 2 is a member of a user group in table 1500 whose users are allowed to see user 1's data).

In various embodiments, user 2 may only wish to monitor user 1 at certain times of the day. For example, if user 1 is a coworker of user 2, then user 1 may only wish to monitor user 2 during working hours when user 1 might be available for a meeting. As another example, if user 1 is a prospective opponent of user 2 in an online video game, then user 1 may only wish to monitor user 2 during days or times when user 1 might want to play in a video game. Thus, for example, user 2 may wish to monitor user 1 only during evenings, because user 2 does not typically play video games in the mornings. On the other hand, user 2 may wish to make a different sort of connection with another user during the mornings (e.g., with a potential carpool buddy), and so user 2 may wish to monitor another user during the mornings.

Thus, in various embodiments, user 2 may specify not only another user that he wishes to monitor, but also dates and times during which user 2 wants to monitor the other user.

In various embodiments, user 2 may specify other circumstances for when he wishes to monitor user 1. For example, user 2 may specify that he only wishes to monitor user 1 when user 2 is in his office. As another example, user 2 may specify that he only wishes to monitor user 1 when user 2 is at home. For example, if user 2 only plays video games when he is at home, there may be little reason to monitor user 1 (a prospective video game opponent), when user 2 is not home. In various embodiments, user 2 may specify any suitable circumstances for when he wishes to monitor user 1 or any other user.

At step 10212 user 2 establishes alert criteria. Alert criteria may specify what data or situation about user 1 will trigger an alert to user 2. Example alert criteria may include one or more of: user 1 is in his office; user 1 is at the coffee machine; user 1 is home; user 1 has gone upstairs; user 1 has gone into a particular room (e.g., into the room in user 1's house where user 1 typically plays video games); user 1 has just finished working; user 1 has just woken up; another member of user 1's household has just left the house; another member of user 1's household has just entered the house; user 1 looks bored; user 1 laughs; user 1 begins speaking; user 1 has just finished a phone conversation; it has started raining in the locale of user 1; and/or any other criteria.

At step 10215 user 2 establishes an output format for alerts. In various embodiments, an output format may detail the manner in which the alert will be conveyed to user 2.

The output format may include what device, devices, and/or device components will convey an alert. For example, a particular light on a mouse will be used to convey the alert (e.g., the third light from the front on a mouse). In various embodiments, user 2 may configure his mouse (or other peripheral device) so that different components (e.g., different lights) on the mouse correspond to different users that user 2 is monitoring. Thus, for example, when a particular light on his mouse goes on, user 2 may recognize automatically that his friend Bruce Gonzales is now home and possibly available to play a video game.

In various embodiments, other components besides a light may convey an alert. An alert may be generated using a haptic generator, an audio speaker, a heat generator, a display screen, a motor, an electric current generator, etc. In various embodiments, alerts may be generated using components of a peripheral. In various embodiments, alerts may be generated using other devices. Other devices may include home alarms, televisions, cellular phones, phones, clock, smoke alarms, signage, digital picture frames, etc.

In various embodiments, an alert may be conveyed to a user via a user device (e.g., via a personal computer, tablet, etc.). For example, an app on a user device may flash a message to user 2 indicating that user 1 is at home in his gaming room.

In various embodiments, when user 2 establishes the output format of the alert, user 2 may specify the modality of the alert. The output format may include the modality of the alert. The modality may include one or more details about how the alert will be conveyed. Modality may include duration, intensity, and/or frequency of alert. For example, user 2 may specify that, as an alert, an LED light on his mouse will light up bright orange for 3 seconds, turn off for one second, light up bright orange for 3 seconds, turn off for 1 sec, and repeat the cycle for five minutes.

With respect to a light (e.g., an LED), an alert modality may specify a color, brightness, duration of turning on, duration of turning off, frequency of turning on and off, and any other pertinent parameter. A modality may specify that light is to alternate colors or cycle through colors.

In various embodiments, user 2 may establish different output formats corresponding to different users that user 2 is monitoring. For example, an LED light on user 2's mouse may show a blue light when user 2's friend Jack is available, and a purple light when user 2's friend Sam is available. In this way, for example the same component may be used to alert user 2 for multiple different monitored users.

With respect to a speaker or other audio generator, an alert modality may specify a frequency, a volume, a duration, or any other suitable parameter. In various embodiments, an alert may take the form of a pre-recorded audio message, song, jingle, or the like. For example, when user 2's friend Bob is available, a series of notes from a trumpet may play. When user 2's friend Suzy is available, a guitar riff may play.

Various embodiments contemplate that any other suitable modality may be used for presenting an alert.

At step 10218 the central controller 110 monitors user 1's data. The central controller may monitor data, readings, settings, usage statistics, etc. of any device, appliance or the like associated with user 1. The central controller may monitor readings from motion sensors, mouse movements, light levels, sounds, video footage, etc. The central controller may monitor use of a refrigerator, microwave, coffee maker, oven, stove, television, cable television, router, thermostat, window blind controller, etc.

In various embodiments, the central controller 110 monitors for the sounds of pets, sounds of doors opening or closing (e.g., room doors; e.g., a refrigerator door; e.g., a microwave door), the sound of footsteps, the sound of voices, the sound of a television, the sound of a phone conversation, or any other sound. For example, such sounds may allow the central controller to make an inference about user 1's availability to connect to user 2. For example, if the central controller detects the sound of a television, the central controller may infer that user 1 is engaging in leisure activities, and may therefore be available to connect with user 2 for an online video game.

In various embodiments, the central controller 110 may monitor Wi-Fi® signals within user 1's home. Wi-Fi® signals within a given location may change as a result of activity in the location. For example, a person walking between a Wi-Fi® source and a Wi-Fi® receiver may cause the strength of the received signal to temporarily change. It may thus be inferred that a person has walked past. Thus, in various embodiments, the central controller may use W-Fi® signals to infer the availability of user 1, and/or to infer any other aspect of user 1.

In various embodiments, the central controller 110 may monitor a medical device associated with user 1. Exemplary medical devices may include an electrocardiogram (EKG), heart monitor, glucose monitors, scales, skin patches, ultrasounds, etc. In various embodiments, the central controller 110 may monitor data from a health or exercise monitoring device (e.g., from a Fitbit®, treadmill, etc.).

In various embodiments, the central controller 110 may monitor data pertinent to user 1 that is not necessarily generated by user 1, or even generated at user 1's household. For example, knowing the location of user 1's house, the central controller may monitor the weather at user 1's location (e.g., using a public weather feed). In various embodiments, the central controller may monitor pollen count, the occurrence of local events (e.g., parades, softball games, etc.), traffic, crime statistics, or any other state of affairs that may impact user 1.

For example, if the central controller 110 determines that there is bad weather, or high pollen count in the vicinity of user 1, the central controller may infer that user one prefers to stay inside, and may thereby be potentially available to connect with user 2. On the other hand, if there is a local event going on, then the central controller may infer that user 1 may wish to go outside and attend the local event, and will therefore be unavailable to connect with user 2.

At step 10221 the central controller determines a situation from user 1's data. In various embodiments, using data gathered from or about user 1, the central controller 110 may infer, deduce, or otherwise determine a situation, a circumstance, an intent, and/or any other state of user 1. In various embodiments, the central controller may determine a current activity in which the user 1 is engaged (e.g., eating, sleeping, watching TV, playing a game, working, reading, speaking with a spouse, playing with children, doing chores, cooking, and/or any other activity). In various embodiments, the central controller may determine an intended activity of user 1 (e.g., an intention to eat, sleep, etc.). In various embodiments, the central controller may determine the state of user 1's environment (e.g. is user 1 hot, cold; e.g., is it noisy; e.g., is it rainy; e.g., is it bright outside). In various embodiments, the central controller may determine the state of user 1's health (e.g., is user 1 sick, injured, on medication, undergoing physical therapy, or in any other state of health). In various embodiments, the central controller may determine user 1's mood. In various embodiments, the central controller may determine user 1's location (e.g., room in the house; e.g., inside or outside the house; e.g., presence or absence from the house). In various embodiments, the central controller may determine any other aspect of user 1.

In various embodiments, user 1's mood may be determined from data from one or medical devices, such as from an EKG, galvanic skin response (GSR) sensor, electroencephalogram (EEG), heart rate monitor, skin temperature sensor, respiration sensor, or any other sensor. Baseline correlations between mood and sensor data may be determined by capturing sensor data at times when the mood is known (e.g., when it is known that a user is happy because of a recent win in a game) and/or when the mood can be determined through other means (e.g., through analysis of facial expressions). When recognized sensor readings subsequently appear, these sensor readings can be used to determine a mood through the established baseline correlations. For example, high heart rate and high skin conductivity may correlate to a stressed mood.

In various embodiments, the central controller 110 may determine an aspect of another member of user 1's household. For example, the central controller may determine what room user 1's spouse is in. Knowing the circumstances of other members of user 1's household may have a bearing on user 1's ability to connect with user 2. For example, if there is another member of user 1's household in the same room as user 1, it may be inferred that user 1 is paying attention to the other member of the household, and may be unavailable to connect with user 2.

The following are some methods for determining a situation of user 1. If a motion sensor in a particular room detects motion, it may be inferred that user 1 is in that room. If an appliance in a given room reports usage (e.g., if a light in a given room is turned on) then it may also be inferred that user 1 is in that room. If certain types of appliances report usage (e.g., microwaves, refrigerators, stoves, etc.), then it may be inferred that user 1 is engaged in cooking and/or eating. Usage of other appliances may represent other activities (e.g., usage of a washer, dryer, or iron may indicate that a user is doing laundry). If audio of user 1 is recorded, user 1's mood may be inferred from tone of voice, pace of speaking, heaviness of footsteps, etc. If video of user 1 is recorded, user 1's mood may be determined from facial expressions. Video may also be used to infer an activity in which user 1 is engaged (e.g., through classification of captured video frames using a machine learning algorithm). As will be appreciated many methods are contemplated for inferring user 1's situation (e.g., using various algorithms; e.g., using various decision rules; e.g., using various sensors; e.g., using various data).

In various embodiments, a situation, circumstance, or other aspect of user 1 may be determined using methods described with respect to process 10100 (FIG. 101). For example, based on received data about user 1, a decision tree (or any other suitable algorithm) may be used to discern or infer an intent (or other circumstance) of user 1.

In various embodiments, data about user 1 is received from one or of: (a) a peripheral device of user 1, (b) a sensor in range of user 1; (c) an appliance; (d) a third-party data source (e.g., a weather service); and/or from any other suitable source. Such data may be transmitted to and/or aggregated on a peripheral device of user 1. The peripheral device of user 1 may then determine a situation of user 1. In various embodiments, such data may be transmitted to and/or aggregated on a user device of user 1. The user device of user 1 may then determine a situation of user 1. In various embodiments, such data may be transmitted to and/or aggregated on a peripheral device of user 2. The peripheral device of user 2 may then determine a situation of user 1. In various embodiments, such data may be transmitted to and/or aggregated on a user device of user 2. The user device of user 2 may then determine a situation of user 1.

In various embodiments, two or more devices in cooperation may determine a situation of user 1. In various embodiments, peripheral and user devices of user 1 may, in combination, determine a situation of user 1. In various embodiments, peripheral and user devices of user 2 may, in combination, determine a situation of user 1.

In various embodiments, once a situation of user 1 has been determined, a tag may be generated based on the situation. The tag may be descriptive of the situation (e.g., the tag may indicate that user 1 is working, user 1 is in a meeting, user 1 is available, user 1 is bored, etc.). The tag may represent an evaluation based on the situation (e.g., user 1 is using too much jargon in a meeting; user 1 is too loud; there is no coffee left in a coffee machine; etc.). The tag may be responsive to a situation in any other fashion.

The tag may be communicated to user 1, such as via a peripheral device of user 1. For example, the tag may appear on a display screen of a mouse or keyboard belonging to user 1. In various embodiments, the tag may be communicated to user 2 (e.g., to user 1's coworker or supervisor), and/or to any other user. The tag may also be stored for further reference or analysis, such as in tagging database 7300.

At step 10224 the central controller 110 determines if user 1's situation warrants an alert to user 2 based on the alert criteria. For example, if user 2 requested an alert when user 1 is in user 1's gaming room, and the central controller determines that user 1 is in user 1's gaming room, then the central controller may determine that an alert to user 2 is warranted.

At step 10227 user 2 receives an output alert according to the output format. For example, if user 2 has requested that an alert take the form of a particular audio jingle played from his mouse, then user 2's mouse may now play the jingle.

At step 10230 user 2 initiates a connection with user 1. User 2 may request to connect with user one in various ways. User 2 may click a button or otherwise activate a component on his mouse or other peripheral device that corresponds to user one. For example, if a particular light on user 2's mouse has been activated (e.g., lit up) to indicate the availability of user 1, then user 2 may press a mouse button near to (e.g., closest to) that light in order to initiate a connection with user 1. In various embodiments, user 2's mouse (or other peripheral) may instruct user 2 to click or press a particular button (e.g., “i” on a keyboard; e.g., the right mouse button) to initiate a connection. The connection may initiate, by default, with the other user who has triggered the most recent alert.

In various embodiments, user 2 may access a list of other users he is monitoring (e.g., available users he is monitoring), and select one such user (e.g., user 1) with whom to initiate a connection.

In various embodiments, a connection may be initiated automatically on behalf of user 2, such as when user 2 receives an alert related to user 1.

Various embodiments contemplate any other suitable method by which user 2 may initiate a connection with user 1.

At step 10233 user 1 accepts the connection with user 2. In various embodiments, user 1 receives a request to connect with user 2. For example, user 1 may receive a message on his mouse or other peripheral device. Use 1 may be asked to press a button or key, move his mouse, or take any other suitable action in order to accept the connection request from user 2.

In various embodiments, a connection may be initiated automatically between user 1 and user 2 even without an explicit acceptance on the part of user 1. Various embodiments contemplate any other suitable method by which user 1 may accept a connection with user 2.

At step 10236 user 2 is connected to user 1. In various embodiments, once connected, a peripheral device of user 2 may reflect (e.g., replicate; e.g., illustrate; e.g., represent) some aspect of the environment of user 1. A peripheral device of user 2 may reflect the local weather in the vicinity of user 1. For example, if it is raining at user 1's location, user 2's mouse may rumble to reflect the patterning of rain on a rooftop. If the sun is setting at user 1's location (e.g., user 1 and user 2 may be in different time zones), then user 2's mouse may turn orange and pink to represent the sunset. User 2's mouse may show an image or video of the sunset (e.g., as captured by a camera at user 1's house). User 2's mouse may show a rendering or animation of the sunset. In various embodiments, any representation of the weather at user 1's location may be shown on user 2's mouse (or other peripheral device).

As another example, if there are sounds at user 1's location (e.g., the sound of a dog barking; e.g., the sound of children laughing), then user 2's peripheral device may reflect the sounds, such as by outputting the sounds from a speaker in user 2's peripheral device. As ano