Facebook Patent | Apparatuses, Systems, And Methods For Representing User Interactions With Real-World Input Devices In A Virtual Space
Publication Number: 20190094982
Publication Date: 20190328
Applicants: Facebook
Abstract
A key assembly for a keyboard may include a key cap that includes a touch sensor that is communicatively coupled to a control device. When the touch sensor senses a touch event, the touch sensor may send a touch signal to the control device, and when the touch sensor senses an absence of touch, the touch sensor may send a control signal to the control device. The key assembly may further include a switch that is communicatively coupled to the control device and that is movable between a pressed position and an un-pressed position. When the switch is in the pressed position, the switch may send a closed signal to the control device, and when the switch is in the un-pressed position, the switch may send an open signal to the control device. Various other apparatuses, systems, and methods are also disclosed.
BACKGROUND
[0001] Putting on a virtual reality headset may be the beginning of a thrilling experience, one that may be more immersive than almost any other digital entertainment or simulation experience available today. Virtual reality headsets may enable users to travel through space and time, interact with friends in a three-dimensional world, or play video games in a radically redefined way. Virtual reality headsets may also be used for purposes other than recreation. Governments may use them for military training simulations, doctors may use them to practice surgery, and engineers may use them as visualization aids. Virtual reality headsets may also be used for productivity purposes. Information organization, collaboration, and privacy may all be enabled or enhanced through the use of virtual reality headsets.
[0002] Unfortunately, it may be difficult for users to interact with traditional computer input devices (e.g., keyboards, mice, trackballs, trackpads, etc.) while wearing virtual reality headsets because virtual reality headsets may prevent the users from seeing the input devices as they interact with them (e.g., by obstructing a line of sight between a user’s eye and an input device). This lack of visual feedback may cause inefficiencies in user interaction with such traditional computer input devices while users are wearing virtual reality headsets. For example, users may type on a traditional keyboard at a significantly slower rate and/or may produce more errors while wearing a virtual reality headset because the virtual reality headset may prevent the users from seeing their fingers as they interact with the keyboard.
[0003] Hence, the instant disclosure identifies and addresses a need for apparatuses, systems, and methods that enable end-users to receive visual feedback while interacting with computer input devices.
SUMMARY
[0004] As will be described in greater detail below, the instant disclosure describes various apparatuses, systems, and methods for representing user interactions with real-world input devices in a virtual space. For example, the disclosed systems may provide visual feedback to users as they interact with real-world input devices (e.g., keyboards) while using a virtual reality headset.
[0005] In one example, an apparatus for representing user interactions with real-world input devices in virtual space may include a key assembly for a keyboard that includes a key cap. The key cap may include a touch sensor that is communicatively coupled to a control device. In some examples, when the touch sensor senses a touch event, the touch sensor may send a touch signal to the control device, and when the touch sensor senses an absence of touch, the touch sensor may send a control signal to the control device. The key assembly may further include a switch that is communicatively coupled to the control device and that is movable between a pressed position and an un-pressed position. In some examples, when the switch is in the pressed position, the switch may send a closed signal to the control device, and when the switch is in the un-pressed position, the switch may send an open signal to the control device.
[0006] In some embodiments, the key cap may further include (1) an interface surface that is coupled to the touch sensor and (2) a connector. In such embodiments, the switch may further include a plunger that is coupled to the connector and that is movable between an extended position and a compressed position. In at least one example, when the switch is in the pressed position, the plunger may be in the compressed position, and when the switch is in the un-pressed position, the plunger may be in the extended position. In some embodiments, the interface surface may define a concave depression that is adapted to receive a fingertip of a human finger. In at least one example, the touch sensor includes a sensing portion that at least partially covers the interface surface. In some examples, the touch sensor may be a capacitive touch sensor, and in some examples, the touch sensor may be a resistive touch sensor.
[0007] In addition, a corresponding virtual reality interface system for representing user interactions with real-world input devices in virtual space may include (1) a head-mounted display, (2) a control device that is communicatively coupled to the head-mounted display, and (3) a keyboard that includes at least one key assembly. The key assembly may include a key cap that includes a touch sensor that is communicatively coupled to the control device. In some examples, when the touch sensor senses a touch event, the touch sensor may send a touch signal to the control device, and when the touch sensor senses an absence of touch, the touch sensor may send a control signal to the control device. The key assembly may further include a switch that is communicatively coupled to the control device and that is movable between a pressed position and an un-pressed position. In some examples, when the switch is in the pressed position, the switch may send a closed signal to the control device, and when the switch is in the un-pressed position, the switch may send an open signal to the control device. In some examples, the touch sensor may be a capacitive touch sensor.
[0008] In some embodiments, the key cap may further include (1) an interface surface that is coupled to the touch sensor and (2) a connector. In such embodiments, the switch may further include a plunger that is coupled to the connector and that is movable between an extended position and a compressed position. In some examples, when the switch is in the pressed position, the plunger may be in the compressed position, and when the switch is in the un-pressed position, the plunger may be in the extended position. In some embodiments, the touch sensor may include a sensing portion that at least partially covers the interface surface, and in some embodiments, the interface surface may define a concave depression that is adapted to receive a fingertip of a human finger.
[0009] In some additional embodiments, the control device may receive, from the touch sensor, a touch sensor signal that may include one of (1) the touch signal and (2) the control signal. In such examples, the control device may also receive, from the switch, a switch signal that may include one of (1) the closed signal and (2) the open signal.
[0010] In some embodiments, the control device may direct the head-mounted display to present, in a virtual space, a visual representation of the key assembly. In such embodiments, the visual representation of the key assembly may be in the un-pressed position when the switch signal includes the open signal, and the visual representation of the key assembly may be in the pressed position when the switch signal includes the closed signal.
[0011] In some embodiments, the control device may further direct the head-mounted display to present, in the virtual space with the visual representation of the key assembly, a visual representation of a fingertip. In such embodiments, the visual representation of the fingertip may be in contact with a visual representation of the interface surface of the key cap when the touch sensor signal includes the touch signal, and the visual representation of the fingertip may be disconnected from the visual representation of the key cap when the touch sensor signal includes the control signal.
[0012] In some examples, the keyboard may include at least one additional key assembly that may be communicatively coupled to the control device. In such examples, the control device may receive an additional signal from the additional key assembly, and the visual representation of the key assembly and/or the visual representation of the fingertip may be further based on the additional signal.
[0013] In some embodiments, the keyboard may further include a mounting surface that includes a mounting location, and the switch may further include a mount that is coupled to the plunger and that is coupled to the mounting surface at the mounting location. In such embodiments, the control device may receive data representative of the mounting location, and the visual representation of the key assembly in the virtual space may be further based on the data representative of the mounting location.
[0014] In some embodiments, the keyboard may further include a physical position indicator. In such embodiments, the control device may determine (1) a position of the physical position indicator in a physical space and (2) a position of the keyboard in the virtual space based on the determination of the position of the physical position indicator in the physical space. The visual representation of the key assembly in the virtual space may then further be based on the determination of the position of the keyboard in the virtual space.
[0015] A corresponding method for representing user interactions with real-world input devices in virtual space may include sensing a touch event via a touch sensor included in a key cap that is included in a key assembly of a virtual reality interface system. The method may further include determining, while the touch sensor senses the touch event, that a switch included in the key assembly has moved from an un-pressed position to a pressed position. The method may additionally include directing, while the switch is in the pressed position and the touch sensor senses the touch event, a head-mounted display included in the virtual reality interface system to present, in a virtual space, a visual representation of the key assembly in the pressed position and a visual representation of a fingertip in contact with a visual representation of an interface surface of the key cap.
[0016] In some examples, the method may further include determining, while the touch sensor senses the touch event, that the switch has moved from the pressed position to the un-pressed position. In such examples, the method may further include directing, while the switch is in the un-pressed position and the touch sensor senses the touch event, the head-mounted display to present, in the virtual space, a visual representation of the key assembly in the un-pressed position and the visual representation of the fingertip in contact with the visual representation of the interface surface of the key cap.
[0017] In additional examples, the method may further include sensing, via the touch sensor, an absence of touch. In such examples, the method may further include directing, while the switch is in the un-pressed position and the touch sensor senses an absence of touch, the head-mounted display to present, in the virtual space, the visual representation of the key assembly in the un-pressed position and a visual representation of a fingertip disconnected from the interface surface of the key cap.
[0018] Features from any of the above-mentioned embodiments may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The accompanying drawings illustrate a number of exemplary embodiments and are a part of the specification. Together with the following description, these drawings demonstrate and explain various principles of the instant disclosure.
[0020] FIG. 1 is a perspective view of an exemplary head-mounted-display system in accordance with some embodiments.
[0021] FIG. 2 is a cross-sectional side view of a key assembly in accordance with some embodiments.
[0022] FIGS. 3A through 3C illustrate cross-sectional side views of a key assembly accordance with some embodiments.
[0023] FIG. 4 is a top view of a keyboard that is included in a virtual reality interface system and that includes at least one key assembly in accordance with some embodiments.
[0024] FIG. 5 is a block diagram of an exemplary display subsystem for representing user interactions with real-world input devices in a virtual space.
[0025] FIG. 6 is a block diagram of an exemplary control device for representing user interactions with real-world input devices in a virtual space.
[0026] FIG. 7 is a block diagram of an exemplary system for representing user interactions with real-world input devices in a virtual space.
[0027] FIG. 8 is a view of a visual representation of a key assembly and a visual representation of a fingertip in a virtual space in accordance with some embodiments.
[0028] FIG. 9 is a block diagram of an exemplary method for representing user interactions with real-world input devices in a virtual space.
[0029] Throughout the drawings, identical reference characters and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the instant disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0030] The present disclosure is generally directed to apparatuses, systems, and methods for representing user interactions with real-world input devices in a virtual space. As will be explained in greater detail below, embodiments of the instant disclosure may provide visual feedback to a user of a virtual reality headset while the user also interacts with a real-world input device (e.g., a keyboard). An example key assembly may include both a touch sensor that may send, to a control device, a touch signal when it senses a touch event, and a control signal when it senses an absence of touch. The example key assembly may also include a switch that is movable (e.g., pressable) between a pressed position and an un-pressed position. When the switch is in the pressed position, the switch may send a closed signal to the control device, and when the switch is in the un-pressed position, the switch may send an open signal to the control device.
[0031] Based on these and other inputs, the control device may be able to determine a position of the user’s fingertip relative to the example key assembly. The control device may then use these inputs to direct a head-mounted display (e.g., a virtual reality headset) to present or display a visual representation of the user’s fingertip relative to the example key assembly within a virtual space. This may provide useful visual feedback to the user, and hence allow the user to more efficiently interact with a keyboard that includes the example key assembly while using the head-mounted display.
[0032] The following will provide, with reference to FIG. 1, examples of head-mounted-display systems. In addition, the discussion corresponding to FIGS. 2-8 will provide examples of various apparatuses and systems for representing user interactions with real-world input devices in a virtual space. Finally, the discussion corresponding to FIG. 9 will provide examples of methods for representing user interactions with real-world input devices in a virtual space.
[0033] FIG. 1 is a perspective view of a head-mounted-display system 100 in accordance with some embodiments. In some embodiments, head-mounted-display system 100 may include a head-mounted-display device 102 (i.e., head-mounted display), audio subsystems 104, a strap assembly 106, and a facial-interface system 108. The term “head-mounted display,” as used herein, generally refers to any type or form of display device or system that is worn on or about a user’s head and displays visual content to the user. Head-mounted displays may display content in any suitable manner, including via a screen (e.g., an LCD or LED screen), a projector, a cathode ray tube, an optical mixer, etc. Head-mounted displays may display content in one or more of various media formats. For example, a head-mounted display may display video, photos, and/or computer-generated imagery (CGI). Head-mounted-display device 102 may include a head-mounted-display housing 116 surrounding various components of head-mounted-display device 102, including lenses 114 and various electronic components, including display components as described above.
[0034] Head-mounted displays may provide diverse and distinctive user experiences. Some head-mounted displays may provide virtual-reality experiences (i.e., they may display computer-generated or pre-recorded content), while other head-mounted displays may provide real-world experiences (i.e., they may display live imagery from the physical world). Head-mounted displays may also provide any mixture of live and virtual content. For example, virtual content may be projected onto the physical world (e.g., via optical or video see-through), which may result in augmented reality or mixed reality experiences. Head-mounted displays may be configured to be mounted to a user’s head in a number of ways. Some head-mounted displays may be incorporated into glasses or visors. Other head-mounted displays may be incorporated into helmets, hats, or other headwear. Examples of head-mounted displays may include OCULUS RIFT, GOOGLE GLASS, VIVE, SAMSUNG GEAR, etc.
[0035] In some embodiments, audio subsystems 104 may be integrated with head-mounted-display device 102 and may provide audio signals to the user’s ears. Head-mounted-display system 100 may, for example, have two audio subsystems 104 located on the left and right sides of head-mounted-display system 100 to provide audio signals to the user’s left and right ears, as shown in FIG. 1.
[0036] Strap assembly 106 may be used for adjustably mounting head-mounted-display device 102 on the user’s head. As shown in FIG. 1, strap assembly 106 may include various straps, such as an upper strap and lower straps, that are coupled to head-mounted-display device 102 to adjustably conform to the top and/or sides of the user’s head when the user is wearing head-mounted-display device 102.
[0037] In some embodiments, facial-interface system 108 may be configured to comfortably rest against a region of the user’s face, including a region surrounding the user’s eyes, when head-mounted-display system 100 is worn by the user. In these embodiments, facial-interface system 108 may include a facial interface 110 that contacts selected regions of the user’s face. Facial interface 110 may surround a viewing region 112 that includes the user’s field of vision while the user is wearing head-mounted-display system 100, allowing the user to look through lenses 114 of head-mounted-display device 102 without interference from outside light while the user is wearing head-mounted-display system 100.
[0038] FIG. 2 is a cross-sectional side view of an example key assembly 200 (“key assembly 200”). As shown, key assembly 200 may include a key cap 202 that includes a touch sensor 204. Touch sensor 204 may be communicatively coupled to control device 206 via a touch sensor connection 208. In this configuration, when touch sensor 204 senses a touch event (e.g., when a fingertip of a user touches touch sensor 204), the touch sensor sends a touch signal to control device 206. Additionally, when touch sensor 204 senses an absence of touch (e.g., when touch sensor 204 is not being touched by a fingertip of a user), touch sensor 204 sends a control signal to control device 206.
[0039] Touch sensor 204 may be any sensor capable of sensing a touch event and/or an absence of touch and that may send touch signals and control signals to control device 206. For example, touch sensor 204 may be a capacitive touch sensor that utilizes surface capacitance, projected capacitance, and/or any other suitable capacitive touch sensing technology to sense a touch event (e.g., a touch of a fingertip of a user). In other examples, touch sensor 204 may be a resistive touch sensor, an infrared touch sensor, and/or any other suitable touch sensor.
[0040] As further shown in FIG. 2, key assembly 200 may also include a switch 210 that is communicatively coupled to control device 206 via switch connection 212. As shown by movement indicators 224, switch 210 may be movable between a pressed position and an un-pressed position. In this configuration, when switch 210 is in the pressed position, switch 210 may send (e.g., via switch connection 212) a closed signal to control device 206. Additionally, when switch 210 is in the un-pressed position, switch 210 may send (e.g., via switch connection 212) an open signal to control device 206.
[0041] Switch 210 may represent any switch that is capable of being moved between a pressed position and an un-pressed position, and that may send open signals and closed signals to control device 206. Examples of switch 210 may include, but are not limited to, a mechanical switch, a membrane switch, a dome switch, a scissor switch, a buckling spring switch, a Hall-effect switch, an optical switch, and/or any other suitable switch.
[0042] As will be described in further detail below in reference to FIGS. 6-7, control device 206 may represent any suitable computing device that may receive one or more inputs from one or more sensors (e.g., touch sensor 204, switch 210, etc.) and that may perform one or more operations in response to and/or based on the input received from the one or more sensors. For example, control device 206 may receive, from touch sensor 204, a touch sensor signal that includes one of a touch signal and a control signal. Additionally or alternatively, control device 206 may receive, from switch 210, a switch signal that includes a closed signal and/or an open signal. Additional examples and explanations will be provided in reference to FIGS. 6-7 below.
[0043] Touch sensor connection 208 generally represents any medium or architecture capable of facilitating communication or data transfer from touch sensor 204 to control device 206. Likewise, switch connection 212 generally represents any medium or architecture capable of facilitating communication or data transfer from touch sensor 204 to control device 206. Touch sensor connection 208 and/or switch connection 212 may facilitate communication or data transfer using wireless and/or wired connections. Examples of touch sensor connection 208 and/or switch connection 212 may include, without limitation, a printed circuit board, a direct cable connection (e.g., USB, serial, APPLE LIGHTNING, APPLE THUNDERBOLT, HDMI, etc.), a Personal Area Network (PAN), a Local Area Network (LAN), an intranet, a Wide Area Network (WAN), the Internet, Power Line Communications (PLC), a cellular network (e.g., a Global System for Mobile Communications (GSM) network), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable connection.
[0044] In some embodiments, key cap 202 may also include an interface surface 214 that is coupled to touch sensor 204. Interface surface 214 may represent a surface of key cap 202 that may be coupled to a touch sensor (e.g., touch sensor 204). In some examples, the interface surface may define a concave depression 216 (“depression 216”) that is adapted (e.g., dimensioned and/or sculpted) to receive a fingertip of a human finger. Such a depression may aid a user in positioning a fingertip on key cap 202.
[0045] Touch sensor 204 may include a sensing portion 218. Sensing portion 218 may represent any portion of touch sensor 204 that is sensitive to a touch event. Sensing portion 218 may be dimensioned to at least partially cover interface surface 214. In some embodiments, interface surface 214 may be entirely covered by sensing portion 218. Hence, in such embodiments, any contact a user’s fingertip makes with interface surface 214 of key cap 202 may result in touch sensor 204 sensing a touch event.
[0046] In some embodiments, switch 210 may also include a plunger 220 that is coupled to key cap 202 via a connector 222. Plunger 220 may be movable between an extended position and a compressed position. As indicated by movement indicators 224, plunger 220 may be movable in a direction parallel to a longitudinal axis of key cap 202, and may be moved between an extended position and a compressed position. When the switch is in the pressed position, plunger 220 is in the compressed position, and when the switch is in the un-pressed position, plunger 220 is in the extended position. In some examples, switch 210 may further include a mount 226 that is coupled to plunger 220, and which may allow switch 210 to be mounted to a mounting surface 228.
[0047] Switch 210 may be associated with an actuation force and an actuation direction. An actuation force associated with switch 210 may represent an amount of force that may be applied to switch 210 before switch 210 may move from the un-pressed position to the pressed position. For example, switch 210 may have an associated actuation force of 60 centinewtons. Likewise, an actuation direction associated with switch 210 may be a direction relative to switch 210 in which the actuation force must be applied to switch 210 in order to cause switch 210 to move from the un-pressed position to the pressed position. When force that exceeds the associated actuation force is applied (e.g., by a fingertip of a user) to switch 210 (e.g., via key cap 202) in a direction parallel to an actuation direction of switch 210, switch 210 may move from the un-pressed position to the pressed position. In examples that include plunger 220, when such force is applied to switch 210, plunger 220 may also move from the extended position to the compressed position.
[0048] FIGS. 3A through 3C illustrate cross-sectional side views of key assembly 200 in various configurations. As shown in FIG. 3A, key assembly 200 is not being touched (e.g., by a fingertip of a user). Hence, in this configuration, touch sensor 204 may sense an absence of touch. Additionally, no force (i.e., a force that exceeds an actuation force associated with switch 210) is being applied to key cap 202 (e.g., by a fingertip of a user), and thus switch 210 is shown in the un-pressed position and plunger 220 is shown in the extended position. In this configuration, touch sensor 204 may send a control signal to control device 206 and switch 210 may send a closed signal to control device 206.
[0049] In FIG. 3B, a fingertip 302 of a user touches key cap 202 at touch sensor 204, but applies a force to key cap 202–and thus switch 210–that does not exceed an actuation force of switch 210. In this configuration, touch sensor 204 may sense a touch event (e.g., from fingertip 302), and therefore may send a touch signal to control device 206. However, switch 210 remains in the un-pressed position. Hence, switch 210 may send (or continue to send) the open signal to control device 206.
[0050] In FIG. 3C, fingertip 302 touches key cap 202 at touch sensor 204 and has applied a force to key cap 202 that has exceeded the actuation force of switch 210 in the actuation direction (i.e., toward mounting surface 228) of switch 210. The applied force has therefore caused switch 210 (obscured by key cap 202 in FIG. 3C) to move from the un-pressed position to the pressed position and plunger 220 to move from the extended position to the compressed position. In this configuration, touch sensor 204 may sense a touch event (e.g., from fingertip 302), and therefore may send a touch signal to control device 206. And, as switch 210 has moved from the un-pressed position to the pressed position, switch 210 may send a closed signal to control device 206.
[0051] In some embodiments, at least one key assembly 200 may be included in a keyboard that may be included in a virtual reality interface system. FIG. 4 is a top view of a keyboard 400 that may be included in a virtual reality interface system and that includes at least one key assembly 200. As shown, keyboard 400 may include a mounting surface 402. Mounting surface 402 may be any suitable mounting surface that may receive a mount included in key assembly 200 (e.g., mount 226). Additionally, mounting surface 402 may facilitate touch sensor connection 208 between touch sensor 204 and control device 206 and/or switch connection 212 between switch 210 and control device 206. For example, mounting surface 402 may include a printed circuit board that touch sensor 204 and/or switch 210 may be coupled to and that may facilitate transmission of one or more signals from touch sensor 204 and/or switch 210 to control device 206. In some examples, mounting surface 402 may include a rigid plate that may provide a more secure and/or robust mounting surface for key assembly 200.
[0052] As further shown in FIG. 4, key assembly 200 may be mounted (e.g., via mount 226) at a mounting location 404. Mounting location 404 may be any suitable mounting location on mounting surface 402. In some examples, mounting location 404 may correspond to a location of a key in a predetermined keyboard layout. For example, as shown in FIG. 4, and assuming that a layout of keyboard 400 corresponds to a QWERTY keyboard layout, mounting location 404 may correspond to a location of a “J” key. As another example, assuming the layout of keyboard 400 corresponds to a Dvorak keyboard layout, mounting location 404 may correspond to a location of an “H” key.
[0053] Keyboard 400 may include an additional key assembly 406 mounted at an additional mounting location 408. As with mounting location 404, additional mounting location 408 may be any suitable mounting location on mounting surface 402. Continuing with the previous examples, assuming the layout of keyboard 400 corresponds to a QWERTY keyboard layout, additional mounting location 408 may correspond to a “U” key, and assuming the layout of keyboard 400 corresponds to a Dvorak keyboard layout, additional mounting location 408 may correspond to a “G” key.
[0054] In some embodiments, keyboard 400 may include one or more additional sensors and/or indicators that may provide and/or facilitate providing additional information to control device 206 regarding a position of keyboard 400. For example, keyboard 400 may include one or more physical position indicators 410 (i.e., physical position indicator 410-1 and physical position indicator 410-2). As will be described in greater detail below in reference to FIG. 7, such physical position indicators may be used by a virtual reality interface system that includes keyboard 400 to determine a physical position and/or orientation of keyboard 400. Physical position indicators 410 may be any suitable fiducial markers that may be detected by a suitable camera. For example, when a virtual reality interface system that includes keyboard 400 also includes an infrared (IR) camera system, physical position indicators 410 may be IR LEDs and/or small dots of retro-reflective material. For a visible light camera system, physical position indicators 410 may include an easily-distinguishable color or intensity pattern.
[0055] In some embodiments, keyboard 400 may also include other sensors that may gather data regarding a position of keyboard 400 and communicate that data back to control device 206. Examples of such additional sensors may include, without limitation, gyroscopic sensors, accelerometers, altimeters, global positioning system devices, light sensors, audio sensors, power sensors, and/or any other sensor.
[0056] As shown, keyboard 400 may be communicatively coupled to control device 206 via keyboard connection 412. As with touch sensor connection 208 and switch connection 212, keyboard connection 412 generally represents any medium or architecture capable of facilitating communication or data transfer from keyboard 400 to control device 206. Keyboard connection 412 may facilitate communication or data transfer using wired and/or wireless connections. In some examples, keyboard connection 412 may facilitate any or all of the touch sensor connections and switch sensor connections of the key assemblies included in keyboard 400. Additionally or alternatively, keyboard connection 412 may facilitate a separate data connection for one or more additional components of keyboard 400. Examples of keyboard connection 412 may include, without limitation, a printed circuit board, a direct cable connection (e.g., USB, serial, APPLE LIGHTNING, APPLE THUNDERBOLT, HDMI, etc.), a PAN, a LAN, an intranet, a WAN, the Internet, PLC, a cellular network (e.g., a GSM network), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable connection.
[0057] As will be described in greater detail below in reference to FIG. 7, control device 206 may utilize data from the various touch sensors, switches, and other data gathering devices included in keyboard 400 to direct a head-mounted display included in a virtual reality interface system to present, in a virtual space, a visual representation of at least one key assembly and/or a visual representation of at least one fingertip. Additionally, control device 206 may utilize the provided data to present a visual representation of a user’s hand or hands interacting with a virtual keyboard. In this and other ways, the apparatuses, systems, and methods described herein may represent user interactions with real-world input devices in a virtual space, thus providing visual feedback to a user while the user interacts with the real-world input devices.
[0058] FIG. 5 illustrates an exemplary display subsystem 500 that may be directed (e.g., by control device 206) to perform various actions to represent user interactions with real-world input devices in a virtual space. As shown in FIG. 5, display subsystem 500 may include display computing device 502 for controlling display screen 504. In some embodiments, display subsystem 500 may include a plurality of displays, such as a pair of displays utilized in head-mounted-display device 102. For example, head-mounted-display device 102 may include a pair of display screens 504 that are each controlled by a separate display computing device 502. Additionally or alternatively, a pair of display screens 504 of head-mounted-display device 102 may both be controlled by a single display computing device 502.
[0059] According to at least one embodiment, display computing device 502 may include a display driver 506 for driving pixels of display screen 504. Display driver 506 may include any suitable circuitry for driving display screen 504. For example, display driver 506 may include at least one integrated circuit (IC). In some examples, display driver 506 may include timing controller (TCON) circuitry that receives image signals and generates horizontal and vertical timing signals for display screen 504. Display driver 506 may, for example, be mounted on an edge of a thin-film-transistor (TFT) substrate layer of display screen 504.
[0060] As illustrated in FIG. 5, example display subsystem 500 may also include one or more memory devices, such as memory 508. Memory 508 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, memory 508 may store, load, and/or maintain one or more of modules 510. Examples of memory 508 include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, and/or any other suitable storage memory.
[0061] Display subsystem 500 may also include one or more modules 510 for performing one or more display tasks. As shown in FIG. 5, display subsystem 500 may include a graphics control module 512 that provides display data and control signals to display driver 506 for producing images on display screen 504. Graphics control module 512 may include, for example, a video card and/or video adapter that is used to provide video data and/or display control signals to display screen 504. In some examples, video data may include text, graphics, images, moving video content, and/or any other suitable image content to be presented on display screen 504.
[0062] In at least one embodiment, display subsystem 500 may include a calibration data module 514 that stores and utilizes calibration data for display screen 504. For example, calibration data module 514 may include calibration data, such as correction factors, that are applied to video data utilized by display driver 506 to produce calibrated images on display screen 504.
[0063] Additionally, display subsystem 500 may include a communication module 516 that receives video data and/or calibration data from one or more computing devices. For example, communication module 516 may receive video data to be displayed on display screen 504 from any suitable video and/or image source. Communication module 516 may also, for example, receive calibration data from a display calibration system. In some examples, communication module 516 may also receive user input supplied by a user via an input-output device (e.g., touch screens, buttons, joysticks, click wheels, scrolling wheels, touch pads, key pads, keyboards, microphones, speakers, tone generators, position and/or orientation sensors, vibrators, cameras, sensors, light-emitting diodes and/or other status indicators, data ports, etc.) to display subsystem 500. In at least one example, communication module 516 may also send data from display subsystem 500 to external devices and/or to a user.
[0064] In certain embodiments, one or more of modules 510 in FIG. 5 may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks. For example, and as will be described in greater detail below, one or more of modules 510 may represent modules stored and configured to run on one or more computing devices (e.g., head-mounted-display device 102 shown in FIG. 1). One or more of modules 510 in FIG. 5 may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.
[0065] As illustrated in FIG. 5, example display subsystem 500 may also include one or more physical processors, such as physical processor 518. Physical processor 518 generally represents any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. In one example, physical processor 518 may access and/or modify one or more of modules 510 stored in memory 508. Additionally or alternatively, physical processor 518 may execute one or more of modules 510 to facilitate calibration of display screen 504. Examples of physical processor 518 include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable physical processor.
[0066] Display subsystem 500 may receive (e.g., from control device 206 via one or more modules 510) one or more instructions that may direct display subsystem 500 to display, via display screen 504, a visual representation of one or more user interface objects within a virtual space. Such user interface objects may include, without limitation, a key assembly, a keyboard, a fingertip, a hand, and so forth. By presenting these user interface objects by way of display screen 504 as directed by control device 206, display subsystem 500 may provide useful feedback regarding use of a real-world input device (e.g., keyboard 400) to a user while the user is wearing head-mounted display 102. Accordingly, display subsystem 500 may work in concert with control device 206 to represent user interactions with real-world input devices in a virtual space.
[0067] FIG. 6 illustrates a block diagram of control device 206 that may facilitate representing user interactions with real-world input devices in a virtual space. As illustrated in this figure, control device 206 may include one or more modules 602 for performing one or more tasks. As will be described in greater detail below, modules 602 may include a receiving module 604 that receives, from touch sensor 204, a touch sensor signal that includes one of a touch signal and a control signal. Receiving module 604 may also receive, from switch 210, a switch signal that includes one of a closed signal and an open signal.
[0068] In addition, in some embodiments, receiving module 604 may receive signals in addition to the touch sensor signal and the switch signal. For example, in some embodiments, receiving module 604 may receive an additional signal (e.g., an additional touch signal, an additional switch signal, etc.) from an additional key assembly included in a keyboard (e.g., keyboard 400). Additionally, receiving module 604 may receive data representative of a mounting location of a key assembly within a mounting surface of a keyboard (e.g., keyboard 400), data representative of a position and/or orientation of a keyboard (e.g., keyboard 400), and any other data and/or signal that may serve a particular implementation.
[0069] As further shown in FIG. 6, modules 602 may further include a directing module 606 that directs a head-mounted display (e.g., head-mounted-display device 102) to present, in a virtual space, a visual representation of a key assembly (e.g., key assembly 200). Directing module 606 may direct the head-mounted display to present the visual representation of the key assembly in an un-pressed position when the switch signal includes the open signal, and in a pressed position when the switch signal includes the closed signal. Additionally, directing module 606 may direct the head-mounted display (e.g., head-mounted-display device 102) to present, in the virtual space with the visual representation of the key assembly, a visual representation of a fingertip. Directing module 606 may direct the head-mounted display to present the visual representation of the fingertip in contact with a visual representation of an interface surface of the key cap (e.g., interface surface 214) when the touch sensor signal includes the touch signal, and disconnected from the visual representation of the key cap when the touch sensor signal includes the control signal.
[0070] In some embodiments, as will be described in greater detail below, directing module 606 may direct display subsystem 500 to present the visual representation of the key cap and/or the visual representation of the fingertip based on additional data, such as additional data received from one or more other modules 602 (e.g., receiving module 604, determining module 608, and/or communication module 610). For example, in embodiments where receiving module 604 receives an additional signal from an additional key assembly included in a keyboard (e.g., keyboard 400), directing module 606 may base the visual representation of the key cap and/or the visual representation of the fingertip based on the additional signal from the additional key assembly.
[0071] In some embodiments, modules 602 may also include a determining module 608 that may determine a position of at least one physical position indicator included in a keyboard (e.g., keyboard 400) in a physical space. Determining module 608 may also determine a position of the keyboard in a virtual space based on the determination of the position of the physical position indicator in the physical space. Determining module 608 may perform these tasks in any suitable way, such as by calculating the position of the keyboard in the virtual space based on an observed position of the physical position indicators in the physical space. Additionally or alternatively, in some embodiments, determining module 608 may determine the position of the keyboard in the virtual space based on data gathered by one or more sensors included in a head-mounted-display system (e.g., head-mounted-display system 100) and/or one or more sensors included in a keyboard (e.g., keyboard 400). As will be explained in greater detail below, modules 602 may further include a communication module 610 that communicates with one or more devices, such as head-mounted-display system 100, keyboard 400, and/or display screen 504. In at least one example, communication module 610 may also send data from control device 206 to other external devices and/or to a user.
[0072] In certain embodiments, one or more of modules 602 in FIG. 6 may represent one or more software applications or programs that, when executed by subsystem 600, may cause subsystem 600 to perform one or more tasks. As illustrated in FIG. 6, subsystem 600 may also include one or more memory devices, such as memory 612.
[0073] Memory 612 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, memory 612 may store, load, and/or maintain one or more of modules 602.
[0074] Subsystem 600 may also include one or more physical processors, such as physical processor 614. Physical processor 614 generally represents any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. In one example, physical processor 614 may access and/or modify one or more of modules 602 stored in memory 612. Additionally or alternatively, physical processor 614 may execute one or more of modules 602 to facilitate representing user interactions with real-world input devices in a virtual space.
[0075] Although illustrated as separate computing devices herein, in some implementations display computing device 502 and control device 206 may share one or more components and/or functions. For example, in some implementations, functions performed by physical processor 518 may be performed by physical processor 614 and/or one or more functions performed by physical processor 614 may be performed by physical processor 518. Additionally or alternatively, one or more modules 510 may be stored in memory 612, and/or one or more modules 602 may be stored in memory 508.
[0076] FIG. 7 illustrates an exemplary virtual reality interface system 700 for representing user interactions with real-world input devices in a virtual space. As shown, virtual reality interface system 700 may include head-mounted-display system 100, shown in FIG. 7 as being worn by a user 702. Virtual reality interface system 700 may also include a keyboard 400. Keyboard 400 may be communicatively coupled to control device 206, which may include modules 602 and physical processor 614.
[0077] Although not shown expressly in FIG. 7, as described above, keyboard 400 may include key assembly 200. Key assembly 200 may include key cap 202 that may include touch sensor 204 that is communicatively coupled (e.g., via touch sensor connection 208) to control device 206. When touch sensor 204 senses a touch event (e.g., from a fingertip of user 702), touch sensor 204 may send a touch signal to control device 206. When touch sensor 204 senses an absence of touch (e.g., user 702 is not touching touch sensor 204), touch sensor 204 may send a control signal to control device 206.
[0078] Key assembly 200 may also include a switch 210 that may be communicatively coupled (e.g., via switch connection 212) to control device 206, and that may be movable between a pressed position and an un-pressed position. When switch 210 is in the pressed position (e.g., user 702 is pressing switch 210), switch 210 may send a closed signal to control device 206. When switch 210 is in the un-pressed position, switch 210 may send an open signal to control device 206.
[0079] As mentioned above, control device 206 may receive via one or more modules 602 (e.g., receiving module 604) switch data 704 that indicates switch position 706 from switch 210 and touch data 708 that indicates touch sense 710 from touch sensor 204. From the combination of switch position 706 and touch sense 710, one or more modules 602 may be able to construct a model for displaying, via display screen 504, a relationship between key assembly 200 and a fingertip in a virtual space.
[0080] For example, when switch position 706 indicates that switch 210 is in the open position (i.e., when switch position 706 includes an open signal from switch 210), one or more modules 602 (e.g., directing module 606) may direct (e.g., via display subsystem 500) display screen 504 to present, in a virtual space, a visual representation of key assembly 200 where key assembly 200 is in the un-pressed position. Additionally, when switch position 706 indicates that switch 210 is in the closed position (i.e., when switch position 706 includes a closed signal from switch 210), one or more of modules 602 may direct display screen 504 to present, in the virtual space, a visual representation of key assembly 200 where key assembly 200 is in the closed position.
[0081] As another example, when touch sense 710 indicates that touch sensor 204 is being touched (e.g., when touch sense 710 includes a touch signal), one or more modules 602 (e.g., directing module 606) may direct (e.g., via display subsystem 500) display screen 504 to present, in a virtual space, a visual representation of a fingertip where the fingertip is in contact with a visual representation of interface surface 214. This may cause the visual representation of the fingertip to appear as if it is resting on and/or pressing the visual representation of the key assembly. Additionally, when touch sense 710 indicates that touch sensor 204 is not being touched (i.e., when touch sense 710 includes a control signal), one or more modules 602 may direct display screen 504 to present, in the virtual space, a visual representation of the fingertip where the fingertip is disconnected from the visual representation the key assembly. This may cause the visual representation of the fingertip to appear as if it is hovering above and/or preparing to press the visual representation of the key cap.
[0082] Control device 206 may also receive keyboard data 712 that includes data regarding additional attributes of elements of keyboard 400. For example, as mentioned above, in addition to key assembly 200, keyboard 400 may also include an additional key assembly 406 that may also be communicatively coupled to control device 206. Control device 206 may receive an additional switch position 714 and an additional touch sense 716 from additional key assembly 406, and may further base the visual representation of the key assembly and the visual representation of the key cap in the virtual space on the additional switch position and the additional touch sense. For example, when additional touch sense 716 indicates that additional key assembly 406 is being touched (i.e., when additional touch sense includes a touch signal from a touch sensor of additional key assembly 406), the visual representation of the fingertip may appear as if it is not hovering above and/or preparing to press the visual representation of the key cap. Additionally or alternatively, the visual representation of the fingertip may appear as if it is in contact with an interface surface of a key cap of additional key assembly 406.
[0083] In at least one embodiment, keyboard 400 may include mounting surface 402, with key assembly 200 mounted at mounting location 404. Control device 206 may receive (e.g., via receiving module 604) data representative of mounting location 404 as key position 718, and may further base the representation of the key assembly in the virtual space on key position 718. For example, if key position 718 indicates that a layout of keyboard 400 corresponds to a QWERTY keyboard layout and that mounting location 404 corresponds to a location of a “J” key, the visual representation of key assembly 200 in the virtual space may indicate that key assembly 200 is a “J” key. Hence, a visual representation of a fingertip in the virtual space may appear to be interacting with (e.g., pressing, not pressing, waiting to press, moving relative to, etc.) a “J” key.
[0084] In some examples, keyboard 400 also includes at least one physical position indicator 410. Control device 206 may determine (e.g., via one or more of modules 602, such as determining module 608) a position of at least one physical position indicator 410 in a physical space, and then use that determined position of physical position indicator 410 in the physical space to determine a position of keyboard 400 in the virtual space, and store that position of the keyboard in the virtual space as keyboard position 720.
[0085] Control device 206 may determine a position of physical position indicator 410 in a physical space in a variety of ways. For example, head-mounted-display system 100 may include a camera 722. Camera 722 may be configured to detect particular wavelengths of light that may be produced and/or directed toward camera 722 by at least one of physical position indicator 410. Head-mounted-display system 100 may transmit that camera data to control device 206 via a suitable wired and/or wireless connection. Based on the camera data, one or more modules 602 of control device 206 may be able to calculate a physical position of physical position indicator 410 in a physical space relative to camera 722, and thus a physical position of keyboard 400 relative to camera 722 in the physical space. Control device 206 may then store the calculated physical position of keyboard 400 relative to camera 722 and/or head-mounted-display system 100 as keyboard position 720.
[0086] One or more modules 602 (e.g., directing module 606, determining module 608, etc.) may then further base the visual representation of key assembly 200 in the virtual space on keyboard position 720. For example, when keyboard position 720 indicates a position of keyboard 400 in a physical space, and key position 718 indicates that key assembly 200 is located on keyboard 400 at a position of a “J” key, control device 206 may direct, via one or more of modules 602, display screen 504 to present the visual representation of key assembly 200 in the virtual space at a position relative to keyboard 400 and/or one or more of physical position indicators 410 corresponding to a “J” key.
[0087] In some embodiments, control device 206 may direct display screen 504, via display subsystem 500, to present additional elements in the virtual space. For example, in some examples, keyboard 400 may include a plurality of key assemblies that each provide switch data, touch data, and key position data to control device 206. Based on this aggregate data, control device 206 may determine positions of and render keys, keyboards, fingers, hands, and other objects within the virtual space.
[0088] FIG. 8 is a view of a visual representation of a key assembly and a visual representation of a fingertip in a virtual space in accordance with some embodiments. As shown, FIG. 8 shows a virtual space 800 that includes a virtual key assembly 802 and a virtual fingertip 804. As user 702 touches and/or refrains from touching key assembly 200 (i.e., touches and/or refrains from touching touch sensor 204), virtual fingertip 804 may appear to contact and disconnect from virtual key assembly 802. As user 702 presses key assembly 200 (i.e., moves switch 210 between the pressed and un-pressed positions), virtual key assembly 802 moves between the pressed and un-pressed positions. This may provide visual feedback to user 702 as he or she interacts with key assembly 200. For example, as user 702 presses (e.g., actuates) key assembly 200, virtual fingertip 804 may appear to press virtual key assembly 802. When the user releases key assembly 200, virtual fingertip 804 may appear to release virtual key assembly 802. Furthermore, if user 702 merely rests his or her fingertip on key assembly 200, virtual fingertip 804 may also appear to rest on (e.g., touch but not press) virtual key assembly 802.
[0089] As shown, virtual space 800 also includes a virtual keyboard 806 and virtual hands 808. As mentioned above, in some embodiments, some or all of the keys on keyboard 400 may be key assemblies similar to key assembly 200, and each may provide corresponding touch and/or switch data to control device 206. Combined with keyboard data 712, control device 206 may use this aggregate data to present virtual keyboard 806 in the virtual space, and animate virtual hands 808 that reflect positioning of and/or movements of the fingertips and/or hands of user 702 as he or she interacts with keyboard 400. This may provide useful feedback to user 702 that may allow user 702 to more efficiently interact with keyboard 400 while using head-mounted-display system 100.
[0090] FIG. 9 is a flow diagram of an exemplary computer-implemented method 900 for representing user interactions with real-world input devices in a virtual space. The operations shown in FIG. 9 may be performed by any suitable computer-executable code and/or computing system, including display subsystem 500 in FIG. 5, control device 206 in FIG. 6, virtual reality interface system 700 in FIG. 7, and/or variations or combinations of the same. In one example, each of the steps shown in FIG. 9 may represent an algorithm whose structure includes and/or is represented by multiple sub-steps, examples of which will be provided in greater detail below.
[0091] As illustrated in FIG. 9, at operation 902 one or more of the systems and/or apparatuses described herein may sense a touch event via a touch sensor included in a key cap included in a key assembly of a virtual reality interface system. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, as described above, a user (e.g., user 702) may touch a touch sensor 204 included in key cap 202 included in key assembly 200 of virtual reality interface system 700. This may cause one or more of modules 602 (e.g., receiving module 604, directing module 606, determining module 608, etc.) to sense, via touch sensor 204, a touch event.
[0092] At operation 904 in FIG. 9, one or more of the systems and/or apparatuses described herein may determine, while a touch sensor senses a touch event, that a switch included in a key assembly of a virtual reality interface system has moved from an un-pressed position to a pressed position. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, a user (e.g., user 702) may, while touching touch sensor 204, press key cap 202 in an actuation direction and with an actuation force associated with switch 210. This may cause switch 210 to move from the un-pressed position to the pressed position. One or more modules 602 (e.g., receiving module 604, directing module 606, determining module 608, etc.) may then determine, while touch sensor 204 senses the touch event, that switch 210 has moved from the un-pressed position to the pressed position.
[0093] At operation 906 in FIG. 9, one or more of the systems and/or apparatuses described herein may direct, while the switch is in the pressed position and the touch sensor senses the touch event, a head-mounted display included in the virtual reality interface system to present, in a virtual space, a visual representation of the key assembly in the pressed position and a visual representation of a fingertip in contact with a visual representation of an interface surface of the key cap. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, directing module 606 may direct, while switch 210 is in the pressed position and touch sensor 204 senses the touch event, display screen 504 included in head-mounted-display system 100 to present, in a virtual space (e.g., virtual space 800), a visual representation of the key assembly (e.g., virtual key assembly 802) in the pressed position and a visual representation of a fingertip (e.g., virtual fingertip 804) in contact with a visual representation of an interface surface of the key cap.
[0094] According to some embodiments, one or more of the systems and/or apparatuses described herein may also determine, while the touch sensor senses the touch event, that the switch has moved from the pressed position to the un-pressed position. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, a user (e.g., user 702) may move switch 210 from the pressed position to the un-pressed position while continuing to touch touch sensor 204. One or more modules 602 (e.g., receiving module 604, determining module 608, etc.) may then determine, while touch sensor 204 senses the touch event, that switch 210 has moved from the pressed position to the un-pressed position.
[0095] One or more of the systems and/or apparatuses described herein may then direct, while the switch is in the un-pressed position and the touch sensor senses the touch event, the head-mounted display to present, in the virtual space, a visual representation of the key assembly in the un-pressed position and the visual representation of the fingertip in contact with the visual representation of the interface surface of the key cap. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, directing module 606 may direct, while switch 210 is in the un-pressed position and touch sensor 204 senses the touch event, display screen 504 included in head-mounted-display system 100 to present, in the virtual space (e.g., virtual space 800), a visual representation of the key assembly (e.g., virtual key assembly 802) in the un-pressed position and the visual representation of the fingertip (e.g., virtual fingertip 804) in contact with the visual representation of the interface surface of the key cap.
[0096] According to some embodiments, one or more of the systems and/or apparatuses described herein may also sense, via the touch sensor, an absence of touch. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, a user (e.g., user 702) may refrain from touching touch sensor 204. This may cause one or more of modules 602 (e.g., receiving module 604, determining module 608, etc.) to sense, via touch sensor 204, an absence of touch.
[0097] One or more of the systems and/or apparatuses described herein may then direct, while the switch is in the un-pressed position and the touch sensor senses an absence of touch, the head-mounted display to present, in the virtual space, the visual representation of the key assembly in the un-pressed position and a visual representation of a fingertip disconnected from the interface surface of the key cap. The systems and/or apparatuses described herein may perform this operation in any of the ways described herein. For example, directing module 606 may direct, while switch 210 is in the un-pressed position and touch sensor senses an absence of touch, display screen 504 included in head-mounted-display system 100 to present, in virtual space 800, the visual representation of the key assembly (e.g., virtual key assembly 802) in the un-pressed position and a visual representation of a fingertip (e.g., virtual fingertip 804) disconnected from the interface surface of the key cap.
[0098] As discussed throughout the instant disclosure, the disclosed apparatuses, systems, and methods may provide one or more advantages over traditional virtual reality interface systems. For example, the apparatuses, systems, and methods disclosed herein may, by detecting whether a user is touching and/or actuating a switch included in an exemplary key assembly, direct a head-mounted display (e.g., a virtual reality headset) to present a visual representation of the user’s interaction with the key assembly within a virtual space. This may provide useful visual feedback to the user, and hence allow the user to more efficiently interact with a keyboard that includes the key assembly while using the head-mounted display. This may also increase a user’s productivity while using the head-mounted display, and increase user satisfaction with the head-mounted display and/or the virtual reality interface system.
[0099] As detailed above, the computing devices and systems described and/or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein. In their most basic configuration, these computing device(s) may each include at least one memory device and at least one physical processor.
[0100] Although illustrated as separate elements, the modules described and/or illustrated herein may represent portions of a single module or application. In addition, in certain embodiments one or more of these modules may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks. For example, one or more of the modules described and/or illustrated herein may represent modules stored and configured to run on one or more of the computing devices or systems described and/or illustrated herein. One or more of these modules may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.
[0101] In addition, one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. For example, one or more of the modules recited herein may receive sensor to be transformed, transform the sensor, output a result of the transformation to render a visual representation of a fingertip interacting with a key assembly in a virtual space, use the result of the transformation to present the visual representation of the fingertip interacting with the key assembly in the virtual space by way of a head-mounted display, and store the result of the transformation to manipulate, animate, and/or adjust the visual representation of the fingertip interacting with the key assembly in the virtual space. Additionally or alternatively, one or more of the modules recited herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.
[0102] The process parameters and sequence of the steps described and/or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various exemplary methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
[0103] The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the instant disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the instant disclosure.
[0104] Unless otherwise noted, the terms “connected to” and “coupled to” (and their derivatives), as used in the specification and claims, are to be construed as permitting both direct and indirect (i.e., via other elements or components) connection. In addition, the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.” Finally, for ease of use, the terms “including” and “having” (and their derivatives), as used in the specification and claims, are interchangeable with and have the same meaning as the word “comprising.”