Systems and methods for augmented reality - Patents.com
The augmented reality viewer system integrates real-time detection and responsive rendering of virtual objects with real-world environments, addressing the limitations of existing systems by enabling dynamic and interactive user gestures and environmental context awareness.
Patent Information
- Application Number
- JP2022504602
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-09-12
- Filing Date
- 2020-07-24
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-07-24
AI Technical Summary
Existing augmented reality systems lack the ability to effectively integrate real-world and virtual objects in a seamless and interactive manner, particularly in terms of movement and interaction based on user gestures and environmental context.
An augmented reality viewer system that includes sensors to detect real-world objects and user movements, a storage device with virtual objects, a processor to determine display positioning, a data stream generator, a light generator, and a display device to render virtual objects in real-time, allowing for interactive movement and gesture-based interactions.
Enables dynamic and context-aware integration of virtual objects with real-world environments, enhancing user interaction and immersion through responsive rendering and movement of virtual elements based on user gestures and environmental context.
Smart Images

Figure 0007609844000001 
Figure 0007609844000002 
Figure 0007609844000003
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority from U.S. Provisional Patent Application No. 62 / 879,408, filed July 26, 2019, U.S. Provisional Patent Application No. 62 / 881,355, filed July 31, 2019, and U.S. Provisional Patent Application No. 62 / 899,678, filed September 12, 2019, all of which are incorporated by reference in their entireties herein. [Background technology]
[0002] 1)Technical Field The present invention relates to an augmented reality viewer and an augmented reality visualization method. 2) Discussion of related technologies
[0003] Modern computing technology has advanced to the level of compact, persistently connected, wearable computing systems and assemblies that can be utilized to provide users with the perception of rich augmented reality experiences.
[0004] An augmented reality viewer typically has multiple sensors, including a camera positioned to sense the location of a real-world object. A storage device holds a set of data, including the virtual object. A display module on the storage device is executable by the processor to determine a desired display of the virtual object relative to the location of the real-world object. A data stream generator on the storage device is executable by the processor to generate a data stream based on the data and the desired display. A light generator, such as a laser light generator, is connected to the processor to receive the data stream and generate light based on the data stream. A display device is positioned to receive the generated light and display the light to a user. The light generates a rendering of the virtual object that is visible to the user and rendered according to the desired display. Summary of the Invention [Means for solving the problem]
[0005] The present invention provides an augmented reality viewer including at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; a storage device; a set of data on the storage device including a virtual object; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the virtual object relative to the location of the at least one of the real-world objects; a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator connected to the processor to receive the data stream and generate light based on the data stream; and a display device positioned to receive the generated light and display the light to a user, the light being visible to the user and generating a rendering of the virtual object rendered in accordance with the desired display.
[0006] The augmented reality viewer may further include the virtual object being a nomadic creature object, and may further include a nomadic subroutine on the storage device and executable by the processor to move the nomadic creature object relative to the real-world object.
[0007] The augmented reality viewer may further include the data including a plurality of nomadic objects, the nomadic subroutine being executable by the processor to move the plurality of nomadic objects relative to the real world objects and relative to each other.
[0008] The augmented reality viewer may further include at least one sensor sensing wave movement initiated by a user, and further includes a wave movement routine on the storage device and executable by the processor to move the nomadic biological object in response to the wave movement sensed by the at least one sensor.
[0009] The augmented reality viewer may further include a wave movement being initiated within the target zone and the roaming object being moved out of the target zone.
[0010] The augmented reality viewer may further include that the at least one sensor that senses wave movement is a camera that detects an image of a user's hand.
[0011] The augmented reality viewer may further include a handheld controller, the sensor being mounted on the handheld controller that is held in the user's hand.
[0012] The augmented reality viewer may further include a reading agent on the storage device and executable by the processor to read incoming information from the resource, associate the incoming information with the location of the nomadic object relative to the real-world object, and communicate the incoming information from the location of the nomadic object to the user.
[0013] The augmented reality viewer may further include the reading agent activating a light source to display the incoming information through the display.
[0014] The augmented reality viewer may further include a speaker, which the reading agent activates to allow the user to hear the incoming information.
[0015] The augmented reality viewer may further include a transmission agent on the storage device and executable by the processor to sense commands by a user using at least one sensor, sense commands directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object using at least one sensor, determine outgoing communications and resources based on the commands, and communicate the outgoing communications to the resources.
[0016] The augmented reality viewer may further include that the at least one sensor for sensing communication is a microphone suitable for receiving voice commands from a user.
[0017] The augmented reality viewer may further include a transmission agent on the storage device and executable by the processor to sense an instruction by a user using at least one sensor, sense an instruction directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object using at least one sensor, determine an outgoing communication and an IOT device based on the instruction, communicate the outgoing communication to the IOT device, and operate the IOT device.
[0018] The augmented reality viewer may further include that the at least one sensor for sensing communication is a microphone suitable for receiving voice commands from a user.
[0019] The augmented reality viewer may further include an artificial intelligence system executable with the processor to: sense an action by a user using at least one sensor; implement a routine with a virtual object that responds to the user's action; associate the routine with the action as an artificial intelligence cluster; determine parameters present at a first time when the action is sensed; associate the parameters present at the first time with the artificial intelligence cluster; sense the parameters at a second time; determine whether the parameters at the second time are identical to the parameters at the first time; and execute the routine if a determination is made that the parameters at the second time are identical to the parameters at the first time.
[0020] The augmented reality viewer may further include that the at least one sensor includes an eye-tracking camera, the action is a wave motion initiated by the user, and the parameter is a gaze direction as determined by tracking the user's gaze using the eye-tracking camera.
[0021] The augmented reality viewer may further include that the action is a wave movement initiated within the target zone and the roaming object is moved out of the target zone.
[0022] The augmented reality viewer may further include at least one sensor including an eye-tracking camera positioned to sense a user's gaze direction, and further includes a gaze direction movement routine on the storage device and executable by the processor to move the nomadic creature object in response to the gaze direction sensed by the eye-tracking camera.
[0023] The augmented reality viewer may further include that a plurality of roving objects are present and the roving subroutine is executable by the processor to move the plurality of roving objects relative to the real-world object, and further includes a personal assistant on the storage device and executable with the processor to select a personal assistant roving object from among the plurality of roving objects and move at least one of the roving objects other than the personal assistant roving object together with the personal assistant roving object.
[0024] The augmented reality viewer may further include that the nomadic biological object is a first type of fish, and further includes a movement module on the storage device and executable with the processor to articulate the body of the fish in a first back and forth manner.
[0025] The augmented reality viewer may further include a movement module executable with the processor to articulate the body of the second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner.
[0026] The augmented reality viewer may further include a movement module executable with the processor to sense slow hand movements of the user's hand with at least one sensor and articulate the body of the fish in a first back and forth manner at a slow speed in response to the slow hand movement, and to sense fast hand movements of the user's hand with at least one sensor and articulate the body of the fish in the first back and forth manner at a fast speed in response to the fast hand movement.
[0027] The augmented reality viewer may further include a movement module executable using the processor to move the first fish to stay close to the hand when the hand moves slowly and to move the first fish away from the hand when the hand moves rapidly.
[0028] The augmented reality viewer may further include a surface extraction routine resident on the storage device and executable by the processor to identify surfaces among real-world objects.
[0029] The augmented reality viewer may further include that the surface is a two-dimensional surface of a wall or ceiling.
[0030] The augmented reality viewer may further include a depth generation module on the storage device and executable by the processor to display the virtual object to the user in three-dimensional space according to a desired display, with the surface facing the user and with a surface between the user and the virtual object.
[0031] The augmented reality viewer may further include a depth generation module executable with the processor to display to the user port holes in the surface through which the virtual object is visible to the user.
[0032] The augmented reality viewer may further include that the virtual object is a three-dimensional virtual object.
[0033] The augmented reality viewer may further include a view creation routine executable by the processor to: capture a space including real-world objects on the storage device; represent the space as a real-world mesh; collect vertical and horizontal planes from the real-world mesh; filter the planes by height from the floor, dimension, orientation, and location relative to the real-world mesh; create a blueprint including a portal frame and all content within the view at a selected location; and cut holes in the occlusion material of the real-world mesh material so that a user may look through the portal into the view.
[0034] The augmented reality viewer may further include a vertex animation routine executable by the processor to store a virtual object mesh representing the virtual object on the storage device, associate textures with the virtual object mesh, manipulate the virtual object mesh, and cause movement of the textures and virtual objects within the user's field of view.
[0035] The augmented reality viewer may further include the virtual object mesh being manipulated to articulate the virtual object.
[0036] The augmented reality viewer may further include the same virtual object mesh being used multiple times to drive textures and movement of the virtual object.
[0037] The augmented reality viewer may further include the virtual object being a group of corals.
[0038] The augmented reality viewer may further include a coral colony spawner on the storage device and executable with the processor to determine a volume, perform a line trace at random points within the volume from a maximum height of the volume to a floor of the volume, determine if a valid location is identified by the line trace, and if a valid location is identified, in response to the identification, perform a box trace while trying different scales and rotations and generating a score for each placement, test whether the random clusters will fit into the world mesh without overlapping, determine a handpicked placement with the highest score from among the scores, and spawn coral colonies in the placement with the highest score.
[0039] The augmented reality viewer may further include a view setting routine resident on the storage device and executable with the processor to set up a view, the volume being bounded by the view.
[0040] The augmented reality viewer may further include a coral spawner system on the storage device and executable with the processor to store at least a first coral element of a first type on the storage device and to construct a coral colony from a plurality of coral elements including the first coral element.
[0041] The augmented reality viewer may further include a coral spawner system executable with the processor to construct a coral colony from the plurality of first coral elements.
[0042] The augmented reality viewer may further include the coral spawner system being executable with the processor to store at least a second coral element of a second type on the storage device, wherein the plurality of coral elements includes the second coral element.
[0043] The augmented reality viewer may further include a coral spawner system executable with the processor to determine a coral colony configuration, the processor building the coral colony according to the configuration.
[0044] The augmented reality viewer may further include that the setting is the available space detected and the number of coral elements is selected based on the available space.
[0045] The augmented reality viewer may further include the coral spawner system being executable with the processor to simulate ambient light, wherein the setting is ambient light, and the number of coral elements is selected based on the ambient light, and the orientation of the coral elements is selected based on the ambient light.
[0046] The augmented reality viewer may further include the coral spawner system including a data table on the storage device with a plurality of coral colony settings, and the coral spawner system constructs coral colonies according to the plurality of coral colony settings.
[0047] The augmented reality viewer may further include that the coral community settings include at least one of population number, maximum count of species, creation type, and height-based percentage.
[0048] The augmented reality viewer may further include a coral spawner system including vertex crawling and ray casting algorithms for checking placement viability, growth, and caching of valid points to a file.
[0049] The augmented reality viewer may further include including a runtime coral static mesh loop in which the coral spawner system first calculates shadow passing and then generates instantiated static meshes for all coral colonies.
[0050] The augmented reality viewer may further include that the coral spawner system includes a collision based exclusion configuration for placing box colliders where certain species should not grow.
[0051] The augmented reality viewer may further include a display device displaying the emitted light to a user while the user is viewing at least one of the real-world objects.
[0052] The augmented reality viewer may further include that the display device is a see-through display device that allows light from at least one real-world object to reach the user's eye.
[0053] The augmented reality viewer may further include a head-mounted structure shaped to be worn on a user's head, the display device being mounted to the head-mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head, and a position adjustment module executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to at least one real-world object within the user's field of view.
[0054] The present invention also provides an augmented reality visualization method including: sensing, with at least one sensor, a location of at least one of a plurality of real-world objects; storing, on a storage device, data including a virtual object; determining, with a processor, a desired representation of the virtual object relative to the location of the at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired representation; generating, with a light generator, light based on the data stream; and displaying, with a display device, the generated light to a user, wherein the light is visible to the user and generates a rendering of the virtual object rendered in accordance with the desired representation.
[0055] The method may further include the virtual object being a nomadic object, and further includes moving, with the processor, the nomadic object relative to the real-world object.
[0056] The method may further include the data including a plurality of nomadic objects, and further includes moving, with the processor, the plurality of nomadic objects relative to the real-world object and relative to each other.
[0057] The method may further include sensing, by at least one sensor, wave movement initiated by a user, and moving, by the processor, the nomadic biological object in response to the wave movement sensed by the at least one sensor.
[0058] The method may further include the wave movement being initiated within the target zone and the roaming object being moved out of the target zone.
[0059] The method may further include the at least one sensor that senses wave movement is a camera that detects an image of the user's hand.
[0060] The method may further include the sensor being mounted on a handheld controller held in a user's hand.
[0061] The method may further include, using a processor, retrieving the incoming information from the resource; using a processor, associating the incoming information with a location of the nomadic object relative to the real-world object; and using a processor, communicating the incoming information from the location of the nomadic object to a user.
[0062] The method may further include the incoming call information being displayed to a user.
[0063] The method may further include the user hearing the incoming call information.
[0064] The method may further include sensing, using at least one sensor, a command by a user, sensing, using at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object, determining, using a processor, an outgoing communication and a resource based on the command, and communicating, using the processor, the outgoing communication to the resource.
[0065] The method may further include the user speaking the command.
[0066] The method may further include sensing a command by a user using at least one sensor, sensing using the at least one sensor that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object, determining using a processor an outgoing communication and an IOT device based on the command, and using the processor communicating the outgoing communication to the IOT device and operating the IOT device.
[0067] The method may further include the user speaking the command.
[0068] The method may further include sensing an action by a user using at least one sensor, implementing a routine involving a virtual object responsive to the user's action using a processor, associating the routine with the action as an artificial intelligence cluster using the processor, determining using the at least one processor parameters present at a first time when the action is sensed, associating using the processor parameters present at the first time with the artificial intelligence cluster, sensing the parameters at a second time using the at least one sensor, determining using the processor whether the parameters at the second time are identical to the parameters at the first time, and executing the routine if a determination is made that the parameters at the second time are identical to the parameters at the first time.
[0069] The method may further include, the action being a wave motion initiated by a user and the parameter being a gaze direction of the user.
[0070] The method may further include the action being wave motion initiated within the target zone and the roaming object being moved out of the target zone.
[0071] The method may further include sensing, by at least one sensor, a gaze direction of the user, and moving, by the processor, the nomadic object in response to the gaze direction.
[0072] The method may further include using a processor to move the plurality of roving objects relative to the real-world object, using a processor to select a personal assistant roving object from among the plurality of roving objects, and using a processor to move at least one of the roving objects other than the personal assistant roving object together with the personal assistant roving object.
[0073] The method may further include the nomadic object being a first type of fish, and further includes articulating, with the processor, a body of the fish in a first back and forth manner.
[0074] The method may further include articulating, with the processor, the body of the second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner.
[0075] The method may further include sensing slow hand movements of the user's hand with at least one sensor and articulating the body of the fish in a first back and forth manner at a slow speed in response to the slow hand movements with a processor, and sensing fast hand movements of the user's hand with at least one sensor and articulating the body of the fish in the first back and forth manner at a fast speed in response to the rapid hand movements.
[0076] The method may further include using the processor to move the first fish to remain near the hand when the hand is moving slowly, and using the processor to move the first fish away from the hand when the hand is moving rapidly.
[0077] The method may further include identifying, with the processor, a surface within the real-world object.
[0078] The method may further include the surface being a two-dimensional surface of a wall or a ceiling.
[0079] The method may further include the processor displaying the virtual object to the user in three-dimensional space according to the desired display, with a surface between the user and the virtual object, on a side of the surface facing the user.
[0080] The method may further include the processor displaying to the user a port hole in the surface through which the virtual object is visible to the user.
[0081] The method may further include the virtual object being a three-dimensional virtual object.
[0082] The method may further include using a processor to capture a space including real-world objects; using a processor to represent the space as a real-world mesh; using a processor to collect vertical and horizontal planes from the real-world mesh; using a processor to filter the faces by height from floor, dimension, orientation, and location relative to the real-world mesh; using a processor to create a blueprint including a portal frame and all content within a view at the selected location; and using a processor to cut holes in the occlusion material of the real-world mesh material so that a user may look through the portal into the view.
[0083] The method may further include storing, with the processor, a virtual object mesh representing the virtual object; associating, with the processor, a texture with the virtual object mesh; and manipulating, with the processor, the virtual object mesh to cause movement of the texture and the virtual object within a field of view of the user.
[0084] The method may further include the virtual object mesh being manipulated to articulate the virtual object.
[0085] The method may further include the same virtual object mesh being used multiple times to drive the texture and movement of the virtual object.
[0086] The method may further include the virtual object being a coral colony.
[0087] The method may further include placing coral colonies using the processor, including determining a volume, performing a line trace at random points within the volume from a maximum height of the volume to a floor of the volume, determining whether a valid location is identified by the line trace, and if a valid location is identified, responsive to the identification, performing a box trace while trying different scales and rotations and generating a score for each placement, testing whether the random clusters would fit into the world mesh without overlapping, determining a handpicked placement with the highest score from among the scores, and creating a coral colony in the placement with the highest score.
[0088] The method may further include establishing a view, the volume being bounded by the view.
[0089] The method may further include storing at least a first coral element of a first type on a storage device and constructing, with a processor, a coral community from a plurality of coral elements including the first coral element.
[0090] The method may further include the processor constructing a coral colony from the plurality of first coral elements.
[0091] The method may further include storing at least a second coral element of a second type on the storage device, wherein the plurality of coral elements includes the second coral elements.
[0092] The method may further include determining, with the processor, a coral colony configuration, the processor constructing the coral colony according to the configuration.
[0093] The method may further include, wherein the setting is an available space that is detected, and the number of coral elements is selected based on the available space.
[0094] The method may further include simulating ambient light with the processor, wherein the setting is ambient light, and wherein the number of coral elements is selected based on the ambient light, and an orientation of the coral elements is selected based on the ambient light.
[0095] The method may further include storing a data table on a storage device with a plurality of coral community settings, and the processor constructs the coral community according to the plurality of coral community settings.
[0096] The method may further include, wherein the coral community settings include at least one of a number of individuals, a maximum count of a species, a creation type, and a height-based percentage.
[0097] The method may further include executing, with the processor, vertex crawling and ray casting algorithms to check placement feasibility, growing, and caching of valid points into a file.
[0098] The method may further include executing, with the processor, a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all coral groups.
[0099] The method may further include, with a processor, performing a collision-based exclusion construction to place box colliders within which a species should not grow.
[0100] The display device of the method displays the emitted light to a user while viewing at least one of the real-world objects.
[0101] The display device of the present method is a see-through display device that allows light from at least one real-world object to reach the user's eye.
[0102] The method may further include sensing, with at least one sensor, movement of the display device due to movement of the user's head, and adjusting a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within the user's field of view. The present invention provides, for example, the following: (Item 1) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects and wave motion initiated by the user; A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a wave motion routine, the wave motion routine being on the storage device and executable by the processor to move the nomadic biological object in response to the wave motion sensed by the at least one sensor; An augmented reality viewer comprising: (Item 2) 2. The augmented reality viewer of claim 1, wherein the data includes a plurality of nomadic creature objects, and the nomadic subroutine is executable by the processor to move the plurality of nomadic creature objects relative to the real-world objects and relative to each other. (Item 3) 2. The augmented reality viewer of item 1, wherein the wave movement is initiated within a target zone and the roaming object is moved out of the target zone. (Item 4) 2. The augmented reality viewer of item 1, wherein the at least one sensor that senses the wave movement is a camera that detects an image of the user's hand. (Item 5) 2. The augmented reality viewer of item 1, further comprising a handheld controller, the sensor being mounted on a handheld controller held in the user's hand. (Item 6) An artificial intelligence system, the artificial intelligence system being on the storage device; Sensing wave travel; as an artificial intelligence cluster, correlating the movement of the nomadic biological object with the wave movement; determining a parameter present at a first time when the action is sensed; Associating the parameters present at the first time with an artificial intelligence cluster; Sensing the parameter at a second time; and determining whether the parameter at the second time is the same as the parameter at the first time; executing said wave migration routine if a determination is made that said parameter at said second time is the same as said parameter at said second time; an artificial intelligence system executable using the processor to 2. The augmented reality viewer of item 1, further comprising: (Item 7) 7. The augmented reality viewer of claim 6, wherein the at least one sensor includes an eye-tracking camera and the parameter is a gaze direction as determined by eye-tracking of the user using the eye-tracking camera. (Item 8) there are a plurality of nomadic creature objects, and the nomadic subroutine is executable by the processor to move the plurality of nomadic creature objects relative to the real-world object; a personal assistant module, the personal assistant module being on the storage device; selecting a personal assistant zookeeper object from among the plurality of zookeeper objects; moving at least one of the zoological objects other than the personal assistant zoological object together with the personal assistant zoological object; a personal assistant module executable with the processor to 2. The augmented reality viewer of item 1, further comprising: (Item 9) 2. The augmented reality viewer of claim 1, wherein the nomadic biological object is a first type of fish, the nomadic biological object being on the storage device and further comprising a movement module executable by the processor to articulate a body of the fish in a first forward and backward manner. (Item 10) 10. The augmented reality viewer of item 9, wherein the movement module is executable by the processor to articulate the body of the second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner. (Item 11) The moving module includes: sensing slow hand movements of the user's hand with the at least one sensor; articulating the body of the fish in the first back and forth manner at a slow speed in response to a slow rate of movement of the hand; sensing a rapid hand movement of the user's hand with the at least one sensor; articulating the body of the fish in the first back and forth manner at high speed in rapid response to movement of the hand. and wherein the processor is operable to: Item 11. The augmented reality viewer according to item 10. (Item 12) 12. The augmented reality viewer of claim 11, wherein the movement module is executable by the processor to move the first fish to stay close to the hand when the hand moves at the slow speed and to move the first fish away from the hand when the hand moves at the fast speed. (Item 13) 2. The augmented reality viewer of claim 1, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 14) Item 14. The augmented reality viewer of item 13, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 15) a head mounted structure shaped to be worn on a head of the user, the display device being mounted to the head mounted structure, and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 2. The augmented reality viewer of item 1, further comprising: (Item 16) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; sensing, with the at least one sensor, a wave motion initiated by the user; moving the nomadic object in response to the wave motion sensed by the at least one sensor, using the processor; A method comprising: (Item 17) the data includes a plurality of nomadic objects; and moving, with the processor, the plurality of nomadic objects relative to the real-world objects and relative to each other. Item 17. The method according to item 16. (Item 18) Item 17. The method according to item 16, wherein the wave movement is initiated within a target zone and the roaming object is moved out of the target zone. (Item 19) Item 17. The method of item 16, wherein the at least one sensor that senses the wave motion is a camera that detects an image of the user's hand. (Item 20) Item 17. The method of item 16, wherein the sensor is mounted on a handheld controller held in the user's hand. (Item 21) sensing the wave motion with the at least one sensor; and using said processor as an artificial intelligence cluster to correlate the movement of said nomadic biological object with said wave movement; determining, with the at least one processor, a parameter present at a first time when the action is sensed; using the processor to associate the parameters present at the first time with the artificial intelligence cluster; sensing a parameter at a second time with the at least one sensor; and determining, with the processor, whether the parameter at the second time is the same as the parameter at the first time; performing a movement of the nomadic object if a determination is made that the parameter at the second time is the same as the parameter at the second time; 17. The method of claim 16, further comprising: (Item 22) 22. The method of claim 21, wherein the action is a wave motion initiated by the user and the parameter is the user's gaze direction. (Item 23) moving a plurality of nomadic objects relative to the real-world object with the processor; selecting, with the processor, a personal assistant roving object from among the plurality of roving objects; moving, with the processor, at least one of the nomadic objects other than the personal assistant nomadic object together with the personal assistant nomadic object; 17. The method of claim 16, further comprising: (Item 24) the nomadic organism object is a first type of fish; and articulating, with the processor, a body of the fish in a first anterior-posterior manner. Item 17. The method according to item 16. (Item 25) 25. The method of claim 24, further comprising using the processor to articulate the body of a second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner. (Item 26) sensing slow hand movements of the user's hand with the at least one sensor; using the processor to articulate the body of the fish in the first back and forth manner at a slow speed in response to a slow rate of movement of the hand; sensing a rapid hand movement of the user's hand with the at least one sensor; using the processor to articulate the body of the fish in the first back and forth manner at high speeds in rapid response to movements of the hand; 26. The method of claim 25, further comprising: (Item 27) moving, with the processor, the first fish to remain near the hand when the hand moves at the slow speed; using the processor to move the first fish away from the hand when the hand moves in the rapid motion; 27. The method of claim 26, further comprising: (Item 28) Item 17. The method of item 16, wherein the display device displays the emitted light to the user while viewing at least one of the real-world objects. (Item 29) 30. The method of claim 28, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 30) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 17. The method of claim 16, further comprising: (Item 31) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a read-out agent, the read-out agent being on the storage device and executable by the processor to read incoming information from a resource, associate the incoming information with a location of the nomadic object relative to the real-world object, and communicate the incoming information from the location of the nomadic object to the user; and An augmented reality viewer comprising: (Item 32) Item 32. The augmented reality viewer of item 31, wherein the reading agent activates the light source and displays the incoming information through the display. (Item 33) 32. The augmented reality viewer of claim 31, further comprising a speaker, the reading agent activating the speaker so that the user can hear the incoming information. (Item 34) a transmission agent, the transmission agent being on the storage device; Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining outgoing communications and resources based on said instructions; communicating the outgoing communication to the resource; and a transmission agent executable by said processor to Item 32. The augmented reality viewer of item 31, further comprising: (Item 35) 35. The augmented reality viewer of claim 34, wherein the at least one sensor for sensing the communication is a microphone suitable for receiving voice commands from the user. (Item 36) the nomadic organism object is a first type of fish; a locomotion module, the locomotion module being on the storage device and executable with the processor to articulate the body of the fish in a first front-to-back manner. 32. The augmented reality viewer of item 31, further comprising: (Item 37) Item 32. The augmented reality viewer of item 31, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 38) Item 38. The augmented reality viewer of item 37, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 39) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 32. The augmented reality viewer of item 31, further comprising: (Item 40) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; retrieving incoming information from a resource with said processor; using the processor to associate the incoming information with a location of the nomadic object relative to the real world object; communicating, with the processor, the incoming information from the location of the nomadic object to the user; A method comprising: (Item 41) Item 41. The method according to item 40, wherein the incoming call information is displayed to the user. (Item 42) Item 41. The method according to item 40, wherein the user hears the incoming call information. (Item 43) Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining, with the processor, outgoing communications and resources based on the instructions; communicating, with the processor, the outgoing communication to the resource; 41. The method of claim 40, further comprising: (Item 44) Item 44. The method of item 43, wherein the user speaks the command. (Item 45) the nomadic organism object is a first type of fish; and articulating, with the processor, a body of the fish in a first anterior-posterior manner. The method according to item 40. (Item 46) Item 41. The method of item 40, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 47) Item 47. The method of item 46, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 48) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 41. The method of claim 40, further comprising: (Item 49) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a transmission agent, the transmission agent being on the storage device; Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining outgoing communications and resources based on said instructions; communicating the outgoing communication to the resource; and a transmission agent executable by said processor to An augmented reality viewer comprising: (Item 50) a read-out agent, the read-out agent being on the storage device and executable by the processor to read incoming information from a resource, associate the incoming information with a location of the nomadic object relative to the real-world object, and communicate the incoming information from the location of the nomadic object to the user. 50. The augmented reality viewer of item 49, further comprising: (Item 51) 51. The augmented reality viewer of item 50, wherein the reading agent activates the light source and displays the incoming information through the display. (Item 52) 51. The augmented reality viewer of claim 50, further comprising a speaker, the reading agent activating the speaker so that the user can hear the incoming information. (Item 53) 50. The augmented reality viewer of item 49, wherein the at least one sensor for sensing the communication is a microphone suitable for receiving voice commands from the user. (Item 54) the nomadic organism object is a first type of fish; a locomotion module, the locomotion module being on the storage device and executable with the processor to articulate the body of the fish in a first front-to-back manner. 50. The augmented reality viewer of item 49, further comprising: (Item 55) 50. The augmented reality viewer of item 49, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 56) 56. The augmented reality viewer of item 55, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 57) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 50. The augmented reality viewer of item 49, further comprising: (Item 58) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; retrieving incoming information from a resource with said processor; using the processor to associate the incoming information with a location of the nomadic object relative to the real world object; Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining, with the processor, outgoing communications and resources based on the instructions; communicating, with the processor, the outgoing communication to the resource; A method comprising: (Item 59) 59. The method of claim 58, further comprising using the processor to communicate the incoming information from the location of the nomadic object to the user. (Item 60) 60. The method of claim 59, wherein the incoming call information is displayed to the user. (Item 61) Item 60. The method of item 59, wherein the user hears the incoming call information. (Item 62) Item 59. The method of item 58, wherein the user speaks the command. (Item 63) the nomadic organism object is a first type of fish; and articulating, with the processor, a body of the fish in a first anterior-posterior manner. Item 58. The method according to item 58. (Item 64) Item 59. The method of item 58, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 65) Item 65. The method of item 64, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 66) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 59. The method of claim 58, further comprising: (Item 67) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a transmission agent, the transmission agent being on the storage device; Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining an outgoing communication and an IOT device based on the instructions; communicating the outgoing communication to the IOT device and operating the IOT device; a transmission agent executable by said processor to An augmented reality viewer comprising: (Item 68) Item 68. The augmented reality viewer of item 67, wherein the at least one sensor for sensing the communication is a microphone suitable for receiving voice commands from the user. (Item 69) the nomadic organism object is a first type of fish; a locomotion module, the locomotion module being on the storage device and executable with the processor to articulate the body of the fish in a first front-to-back manner. Item 68. The augmented reality viewer of item 67, further comprising: (Item 70) Item 68. The augmented reality viewer of item 67, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 71) 71. The augmented reality viewer of item 70, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 72) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; Item 68. The augmented reality viewer of item 67, further comprising: (Item 73) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; retrieving incoming information from a resource with said processor; using the processor to associate the incoming information with a location of the nomadic object relative to the real world object; Sensing a command by the user with the at least one sensor; and sensing, with the at least one sensor, that the command is directed by the user to the nomadic object at a location of the nomadic object relative to the real-world object; determining, with the processor, an outgoing communication and an IOT device based on the instructions; communicating, with the processor, the outgoing communication to the IOT device and operating the IOT device; A method comprising: (Item 74) Item 74. The method of item 73, wherein the at least one sensor for sensing the communication is a microphone suitable for receiving voice commands from the user. (Item 75) the nomadic organism object is a first type of fish; and articulating, with the processor, a body of the fish in a first anterior-posterior manner. Item 74. The method according to item 73. (Item 76) Item 74. The method of item 73, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 77) Item 77. The method of item 76, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 78) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 74. The method of claim 73, further comprising: (Item 79) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; An artificial intelligence system, the artificial intelligence system being on the storage device; Sensing an action by the user using the at least one sensor; and implementing a routine involving the nomadic object that responds to actions of the user; associating said routines with said actions as artificial intelligence clusters; determining a parameter present at a first time when the action is sensed; Associating the parameters present at the first time with an artificial intelligence cluster; Sensing the parameter at a second time; and determining whether the parameter at the second time is the same as the parameter at the first time; executing said routine if a determination is made that said parameter at said second time is the same as said parameter at said first time; an artificial intelligence system executable with the processor to An augmented reality viewer comprising: (Item 80) 80. The augmented reality viewer of item 79, wherein the at least one sensor includes an eye-tracking camera, the action is a wave motion initiated by the user, and the parameter is a gaze direction as determined by eye-tracking of the user using the eye-tracking camera. (Item 81) 80. The augmented reality viewer of item 79, wherein the action is a wave movement initiated within a target zone and the roaming object is moved out of the target zone. (Item 82) the at least one sensor includes an eye-tracking camera positioned to sense a gaze direction of the user; a gaze direction movement routine, the gaze direction movement routine being on the storage device and executable by the processor to move the nomadic object in response to the gaze direction sensed by the eye-tracking camera. 80. The augmented reality viewer of item 79, further comprising: (Item 83) there are a plurality of nomadic creature objects, and the nomadic subroutine is executable by the processor to move the plurality of nomadic creature objects relative to the real-world object; a personal assistant module, the personal assistant module being on the storage device; selecting a personal assistant zookeeper object from among the plurality of zookeeper objects; moving at least one of the zoological objects other than the personal assistant zoological object together with the personal assistant zoological object; a personal assistant module executable with the processor to 80. The augmented reality viewer of item 79, further comprising: (Item 84) 80. The augmented reality viewer of item 79, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 85) 85. The augmented reality viewer of item 84, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 86) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 80. The augmented reality viewer of item 79, further comprising: (Item 87) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; Sensing an action by the user with the at least one sensor; and implementing with the processor a routine involving the nomadic object responding to actions of the user; associating, with said processor, said routines with said actions as an artificial intelligence cluster; determining, with the at least one processor, a parameter present at a first time when the action is sensed; using the processor to associate the parameters present at the first time with the artificial intelligence cluster; sensing a parameter at a second time with the at least one sensor; and determining, with the processor, whether the parameter at the second time is the same as the parameter at the first time; executing said routine if a determination is made that said parameter at said second time is the same as said parameter at said first time; A method comprising: (Item 88) Item 88. The method of item 87, wherein the action is a wave motion initiated by the user and the parameter is the user's gaze direction. (Item 89) Item 88. The method according to item 87, wherein the action is a wave movement initiated within a target zone and the roaming object is moved out of the target zone. (Item 90) Sensing a gaze direction of the user with the at least one sensor; moving, by the processor, the nomadic object in response to the gaze direction; 88. The method of claim 87, further comprising: (Item 91) moving a plurality of nomadic objects relative to the real-world object with the processor; selecting, with the processor, a personal assistant roving object from among the plurality of roving objects; moving, with the processor, at least one of the nomadic objects other than the personal assistant nomadic object together with the personal assistant nomadic object; 88. The method of claim 87, further comprising: (Item 92) Item 88. The method of item 87, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 93) Item 93. The method of item 92, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 94) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; 88. The method of claim 87, further comprising: (Item 95) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on the storage device including a first type of fish; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the first type of the fish relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the first type of the fish rendered in accordance with the desired display; a nomadic subroutine, the nomadic subroutine being on the storage device and executable by the processor to move the fish of a first type relative to the real-world object; a locomotion module, the locomotion module being on the storage device and executable with the processor to articulate the body of the fish in a first front-to-back manner; An augmented reality viewer comprising: (Item 96) 96. The augmented reality viewer of item 95, wherein the nomad subroutine is executable by the processor to move the plurality of fish of a first type relative to the real-world objects and relative to each other. (Item 97) the at least one sensor senses wave motion initiated by the user; a wave migration routine, the wave migration routine being on the storage device and executable by the processor to move the fish of a first type in response to the wave migration sensed by the at least one sensor. Item 96. The augmented reality viewer of item 95, further comprising: (Item 98) An artificial intelligence system, the artificial intelligence system being on the storage device; Sensing an action by the user using the at least one sensor; and performing a routine involving the fish of a first type responsive to an action of the user; associating said routines with said actions as artificial intelligence clusters; determining a parameter present at a first time when the action is sensed; Associating the parameters present at the first time with an artificial intelligence cluster; Sensing the parameter at a second time; and determining whether the parameter at the second time is the same as the parameter at the first time; executing said routine if a determination is made that said parameter at said second time is the same as said parameter at said first time; an artificial intelligence system executable using the processor to Item 96. The augmented reality viewer of item 95, further comprising: (Item 99) the at least one sensor includes an eye-tracking camera positioned to sense a gaze direction of the user; a gaze direction moving routine, the gaze direction moving routine being on the storage device and executable by the processor to move the first type of fish in response to the gaze direction sensed by the eye-tracking camera. Item 96. The augmented reality viewer of item 95, further comprising: (Item 100) a plurality of fish of a first type are present, and the nomad subroutine is executable by the processor to move the plurality of fish of the first type relative to the real-world object; a personal assistant module, the personal assistant module being on the storage device; selecting a first type of personal assistant fish from among the plurality of fish of the first type; moving at least one of the fish of the first type other than the personal assistant fish of the first type together with the personal assistant fish of the first type; a personal assistant module executable with the processor to Item 96. The augmented reality viewer of item 95, further comprising: (Item 101) 96. The augmented reality viewer of item 95, wherein the movement module is executable by the processor to articulate the body of the second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner. (Item 102) The moving module includes: sensing slow hand movements of the user's hand with the at least one sensor; articulating the body of the fish in the first back and forth manner at a slow speed in response to a slow rate of movement of the hand; sensing a rapid hand movement of the user's hand with the at least one sensor; articulating the body of the fish in the first back and forth manner at high speed in rapid response to movement of the hand. and wherein the processor is operable to: Item 102. The augmented reality viewer according to item 101. (Item 103) The moving module includes: moving the first fish to remain near the hand when the hand moves at the slow speed; moving the first fish out of the hand when the hand moves in the rapid motion; and wherein the processor is operable to: Item 103. The augmented reality viewer of item 102. (Item 104) a vertex animation routine, the vertex animation routine being on the storage device; storing a first type of mesh fish representative of said first type of fish; associating a texture with said fish of a first type mesh; manipulating a mesh of the fish of a first type to cause movement of the texture and the fish of the first type within a field of view of the user; a vertex animation routine executable by said processor to Item 96. The augmented reality viewer of item 95, further comprising: (Item 105) Item 105. The augmented reality viewer of item 104, wherein the fish of a first type mesh is manipulated to articulate the fish of the first type. (Item 106) Item 105. The augmented reality viewer of item 104, wherein the same fish of a first type mesh is used multiple times to cause the texture and movement of the fish of the first type. (Item 107) Item 96. The augmented reality viewer of item 95, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 108) Item 108. The augmented reality viewer of item 107, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 109) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the first type of fish such that the first type of fish remains stationary relative to the at least one real-world object within a field of view of the user; Item 96. The augmented reality viewer of item 95, further comprising: (Item 110) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing, on a storage device, data including a first type of fish; determining, with a processor, a desired display of the fish of a first type relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the first type of the fish rendered in accordance with the desired display; moving, with the processor, the fish of a first type relative to the real-world object; articulating a body of the fish in a first front-to-back manner with the processor; A method comprising: (Item 111) Item 111. The method of item 110, further comprising using the processor to move the plurality of fish of a first type relative to the real-world object and relative to each other. (Item 112) sensing, by the at least one sensor, a wave movement initiated by the user; moving, by the processor, the first type of fish in response to the wave movement sensed by the at least one sensor; Item 111. The method of item 110, further comprising: (Item 113) Sensing an action by the user with the at least one sensor; and implementing, with the processor, a routine involving a first type of the fish responsive to an action of the user; associating, with said processor, said routines with said actions as an artificial intelligence cluster; determining, with the at least one processor, a parameter present at a first time when the action is sensed; using the processor to associate the parameters present at the first time with the artificial intelligence cluster; sensing a parameter at a second time with the at least one sensor; and determining, with the processor, whether the parameter at the second time is the same as the parameter at the first time; executing said routine if a determination is made that said parameter at said second time is the same as said parameter at said first time; Item 111. The method of item 110, further comprising: (Item 114) Sensing a gaze direction of the user with the at least one sensor; moving, by the processor, the fish of a first type in response to the gaze direction; Item 111. The method of item 110, further comprising: (Item 115) moving, with the processor, a plurality of fish of a first type relative to the real world object; selecting, with the processor, a personal assistant fish of a first type from among the plurality of fish of the first type; moving, with the processor, at least one of the fish of the first type other than the personal assistant fish of the first type together with the personal assistant fish of the first type; Item 111. The method of item 110, further comprising: (Item 116) Item 111. The method of item 110, further comprising using the processor to articulate the body of a second type of fish in a second anterior-posterior manner different from the first anterior-posterior manner. (Item 117) sensing slow hand movements of the user's hand with the at least one sensor; using the processor to articulate the body of the fish in the first back and forth manner at a slow speed in response to a slow rate of movement of the hand; sensing a rapid hand movement of the user's hand with the at least one sensor; using the processor to articulate the body of the fish in the first back and forth manner at high speeds in rapid response to movements of the hand; Item 117. The method of item 116, further comprising: (Item 118) moving, with the processor, the first fish to remain near the hand when the hand moves at the slow speed; using the processor to move the first fish away from the hand when the hand moves in the rapid motion; Item 118. The method of item 117, further comprising: (Item 119) storing, with the processor, a first type of mesh fish representative of the first type of fish; using the processor to associate a texture with the fish of a first type mesh; using the processor to manipulate a mesh of the fish of a first type to cause movement of the texture and the fish of the first type within a field of view of the user; Item 111. The method of item 110, further comprising: (Item 120) Item 120. The method of item 119, wherein the fish of a first type of mesh is manipulated to articulate the fish of a first type. (Item 121) Item 120. The method of item 119, wherein the same fish of a first type mesh is used multiple times to cause the texture and movement of the fish of the first type. (Item 122) Item 111. The method of item 110, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 123) Item 123. The method of item 122, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 124) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the first type of fish such that the first type of fish remains stationary relative to the at least one real-world object within a field of view of the user; Item 111. The method of item 110, further comprising: (Item 125) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a surface extraction routine, the surface extraction routine being on the storage device and executable by the processor to identify surfaces within the real world object; and a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a depth generation module on the storage device and executable by the processor to display the nomadic creature object to the user in three dimensional space with the surface facing the user and between the user and the nomadic creature object in accordance with the desired display; An augmented reality viewer comprising: (Item 126) Item 126. The augmented reality viewer of item 125, wherein the surface is a two-dimensional surface of a wall or ceiling. (Item 127) Item 126. The augmented reality viewer of item 125, wherein the depth generation module is executable by the processor to display to the user port holes in the surface through which the nomadic object is visible to the user. (Item 128) Item 126. The augmented reality viewer of item 125, wherein the nomadic object is a three-dimensional nomadic object. (Item 129) a view installation routine, the view installation routine being on the storage device; Capturing a space containing the real-world object; representing the space as a real world mesh; collecting vertical and horizontal planes from said real world mesh; filtering the faces by height above floor, size, orientation, and location relative to the real world mesh; creating a blueprint including a portal frame and all content within a view at the selected location; cutting a hole in an occlusion material of said real-world mesh material so that said user may peer through said portal into said view; a view setting routine executable by the processor to Item 126. The augmented reality viewer of item 125, further comprising: (Item 130) Item 126. The augmented reality viewer of item 125, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 131) Item 131. The augmented reality viewer of item 130, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 132) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; Item 126. The augmented reality viewer of item 125, further comprising: (Item 133) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; identifying, with the processor, a surface within the real world object; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real world object with the processor; Including, The processor displays the nomadic organism object to the user in three dimensional space in accordance with the desired display, with the surface between the user and the nomadic organism object, on a side of the surface facing the user. (Item 134) Item 134. The method according to item 133, wherein the surface is a two-dimensional surface of a wall or a ceiling. (Item 135) Item 134. The method of item 133, wherein the processor displays to the user port holes in the surface through which the nomadic object is visible to the user. (Item 136) Item 134. The method of item 133, wherein the free-roaming object is a three-dimensional free-roaming object. (Item 137) capturing, with the processor, a space containing the real-world object; representing, with the processor, the space as a real world mesh; collecting vertical and horizontal planes from the real world mesh with the processor; filtering, with said processor, the faces by height above floor, size, orientation, and location relative to said real world mesh; creating, with said processor, a blueprint including a portal frame and all content within a view at said selected location; using said processor to cut holes in occlusion material of said real-world mesh material so that said user may peer through said portal into said view. Item 134. The method of item 133, further comprising: (Item 138) Item 134. The method of item 133, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 139) Item 139. The method of item 138, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 140) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; Item 134. The method of item 133, further comprising: (Item 141) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on said storage device including nomadic objects; a processor connected to the storage device; a surface extraction routine, the surface extraction routine being on the storage device and executable by the processor to identify surfaces within the real world object; and a display module on the storage device and executable by the processor to determine a desired display of the nomadic object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; and a roaming subroutine, the roaming subroutine being on the storage device and executable by the processor to move the roaming creature object relative to the real-world object; a view installation routine, the view installation routine being on the storage device; Capturing a space containing the real-world object; representing the space as a real world mesh; collecting vertical and horizontal planes from said real world mesh; filtering the faces by height above floor, size, orientation, and location relative to the real world mesh; creating a blueprint including a portal frame and all content within the view at the selected location; cutting a hole in an occlusion material of said real-world mesh material so that said user may peer through said portal into said view; a view setup routine executable by said processor to An augmented reality viewer comprising: (Item 142) Item 142. The augmented reality viewer of item 141, wherein the surface is a two-dimensional surface of a wall or ceiling. (Item 143) a depth generation module on the storage device and executable by the processor to display the nomadic creature object to the user in three dimensional space with the surface facing the user and between the user and the nomadic creature object in accordance with the desired display. Item 142. The augmented reality viewer of item 141, further comprising: (Item 144) Item 144. The augmented reality viewer of item 143, wherein the depth generation module is executable by the processor to display to the user port holes in the surface through which the nomadic object is visible to the user. (Item 145) Item 144. The augmented reality viewer of item 143, wherein the nomadic object is a three-dimensional nomadic object. (Item 146) Item 142. The augmented reality viewer of item 141, wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects. (Item 147) Item 147. The augmented reality viewer of item 146, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 148) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; Item 142. The augmented reality viewer of item 141, further comprising: (Item 149) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including the nomadic objects on a storage device; identifying, with the processor, a surface within the real world object; determining, with a processor, a desired display of the nomadic object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the nomadic object rendered according to the desired display; moving the nomadic object relative to the real-world object with the processor; capturing, with the processor, a space containing the real-world object; representing, with the processor, the space as a real world mesh; collecting vertical and horizontal planes from the real world mesh with the processor; filtering, with said processor, the faces by height above floor, size, orientation, and location relative to said real world mesh; creating, with said processor, a blueprint including a portal frame and all content within a view at said selected location; using said processor to cut holes in occlusion material of said real-world mesh material so that said user may peer through said portal into said view. A method comprising: (Item 150) Item 149. The method of item 149, wherein the surface is a two-dimensional surface of a wall or a ceiling. (Item 151) Item 149. The method of item 149, wherein the processor displays the nomadic organism object to the user in three-dimensional space in accordance with the desired display, with the surface facing the user and between the user and the nomadic organism object. (Item 152) Item 152. The method of item 151, wherein the processor displays to the user port holes in the surface through which the nomadic object is visible to the user. (Item 153) Item 152. The method of item 151, wherein the free-roaming object is a three-dimensional free-roaming object. (Item 154) Item 149. The method of item 149, wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects. (Item 155) Item 155. The method of item 154, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 156) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the nomadic object such that the nomadic object remains stationary relative to the at least one real-world object within a field of view of the user; Item 149. The method of item 149, further comprising: (Item 157) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a set of data on the storage device including a virtual object; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the virtual object relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the virtual object rendered according to the desired view; and a vertex animation routine, the vertex animation routine being on the storage device; storing a virtual object mesh representing the virtual object; Associating a texture with the virtual object mesh; manipulating the virtual object mesh to cause movement of the texture and the virtual object within a field of view of the user; a vertex animation routine executable by said processor to An augmented reality viewer comprising: (Item 158) the nomadic organism object is a first type of fish; a locomotion module, the locomotion module being on the storage device and executable with the processor to articulate the body of the fish in a first front-to-back manner. Item 158. The augmented reality viewer of item 157, further comprising: (Item 159) Item 158. The augmented reality viewer of item 157, wherein the virtual object mesh is manipulated to articulate the virtual object. (Item 160) Item 158. The augmented reality viewer of item 157, wherein the same virtual object mesh is used multiple times to cause the texture and movement of the virtual object. (Item 161) Item 158. The augmented reality viewer of item 157, wherein the display device displays the light emitted to the user while viewing at least one of the real-world objects. (Item 162) Item 162. The augmented reality viewer of item 161, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 163) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within a field of view of the user; Item 158. The augmented reality viewer of item 157, further comprising: (Item 164) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including a virtual object on a storage device; determining, with a processor, a desired display of the virtual object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the emitted light to a user with a display device, the light being visible to the user and generating a rendering of the virtual object rendered in accordance with the desired display; storing, with the processor, a virtual object mesh representing the virtual object; using the processor to associate a texture with the virtual object mesh; using the processor to manipulate the virtual object mesh to cause movement of the texture and the virtual object within the user's field of view; A method comprising: (Item 165) the nomadic organism object is a first type of fish; and articulating, with the processor, a body of the fish in a first anterior-posterior manner. The method according to item 164. (Item 166) Item 165. The method of item 164, wherein the virtual object mesh is manipulated to articulate the virtual object. (Item 167) Item 165. The method of item 164, wherein the same virtual object mesh is used multiple times to drive the texture and movement of the virtual object. (Item 168) Item 165. The method of item 164, wherein the display device displays the emitted light to the user while viewing at least one of the real-world objects. (Item 169) Item 169. The method of item 168, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 170) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within the user's field of view; Item 165. The method of item 164, further comprising: (Item 171) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; A set of data on said storage device including elements of a coral community; a processor connected to the storage device; a coral colony spawner, the coral colony spawner being on the storage device; Determining a volume; performing a line trace at random points within the volume from a maximum height of the volume to a floor of the volume; determining whether a valid location is identified by the line trace; if a valid location is identified, responsive to said identification, performing a box trace while trying different scales and rotations and generating a score for each placement to test whether the random clusters will fit into the world mesh without overlapping; determining a selected installation with the highest score from among the scores; and creating said coral colony in the placement with the highest score; a coral colony spawner executable using said processor to a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the coral colony rendered according to the desired display; An augmented reality viewer comprising: (Item 172) Item 172. The augmented reality viewer of item 171, further comprising a view setting routine on the storage device and executable by the processor to set a view, the volume being bounded by the view. (Item 173) A coral spawner system, the coral spawner system being on the storage device, storing at least a first coral element of a first type on the storage device; constructing the coral group from a plurality of coral elements including the first coral element; A coral spawner system capable of executing the above-mentioned method using the processor. Item 172. The augmented reality viewer of item 171, further comprising: (Item 174) Item 174. The augmented reality viewer of item 173, wherein the coral spawner system is executable by the processor to construct the coral colony from a plurality of first coral elements. (Item 175) Item 174. The augmented reality viewer of item 173, wherein the coral spawner system is executable with the processor to store at least a second coral element of a second type on the storage device, and the plurality of coral elements includes the second coral element. (Item 176) Item 174. The augmented reality viewer of item 173, wherein the coral spawner system is executable using the processor to determine a coral colony configuration, and the processor builds the coral colony according to the configuration. (Item 177) Item 177. The augmented reality viewer according to item 176, wherein the setting is an available space that is detected and the number of coral elements is selected based on the available space. (Item 178) Item 177. The augmented reality viewer of item 176, wherein the coral spawner system is executable using the processor to simulate ambient light, the setting being the ambient light, a number of coral elements being selected based on the ambient light, and an orientation of the coral elements being selected based on the ambient light. (Item 179) Item 177. The augmented reality viewer of item 176, wherein the coral spawner system includes a data table on the storage device with a plurality of coral colony settings, and the coral spawner system builds the coral colonies according to the plurality of coral colony settings. (Item 180) Item 180. The augmented reality viewer of item 179, wherein the coral community settings include at least one of number of individuals, maximum count of a species, creation type, and height-based percentage. (Item 181) Item 179. The augmented reality viewer of item 179, wherein the coral spawner system includes vertex crawling and ray casting algorithms for checking placement viability, growth, and caching of valid points to a file. (Item 182) Item 182. The augmented reality viewer of item 181, wherein the coral spawner system includes a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all coral populations. (Item 183) Item 183. The augmented reality viewer of item 182, wherein the coral spawner system includes a collision-based exclusion configuration for placing box colliders where certain species should not grow. (Item 184) Item 172. The augmented reality viewer of item 171, wherein the display device displays the light emitted to the user while viewing at least one of the real-world objects. (Item 185) Item 185. The augmented reality viewer of item 184, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 186) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within a field of view of the user; Item 172. The augmented reality viewer of item 171, further comprising: (Item 187) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including elements of a coral community on a storage device; placing the coral groups using the processor, the placing of the coral groups comprising: Determining a volume; performing a line trace at random points within the volume from a maximum height of the volume to a floor of the volume; determining whether a valid location is identified by the line trace; if a valid location is identified, responsive to said identification, performing a box trace while trying different scales and rotations and generating a score for each placement to test whether the random clusters will fit into the world mesh without overlapping; determining a selected installation with the highest score from among the scores; and creating said coral colony in the placement with the highest score; and generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the emitted light to a user with a display device, the light being visible to the user and generating a rendering of the virtual object rendered according to the desired display; A method comprising: (Item 188) Item 188. The method of item 187, further comprising establishing a view, the volume being bounded by the view. (Item 189) storing at least a first coral element of a first type on the storage device; constructing, using the processor, the coral group from a plurality of coral elements including the first coral element; Item 188. The method of item 187, further comprising: (Item 190) Item 190. The method of item 189, wherein the processor constructs the coral community from a plurality of first coral elements. (Item 191) Item 190. The method of item 189, further comprising storing at least a second coral element of a second type on the storage device, the plurality of coral elements including the second coral elements. (Item 192) Item 190. The method of item 189, further comprising determining, with the processor, a coral community setting, the processor constructing the coral community according to the setting. (Item 193) Item 193. The method according to item 192, wherein the setting is an available space that is detected and the number of coral elements is selected based on the available space. (Item 194) Item 193. The method of item 192, further comprising simulating ambient light using the processor, the setting being the ambient light, a number of coral elements being selected based on the ambient light, and an orientation of the coral elements being selected based on the ambient light. (Item 195) Item 193. The method of item 192, further comprising storing a data table on the storage device with a plurality of coral community settings, the processor constructing the coral community according to the plurality of coral community settings. (Item 196) 206. The method of claim 195, wherein the coral community settings include at least one of a number of individuals, a maximum count of a species, a creation type, and a height-based percentage. (Item 197) 196. The method of claim 195, further comprising using the processor to execute vertex crawling and ray casting algorithms to check placement feasibility, growing, and caching of valid points to a file. (Item 198) 201. The method of claim 197, further comprising using the processor to execute a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all coral groups. (Item 199) 201. The method of claim 198, further comprising using the processor to perform a collision-based exclusion construction to place box colliders around which a species should not grow. (Item 200) Item 188. The method of item 187, wherein the display device displays the emitted light to the user while viewing at least one of the real-world objects. (Item 201) 201. The method of claim 200, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 202) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within the user's field of view; Item 188. The method of item 187, further comprising: (Item 203) 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; and A storage device; a processor connected to the storage device; A coral spawner system, the coral spawner system being on the storage device, storing at least a first coral element of a first type on the storage device, and executable by the processor to construct the coral colony from a plurality of coral elements including the first coral element; a display module on the storage device and executable by the processor to determine a desired display of the coral population relative to a location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to the user, the light being visible to the user and generating a rendering of the coral colony rendered according to the desired display; An augmented reality viewer comprising: (Item 204) 204. The augmented reality viewer of item 203, wherein the virtual object is a group of corals. (Item 205) a coral colony spawner, the coral colony spawner being on the storage device; Determining a volume; performing a line trace at random points within the volume from a maximum height of the volume to a floor of the volume; determining whether a valid location is identified by the line trace; if a valid location is identified, responsive to said identification, performing a box trace while trying different scales and rotations and generating a score for each placement to test whether the random clusters will fit into the world mesh without overlapping; determining a selected installation with the highest score from among the scores; and creating said coral colony in the placement with the highest score; a coral colony spawner executable using the processor to Item 205. The augmented reality viewer of item 204, further comprising: (Item 206) 206. The augmented reality viewer of claim 205, further comprising a view setting routine on the storage device and executable by the processor to set a view, the volume being bounded by the view. (Item 207) Item 204. The augmented reality viewer of item 203, wherein the coral spawner system is executable by the processor to construct the coral colony from a plurality of first coral elements. (Item 208) Item 204. The augmented reality viewer of item 203, wherein the coral spawner system is executable using the processor to store at least a second coral element of a second type on the storage device, and the plurality of coral elements includes the second coral element. (Item 209) 204. The augmented reality viewer of item 203, wherein the coral spawner system is executable using the processor to determine a coral colony configuration, and the processor builds the coral colony according to the configuration. (Item 210) 209. The augmented reality viewer of claim 209, wherein the setting is an available space that is detected and the number of coral elements is selected based on the available space. (Item 211) 209. The augmented reality viewer of claim 209, wherein the coral spawner system is executable using the processor to simulate ambient light, the setting being the ambient light, a number of coral elements being selected based on the ambient light, and an orientation of the coral elements being selected based on the ambient light. (Item 212) 209. The augmented reality viewer of claim 209, wherein the coral spawner system includes a data table on the storage device with a plurality of coral colony settings, and the coral spawner system builds the coral colony according to the plurality of coral colony settings. (Item 213) 213. The augmented reality viewer of item 212, wherein the coral community settings include at least one of number of individuals, maximum count of a species, creation type, and height-based percentage. (Item 214) Item 213. The augmented reality viewer of item 212, wherein the coral spawner system includes vertex crawling and ray casting algorithms for checking placement viability, growth, and caching of valid points to a file. (Item 215) Item 215. The augmented reality viewer of item 214, wherein the coral spawner system includes a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all coral populations. (Item 216) Item 216. The augmented reality viewer of item 215, wherein the coral spawner system includes a collision-based exclusion configuration for placing box colliders where certain species should not grow. (Item 217) Item 204. The augmented reality viewer of item 203, wherein the display device displays the light emitted to the user while viewing at least one of the real-world objects. (Item 218) Item 218. The augmented reality viewer of item 217, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye. (Item 219) a head mounted structure shaped to be worn on the head of the user, the display device being mounted to the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within a field of view of the user; 204. The augmented reality viewer of item 203, further comprising: (Item 220) 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing at least a first coral element of a first type on the storage device; constructing, with a processor, the coral group from a plurality of coral elements including the first coral element; determining, with the processor, a desired display of the virtual object relative to a location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the generated light to a user with a display device, the light being visible to the user and generating a rendering of the coral colony rendered according to the desired display; A method comprising: (Item 221) Item 221. The method of item 220, wherein the virtual object is a coral colony. (Item 222) placing the coral groups using the processor, the placing of the coral groups comprising: Determining a volume; performing a line trace at random points within the volume from a maximum height of the volume to a floor of the volume; determining whether a valid location is identified by the line trace; if a valid location is identified, responsive to said identification, performing a box trace while trying different scales and rotations and generating a score for each placement to test whether the random clusters will fit into the world mesh without overlapping; determining a selected installation with the highest score from among the scores; and creating said coral colony in the placement with the highest score; Including 222. The method of claim 221, further comprising: (Item 223) Item 223. The method of item 222, further comprising establishing a view, the volume being bounded by the view. (Item 224) Item 221. The method of item 220, wherein the processor constructs the coral community from a plurality of first coral elements. (Item 225) 221. The method of claim 220, further comprising storing at least a second coral element of a second type on the storage device, the plurality of coral elements including the second coral element. (Item 226) Item 221. The method of item 220, further comprising determining, with the processor, a coral community setting, the processor constructing the coral community according to the setting. (Item 227) Item 227. The method according to item 226, wherein the setting is an available space that is detected and the number of coral elements is selected based on the available space. (Item 228) Item 227. The method according to item 226, further comprising simulating ambient light using the processor, wherein the setting is the ambient light, a number of coral elements is selected based on the ambient light, and an orientation of the coral elements is selected based on the ambient light. (Item 229) Item 227. The method of item 226, further comprising storing a data table on the storage device with a plurality of coral community settings, the processor constructing the coral community according to the plurality of coral community settings. (Item 230) 230. The method of claim 229, wherein the coral community settings include at least one of number of individuals, maximum count of a species, creation type, and height-based percentage. (Item 231) 230. The method of claim 229, further comprising using the processor to execute vertex crawling and ray casting algorithms to check placement feasibility, growing, and caching of valid points to a file. (Item 232) 232. The method of claim 231, further comprising using the processor to execute a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all coral groups. (Item 233) 233. The method of claim 232, further comprising using the processor to perform a collision-based exclusion construction to place box colliders around which a species should not grow. (Item 234) Item 221. The method of item 220, wherein the display device displays the emitted light to the user while viewing at least one of the real-world objects. (Item 235) Item 235. The method of item 234, wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eyes. (Item 236) sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within the user's field of view; 221. The method of claim 220, further comprising: [Brief description of the drawings]
[0103] The invention is further illustrated, by way of example, in the following figures.
[0104] [Figure 1] FIG. 1 is a perspective view of an augmented reality system according to one embodiment of the present invention.
[0105] [Diagram 2] FIG. 2 is a flow chart showing the basic operation of the augmented reality system.
[0106] [Diagram 3] FIG. 3 is a depth diagram illustrating the generation of such a mesh.
[0107] [Figure 4] FIG. 4 is a depth diagram showing the mapping for a "view" volume.
[0108] [Figure 5A] 5A-5E are depth views showing a living room scene in which a user may experience a dynamic virtual underwater environment. [Figure 5B] 5A-5E are depth views showing a living room scene in which a user may experience a dynamic virtual underwater environment. [Figure 5C] 5A-5E are depth views showing a living room scene in which a user may experience a dynamic virtual underwater environment. [Figure 5D] 5A-5E are depth views showing a living room scene in which a user may experience a dynamic virtual underwater environment. [Figure 5E] 5A-5E are depth views showing a living room scene in which a user may experience a dynamic virtual underwater environment.
[0109] [Figure 6] FIG. 6 is a diagram designed to assist a user in selecting a size and location for framing / portal viewing access to a "view."
[0110] [Figure 7] FIG. 7 is a diagram illustrating that different aspects of a "view" can be selected.
[0111] [Figure 8A] 8A-8C are depth maps with virtual frames or portals that are generated to allow one to virtually "look" into the ocean "view" volume. [Figure 8B] 8A-8C are depth maps with virtual frames or portals that are generated to allow one to virtually "look" into the ocean "view" volume. [Figure 8C] 8A-8C are depth maps with virtual frames or portals that are generated to allow one to virtually "look" into the ocean "view" volume.
[0112] [Figure 9A] 9A-9D are depth diagrams showing the interaction between a user and various floating objects. [Figure 9B] 9A-9D are depth diagrams showing the interaction between a user and various floating objects. [Figure 9C] 9A-9D are depth diagrams showing the interaction between a user and various floating objects. [Figure 9D] 9A-9D are depth diagrams showing the interaction between a user and various floating objects.
[0113] [Figure 10] 10A and 10B are diagrams of mathematical models of circulation behavior of various virtual characters.
[0114] [Figure 11A] FIG. 11A is a screenshot of a configuration that may be utilized to move a fish relative to a user.
[0115] [Figure 11B]FIG. 11B is a vertex animation flow chart to assist in converting animated skeleton assets into animated vertex meshes in Clownfish.
[0116] [Figure 12] 12A-12D are vertex animation depth diagrams to aid in converting animated skeletal assets into animated vertex meshes in other virtual objects.
[0117] [Figure 13] Figure 13 is a slide to demonstrate unpredictability in unknown environments.
[0118] [Figure 14] Figure 14 is a screenshot of the "Code Blueprint."
[0119] [Figure 15] FIG. 15 is a screenshot illustrating aspects of the interface for laying out and texturing various elements.
[0120] [Figure 16] FIG. 16 is a depth view of a coral colony comprising an assembly of smaller coral elements.
[0121] [Figure 17A] FIG. 17A is a depth view of a high-fidelity model of a diver's helmet.
[0122] [Figure 17B] 17B and 17C are depth diagrams illustrating the much more efficiently repeatable output of the diver helmet. [Figure 17C] 17B and 17C are depth diagrams illustrating the much more efficiently repeatable output of the diver helmet.
[0123] [Figure 18]Figure 18 is a screenshot of the core no-illumination shader network configuration.
[0124] [Figure 19] 19 and 20 are depth diagrams illustrating that the system can be configured to take advantage of the geometry of a room or environment. [Figure 20] 19 and 20 are depth diagrams illustrating that the system can be configured to take advantage of the geometry of a room or environment.
[0125] [Figure 21] FIG. 21 is a depth diagram illustrating the locations of positions within the mesh of a room that may be suitable anchors for elements such as coral reefs.
[0126] [Figure 22] 22A-24 are screenshots illustrating the creation of noteworthy and believable interactions between a user and an augmented reality element. [Figure 23] 22A-24 are screenshots illustrating the creation of noteworthy and believable interactions between a user and an augmented reality element. [Figure 24] 22A-24 are screenshots illustrating the creation of noteworthy and believable interactions between a user and an augmented reality element.
[0127] [Diagram 25] FIG. 25 is a screenshot of a tool for visualizing the utilization of various computing threads versus time.
[0128] [Figure 26] Figure 26 is a slide on various aspects of learning.
[0129] [Figure 27] FIG. 27 is a sequential diagram of the animation pipeline.
[0130] [Figure 28] Figure 28 is a screenshot of an artificial intelligence ("AI") pathfinding solution.
[0131] [Figure 29] FIG. 29 is a depth diagram showing the baking of animation data into a texture.
[0132] [Figure 30A] Figures 30A-30H are depth views of various coral community configurations. [Figure 30B] Figures 30A-30H are depth views of various coral community configurations. [Figure 30C] Figures 30A-30H are depth views of various coral community configurations. [Figure 30D] Figures 30A-30H are depth views of various coral community configurations. [Figure 30E] Figures 30A-30H are depth views of various coral community configurations. [Figure 30F] Figures 30A-30H are depth views of various coral community configurations. [Figure 30G] Figures 30A-30H are depth views of various coral community configurations. [Figure 30H] Figures 30A-30H are depth views of various coral community configurations.
[0133] [Diagram 31] 31A and 31B are depth views of the coral spawner object system.
[0134] [Diagram 32] FIG. 32 is a block diagram of the various instruction routines and modules. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0135] 1 illustrates an augmented reality system including an augmented reality viewer 2, a handheld controller 4, and interconnected auxiliary computing or controller components 6 that may be configured to be worn as a beltpack or equivalent on a user. Each of these components may be operatively coupled 10, 12, 14, 16, 17, 18 to each other and to other connected resources 8, such as cloud computing or cloud storage resources, via wired or wireless communication configurations. The connected resources 8 may be those defined by IEEE 802.11, Bluetooth RTM, and other connectivity standards and configurations. See, for example, U.S. Patent Application Nos. 14 / 555,585, 14 / 690,401, 14 / 331,218, 15 / 481,255, 62 / 627,155, 62 / 518,539, 16 / 229,532, 16 / 155,564, 15 / 413,284, 16 / 020,541, 62,702,322, 62 / 206,765, 15,597,694, 16 / 221,065, 15 / Nos. 968,673 and 62 / 682,788 (each of which is incorporated herein by reference in its entirety), various aspects of such components, such as various embodiments of two depicted optical elements 20 through which a user may see the world around them, are described, along with visual components that may be generated by associated system components for an augmented reality experience. The system may also include various sensors configured to provide information regarding the user's surrounding environment, including camera-type sensors such as black and white, color / RGB, and / or thermal imaging components 22, 24, 26, a depth camera sensor 28, and an audio sensor 30, such as a microphone.
[0136] The augmented reality viewer 2 includes a head-mounted structure 25 that can be worn on the user's head. The augmented reality viewer 2 and the controller component 6 each have a processor and a storage device connected to the processor. Data and executable code are stored on the storage device and executable using the processor. The augmented reality viewer 2 includes a projector that acts as a light generator. The processor of the augmented reality viewer 2 sends instructions to the projector, which generates light, typically laser light, that is transmitted through the display to the user's eyes.
[0137] FIG. 1 thus illustrates an augmented reality viewer including at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; a storage device; a set of data on the storage device including a virtual object; a processor connected to the storage device; a display module on the storage device and executable by the processor to determine a desired display of the virtual object relative to the location of the at least one of the real-world objects; a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator connected to the processor to receive the data stream and generate light based on the data stream; and a display device positioned to receive the generated light and display the light to a user, the light generating a rendering of the virtual object that is visible to the user and rendered in accordance with the desired display.
[0138] The display device may display the emitted light to the user while the user is viewing at least one of the real-world objects. The display device may be a see-through display device that allows light from the at least one real-world object to reach the user's eye.
[0139] The augmented reality viewer may include a head-mounted structure shaped to be worn on a user's head, the display device being mounted to the head-mounted structure and at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head, and a position adjustment module executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to at least one real-world object within the user's field of view.
[0140] The following definitions will be helpful in understanding the various terms used herein. 1. Virtual Objects 1.1. Lifelike Objects (objects that move and move, display articulating features, or have moving surface textures) 1.1.1. Nomadic Classification (Objects that move from one place to another) 1.1.1.1. Nomadic organisms 1.1.1.1.1. Sea otters 1.1.1.1.2. Fish Sea turtles 1.1.1.2. Non-migratory organisms 1.1.1.2.1. Sea anemones Coral 1.1.2. Joint movement classification 1.1.2.1. Articulated Creatures (Objects with Bending Bodies) 1.1.2.1.1. Sea otters 1.1.2.1.2. Fish Sea turtles 1.1.2.1.4. Sea anemones 1.1.2.2. Non-articulated creatures (objects with bodies that do not bend) 1.1.2.2.1. Coral 1.1.3. Texture Classification (Surface Features) 1.1.3.1. Fluid Texture Creatures (Objects with Moving Surfaces) 1.1.3.1.1. Fish Sea otters 1.1.3.1.3. Sea anemones Fixed Texture Creatures (Objects with Surfaces that are Static) Sea turtles 1.1.3.2.2. Coral 1.2. Inanimate Objects (Objects that do not move freely, do not display articulation features, and do not have moving surface textures) 1.2.1. Rock Sand 2. Real Objects Walls 2.2. Ceiling 2.3. Furniture
[0141] With reference to FIG. 2, in various embodiments, a user may be wearing an augmented reality system such as that depicted in FIG. 1, which may also be referred to as a "spatial computing" system in reference to such system's interaction with the three-dimensional world around the user when operated at 32. Such a system may, for example, comprise a head-mountable display component 2 and may feature environmental sensing capabilities as described above and incorporated by reference, such as various types of cameras, which may be configured to map the environment around the user or generate a "mesh" 56 of such environment. FIG. 3 illustrates the generation of such a mesh. A point cloud is depicted that forms a mesh of a given room, in which walls or perimeter 42, 52 and chairs 46, 48, 50, 54, and a centrally located desk 44 are shown. As further shown in FIG. 2, at 34, a spatial computing system may be configured to map or mesh the environment around the user, as described above with reference to FIG. 3.
[0142] At 36, the spatial computing system may be configured to run or operate software such as that available from Magic Leap, Inc. (Plantation, Florida) under the trademark Undersea™. The software may be configured to utilize a map or mesh of the room and assist the user in selecting (such as with the handheld controller 4 of FIG. 1 or via gestures or other available control options available with the system and software) locations for virtual image elements such as underwater coral growth, underwater scene features (i.e., components of a sunken shipwreck, etc.), and virtual connection framing or porting to one or more virtual “viewpoint” elements, such that a virtual extension of the virtual underwater environment is presented that is perceived to extend beyond the actual geometry of the room (i.e., a relatively large, generally spherical, extended volume of the presented underwater environment that extends beyond the generally rectangular prismatic actual room occupied by the user, etc.). In various embodiments, the system may be configured to automatically identify possible locations, such as vertical or horizontal planar locations within the user's actual room, for possible placement of corals, seaweed beds, and the like, subject to selection or placement confirmation by the user. In various embodiments, the system may be configured to generate (or "create") schools, or schools, or fish, which may be configured to swim around through the virtual underwater environment. In various embodiments, such fish may be configured to be attracted to certain gestures or inputs of the user, while in other embodiments, they may be configured to flee away from user movement as if they are afraid of user movement. The fish may be configured to grow and / or multiply over time, and may be configured to change into different species spontaneously or at given time intervals, such that the underwater environment remains changing over time for the user.
[0143] At 38, the system may be configured to operate the software and present an underwater environment to the user. The underwater environment is preferably presented to the user in full color and three-dimensional such that the user perceives the environment around the user as being that of an underwater environment such as a fish tank, which in the case of a "view" extends not only around the user's adjacent environment / room, but also through virtual connected framing or porting into an extended view presentation outside the user's adjacent environment / room. Time domain features (i.e., features that change position and / or geometry over time) may be configured such that elements simulate natural movement (i.e., slow underwater movement of virtually presented underwater plants, slow growth of virtually presented underwater coral elements, and / or the generation, movement, or growth of virtually presented fish or schools or schools thereof, etc.). The system may be configured to suggest suitable locations and sizes for possible portals or framing locations for the "view", such as a location and size at the center of a vertical wall in an actual room occupied by the user that would give the user a wide view into the virtual "view" extension of the virtual underwater environment. 4, a mesh 56 of the user's room is illustrated along with a mapping for a roughly spherical "view" volume 58 that is operatively and virtually fluidly coupled to the actual room as presented to the user. Also shown are pre-determined paths 60 for various fish to be presented to the user in the "view" presentation.
[0144] In FIG. 2, at 40, the spatial computing system may be configured such that a user may interact with certain presented features. The user may, for example, use the user's hand gestures or handheld controller 4 to wave the presented schools of fish out of the way while the user is viewing an actual real-world computer monitor on a real desk and is attempting to push aside virtual plants and / or coral growths that may affect the clear view of other real elements, such as the computer monitor or the real desk top. The system may be configured with artificial intelligence capabilities that are configured, for example, to learn through the use of such gestures or controller instructions that the user generally does not like virtual elements that affect the clear view of such elements (i.e., the computer monitor or the real desk top), or, for example, virtual schools of fish near the real doorway of a room, and generally "learn" to model the virtual elements according to such particular preferences of the particular user. In other words, the system may be configured to keep the fish, plants, corals, and other presented virtual features out of places where the user would not want them. Furthermore, the system is preferably configured to avoid colliding virtual elements with real elements of the room by taking into account the mesh 56 geometry.
[0145] 2 thus illustrates that the virtual object may be a nomadic object and the augmented reality viewer may further include a roaming subroutine on the storage device and executable by the processor to move the nomadic object relative to the real-world object. The data may include a plurality of nomadic objects and the roaming subroutine executable by the processor to move the plurality of nomadic objects relative to the real-world object and relative to each other.
[0146] The at least one sensor may sense wave movement initiated by a user, and the augmented reality viewer may further include a wave movement routine on the storage device and executable by the processor to move the nomadic biological object in response to wave movement sensed by the at least one sensor. The wave movement may be initiated within a target zone, and the nomadic object may be moved out of the target zone. The at least one sensor that senses wave movement may be a camera that detects an image of a user's hand.
[0147] The augmented reality viewer may further include a handheld controller, the sensor being mounted on the handheld controller that is held in the user's hand.
[0148] 5A-5E, various embodiments of user viewable scenarios are illustrated featuring a real room element 62 and various virtual elements such as a plurality of coral colonies or groups 64, 68, 74, 78, 82, 83, kelp plants or seaweed beds 72, fish or other animals or schools or groups 66, 70, 76, 77, 80, and the like. With reference to FIG. 5A, a living room scene is illustrated in which a user 1 wearing a spatial computing system 2 can experience a dynamic virtual underwater environment featuring a centrally located virtual coral colony 64 and a relatively large dynamic virtual fish 66. With reference to FIG. 5B, a living room scene is illustrated in which another user 1 wearing a spatial computing system 2 can experience a dynamic virtual underwater environment featuring a differently centrally located virtual coral colony 64 and a relatively large dynamic virtual fish 66. With reference to FIG. 5C, a user may be able to view a living room scene with virtual underwater elements such as a dynamic sea turtle 70 and a dynamic seaweed bed 72. With reference to Figure 5D, a user may be able to view a living room scene with virtual underwater elements such as a dynamic school of fish 76, a school of corals 74, and a central feature 78 comprising a submerged diver helmet, a school of corals, and dynamic underwater plants. With reference to Figure 5E, a user may be able to view a living room scene with virtual underwater elements such as a dynamic jellyfish 80, and a central feature 82 comprising a school of corals and dynamic underwater plants. With each of the viewable configurations, the system may be configured to allow a user to adjust the lighting setup as well as the color theme, lighting, and shading.
[0149] With reference to FIG. 6, and as noted above with reference to FIG. 2, the system may be configured to assist a user in selecting a size and location for a framing / portal visual access to a "view." The user is presented with sample framing / portal configurations 84, 86, 88, 90, 92, 94 that may be selected by the user depending on the size and geometry of the actual environmental features to which the frame or portal will be virtually "bound." For example, if vertical wall blank space in the user's actual office is available, but relatively small, the system may be configured to suggest installing a frame or portal that is relatively small and relatively geometrically efficient.
[0150] Referring to FIG. 7, once a frame or portal configuration is selected as described with reference to FIG. 6, various aspects of the "view" such as coloration, lighting, volume, virtual features such as rocks and fish may be selected, resulting in a number of selectable options such as the seven samples 96, 98, 100, 102, 104, 106, 108.
[0151] 8A-8C, various views of the "view" room extension configuration are illustrated. With reference to FIG. 8A, a user 1 wearing a head-mounted component 2 of a spatial computing system such as that shown in FIG. 1 is shown in his living room 62 with a virtual frame or portal 110 that is generated so that the user can virtually "peek" into an ocean "view" volume 112, which in the depicted illustrative embodiment features a virtual dynamic shark 114. With reference to FIG. 8B, a user 1 wearing a head-mounted component 2 of a spatial computing system such as that shown in FIG. 1 is shown in his living room 62 with a virtual frame or portal 88 that is generated so that the user can virtually "peek" into an ocean "view" volume 112, which in the depicted illustrative embodiment features many types of virtual elements such as rocks, fish, plants, and corals. Referring to FIG. 8C, an illustrative example of a living room 62 scene featuring dynamic virtual elements such as a sea otter 116, a school of fish 118, and a seaweed bed 120 is shown with a "view" that, in this case, extends upward through the ceiling of the actual room, providing the perception for the user that the living room is relatively deep within the virtual underwater environment.
[0152] The augmented reality viewer may include a depth generation module on the storage device and executable with the processor to display a virtual object to a user in three-dimensional space according to a desired view, with a surface between the user and the virtual object on the side of the surface facing the user. The depth generation module may be executable with the processor to display to the user port holes in the surface through which the virtual object is visible to the user. The virtual object may be a three-dimensional virtual object.
[0153] 9A-9C, and as noted with reference to FIG. 2, the system may be configured such that a user may interact with various virtual features and the system may "learn" to compose a virtual presentation as desired by the user. For example, in various embodiments, if a user is seated in a relatively empty room with a door and a centrally located desk on which resides a computer monitor, the user's spatial computing system may assist the user in identifying corals, underwater plants, and other features in the room, and the system may be configured to "create" or spawn fish to dynamically swim around in the room. As the user sits at the desk and attempts to use a computer monitor located a few feet in front of the user's head, if too many fish begin to swim between the user's head and the user's computer monitor, the user may shoo them away with their hand (or use another system-recognizable gesture) or use other controls (such as the handheld controller 4) to indicate to the system that the user does not want fish right there between their head and the monitor. In various embodiments, the system may be configured to use artificial intelligence or learning features to learn that a user may not want too many fish swimming around in the volume between the user's head and the computer monitor, and the system may be configured to generally keep virtual objects such as fish, plants, or corals outside of that volume. Similarly, the system may learn that a user may not want too many virtual plants or corals growing on their favorite window or door, and may respond accordingly by learning not to virtually place them there.
[0154] Referring back to FIG. 1, the system may be operatively coupled to additional resources, such as other computing systems, by way of a cloud or other connectivity configuration. For example, the spatial computing system may be operatively and securely coupled to a cell phone or laptop computer with privileges to access a user's calendar, text messages, or Internet of Things ("IOT") connected resources, such as a webcam, door lock, lights, or garage door. Referring again now to FIGS. 9A-9D, such resource connectivity may be utilized in various embodiments such that one or more virtual features of the virtual presentation may be utilized to assist the user; in other words, in the illustrated configuration, the virtual sea otter 116 may be configured to dynamically swim around, generally like a wild sea otter, until some interaction is needed or desired by the user, in which case the sea otter may function similar to a personal assistant with connectivity to associated resources. For example, in the embodiment of Figure 9A, the sea otter 116 informs the user that the user's lunch meeting is in 12 minutes with a displayed bubble message 122. The system may be configured so that the user may utilize a simple gesture, such as a flick of the index finger, to clear the message and return the sea otter 116 to its natural behavior. With reference to Figure 9B, the system may be configured so that the sea otter character 116 provides a message bubble notification 124 that a connected calendar resource indicates that the user is double-booked, and if the user wishes, the sea otter can automatically send a message using the connected resource to request rescheduling of one of the appointments.
[0155] The augmented reality viewer may therefore include a transmission agent executable by a processor to: sense, using at least one sensor, commands by a user; sense, using at least one sensor, that a command is directed by a user to a nomadic object at the location of the nomadic object relative to the real-world object; determine an outgoing communication and resources based on the commands; and communicate the outgoing communication to the resources.
[0156] The at least one sensor for sensing communication may be a microphone suitable for receiving voice commands from a user.
[0157] Referring to FIG. 9C, the system may be configured such that the sea otter character 116 provides a message bubble notification 126 that connected webcam and messaging (and / or Amazon network / web) resources indicate that the user has received the package, and such a system may be further configured to enable the user to open an IOT garage door or other IOT-enabled access point by requesting this, such as by voice recognition of the spatial computing system utilizing the interconnected microphone sensor 30, to expedite delivery.
[0158] The augmented reality viewer may therefore include a transmission agent executable by a processor to: detect, using at least one sensor, an instruction by a user; sense, using at least one sensor, that an instruction is directed by a user to a nomadic object at the location of the nomadic object relative to a real-world object; determine an outgoing communication and an IOT device based on the instruction; communicate the outgoing communication to the IOT device; and operate the IOT device.
[0159] The at least one sensor for sensing communication may be a microphone suitable for receiving voice commands from a user.
[0160] 9D, the system may be configured to use artificial intelligence and / or learning type tools to analyze eye gaze information associated with a user, which may be captured by an inward-facing camera coupled to the head-mountable component 2 of the user's spatial computing system. Such analysis may result in a system-based tentative conclusion, for example, that the user may be attempting to gaze at something on a wall, such as a submitted actual piece of art, that is currently virtually obstructed by a seaweed bed or other virtual feature, which may be helpful for the sea otter character 116, acting as a personal assistant, to ask the user if they would like to move the right portion of the seaweed bed a little to allow for a better view of the actual wall, as suggested in the message bubble 128 shown in FIG. 9D.
[0161] The augmented reality viewer may include an artificial intelligence system executable with a processor to: sense an action by a user using at least one sensor; implement a routine with a virtual object that responds to the user's action; associate the routine with the action as an artificial intelligence cluster; determine parameters present at a first time when the action is sensed; associate the parameters present at the first time with the artificial intelligence cluster; sense the parameters at a second time; determine whether the parameters at the second time are identical to the parameters at the first time; and execute the routine if a determination is made that the parameters at the second time are identical to the parameters at the first time.
[0162] The at least one sensor may include an eye-tracking camera, and the action is a wave motion initiated by a user, and the parameter is a gaze direction as determined by eye-tracking of the user using the eye-tracking camera. The action may be a wave movement initiated within a target zone, and a roaming object is moved out of the target zone.
[0163] The at least one sensor may include an eye-tracking camera positioned to sense the user's gaze direction, and the augmented reality viewer may further include a gaze direction movement routine on the storage device and executable by the processor to move the nomadic creature object in response to the gaze direction sensed by the eye-tracking camera.
[0164] There may be a plurality of roving creature objects, and the roving subroutine may be executable by the processor to move the plurality of roving creature objects relative to the real-world objects, and the augmented reality viewer may further include a personal assistant module on the storage device and executable using the processor to select a personal assistant roving creature object from among the plurality of roving creature objects and move at least one of the roving creature objects other than the personal assistant roving creature object together with the personal assistant roving creature object.
[0165] 10A and 10B, in various embodiments, a mathematical model may provide the basis for certain cyclical behaviors of various virtual characters (such as various types of fish), and various types of fish may have different types of general movement patterns that may be utilized to generate movement that appears natural to the user. As noted above, in various embodiments, fish may have several states to which they may be configured to return, such as fleeing as if afraid, chasing as if interested, hungry, or curious, and these behaviors may be associated with factors such as the speed of the user's hand movement. For example, a gesture or slow hand movement may be configured to cause one or more fish to chase or remain in the vicinity of the user's hand, while a fast movement or a gesture may be associated with potential danger or fear, in which case one or more fish may be configured to flee the adjacent area, such as feeding or friendliness / safety.
[0166] The nomadic object may be a first type of fish, and the augmented reality viewer may further include a locomotion module on the storage device and executable with the processor to articulate a body of the fish in a first back-and-forth manner. The locomotion module is executable with the processor to articulate a body of the second type of fish in a second back-and-forth manner different from the first back-and-forth manner. The locomotion module may be executable with the processor to sense slow hand movements of the user's hand with at least one sensor and articulate the body of the fish in the first back-and-forth manner at a slow speed in response to the slow speed of the hand movement, and to sense fast hand movements of the user's hand with at least one sensor and articulate the body of the fish in the first back-and-forth manner at a fast speed in response to the rapid speed of the hand movement. The locomotion module may be executable with the processor to move the first fish to stay close to the hand when the hand moves at a slow speed and to move the first fish to escape the hand when the hand moves at a fast speed.
[0167] With reference to FIG. 11A, various configurations may be utilized to move the fish relative to the user credibly and efficiently in terms of spatial computing resources. For example, a sine wave output may be utilized to modulate the position of the fish's tail and body relative to each other. Rather than keyframing data per body part, the system may be configured to vary the character's speed in general without precise mathematical calculation speed of all its components, and secondary motion may be added for other components in various embodiments. Thus, the system may be configured such that grouping or bulk motion may be generated without having to animate every part by hand. FIG. 11A illustrates a flow chart for a series of animations such as "sharp left turn" then "sharp right turn" that may be fed into a basic motion engine. Transition code may assist in transitions between states, such as between a normal straight gentle swimming motion and a fleeing state. Interpolation, or animation hybridization, and type transitions may be utilized to smooth the transitions.
[0168] With reference to FIG. 11B, vertex animation may be utilized to assist in converting animated skeletal assets into animated vertex meshes using texture maps such as those from a brand / authoring tool available under the trademark Houdini (RTM), which may be utilized to process data that may be brought into an interactive development environment such as Unreal Engine (RTM) for incorporation into an experience to be presented to a user. Such techniques may be utilized to assist in making assets such as fish significantly more efficient to display for users as well as more efficient in terms of computing resources. In other words, an underlying three-dimensional model may be associated with a "rig" and then the system may be configured such that a rig does not need to be used at runtime because the associated vertices of the three-dimensional model / mesh may be animated directly. For example, instead of manipulating the underlying skeletal frame of the fish model, the fish itself or its mesh may be moved (i.e., manipulating the mesh vs. the rig). Such efficiencies may allow for reduced computational overhead and assist in rendering more fish simultaneously, for example.
[0169] 12A-12D, a similar approach may be utilized not only to efficiently animate fish such as the clownfish asset shown at 130, but also to animate features such as a sea anemone 132. Figures 12A-12D illustrate views of a clownfish 130 and a sea anemone 132 at various levels of natural fidelity, from mesh elements as in Figure 12A, to full color animated elements as in Figure 12D. If each sea anemone tentacle had to be animated individually, rather than as described above, the required computing resources would be significantly greater.
[0170] The augmented reality viewer may include a vertex animation routine executable with the processor to store virtual object meshes on a storage device representing the virtual objects, associate textures with the virtual object meshes, and manipulate the virtual object meshes to cause movement of the textures and virtual objects within a user's field of view. The virtual object meshes may be manipulated to articulate the virtual objects. The same virtual object mesh may be used multiple times to cause movement of textures and virtual objects.
[0171] With reference to FIG. 13, in a mixed reality or spatial computing environment, there is a lot of unpredictability because the system is configured to dynamically react to the environment around the user. It is not clear in advance how the room around the user will look geometrically until the system scans the room. There are some unique challenges presented in terms of animating various features, mainly because a very wide range of believable behavior is generally preferred. For example, in a fully virtual reality system, each rock and each fish and each coral may be carefully placed in three dimensions to work well together. This is not true for an unknown room, where the user may see and experience its surroundings in augmented reality. Furthermore, as explained above, the system is preferably configured so that various elements, such as fish, may interact with the user, such as through the user's hand or eye movements, which may also be relatively unpredictable. If all the fish made the same turn to the left and swam away in the same vector when the user's relatively fast hand approached, the scene would not look natural. Thus, the system is preferably configured to have many variations in dynamic behavior for different conditions, such as feeding or escape.
[0172] Referring to FIG. 14, a "code blueprint" 134 is shown, such as may be generated using an environment such as that available under the trademark Unreal Engine (RTM). Such code blueprints represent relatively high-level functional programming of various elements, and may be utilized, for example, to control how the system switches between various view framing / porting configurations, as described above with reference to FIGS. 4, 6, 7, and 8A-8C. For example, the system may be configured not only to identify possible approximately planar locations for possible views and their associated frames / ports, but also to maximize the size of such views and frames / ports, and / or center them horizontally and / or vertically relative to a plane, etc. FIG. 15 illustrates aspects of an interface for laying out and texturing various elements, such as corals, to be presented to a user. In various embodiments, coloring and painting may be performed directly on the vertices of the object's mesh, and height map control may be utilized to provide texture and topology for the object, such that such configuration need not be performed with polygons.
[0173] 16, a coral colony 65 similar to those 64, 68, 74, 78, 82 described above is shown, with configurable rules to help naturalize the assembly of smaller coral elements, such that such assemblies may be utilized together similar to building blocks (e.g., in various configurations, table-driven settings may be utilized to control variables such as the number of coral elements that may extend from a given foundation rock element, the allowable vectorization of plants relative to the light source, etc.). Thus, the present system presentation may be integrated using a type of control panel that does not involve modification code for every tuning change.
[0174] With reference to FIGS. 17A-17C, with regard to lighting and shading, in various embodiments, lighting may be faked in a given scene (i.e., without mimicking physics) to bypass traditional development environment shading and shadowing, and shading may be accomplished, for example, by a no-lighting shadow path (i.e., "emission channel" in Unreal (RTM) terminology, or "no-lighting channel" in Unity (RTM), which in both cases generally means processing textures without calculating any lighting). Traditional overhead of the graphics pipeline may be bypassed to achieve better visual quality within a tight implementation budget and yield significant overall computational demand efficiencies. The system is configured to utilize no-lighting shadow path techniques that bypass traditional lighting engines, and other effects such as fog, optical, and / or water effects may be added to help perceive the presentation to the user as more natural. Various elements may be "instantiated" to allow fine-tuning of the overall presentation without having to provide computational resources for every individual element. Figure 17A illustrates a high fidelity model of a diver helmet 136, while Figures 17B and 17C illustrate a much more efficiently reproducible output of the diver helmet 136, still at a relatively high fidelity. Referring to Figure 18, one embodiment of a core unilluminated shader network configuration 138 is shown in functional "code blueprint" form for an environment such as Unreal Egine (RTM).
[0175] With reference to Figures 19 and 20, and as noted above with reference to Figures 2, 3, and 4, etc., the system may be configured to take advantage of the geometry of the room or environment surrounding the user. Content (such as vistas or corals) may be placed using randomized procedural configurations and / or to provide a content assembly that naturally fits into the room, is aesthetically pleasing to the user, and is at least slightly different each time the system is utilized for such use. As noted above, the system may be configured to identify flat surfaces, empty surfaces, and empty volumes that may be suitable for placement of various elements, either with assistance from the user, or automatically, for example, according to a pre-determined general theme, etc., that may be selected by the user.
[0176] The augmented reality viewer may include a surface extraction routine resident on the storage device and executable by the processor to identify surfaces among real-world objects. The surfaces may be two-dimensional surfaces of walls or ceilings.
[0177] The augmented reality viewer may include a view creation routine executable on the storage device to capture a space including real-world objects, represent the space as a real-world mesh, collect vertical and horizontal planes from the real-world mesh, filter the faces by height from the floor, dimension, orientation, and location relative to the real-world mesh, create a blueprint including a portal frame and all content within the view at a selected location, and cut holes in the occlusion material of the real-world mesh material so that a user can look through the portal into the view.
[0178] With reference to FIG. 21, the system may also be configured to identify locations within the mesh of a room that may be suitable anchors for an element such as a coral colony, and suitable anchors may be, for example, scored, and the highest scores may be recommended or automatically selected for the user, and after scoring and selection, an element such as a coral or coral colony may then be grown or "created" for the user to view. The score may be influenced, for example, by geometry as well as positioning and orientation relative to the user (e.g., the system may be configured to score a potential anchor point higher if a coral may be placed thereon in an orientation that is relatively perpendicular to the floor of the room surrounding the user, rather than, for example, at a 45 degree angle from the floor of the room surrounding the user).
[0179] The virtual object may thus be a coral colony. The augmented reality viewer may include a coral colony spawner executable on the storage device to determine a volume, perform a line trace at random points within the volume from a maximum height of the volume to a floor of the volume, determine if a valid location is identified by the line trace, and if a valid location is identified, in response to the identification, perform a box trace while trying different scales and rotations and generating a score for each placement, test if the random clusters will fit into the world mesh without overlapping, determine a handpicked placement with the highest score from among the scores, and create a coral colony in the placement with the highest score. The augmented reality viewer may thus include a vista placement routine executable on the storage device to place a vista, the volume being bounded by the vista.
[0180] 22A-24, one of the challenges with the various system configurations described herein is generating noteworthy and believable interactions between a user and augmented reality elements that may be overlaid on or within the real world in which the user is located. Preferably, the various elements, such as fish, that are animated and configured to interact with the user may be configured to have natural, non-repetitive behavior that makes sense to the user over the time domain (i.e., they do not swim too fast, do not switch from a "fleeing" state to a "discovered / interested" state too quickly or too frequently, etc.). Furthermore, the present systems, such as the one depicted in FIG. 1, generally have limited computing resources. With reference to FIGS. 23A-23B, in various embodiments, one technique for gaining computational efficiency is to write certain code elements in C++ rather than using functional code blueprints. With reference to FIG. 24, a three-dimensional navigation and pathfinding plug-in product, which may be utilized with an environment such as Unreal Egine (RTM), may be utilized to assist in navigating and developing movement paths for various elements such as fish, allowing the development team to focus more on higher level animation issues such as fish feeding behavior, exploration behavior, and interaction with the user using the user's hand motions, etc.
[0181] Referring to Figure 25, standard tools may be utilized to visualize 140 utilization of various computing threads versus time so that development teams may further optimize the system. Figure 26 illustrates various aspects of learning that may be applicable to certain development processes and teams.
[0182] One or more users may be able to share the virtual environment with one or more other users such that multiple users experience the same virtual environment features from their own unique perspectives through a multi-location "passable world" type configuration as described in the aforementioned incorporated applications. For example, if a user located in an office in New York has a virtual aquarium feature displayed around him or her in the office, and another user from San Francisco is virtually brought into the New York office and virtual world, the San Francisco user will preferably be able to see the virtual aquarium feature from the San Francisco user's virtual location / orientation within the New York room.
[0183] With reference to FIG. 27 and back to FIG. 11B , in various embodiments, an augmented reality aquarium experience may involve a creative team rethinking animations, techniques, and rigs to work with AI pathfinding that can change state and navigate a meshed space that can be occupied by one or more users. For example, an animation and / or rigging team may invest time for a standard fish 130 and develop a standard fish rig 140 and animation pipeline 142 with standardized animation and user interface ("UI") controls, automatic swimming functionality, automatic level of detail ("LOD") functionality, fish-eye "look at" tools, customizable antennae and fin rigs, hybrid spaces that trigger various behaviors, and / or vertex animation texture baking tools (i.e., for efficiently transferring details from one model to another). Such features may give designers more versatility and the ability to reuse animations and tune them to the desired behavior of the creature. In some configurations, it has been found useful to employ tools such as "Auto LOD" from Unreal Engine 4 (RTM) to help dynamically reduce bone and polygon count as the implementation budget is revised.
[0184] With reference to FIG. 28 and back to FIG. 11A, one challenge for developers relates to building and testing animation sets to work with artificial intelligence ("AI") pathfinding solutions. A fish element may have a set of "hybrid spaces" with specific sets of animations that can be triggered by an AI system based on various logic triggers and specific states, such as swimming speed, wandering, pursuing, fleeing, feeding, etc. The hybrid space functionality may be configured to let developers specify inputs, animations, and the way in which inputs are used to blend between animations. As shown in the developer panel 144 representation of FIG. 28, various movement states are shown on the left, while the center display has "audio animation notify" and "global animation notify" triggers for behaviors such as feeding, turning, etc.
[0185] Referring to FIG. 29, some useful solutions have been found for certain environment-based creature configurations that rely on rigs and hand-keyed animation, but also facilitate baking animation data into textures using a pipeline that leverages the Houdini (RTM) game tools, Maya (RTM), and Unreal Engine 4 (RTM) mentioned above. Such tools can be used to develop end results that provide the desired performance headroom, especially in scenarios where balancing central processing unit (CPU) and graphics processing unit (GPU) (including texture streaming) loads is desired, such as when using Vulkan 3.1 (RTM) mobile. FIG. 29 illustrates a displayed shipwreck scene 146 where schools of fish elements 76, 77 in the mid-ground and background are displayed using the baking techniques mentioned above. Due to the sheer amount of content a developer may want to create in a given experience, it may not be practical to have scenarios such as birds flocking in real time. For schools of virtual fish, for example, solutions have been arrived at to reduce baked texture sizes. For each member of the school of fish, its swimming cycle may be exported from Maya (RTM) to an FBX file, and each of these caches may then be brought into Houdini (RTM), where an individual vertex animation texture (or "VAT") may be generated that is then plugged into the Houdini soft body frame hybrid vertex shader tool for deformation. An FX artist may generate the simulation in Houdini and attach each individual particle to a joint that may be used to drive each vertex animation fish along it through the virtual water. To develop fish and creature swimming content, rigs and animation controls may be standardized across a school or all of the fish. Automated swimming functionality (such as procedural sine swimming functionality) may be developed. A traditional LOD rig system or automatic LOD functionality may be used. A fish eye attention tool may be developed to help drive the gaze of the fish.Additional special environment creatures (eels, crabs, octopuses, seahorses, turtles, rays, sharks, etc.) may be developed. Hybrid spaces and fixed position rotation offsets may be used in conjunction with AI to trigger behaviors such as speed or various states. For example, a sample animation rig may be shown in Maya by a person controlling it and / or a technical team may set the animations and hybrid spaces required to integrate with AI pathfinding. Vertex animation fish pipeline functionality may be developed to help provide versatility and capabilities given specific graphics and computing budget scenarios such as those associated with mobile platforms.
[0186] With reference to Figures 30A-30H, and with reference back to Figures 5A, 5B, 5D, 5E, and 16, various coral colony configurations 83, 152, 154, 156, 158, and their components 148, 150 are illustrated. In various embodiments, giving users the opportunity to experience a dynamically placed and procedurally driven undersea reef experience was a priority. Thus, our challenge was to build a variable-driven coral / rock creation and placement system using blueprints that integrate with the real world. In one embodiment, we opted for a "hybrid" approach that suited computing performance, where we loaded and placed pre-built rock formations and sand bases, then used our coral creation and placement system configurations to "create" corals and seaweed on top of them. In one embodiment, prior to doing so, the art team established a cohesive set of coral rock formations, such as those illustrated at 148, 150 in Figures 30C and 30D, that would serve as a foundation and premise for "kitbashing" different layouts.
[0187] A system for dynamically creating and placing corals was developed using blueprints. While the blueprints were initially considered more for creating early prototyping and gameplay proof of concepts, our technical art team gained significant functionality from them. Referring to FIG. 30H, various vertices 160 are illustrated as they are validated with respect to simulated potential coral growth. In various embodiments, for example, it may be desirable to have coral populations that behave randomly each time a user returns to the experience.
[0188] Referring to Figures 31A and 31B, images of an embodiment of a coral spawner object system 162 and a coral growth control table 164 are illustrated. The system embodiment may employ several salient features such as a data table approach for setting individual population and species maximum counts, spawning types, height-based rates, and other classification variables, a vertex crawling and ray casting algorithm for checking placement feasibility, growth, and caching of valid points to files, a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes for all corals, and a collision-based exclusion configuration to allow developers to simply place box colliders where they do not want certain species to grow. To help integrate and ground the coral colonies in the user's space, the system may include a set of smaller "support" rock and sand elements with seaweed that dynamically moves on them. The spawner manager (on the C++ core game side) may then be configured to place those support elements around the main coral colonies based on the available floor space that the system detects and the spatial constraints within each user's room. This also helps ensure unique layouts for every play space. In various embodiments, multiple core vista environments may each be pre-built, but interchangeable frames and dynamic AI and FX-driven creatures may be utilized to make these pre-built vistas feel completely unique. Each layout may be dynamic and dependent on meshing room size. For example, FIG. 30F illustrates a procedurally created coral colony 154 surrounded by smaller rock fragments and seaweed elements. The system may be configured to use a runtime coral static mesh loop that first calculates shadow passing using actor tags, then instantly generates instanced static meshes for all corals, reducing draw calls and overhead. Growth may be data table driven and may include vertex-based growth, raycast search, and caching of valid points, and height-based and collision-based inclusion / exclusion of species.In various embodiments, we build and employ reusable, procedurally creatable rock and reef elements that can be rotated and snapped in random configurations. We use subtle falloffs on sand and add randomly placed support rocks with seaweed around coral colonies to ground and consolidate content, using Maya (RTM), Zbrush (RTM), Substance Designer (RTM), and Painter (RTM) tools to generate unique tileable procedural handcrafted assets.
[0189] The augmented reality viewer may include a coral spawner system on the storage device and executable with the processor to store at least a first coral element of a first type on the storage device and to construct a coral colony from a plurality of coral elements including the first coral element.
[0190] The coral spawner system may be executable using a processor to build a coral colony from a plurality of first coral elements.
[0191] The coral spawner system may be executable with the processor to store at least a second coral element of a second type on the storage device, wherein the plurality of coral elements includes the second coral element.
[0192] The coral spawner system may be executable with a processor to determine a coral colony setting, and the processor builds the coral colony according to the setting. The setting may be the available space detected, and the number of coral elements is selected based on the available space. The coral spawner system may be executable with a processor to simulate ambient light, and the setting is ambient light. The number of coral elements may be selected based on the ambient light. The orientation of the coral elements may be selected based on the ambient light. The coral spawner system may include a data table on a storage device with a plurality of coral colony settings, and the coral spawner system builds the coral colony according to the plurality of coral colony settings. The coral colony settings may include at least one of population, maximum count of a species, creation type, and height-based percentage. The coral spawner system may include vertex crawling and ray casting algorithms for checking placement feasibility, growth, and caching of valid points to a file. The coral spawner system may include a runtime coral static mesh loop that first calculates shadow passing and then generates instantiated static meshes of all coral colonies. The coral spawner system may include a collision based exclusion configuration for placing box colliders where certain species should not grow.
[0193] FIG. 32 illustrates instructions resident on a storage device as described above, including a virtual object data set 200, a display module 202, a data stream generator 204, a light generator 206, a position adjustment module 208, a wandering subroutine 210, a wave movement routine 212, a reading agent 214, a transmission agent 216, an artificial intelligence system 218, a gaze direction movement routine 220, a personal assistant module 222, a movement module 224, a surface extraction routine 226, a depth generation module 228, a view placement routine 230, a vertex animation routine 232, and a coral colony spawner 234.
[0194] Various exemplary detailed embodiments of the present invention are described herein. Reference is made to these examples in a non-limiting sense. They are provided to illustrate the more broadly applicable aspects of the present invention. Various modifications may be made to the described invention, and equivalents may be substituted without departing from the true spirit and scope of the present invention. In addition, many modifications may be made to adapt a particular situation, material, composition, process, process act or step to the objective, spirit, or scope of the present invention. Furthermore, as will be understood by those skilled in the art, each of the individual variations described and illustrated herein has discrete components and features that can be easily separated from or combined with the features of any of the other several embodiments without departing from the scope or spirit of the present invention. All such modifications are intended to be within the scope of the claims associated with this disclosure.
[0195] The present invention includes methods that may be implemented using the device. The method may include the act of providing such a suitable device. Such provision may be performed by an end user. In other words, the act of "providing" merely requires the end user to obtain, access, access, locate, configure, activate, power on, or otherwise act upon to provide the required device in the method. The methods recited herein may be carried out in any order of recited events, and in the recited order of events, that is logically possible.
[0196] Exemplary aspects of the invention have been described above, along with details regarding material selection and manufacturing. As for other details of the invention, these will be understood in conjunction with the patents and publications referenced above, and are generally known or may be understood by those skilled in the art. The same may be true with respect to method-based aspects of the invention in terms of additional acts as generally or logically adopted.
[0197] In addition, while the present invention has been described with reference to several embodiments, optionally incorporating various features, the present invention is not limited to those described or shown as being contemplated with respect to each variation of the present invention. Various modifications may be made to the described invention, and equivalents (whether recited herein or not included for a degree of brevity) may be substituted without departing from the true spirit and scope of the present invention. In addition, when a range of values is provided, it is to be understood that every intervening value between the upper and lower limits of that range and any other stated or intervening value within that stated range is encompassed within the present invention.
[0198] It is also contemplated that any optional features of the described inventive variations may be described and claimed independently or in combination with any one or more of the features described herein. Reference to a singular item includes the possibility that there are multiple identical items. More specifically, as used in this specification and the claims associated herewith, the singular forms "a," "an," "said," and "the" include multiple referents unless specifically stated otherwise. In other words, the use of the article allows for "at least one" of the subject items in the above description and the claims associated herewith. It is further noted that such claims may be drafted to exclude any optional element. Thus, this statement is intended to serve as a precedent basis for the use of exclusive terminology such as "only," "only," and the like, or the use of "negative" limitations in connection with the recitation of claim elements.
[0199] Without using such exclusive language, the term "comprising" in a claim associated with this disclosure is intended to permit the inclusion of any additional elements, regardless of whether a given number of elements are recited in such a claim or whether the addition of features could be considered to change the nature of the elements recited in such a claim. Except as specifically defined herein, all technical and scientific terms used herein are to be given the broadest possible commonly understood meaning while maintaining the validity of the claims.
[0200] The scope of the present invention is not intended to be limited to the examples provided and / or the present specification, but rather is limited only by the scope of the terms of the claims associated with this disclosure.
[0201] While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative and not limiting of the invention, and that the invention is not limited to the specific construction and arrangements shown and described, as modifications may occur to those skilled in the art.
Claims
1. 1. An augmented reality viewer, comprising: at least one sensor positioned to sense a location of at least one of a plurality of real-world objects; A storage device; a set of data on the storage device including a virtual object; a processor connected to the storage device; a surface extraction routine, the surface extraction routine being on the storage device and executable by the processor to identify surfaces within the real world object; and a display module on the storage device and executable by the processor to determine a desired display of the virtual object relative to the location of at least one of the real-world objects; and a data stream generator on the storage device and executable by the processor to generate a data stream based on the data and the desired display; a light generator, the light generator coupled to the processor to receive the data stream and generate light based on the data stream; a display device positioned to receive the generated light and to display the light to a user, the light being visible to the user and generating a rendering of the virtual object rendered according to the desired view; and a hover subroutine, the hover subroutine on the storage device and executable by the processor to move the virtual object relative to the real-world object; and a depth generation module on the storage device and executable by the processor to display the virtual object to the user in three dimensional space according to the desired display, with the surface between the user and the virtual object, on a side of the surface facing the user; Equipped with the depth generation module is executable by the processor to display to the user portholes in the surface through which the virtual object is visible to the user; An augmented reality viewer in which the processor provides a plurality of porthole configurations for user selection and suggests one of the plurality of porthole configurations based at least on a size and geometry of an actual environmental feature to which the porthole is to be virtually coupled.
2. The augmented reality viewer of claim 1 , wherein the surface is a two-dimensional surface of a wall or a ceiling.
3. The augmented reality viewer of claim 1 , wherein the virtual object is a three-dimensional virtual object.
4. a view installation routine, the view installation routine being on the storage device; Capturing a space containing the real-world object; representing the space as a real world mesh; collecting vertical and horizontal planes from said real world mesh; filtering the faces by height above floor, size, orientation, and location relative to the real world mesh; Creating a blueprint including a portal frame and all content within a view at a selected location; cutting a hole in the occlusion material of the real-world mesh so that the user may peer through the portal into the vista. a view setting routine executable by the processor to The augmented reality viewer of claim 1 further comprising:
5. The augmented reality viewer of claim 1 , wherein the display device displays the light emitted to the user while the user is viewing at least one of the real-world objects.
6. The augmented reality viewer of claim 5 , wherein the display device is a see-through display device that allows light from the at least one real-world object to reach the user's eye.
7. a head mounted structure shaped to be worn on the head of the user, the display device being mounted on the head mounted structure and the at least one sensor being of a type suitable for sensing movement of the display device due to movement of the user's head; a position adjustment module, the position adjustment module being executable by the processor to adjust a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within a field of view of the user; The augmented reality viewer of claim 1 further comprising:
8. 1. A method for augmented reality visualization, comprising: sensing a location of at least one of a plurality of real-world objects with at least one sensor; storing data including a virtual object on a storage device; using a processor to identify surfaces within the real world object; determining, with the processor, a desired display of the virtual object relative to the location of at least one of the real-world objects; generating, by the processor, a data stream based on the data and the desired display; generating light based on the data stream with a light generator; displaying the emitted light to a user with a display device, the light being visible to the user and generating a rendering of the virtual object rendered in accordance with the desired display; moving the virtual object relative to the real-world object with the processor; Including, the processor displays the virtual object to the user in three-dimensional space in accordance with the desired display, with the surface between the user and the virtual object, on a side of the surface facing the user; the processor displays to the user a porthole in the surface through which the virtual object is visible to the user; The method of claim 1, wherein the processor provides a plurality of porthole configurations for user selection and suggests one of the plurality of porthole configurations based at least on a size and geometry of an actual environmental feature to which the porthole is to be virtually coupled.
9. The method of claim 8 , wherein the surface is a two-dimensional surface of a wall or a ceiling.
10. The method of claim 8 , wherein the virtual object is a three-dimensional virtual object.
11. capturing, with the processor, a space containing the real-world object; representing, with the processor, the space as a real world mesh; collecting vertical and horizontal planes from the real world mesh with the processor; filtering, with said processor, the faces by height above floor, size, orientation, and location relative to said real world mesh; creating, with said processor, a blueprint including a portal frame and all content within a view at a selected location; using the processor to cut holes in occlusion material of the real-world mesh so that the user may peer through the portal into the vista. The method of claim 8 further comprising:
12. The method of claim 8 , wherein the display device displays the emitted light to the user while the user is viewing at least one of the real-world objects.
13. The method of claim 12 , wherein the display device is a see-through display device that allows light from the at least one real-world object to reach an eye of the user.
14. sensing, with the at least one sensor, movement of the display device due to movement of the user's head; adjusting a location of the virtual object such that the virtual object remains stationary relative to the at least one real-world object within the user's field of view; The method of claim 8 further comprising:
Citation Information
Patent Citations
Image processing program, image processing device, image processing system, and image processing method
JP2012088777A
Program and image generation system
JP2018173739A
Mixed Reality Visualization and Methods
JP2018503165A