Computer games are well known, wherein one or more users interact with a computer to play a game, typically involving use of a control device, such as a mouse, joystick or keypad, to move objects that appear on a display screen to accomplish objectives of the game. There are many types of games, including first-person games shooting, strategy games, war games, fighting games, puzzles, and many others. Computer games are played on or use many devices, including televisions, consoles. PDAs, handheld game devices, personal and laptop computers, and others. Some games are run on standalone computers, while others employ networks, such as the Internet and World Wide Web.
The marketplace for computer games is very competitive, and improvements to games are actively sought. Past improvements include enhancements to the graphical or sound quality of games, improvements to systems that run games, such as processing speeds, and introduction of innovative game types. A need exists for further improvements of the computer game experience, including enhancements that take advantage of characteristics of the environment of the game user.
The present disclosure sets forth improvements to computer games and other computer applications through the coordinated control of lighting systems that illuminate the environment of the user in coordination with the play of a game or the use of an application. In embodiments, the lighting systems disclosed herein change the illumination of the user's real world environment in coordination with events, attributes and objects of a computer game.
In an embodiment there is disclosed a system for imparting information using a lighting system. The system includes a computing device including a video display; a lighting system in communication with the computing device for producing illumination; and a software application for dynamically controlling the illumination in response to or in coordination with information presented on the video display so as to impart information to a user. The software application can include a game and/or objects and may allow for relation of a portion of the lighting system to an object. The information provided by the illumination system can relate to an attribute of an object. The software application can be controlled by a second software application which can also include a game.
In an embodiment, the lighting system can include an LED and/or can include a screen upon which the illumination is projected. This screen can be a cabana. The computing system may also include a video game console.
In an embodiment, the information provided by the lighting system can be different from the information provided on the video display, either by being additive to the information provided on the video display, or duplicative of the information provided on the video display but in a different form. In an embodiment, the video display could provide no information.
In an embodiment there is disclosed a system for controlling a lighting system comprising: lighting system including a lighting fixture, the lighting system in communication with a computing device; and a software application including a software object operating in conjunction with the computing device; wherein, the software application attaches the control of the lighting fixture to the software object. The software application may include a game and the software object may comprise an object in the game. The system could also include a library of effects for use with the lighting system.
In an embodiment there is disclosed a screen for use with a lighting system comprising; a frame designed to be placed in proximity to the user of a computing system and; a material mounted on the frame; wherein the material is arranged in a manner so as to be able to reflect illumination produced by a lighting system to the user of the computing system. This screen may be shaped to form a cabana and/or a portion of a sphere and/or may be formed so as to be repeatedly assembled and disassembled. Further, the computing system may include a video display and the frame may be designed to be placed to at least partially enclose the video display, be placed behind the video display relative to the user, and/or at least partially encloses the computing system and the user.
In an embodiment the screen could further include a mounting bar for the attachment of lighting fixtures to the screen. The mounting bar may be arranged so that the lighting fixtures have a fixed point of attachment to the mounting bar. The mounting bar may alternatively or additively be arranged so that fixtures have a fixed point of projection onto the screen when attached to the mounting bar. Those lighting fixtures may comprise at least a portion of the lighting system.
In an embodiment there is disclosed a software application for use on a computing device comprising: computer code for generating a computer game on a computing device; and computer code for controlling a lighting system in communication with the computing device.
In another embodiment there is disclosed a method for visualizing the relative location of virtual objects within a virtual environment comprising: having a computing device; generating a virtual environment on the computing device, the virtual environment containing a plurality of virtual objects; associating with a virtual object, the illumination from a lighting fixture; and visualizing the relative location of the virtual object by the positioning of the illumination. The visualizing may include the position of the illumination corresponding to the position of the lighting fixture or the position of the illumination corresponding to the position on a surface which is illuminated by the illumination. The position on the surface may perform at least one of the following: reflection of the illumination, refraction of the illumination, absorption and reemission of the illumination.
In another embodiment there is disclosed a method for enhancing the play of a computer game comprising: providing to a user a lighting system; providing to the user software for controlling the lighting system, the software being capable of interfacing with a computer game; and allowing the user to use the software to control the lighting system in a manner that enhances the play of the computer game.
In another embodiment there is disclosed a lighting system for use with a software application comprising: at least one lighting fixture; and a computer application compatible with the software application, the computer application allowing for the software application to provide information to a user through illumination generated by the lighting fixture. The computer application may include computer software and/or computer hardware. The lighting fixture may include an LED and/or may be one of a plurality of networked lighting fixtures. The lighting system may further include a mounting apparatus for holding the lighting fixture and/or a surface for the reflection of illumination.
In a still further embodiment there is disclosed a method for allowing a software developer to include control of a lighting system within a software application comprising: providing a lighting system substantially similar to one provided to a user to a software developer; and providing an interface for allowing the lighting system to communicate with a computing device to a software developer; wherein the software developer can use the interface to include control for the lighting system within a software application. There can also be provided a library of prebuilt effects that can be used to generate a particular lighting effect on the lighting system to the software developer.
The foregoing and other objects and advantages of the invention will be appreciated more fully from the following further description thereof, with reference to the accompanying drawings, wherein:
To provide an overall understanding of the invention, certain illustrative embodiments will now be described, including various applications for programmable LED's and LED lighting systems. However, it will be understood by those of ordinary skill in the art that the methods and systems described herein may be suitably adapted to other environments where programmable lighting may be desired, and embodiments described herein may be suitable to non-LED based lighting. The descriptions below focus primarily on using LED lighting systems for enhancement of computer games as that term would be understood by one of skill in the art. In particular, the below embodiments focus primarily on a “first person” type of interactive game involving space battles where the software controlling the game is present on a user's computer, for example installed on the user's hard drive or on a CD ROM or other storage media controlled by the user. One example of such a computer game is produced by Mad Dog software under the title “Star Trek: Armada.” This type of computer game represents only one type of computer game with which the below described systems and methods can be used. One of skill in the art would readily see how to apply the below-described embodiments to other types of computer games. Further these games need not be present on the user's computer but could be run off of a network such as, but not limited to, the World Wide Web, the Internet, or any extranet or intranet network, or could be console-type or video-parlor-type computer or video games. In addition, one of skill in the art would understand that the embodiments described below could be used in conjunction with any type of computer software that need not be a game, but of any type of computer application. Further, the user need not be operating a computer, but could be operating any type of computing device, capable of running a software application that is providing that user with information.
In computer games, there is typically a display screen (which could be a personal computer screen, television screen, laptop screen, handheld, gameboy screen, computer monitor, flat screen display, LCD display, PDA screen, or other display) that represents a virtual world of some type. There is also typically a user in a real world environment that surrounds the display screen. The present invention relates to computer games and their surrounding environment.
In an embodiment of the invention described herein, the environment of a user of a computer game includes one or more light systems. As used herein “light systems” should be understood where context is appropriate to comprise all light systems, including LED systems, as well as incandescent sources, including filament lamps, pyro-luminescent sources, such as flames, candle-luminescent sources, such as gas mantles and carbon arc radiation sources, as well as photo-luminescent sources, including gaseous discharges, fluorescent sources, phosphorescence sources, lasers, electro-luminescent sources, such as electro-luminescent lamps, light emitting diodes, and cathode luminescent sources using electronic satiation, as well as miscellaneous luminescent sources including galvano-luminescent sources, crystallo-luminescent sources, kine-luminescent sources, thermo-luminescent sources, triboluminescent sources, sonoluminescent sources, and radioluminescent sources. Light systems may also include luminescent polymers capable of producing primary colors.
As used herein, the term “LED” means any system that is capable of receiving an electrical signal and producing a color of light in response to the signal. Thus, the term “LED” should be understood to include light emitting diodes of all types, light emitting polymers, semiconductor dies that produce light in response to current, organic LEDs, electro-luminescent strips, and other such systems. In an embodiment, an “LED” may refer to a single light emitting diode having multiple semiconductor dies that are individually controlled. It should also be understood that the term “LED” does not restrict the package type of the LED. The term “LED” includes packaged LEDs, non-packaged LEDs, surface mount LEDs, chip on board LEDs and LEDs of all other configurations. The term “LED” also includes LEDs packaged or associated with phosphor wherein the phosphor may convert energy from the LED to a different wavelength. An LED system is one type of illumination source.
The term “illuminate” should be understood to refer to the production of a frequency of radiation by an illumination source. The term “color” should be understood to refer to any frequency of radiation within a spectrum; that is, a “color,” as used herein, should be understood to encompass a frequency or combination of frequencies not only of the visible spectrum, including white light, but also frequencies in the infrared and ultraviolet areas of the spectrum, and in other areas of the electromagnetic spectrum.
The controller 3 may be a pulse width modulator, pulse amplitude modulator, pulse displacement modulator, resistor ladder, current source, voltage source, voltage ladder, switch, transistor, voltage controller, or other controller. The controller controls the current, voltage or power through the LED 4. The controller also has a signal input wherein the controller is responsive to a signal received by the signal input. The signal input is associated with the processor such that the processor communicates signals to the signal input and the controller regulates the current, voltage and or power through the LED. In an embodiment, several LEDs with different spectral output may be used. Each of these colors may be driven through separate controllers. The processor and controller may be incorporated into one device. This device may power capabilities to drive several LEDs in a string or it may only be able to support one or a few LEDs directly. The processor and controller may also be separate devices. By controlling the LEDs independently, color mixing can be achieved for the creation of lighting effects. In an embodiment, memory 6 may also be provided. The memory 6 is capable of storing algorithms, tables, or values associated with the control signals. The memory 6 may store programs for controlling the LEDs 4. The memory may be memory, read-only memory, programmable memory, programmable read-only memory, electronically erasable programmable read-only memory, random access memory, dynamic random access memory, double data rate random access memory, Rambus direct random access memory, flash memory, or any other volatile or non-volatile memory for storing program instructions, program data, address information, and program output or other intermediate or final results. A program, for example, may store control signals to operate several different colored LEDs 4. A user interface 1 may also be associated with the processor 2. The user interface may be used to select a program from memory, modify a program from memory, modify a program parameter from memory, select an external signal or provide other user interface solutions. Several methods of color mixing and pulse width modulation control are disclosed in U.S. Pat. No. 6,016,038 “Multicolored LED Lighting Method and Apparatus,” the entire disclosure of which is incorporated by reference herein. The processor 2 can also be addressable to receive programming signals addressed to it.
There have been significant advances in the control of LEDs. U.S. Patents in the field of LED control include U.S. Pat. Nos. 6,016,038, 6,150,774, and 6,166,496. U.S. patent application Ser. No. 09/716,819 for “Systems and Methods for Generating and Modulating Illumination Conditions” also describes, among other things, systems and controls. The entire disclosure of all these documents is herein incorporated by reference.
In embodiments of the invention, the lighting system may be used to illuminate a real world environment. On such environment is shown in
In the depicted embodiment the surface (107) comprises a screen designed to reflect light. Alternatively the surface could be, but is not limited to, a wall or other surface upon which light could be reflected. In another embodiment, the surface could be designed to absorb and retransmit light, possibly at a different frequency. For instance the surface (107) could be a screen coated with a phosphor where illumination of a particular color could be projected on the screen and the screen could convert the color of the illumination and provide a different color of illumination to the user (101). For instance the projected illumination could primarily be in the blue, violet or ultraviolet range while the transmitted light is more of a white.
In an embodiment, the lighting system is placed in a real world environment (109) that includes the computing device (103) and the user (101). The real world environment (109) could be a room that includes a computer. The lighting system could be arranged, for example, to light the walls, ceiling, floor or other sections or objects in a room instead of, or in addition to lighting the surface (107). The lighting system may include several addressable lighting systems with individual addresses. With this system, much like the surface (107), the illumination can be projected so as to be visible to the user (101) either directly or indirectly. That is a lighting fixture (105) could shine so that the light is projected to the user without reflection, or could be reflected, refracted, absorbed and reemitted, or in any other manner indirectly presented to the user (101).
Referring to
The surface (107) may also include one or more colors, figures, lines, designs, figures, pictures, photographs, textures, shapes or other visual or graphical elements that can be illuminated by the lighting system. The elements on the surface can be created by textures, materials, coatings, painting, dyes, pigments, coverings, fabrics, or other methods or mechanisms for rendering graphical or visual effects. In embodiments, changing in the illumination from the lighting system may create visual effects. For example, a picture on the surface (107) may fade or disappear, or become more apparent or reappear, based on the color of the light from the lighting system that is rendered on the surface (107). Thus, effects can be created on the surface (107) not only by shining light on a plain surface, but also through the interaction of light with the visual or graphical elements on the surface.
In use, the illumination system can be used to provide information to the user (101) in response to or in coordination with the information being provided to the user (101) by the video display (104). One example of how this can be provided is in conjunction with the user playing a computer game on the computing device (103). The light system may be used to create one or more light effects in response to action on the video display (104). The lighting effects, or illumination effects, can produce a vast variety of effects including color-changing effects; stroboscopic effects; flashing effects; coordinated lighting effects; lighting effects coordinated with other media such as video or audio; color wash where the color changes in hue, saturation or intensity over a period of time; creating an ambient color; color fading; effects that simulate movement such as a color chasing rainbow, a flare streaking across a room, a sun rising, a plume from an explosion, other moving effects; and many other effects. The effects that can be generated are nearly limitless. Light and color continually surround the user, and controlling or changing the illumination or color in a space can change emotions, create atmosphere, provide enhancement of a material or object, or create other pleasing and or useful effects.
It is important to note that the lighting system producing illumination in response to the information provided on the screen allows the lighting system to describe or indicate activity that is not represented on the screen in any way. The best example of this is by thinking of the user (101) using the video display (104) as a viewport into a virtual environment created by the computing device (103). In the virtual environment, something could be behind the user, however, the video display may only show a view in front of the user. The user could “turn around” and see the object behind them by rotating the viewport. Objects which are behind the user in this virtual environment could still be objects which a user in a real environment would be able to see because their vision is not limited by a viewport into the real environment. The view through the viewport, however defines a particular positioning within the virtual world (a placement and a facing). Therefore, the lighting system could show or indicate information about what is behind the user. This information is still produced in coordination with what is produced on the video display because the particular video display defines the user's location in the virtual world. The lighting system therefore provides information in coordination with or in response to the video display that is not actually pictured on the video display. In particular, it provides information that there is something not currently in view of the viewport of the visual display, but present in the virtual world.
In one embodiment, the lighting system may be used to extend the area of the user's (101) vision beyond the edges of the video display. Referring to
The illumination can be used to extend beyond the boundaries of the video display or the user's actual vision. For instance, in the game world the user's starship may be being attacked from behind. The illumination system could pass on this information to the user by flashing lights behind the user with a red color indicating to the user that they are being attacked from the rear. The user sees the illumination as it passes over the user and reflects off of the surface or other objects surrounding the user. In this case, while there may be no indication of the rear attack on the video display, the lighting system provides the information to the user.
The example of a rear attack shows that a surface (107) may be replaced or augmented by light in the entire user's environment, or by other surfaces. The entire room or environment in which the user is playing could be used to extend the effective viewing space of a computer monitor. For example, a flash of light representing an explosion could be generated behind a user to create the feeling that the explosion actually occurred behind the user. This could also be coordinated with sound such that the sound and light appear to be coming from the same area of the room. Such activity can allow for a more in-depth game playing environment. As discussed above the user in the game may be supposed to have a “first person” view into the game world. By surrounding the user with illumination, the user may be able to have real world space provide a simulation of that world outside the display on the video display. Further a moving object could appear to leave the video display and continue moving. For instance, the light from an explosion could begin on the video display, and appear to race toward and even through the user.
As discussed above, the lighting system may make use of a surface or screen to provide a location of the user's viewing of the projected illumination. A screen may be useful because it can provide a set real world environment designed to allow easy control over the illumination outside the video display. In embodiments of this invention, there is a screen unit that is associated with the computer and that is used to reflect color output from the light system. In an embodiment, the screen unit is an enclosure such as a cabana that is used to surround the display screen of a computer, wherein the cabana reflects back color from color lights. One embodiment of such a cabana is shown in
There are many ways that the lighting fixtures can be arranged and lighting systems can be generated to illuminate a surface or shine directly on the user.
The examples discussed above primarily relate to systems where a real world light system in the user's environment can generate light output that reflects, indicates, or is associated with objects or events in the virtual environment of a computer game. Conversely, the virtual environment can reflect events in the real world environment, such as when the lights are coupled with sensors, receivers, or other inputs for receiving data. For instance, a sensor could detect that the light from a particular fixture is being blocked, indicating the user has stood up and is taking a break from the game and the fixtures should be powered down to save energy, and the user's game should be paused. A wide range of detected conditions could be used to provide input or feedback to the game and should be understood to be encompassed herein, for example detection of the presence of absence of the user in room or in proximity to the display screen, biometric characteristics of the user, such as heart rate, blood pressure, body temperature or the like, room lighting, temperature, and sound levels, and many others. In embodiments the detected conditions can be used to influence the game. For example, if a user's pulse reached a certain level, the game could alter play to provide a less (or more) stressful set of events.
In embodiments, the light system may be associated with code for the computer game, so that the computer game code is modified or created to control the light system. For example, object-oriented programming techniques can be used to attach attributes to objects in the computer game, and the attributes can be used to govern behavior of the real world light system. Object oriented techniques are known in the field, and can be found in texts such as “Introduction to Object-Oriented Programming” by Timothy Budd, the entire disclosure of which is herein incorporated by reference. It should be understood that other programming techniques may also be used to direct lighting systems to illuminate in coordination with games, object oriented programming being one of a variety of programming techniques that would be understood by one of ordinary skill in the art to facilitate the methods and systems described herein.
In an embodiment, a developer can attach the light system inputs to objects in the game. For example, the developer may have an abstraction of a light that is added to the code construction, or object, of a game object. An object may consist of various attributes, such as position, velocity, color, intensity, or other values. A developer can add light as an instance in the object in the code of a game. For example, the game object could be a ship, with attributes, such as position, size, velocity, etc. A light source can be added as an instance of the object of the game, and the light source can have attributes, such as intensity, color, and various effects. Thus, when events occur in the game that call on the object of the ship, a thread running through the program can draw code to serve as an input to the processor of the light system. The light can accurately represent geometry, placement, spatial location, represent a value of the attribute or trait, or provide indication of other elements or objects.
Referring to
Using such object-oriented light input to the light system from code for a computer game, various lighting effects can be associated in the real world with the virtual world objects of a computer game. For example, in a space battle game, a ship's light source can be attached with an effect, such as sound, flashing, motion, vibration and other temporal effects. Further, the light system could include other effects devices including sound producing devices, motion producing devices, fog machines, rain machines or other devices which could also produce indications related to that object.
Referring to
A system for providing the code for coordinated illumination is depicted in
Each real light may have attributes that are stored in a configuration file. An example of a structure for a configuration file 1100 is depicted in
To simplify the configuration file, various techniques can be used. In embodiments, hemispherical cameras, sequenced in turn, can be used as a baseline with scaling factors to triangulate the lights and automatically generate a configuration file without ever having to measure where the lights are. Referring to the flow diagram 1200 of
Further details as to the implementation of the code can be found in the Directlight API document attached hereto as Appendix A. Directlight API is a prograrnmer's interface that allows a programmer to incorporate lighting effects into a program. Directlight API is attached in Appendix A and the disclosure incorporated by reference herein. Object oriented programming is just one example of a programming technique used to incorporate lighting effects. Lighting effects could be incorporated into any programming language or method of programming. In object oriented programming, the programmer is often simulating a 3D space in the screens. The 3D space continues throughout the room the gamer is in and beyond to virtual infinity. In this 3D space, the programmer may place an object, such as a starship, as well as a virtual light, such as a nebula, sun, star, other star ship, photon beam, weapon, explosion plume or other light generating object.
In the above examples, lights were used to indicate the position of objects which produce the expected light or have light attached to them. There are many other ways in which light can be used. The lights in the light system can be used for a variety of purposes, such as to indicate events in the game, to indicate levels or attributes of game objects, such as characters, ships, weapons, shields, health, playing pieces, environments, rooms, or other objects. For instance the lights could turn to a particular color (for instance green) representing the shield strength of a starship. As the shields were slowly knocked down by enemy fire, the lights could change color or slowly fade out indicating the shield strength is fading. The lights can be used for aesthetic purposes, such as to connote a mood for an object or an environment in the game. For instance, the lights could change color to indicate the passage of time in the game world, or could produce lighting effects to simulate environment effects. For instance the lights could have an appropriate flicker to indicate that it is raining in the game world. A wide range of effects can be used, each associated with a particular object or event in the game. The lighting system could provide further indications such as by triggering a real world fog machine, when the virtual environment is supposed to be foggy.
In embodiments, there may be an be an optional override mechanism that takes over one or more lights and direct them to do something regardless of what the virtual light source is intended to do. This may be useful when the program requires all of the lights in the system to change to a particular color. For example, the game may be played out in a space environment where the starship is lighted blue from a nearby nebula, when suddenly the ship is attacked by another ship. The program can instantly change all of the lights in the system to flashing red to indicate a red alert. The pulsation of the lights may be coordinated with the sound of an alarm or other sensations to further immerse the user.
In embodiments, an object, such as a ship's light source, can be associated with lights outside the game or any purposeful lighting setup, such as room lights. Any real world lighting fixture could be used as part of a lighting system as discussed herein Optionally, direct access to outside lights can override the light source in the game. For example, the video display can provide user interface information, such as red alerts, strength of a unit or other attributes of game objects through the lights. In effect the video display could be disabled and only lights could be used. Such an embodiment could enable a computer game to be created which uses the lights as the sole source of information, or alternatively, the video display device could be disabled to indicate a particular situation has occurred. Returning to the starship example, a situation could occur where the starship has been “blinded” as part of the game actions. This may result in the forward view being unavailable to the user. However, the user can still navigate the starship using the lighting system. This ability can add a depth of play that has previously been unavailable to a computer game because the screen video display has previously been the only that provides visual feedback.
It is also possible to have light system lights that are not attached to objects in the game, such as to indicate another environmental condition, such as the end of the work day, sunset, sunrise, or some other indicator that is useful to a player immersed in the game. The may also provide mood or aesthetics such as projecting the presence of a person, creature object, or other thing such as by an aura or their traits of good and evil. These traits could be associated with colors and intensities. Approaching a dangerous object could also have the lights switch to a warning mode (such as flashing red) to warn the user of the danger.
In yet another embodiment, the lights could act as a detriment to game play to show various conditions. For instance, in certain computer games the user is supposed to be hampered because they have carried out a particular action in the game. For instance the sound may be cut off because the user was to close to a virtual explosion and they were “deafened” by it. Such feedback is common, often with the user's video display acquiring random noise or color to disorient the user. One example of how lights could be used if a player was too close to an explosion, the lights could provide for blinking “spots” to distract the user and degrade their game play. Alternatively, if the game universe indicated the user was supposed to be drunk, disoriented, or otherwise distracted, the lights could flash or change color is disorienting patterns to actually distract the user from their game play.
In the embodiments above, a system is primarily discussed where the computer code is designed to interact with a three-dimensional virtual world of which the user is part. The code works well to translate from the three dimensional objects into the real three-dimensional world. To hook up the lights to a two-dimensional world, additional programming may be required and additional conditions may need to be put into effect. In a two-dimensional world, the code is not necessarily designed to place the real world user at a reference point, so the code may need to adapt to place the real world user in the environment in the same position as the virtual “user” (called a character) in the game. Alternatively, it may be undesirable to control the lighting systems illumination to indicate what the user's character is seeing in the virtual world. Instead, the lighting system may extend the world the user sees. One example of a 2-D game is “Diablo” produced by Blizzard software. In this game the user looks down on a map which contains a representation of the character the user is controlling. As opposed to the first person view discussed above, in this game the user has a third person view looking down on the character that is supposed to be them. The screen then provides a perspective layout of a game world of which the character is a part. If the illumination system provides the view as the character would see it, the user may be confused (for instance a fire could be burning at the lower right corner of the screen but be represented by a lighting fixture behind and to the left of the user, based on the facing of the character, the character could then turn in place resulting in minimal change of the information on screen, but a dramatic shift in the illumination produced by the lighting system. It may therefore be desirable to extend any perspective or view of a 2-D game in a manner so that the lighting system illuminates in a manner to conform with the view on the video display. Following with the above example the lights may track to follow the fire off screen as the character moves away from the fire. This could occur by defining a “plane of the game” representing the game world as if the user was not present at all and only the character existed. Therefore as the character in the game moved up and left from the fire, the fire appears to move, via the lighting system, down and to the right.
In one embodiment of the invention, the lighting system can be replaced or augmented by lights already present in the real world environment. For instance, one can create a game that involves the use of the lights in the house. One can use the game itself as a user interface for the lights in the house. A good example might be a horror game where when the lights go out in the game environment, they also go out in the real world room. Such an environment could be highly engaging to a user who is placed even more within the virtual world in which they are playing by having that world truly interact with the real world where they are.
The real lights in the house could be made game objects for the game itself, or particular light arrangements could be created for the purposes of playing particular games. Referring to
It would be easily understood by one of skill in the art that this multi-party experience could be extended to multi-party competitive games such as those commonly played across networks. It could be the case where a user is actually trying to affect the real world environment in which another user is playing. For instance, in the game a first user could be trying to disable an opponent's ship by knocking out its ability to perceive the world around it. For instance it could knock out the ship's forward or rear views. In the real world a second player could actually have various views knocked out (lights being disabled) as the first player accomplishes his goal. In an even more realistic example, the first user could be trying to turn the lights out on the second user. The first person may also directly affect the other person's room lights by, for example, turning the lights off or changing their color, or the first person may indirectly change the lighting conditions in the other persons room by, for example, getting close to the other persons virtual room and tripping a sensor. The first person may also be carrying an object that generates light or reflects light. This object may trigger the lighting in the other person's room to indicate or warn the other person of the first persons presence.
An embodiment may also be an indicator light. A problem with gaming systems and other computer systems in general is the lack of space on a video display. There is only a limited number or amount of dials, indicators, or other status checks that can be placed while still providing a user with a reasonable play environment. A gaming program, for example, may generate an indicator on the video display to indicate a parameter such as the health of the ship, the fuel remaining, the strength of the shields or other parameters. This information is important to the user; however, the indicator takes up valuable video screen, leaving the actual game play area a diminished space and possibly cutting off important user views. An embodiment of the invention may be an indicator light or set of lights that sits on top of the computer screen, for example.
The indicators could perform a wide variety of functions including turning on and off, changing color, changing intensity and or other functions to replace or additively improve upon the output from the indicators. For instance, a user's health in the game could be displayed by a number in the corner of the user's screen but could also be represented by a light that changes from green to red as the virtual health drops and flashes insistently when the user's virtual health is perilously low.
In another embodiment, a shield could start as white and fade to another color as it loses strength. The user could start to see “holes” in a shield that are shown by different colors in the room in the direction where the shield is weak allowing a user to quickly realize how to turn to bring more powerful shields to face an enemy. You could see also see a jump into “warp” speed where the front of the room turns bright and then the bright light flashes towards the back of the room, for example. In a racing game, speed could also be simulated as streetlights on screen race down a row of lights off to one side of the user.
In an embodiment, a lit enclosure for the device on which the game is being played changes as an indicator. Game console buttons could also blink to indicate a combination. Like a color-note organ (such as described below), this embodiment could be used in training mode to teach combinations.
Although the figures and description above show primarily computer games, it would be clear to one of skill in the art to carry the system into other types of computing devices and environments. A computing device can include, but is not limited to, any type of computer, a console game system (such as the Playstation series manufactured by Sony), a Personal Digital Assistant (PDA), a telephone, a WebTV or similar system, a thin client, or any other type of system on which a user is able to carry out applications where a lighting system could enhance the display provided to the user. There can be systems where the lighting system provides the only source of visual information to the user.
For console game systems, one of skill in the art would understand that libraries customized onto the proprietary chipsets for console games that drive light system output, similar to the Directlight programmer's interface, could be created without undue experimentation. Console games generally have proprietary chipsets so it may be necessary to generate custom libraries for these systems. The systems and libraries for the consoles could function in much the same way as a PC-based game. The console may include a USB, serial, parallel, firewire, optical, modem or other communications port to communicate with the lighting system. The lighting information could also be sent through a controller port. A controller port may be used for a controller communication as well as lighting control information. Separate controller ports could also be used. For example, a first controller port may be used to communicate with a controller and another controller port may be used to communicate with the lighting system.
Many games and computer systems include input devices such as a joystick, mouse, keyboards, gloves, tactile mouse, dance pads, exercise equipment, or other input devices. These devices are generally used by a user to control aspects of a game or other parameter of a computer program. Each of these input devices could also be configured to affect the room lights. For example, a mouse could be used to control the lights in a room. As the mouse is moved the lights in the room could respond, or as the user dances on a dance pad the lights could generate a color representation of their dance. For instance, their impact force with the pad could translate to an intensity while their position translated to a color. The input device may also direct sound simultaneously or in conjunction with the light.
In an embodiment of the invention the lighting system could also be associated with room inputs that could be associated with the virtual environment such as a microphone, camera, heat, cooling or other room inputs. For example, a user could control a game object by providing voice instructions through the microphone, which could be synthesized into commands for an application, and in turn used to control the illumination of the environment through a lighting system.
The embodiments discussed above relate primarily to games involving real-time simulation and for such types of games there are numerous applications for lighting systems. For instance: flight games could use indicators for controls or important statistics like fuel level; racing games could have motion or indicate third party activities like the approach of police vehicles: skateboarding, snowboarding, or other performance sport simulators can have indicators of movement, indicators of third party actions, or rewards such as flashbulbs for particularly fine performances. Other types of simulators can use lighting systems including, but not limited to, roller-coaster simulations, closed booth arcade simulators, or location-based entertainment games (large games inside a booth with multiple players). Further, it would be understood by one of skill in the art that the above are merely a limited overview of possibilities and there are many more applications that could be performed without undue experimentation.
Simulation types of games are typically 3D rendered and have objects with attributes as well as events. Referring to the flow chart 1500 of
In other embodiments the lighting systems can be used in conjunction with puzzle games, a developer can create a room-puzzle using the light system in a room or other environment to create games with the lights. For example, the room lights can reflect the color of puzzle elements in the virtual world, creating a correspondence between the virtual and the real world puzzle elements. One can manipulate real-world elements without the display on the computer. (In embodiments, one can play a game, such as pong, with the actual lights using a joystick attached to the computer. The code for the game can provide the interactive aspects of the game, then hand control signals to the light system so that the lights act as game elements in the real world environment. For example, one can create an array of lights on the ceiling, which could send light elements across the room). The lights can act as “pixels” in an array on the ceiling, wall or floor. In embodiments, the arrays could be established in a variety of rooms, so that light output moves from room to room in response to the user's interaction with the input device or sensor of the computer game or other virtual environment. Light strips can be used for game elements, as can other light system configurations.
A real world light system can be used to respond to input from objects in classic arcade computer games, such as Pacman, pong, asteroids, space invaders, breakout, and similar games, in each case enhancing the user experience by providing either aesthetic or indicator functions. Light systems can also be used with any other game type, such as casino simulators, video poker, sandbox games, railroad tycoon games, simulation games like Sim City, and the like.
In embodiments, light systems can be used with role-playing games, such as two-dimensional games like Diablo and three-dimensional games like EverQuest (a massively multiplayer online game). In such games, real world lights can be mapped to attributes of humans or objects in real world. The lights can provide more interaction with other humans or non-human players. Attributes and events can be a wide variety of things, such as indicating health, casting a spell, indicating shield strength or presence, displaying a fireball, or other effects. Further, in multiplayer games at a single location, the lights can be used to provide functions to the players by indicating the seat of a player you would like to meet in person, for example.
Further, in many multi player games (such as Everquest) items and characters have become collectible. Everquest Avatars are popular where there are characters that have characteristics that are acquired over time. Some are sold for large amounts of money on the Internet. The room lights of a light system can reflect the attributes of an avatar, such as a powerful blue to represent a “good” character, or a dark red to reflect “evil.” Any attribute, ranging from personality traits, to strength, speed, location, health, constitution, intelligence, stamina, wisdom, or other attributes can be reflected for a given avatar by the room lights in the real world in correspondence to the attributes of the avatar in the virtual world. In embodiments, one can make collectible patterns or effects that associate with characters, objects or events. Thus, a virtual world object or character could have a “signature” or “trademark” color effect that takes place each time the character appears in the virtual world or does a particular thing in the virtual world. You could accrue an aura for a character over time as part of a character's attributes. Light could be used to portray abstract character traits. In multi-player environments like arcades, people could glow according to the aura of the character they are playing. Objects could embody those traits, and you might need to have a particular object or trait to allow you to see the indicator for another object.
In adventure games, which typically involve solving a puzzle in an environment—environmental lighting could be part of the puzzle. The light system could give clues required or helpful to solve the puzzle.
In sports games, a light system in the real world can serve as an event indicator (flashbulbs, cut scenes—could shift lights) or as an attribute indicator (indicating health of a player, number of fouls, etc.).
In turn-based strategy games, a light system can indicate events or attributes, or provide aesthetic effects. Those could include the day and night cycle, something catching fire (where the user sees the event first in the lights, then in virtual world), a warning from behind that comes first (such as to indicate a glowing light sabre of a player behind the user in the virtual world), or other events or attributes.
In fighting games, lights in the real world can indicate seeing someone's shadow before they jump over the user, moving lights after a “kill” or powerful blow, or indicating declining or improving health or presence of special attributes (such as shields or spells). Further, moving shadows or illumination created by the lights could indicate the position of a tag team partner. It is important to note that the absence of light (a shadow) can also be part of the illumination and illumination as described herein. The absence of any intensity of any color is simply ones possible illumination condition.
In children's games, room lights and a room sound system can reflect color and intensity attributes of elements of the games, which can include games to teach children about different colors and sounds.
As was discussed above, computer games provide merely one type of computer program in which a lighting system can provide enhancement and additional information. There are many other types of computer programs which the use of a lighting system can benefit
A similar embodiment to computer games is auction-type, real “games,” such as Internet auctions, such as E-bay. Lights could be used as an indicator of an event or characteristic, such as having the highest current bid, or a winning bid. Online gambling establishments could also use the lights so as to provide a casino-like environment in the user's home.
Architectural visualization, mechanical engineering models, and other solid modeling environments are encompassed herein as embodiments. In these virtual environments lighting is often relevant both in a virtual environment and in a solid model real world visualization environment. Referring to
Solid modeling programs can have virtual lights. One can light a model in the virtual environment while simultaneously lighting a real world model the same way. For example, one can model environmental conditions of the model and recreate them in the real world modeling environment outside the virtual environment. For example, one can model a house or other building and show how it would appear in any daylight environment. A hobbyist could also model lighting for a model train set (for instance based on pictures of an actual train) and translate that lighting into the illumination for the room wherein the model train exists. Therefore the model train may not only be a physical representation of an actual train, but may even appear as that train appeared at a particular time. A civil engineering project could also be assembled as a model and then a lighting system according to the principles of the invention could be used to simulate the lighting conditions over the period of the day. This simulation could be used to generate lighting conditions, shadows, color effects or other effects. This technique could also be used in Film/Theatrical modeling or could be used to generate special effects in filmmaking. Such a system could also be used by a homeowner, for instance by selecting what they want their dwelling to look like from the outside and having lights be selected to produce that look. This is a possibility for safety when the owner is away. Alternatively, the system could work in reverse where the owner turns on the lights in their house and a computer provides the appearance of the house from various different directions and distances.
Although the above examples discuss modeling for architecture, one of skill in the art would understand that any device, object, or structure where the effect of light on that device, object, or structure can be treated similarly.
Medical or other job simulation could also be performed. A lighting system according to the principles of the present invention may be used to simulate the lighting conditions during a medical procedure. This may involve creating an operating room setting or other environment such as an auto accident at night, with specific lighting conditions. For example, the lighting on highways is generally high-pressure sodium lamps which produce nearly monochromatic yellow light and as a result objects and fluids may appear to be a non-normal color. Parking lots generally use metal halide lighting systems and produce a broad spectrum light that has spectral gaps. Any of these environments could be simulated using a system according to the principles of the invention. These simulators could be used to train emergency personnel how to react in situations lit in different ways. They could also be used to simulate conditions under which any job would need to be performed. For instance, the light that will be experienced by an astronaut repairing an orbiting satellite can be simulated on earth in a simulation chamber.
Lights can also be used to simulate travel in otherwise inaccessible areas such as the light that would be received traveling through space or viewing astronomical phenomena, or lights could be used as a three dimensional projection of an otherwise unviewable object. For instance, a lighting system attached to a computing device could provide a three dimensional view from the inside of a molecular model. Temporal Function or other mathematical concepts could also be visualized.
Optionally, the virtual environment can be generated by a computer application that is a screen saver, which could be mapped into the real world lights in a room. As the screen saver creates and displays graphics on a computer screen, for example, the screen saver can create lighting effects outside of the computer screen. This could be used to create decorative effects or the lighting effects could be used to provide information or other effects. The information may represent computer, or network activity, for example, such that the activity is displayed in the lights and or the screen saver. This could include email activity, when an email is received by the system the lighting could change to a particular hue, saturation or intensity. The hue, saturation or intensity may change as more and more email is received.
A musical application could also be used, allowing for the choreographing of music to light, or the generation of light as a portion of the generation of music. Alternatively light could be used to help a user learn to play music. For instance light could be projected that indicates a particular key a user should press on a keyboard. In time, a user unable to read music could teach themselves to play instruments and music for the user's performance could be provided as light signals.
An embodiment of the present invention could be a puzzle that consists of getting the room lights into a particular configuration. You could put a person “inside” a real world Rubik's cube associated with a virtual Rubik's cube. An embodiment of the invention may be used in flight simulators to change the ambient lighting conditions from day to night, or changing the lighting conditions as the horizon changes or associated with other aspects of the simulator.
A system according to the principles of the invention may also involve real-time simulation such as an actual motion inducing flight simulator, 3D motion rides (control through 3D libraries), or full mockup simulators where the lighting can be directly changed in response to what occurs. One example is that in a research submarine trainer the lighting within the submarine could be altered to remove red wavelengths as the sub dives because under water red light is often not present.
All articles, patents, and other references set forth above are hereby incorporated by reference. While the invention has been disclosed in connection with embodiments shown and described in detail, various equivalents, modifications, and improvements will be apparent to one of ordinary skill in the art from the above description
DirectLight API
A Programming Interface for Controlling Color Kinetics Full Spectrum Lighting
Important Stuff You Should Read First
An application (for example, a 3D rendered game) can create virtual lights within its 3D world. DirectLight can map these lights onto real-world Color Kinetics full spectrum digital lights with color and brightness settings corresponding to the location and color of the virtual lights within the game.
In DirectLights three general types of virtual lights exist:
All these lights allow their color to be changed as often as necessary.
In general, the user will set up the real-world lights. The “my_lights.h” configuration file is created in, and can be edited by, the “DirectLight GUI Setup” program. The API loads the settings from the “my_lights.h” file, which contains all information on where the real-world lights are, what type they are, and which sort of virtual lights (dynamic, ambient, indicator, or some combination) are going to affect them.
Virtual lights can be created and static, or created at run time dynamically. DirectLights runs in it's own thread; constantly poking new values into the lights to make sure they don't fall asleep. After updating your virtual lights you send them to the real-world lights with a single function call. DirectLights handles all the mapping from virtual world to real world.
If your application already uses 3D light sources, implementing DirectLight can be very easy, as your light sources can be mapped 1:1 onto the Virtual_Light class.
A typical setup for action games has one overhead light set to primarily ambient, lights to the back, side and around the monitor set primarily to dynamic, and perhaps some small lights near the screen set to indicators.
The ambient light creates a mood and atmosphere. The dynamic lights around the player give feedback on things happening around him: weapons, environment objects, explosions, etc. The indicator lights give instant feedback on game parameters: shield level, danger, detection, etc.
Effects (LightingFX ) can be attached to lights which override or enhance the dynamic lighting. In Star Trek: Armada, for example, hitting Red Alert causes every light in the room to pulse red, replacing temporarily any other color information the lights have.
Other effects can augment. Explosion effects, for example, can be attached to a single virtual light and will play out over time, so rather than have to continuously tweak values to make the fireball fade, virtual lights can be created, an effect attached and started, and the light can be left alone until the effect is done.
Real lights have a coordinate system based on the room they are installed in. Using a person sitting at a computer monitor as a reference, their head should be considered the origin. X increases to their right. Y increases towards the ceiling. Z increases towards the monitor.
Virtual lights are free to use any coordinate system at all. There are several different modes to map virtual lights onto real lights. Having the virtual light coordinate system axis-aligned with the real light coordinate system can make your life much easier.
Light positions can take on any real values. The DirectLight GUI setup program restricts the lights to within 1 meter of the center of the room, but you can change the values by hand to your heart's content if you like. Read about the Projection Types first, though. Some modes require that the real world and virtual world coordinate systems have the same scale.
Getting Started
Installing DirectLight SDK
Running the Setup.exe file will install:
In /Windows/System/ three dll files, one for DirectLight, two for low-level communications with the real-world lights via DMX.
In the folder you installed DirectLight in: Visual C++ project files, source code and header files:
The “my_lights.h” file is referenced both by DirectLight and DirectLight GUI Setup.exe. “my_lights.h” in turn references “light_definitions.h” The other files are referenced only by DirectLight GUI Setup. Both the DLL and the Setup program use a registry entry to find these files:
Also included in this directory is this documentation, and subfolders:
The DirectLight DLL implements a COM object which encapsulates the DirectLight functionality. The DirectLight object possesses the DirectLight interface, which is used by the client program.
In order to use the DirectLight COM object, the machine on which you will use the object must have the DirectLight COM server registered (see above: Important Stuff You Should Read First). If you have not done this, the Microsoft COM runtime library will not know where to find your COM server (essentially, it needs the path of DirectLight.dll).
To access the DirectLight COM object from a program (we'll call it a client), you must first include “directlight.h”, which contains the definition of the DirectLight COM interface (among other things) and “directlight_i.c”, which contains the definitions of the various UIDs of the objects and interfaces (more on this later).
Before you can use any COM services, you must first initialize the COM runtime. To do this, call the CoInitialize function with a NULL parameter:
For our purposes, you don't need to concern yourself with the return value.
Next, you must instantiate a DirectLight object. To do this, you need to call the CoCreateInstance function. This will create an instance of a DirectLight object, and will provide a pointer to the DirectLight interface:
CLSID_CDirectLight is the identifier (declared in directlight_i.c) of the DirectLight object, IID_IDirectLight is the identifier of the DirectLight interface, and pDirectLight is a pointer to the implementation of the DirectLight interface on the object we just instantiated. The pDirectLight pointer will be used by the rest of the client to access the DirectLights functionality.
Any error returned by CoCreateInstance will most likely be REGDB_E_CLASSNOTREG, which indicates that the class isn't registered on your machine. If that's the case, ensure that you ran the Register DirectLight program, and try again.
When you're cleaning up your app, you should include the following three lines:
You absolutely must release the COM interface when you are done using it. Failure to do so will result in the object remaining in memory after the termination of your app.
CoFreeUnusedLibraries( ) will ask COM to remove our DirectLight factory (a server that created the COM object when we called CoCreateInstance( )) from memory, and CoUninitialize( ) will shut down the COM library.
DirectLight Class
The DirectLight class contains the core functionality of the API. It contains functionality for setting ambient light values, global brightness of all the lights (gamma), and adding and removing virtual lights.
Types:
enum Projection_Type{
For an explanation of these values, see “Projection Types” in Direct Light Class
enum Light_Type{
For an explanation of these values, see “Light Types” in Direct Light Class, or look at the online help for “DirectLight GUI Setup.”
enum Curve_Type {
These values represent different curves for lighting effects when fading from one color to another.
Public Member Functions:
The Set_Ambient_Light function sets the red, green and blue values of the ambient light to the values passed into the function. These values are in the range 0-MAX_LIGHT_BRIGHTNESS. The Ambient light is designed to represent constant or “Room Lights” in the application. Ambient Light can be sent to any or all real of the real-world lights. Each real world light can include any percentage of the ambient light.
Stir_Lights sends light information to the real world lights based on the light buffer created within DirectLights. The DirectLight DLL handles stirring the lights for you. This function is normally not called by the application
Submit_Virtual_Light creates a Virtual_Light instance. Its virtual position is specified by the first three values passed in, it's color by the second three. The position should use application space coordinates. The values for the color are in the range 0-MAX_LIGHT_BRIGHTNESS. This function returns a pointer to the light created.
Given a pointer to a Virtual_Light instance, Remove_Virtual_Light will delete the virtual light.
The Set_Gamma function sets the gamma value of the Direct Light data structure. This value can be used to control the overall value of all the lights, as every virtual light is multiplied by the gamma value before it is projected onto the real lights.
Set_Cutoff_Range sets the cutoff distance from the camera. Beyond this distance virtual lights will have no effect on real-world lights. Set the value high to allow virtual lights to affect real world lights from a long way away. If the value is small virtual lights must be close to the camera to have any effect. The value should be in application space coordinates.
Clear_All_Lights destroys all real lights.
Project_All_Lights calculates the effect of every virtual on every real-world light, taking into account gamma, ambient and dynamic contributions, position and projection mode, cutoff angle and cutoff range, and sends the values to every real-world light.
Indicators can be assigned to any of the real world lights via the configuration file ( my_lights.h). Each indicator must have a unique non-negative integer ID. Set_Indicator_Color changes the color of the indicator designated by which_indicator to the red, green, and blue values specified. If Set_Indicator_Color is called with an indicator id which does not exist, nothing will happen. The user specifies which lights should be indicators, but note that lights that are indicators can still be effected by the ambient and dynamic lights.
Returns a pointer to the indicator with the specified value.
Returns the number of real lights.
Looks in the directory and finds the path to the “my_lights.h” file.
Loads the “my_lights.h” file from the default location determined by the registry. DirectLight will create a list of real lights based on the information in the file.
Creates a new real light in the real world. Typically DirectLight will load the real light information from the “my_lights.h” file at startup.
Safely deletes an instance of a real light.
Returns a pointer to the ambient light.
Returns true if the list of real lights is empty, false otherwise.
Light Class
Ambient lights are defined as lights. Light class is the parent class for Virtual Lights and Real Lights. Member variables:
static const int MAX_LIGHT_BRIGHTNESS. Defined as 255
LightingFX_List * m_FX_currently_attached. A list of the effects currently attached to this light.
ColorRGB m_color. Every light must have a color! ColorRGB is defined in ColorRGB.h
Attach a new lighting effect to this virtual light.
Detach an old lighting effect from this virtual light.
Real Lights
Real Light inherits from the Light class. Real lights represent lights in the real world. Member variables:
static const int NOT_AN_INDICATOR_LIGHT defined as −1.
char m_identifier[100] is the name of the light (like “overhead” or “covelight1”). Unused by DirectLight except as a debugging tool.
int DMX_port is a unique non-negative integer representing the channel the given light will receive information on. DMX information is sent out in a buffer with 3 bytes (red, green and blue) for each light. (DMX_port * 3) is actually the index of the red value for the specified light. DirectLight DMX buffers are 512 bytes, so DirectLight can support approximately 170 lights. Large buffers can cause performance problems, so if possible avoid using large DMX_port numbers.
Light_Type m_type describes the different models of Color Kinetics lights. Currently unused except by DirectLight GUI Setup to display icons.
float m_add_ambient the amount of ambient light contribution to this lights color. Range 0-1
float m_add_dynamic the amount of dynamic light contribution to this lights color. Range 0-1
float m_gamma is the overall brightness of this light. Range 0-1.
float m_cutoff_angle determines how sensitive the light is to the contributions of the virtual lights around it. Large values cause it to receive information from most virtual lights. Smaller values cause it to receive contributions only from virtual lights in the same arc as the real light.
Projection_Type m_projection_type defines how the virtual lights map onto the real lights.
float m_xpos x, y, z position in virtual space.
float m_ypos
float m_zpos
int m_indicator_number. If indicator is negative the light is not an indicator. If it is non-negative it will only receive colors sent to that indicator number.
Virtual Lights
Virtual Lights represent light sources within a game or other real time application that are mapped onto real-world Color Kinetics lights. Virtual Lights may be created, moved, destroyed, and have their color changed as often as is feasible within the application.
MAX_LIGHT_BRIGHTNESS is a constant representing the largest value a light can have. In the case of most Color Kinetics lights this value is 255. Lights are assumed to have a range that starts at 0
The Set_Color function sets the red, green and blue color values of the virtual light to the values passed into the function.
The Set_Position function sets the position values of the virtual light to the values passed into the function. The position should use application space coordinates.
Gets the position of the light.
Lighting FX
Lighting FX are time-based effects which can be attached to real or virtual lights, or indicators, or even the ambient light. Lighting effects can have other effects as children, in which case the children are played sequentially.
If TRUE is passed in, this effect will use real world time and update itself as often as Stir_Lights is called. If FALSE is passed in the effect will use application time, and update every time Apply-FX is called.
If TRUE is passed in, this effect will extrapolate it's value when Stir_Lights is called.
Attach this effect to the light passed in.
Remove this effect's contribution to the light. If remove_FX_from_light is true, the effect is also detached from the light.
The above functions also exist as versions to effect Virtual lights, Indicator lights (referenced either by a pointer to the indicator or it's number), Ambient light, and all Real Lights.
Start the effect. If looping is true the effect will start again after it ends.
Stop the effect without destroying it.
Either loop or stop playing the effect, since time it up for it.
Change how much game time has gone by for this effect.
Find out how much real time has passed for this effect.
Change the FX time based on extrapolating how much application time per real time we have had so far.
This is the principle lighting function. When Lighting_FX is inherited, this function does all the important work of actually changing the light's color values over time. Note that you can choose to add your value to the existing light value, replace the existing value with your value, or any combination of the two. This way Lighting effects can override the existing lights or simply supplant them.
Update the time of all the effects.
Apply this effect to all virtual, ambient and indicator lights that are appropriate.
Apply each effect to all virtual, ambient and indicator lights that are appropriate.
Apply this effect to a single real light.
If this effect has child effect, start the next one.
Add a new child effect onto the end of the list of child effects that this effect has. Timeshare is this child's share of the total time the effect will play. The timeshares don't have to add up to one, as the total shares are scaled to match the total real play time of the effect
Become a parent of the specified effect.
Have this effect and all it's children inherit the list of lights to affect.
Configuration File
The file “my_lights.h” contains information about real-world lights, and is loaded into the DirectLight system at startup. The files “my_lights.h” and “light_definitions.h” must be included in the same directory as the application using DirectLights.
“my_lights.h” is created and edited by the DirectLight GUI Setup program. For more information on how to use the program check the online help within the program.
Here is an example of a “my_lights.h” file:
This example file is taken from our offices, where we had lights setup around a computer, with the following lights (referenced from someone sitting at the monitor): One overhead (mostly ambient); one on each side of our head (Left and Right); one behind our head; Three each along the top, left and right side of the monitor in front of us.
Each line in the “my_lights” file represents one Real_Light. Each Real_Light instance represents, surprise surprise, one real-world light.
The lower lights on the left and right side of the monitor are indicators 0 and 2, the middle light on the left side of the monitor is indicator 1.
The positional values are in meters. Z is into/out of the plane of the monitor. X is vertical in the plane of the monitor, Y is horizontal in the plane of the monitor.
MAX_LIGHTS can be as high as 170 for each DMX universe. Each DMX universe is usually a single physical connection to the computer (COM1, for example). The larger MAX_LIGHTS is, the slower the lights will respond, as MAX_LIGHTS determines the size of the buffer sent to DMX (MAX_LIGHTS * 3) Obviously, larger buffers will take longer to send.
OVERALL_GAMMA can have a value of 0-1. This value is read into DirectLights and can be changed during run-time.
This application claims the benefit under 35 U.S.C. §119(e) of the following U.S. provisional patent applications: Ser. No. 60/243,250, filed Oct. 25, 2000, entitled “Illumination of Liquids;” Ser. No. 60/262,153, filed Jan. 17, 2001, entitled “Information Systems;” Ser. No. 60/242,484, filed Oct. 23, 2000, entitled “Systems and Methods for Digital Entertainment;” Ser. No. 60/262,022, filed Jan. 16, 2001, entitled “Color Changing LCD Screens;” Ser. No. 60/268,259, filed Feb. 13, 2001, entitled “LED-Based Lighting Systems and Methods for Vehicles;” and Ser. No. 60/277,911, filed Mar. 22, 2001, entitled “Systems and Methods for Digital Entertainment.” This application also claims the benefit under 35 U.S.C. §120 as a continuation-in-part (CIP) of the following U.S. Patent Applications: Ser. No. 09/215,624, filed Dec. 17, 1998 now U.S. Pat. No. 6,528,954, entitled “Smart Light Bulb;” Ser. No. 09/213,607, filed Dec. 17, 1998 now abandoned, entitled “Systems and Methods for Sensor-Responsive Illumination;” Ser. No. 09/213,189, filed Dec. 17, 1998 now U.S. Pat. No. 6,459,919, entitled “Precision Illumination Methods and Systems;” Ser. No. 09/213,581, filed Dec. 17, 1998 now U.S. Pat. No. 7,038,398, entitled “Kinetic Illumination Methods and Systems;” Ser. No. 09/213,540, filed Dec. 17, 1998 now U.S. Pat. No. 6,720,745, entitled “Data Delivery Track;” Ser. No. 09/333,739, filed Jun. 15, 1999 now U.S. Pat. No. 7,352,339, entitled “Diffuse Illumination Methods and Systems;” Ser. No. 09/626,905, filed Jul. 27, 2000, entitled “Illumination Components,” now U.S. Pat. No. 6,340,868, issued Jan. 22, 2002; Ser. No. 09/742,017, filed Dec. 20, 2000 now abandoned, entitled “Lighting Entertainment System,” which is a continuation of U.S. Ser. No. 09/213,548, filed Dec. 17, 1998, now U.S. Pat. No. 6,166,496, issued Dec. 26, 2000; Ser. No. 09/616,214, filed Jul. 14, 2000 now U.S. Pat. No. 7,139,617, entitled “Systems and Methods for Authoring Lighting Sequences;” Ser. No. 09/815,418, filed Mar. 22, 2001 now U.S. Pat. No. 6,577,080, entitled “Lighting Entertainment System,” which also is a continuation of U.S. Ser. No. 09/213,548, filed Dec. 17, 1998, now U.S. Pat. No. 6,166,496, issued Dec. 26, 2000; Ser. No. 09/805,368, filed Mar. 13, 2001 now U.S. Pat. No. 7,186,003, entitled “Light Emitting Diode Based Products;” Ser. No. 09/805,590, filed Mar. 13, 2001 now U.S. Pat. No. 7,064,498, entitled “Light Emitting Diode Based Products;” Ser. No. 09/917,246, entitled “Systems and Methods for Color Changing Device and Enclosure,” filed Jul. 27, 2001 now U.S. Pat. No. 6,888,322; Ser. No. 09/923,223, entitled “Ultraviolet Light Emitting Diode Systems and Methods,” filed Aug. 6, 2001 now abandoned; and Ser. No. 09/886,958, entitled “Method and Apparatus for Controlling a Lighting System in Response to an Audio Input,” filed Jun. 21, 2001 now U.S. Pat. No. 7,228,190. This application also claims the benefit under 35 U.S.C. §120 of each of the following U.S. Provisional Applications, as at least one of the above-identified U.S. Non-provisional Applications similarly is entitled to the benefit of at least one of the following Provisional Applications: Ser. No. 60/071,281, filed Dec. 17, 1997, entitled “Digitally Controlled Light Emitting Diodes Systems and Methods;” Ser. No. 60/068,792, filed Dec. 24, 1997, entitled “Multi-Color Intelligent Lighting;” Ser. No. 60/078,861, filed Mar. 20, 1998, entitled “Digital Lighting Systems;” Ser. No. 60/079,285, filed Mar. 25, 1998, entitled “System and Method for Controlled Illumination;” and Ser. No. 60/090,920, filed Jun. 26, 1998, entitled “Methods for Software Driven Generation of Multiple Simultaneous High Speed Pulse Width Modulated Signals.” Each of the foregoing applications is hereby incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
2909097 | Alden et al. | Oct 1959 | A |
3318185 | Kott | May 1967 | A |
3561719 | Grindle | Feb 1971 | A |
3586936 | McLeroy | Jun 1971 | A |
3601621 | Ritchie | Aug 1971 | A |
3643088 | Osteen et al. | Feb 1972 | A |
3746918 | Drucker et al. | Jul 1973 | A |
3818216 | Larraburu | Jun 1974 | A |
3832503 | Crane | Aug 1974 | A |
3858086 | Anderson et al. | Dec 1974 | A |
3909670 | Wakamatsu et al. | Sep 1975 | A |
3924120 | Cox, III | Dec 1975 | A |
3958885 | Stockinger et al. | May 1976 | A |
3974637 | Bergey et al. | Aug 1976 | A |
4001571 | Martin | Jan 1977 | A |
4054814 | Fegley et al. | Oct 1977 | A |
4082395 | Donato et al. | Apr 1978 | A |
4096349 | Donato | Jun 1978 | A |
4241295 | Williams, Jr. | Dec 1980 | A |
4272689 | Crosby et al. | Jun 1981 | A |
4273999 | Pierpoint | Jun 1981 | A |
4298869 | Okuno | Nov 1981 | A |
4329625 | Nishizawa et al. | May 1982 | A |
4367464 | Kurahashi et al. | Jan 1983 | A |
4388567 | Yamazaki et al. | Jun 1983 | A |
4388589 | Molldrem, Jr. | Jun 1983 | A |
4392187 | Bornhorst | Jul 1983 | A |
4420711 | Takahashi et al. | Dec 1983 | A |
4500796 | Quin | Feb 1985 | A |
4622881 | Rand | Nov 1986 | A |
4625152 | Nakai | Nov 1986 | A |
4635052 | Aoike et al. | Jan 1987 | A |
4647217 | Havel | Mar 1987 | A |
4656398 | Michael et al. | Apr 1987 | A |
4668895 | Schneiter | May 1987 | A |
4682079 | Sanders et al. | Jul 1987 | A |
4686425 | Havel | Aug 1987 | A |
4687340 | Havel | Aug 1987 | A |
4688154 | Nilssen | Aug 1987 | A |
4688869 | Kelly | Aug 1987 | A |
4695769 | Schweickardt | Sep 1987 | A |
4701669 | Head et al. | Oct 1987 | A |
4705406 | Havel | Nov 1987 | A |
4707141 | Havel | Nov 1987 | A |
4727289 | Uchida | Feb 1988 | A |
4740882 | Miller | Apr 1988 | A |
4753148 | Johnson | Jun 1988 | A |
4771274 | Havel | Sep 1988 | A |
4780621 | Bartleucci et al. | Oct 1988 | A |
4818072 | Mohebban | Apr 1989 | A |
4837565 | White | Jun 1989 | A |
4843627 | Stebbins | Jun 1989 | A |
4845481 | Havel | Jul 1989 | A |
4845745 | Havel | Jul 1989 | A |
4863223 | Weissenbach et al. | Sep 1989 | A |
4874320 | Freed et al. | Oct 1989 | A |
4887074 | Simon et al. | Dec 1989 | A |
4922154 | Cacoub | May 1990 | A |
4934852 | Havel | Jun 1990 | A |
4962687 | Belliveau et al. | Oct 1990 | A |
4965561 | Havel | Oct 1990 | A |
4973835 | Kurosu et al. | Nov 1990 | A |
4979081 | Leach et al. | Dec 1990 | A |
4980806 | Taylor et al. | Dec 1990 | A |
4992704 | Stinson | Feb 1991 | A |
5003227 | Nilssen | Mar 1991 | A |
5008595 | Kazar | Apr 1991 | A |
5010459 | Taylor et al. | Apr 1991 | A |
5027262 | Freed | Jun 1991 | A |
5034807 | Von Kohorn | Jul 1991 | A |
5051935 | Matty | Sep 1991 | A |
5072216 | Grange | Dec 1991 | A |
5078039 | Tulk et al. | Jan 1992 | A |
5083063 | Brooks | Jan 1992 | A |
5126634 | Johnson | Jun 1992 | A |
5128595 | Hara | Jul 1992 | A |
5134387 | Smith et al. | Jul 1992 | A |
5142199 | Elwell | Aug 1992 | A |
5154641 | McLaughlin | Oct 1992 | A |
5164715 | Kashiwabara et al. | Nov 1992 | A |
5184114 | Brown | Feb 1993 | A |
5194854 | Havel | Mar 1993 | A |
5209560 | Taylor et al. | May 1993 | A |
5225765 | Callahan et al. | Jul 1993 | A |
5226723 | Chen | Jul 1993 | A |
5254910 | Yang | Oct 1993 | A |
5256948 | Boldin et al. | Oct 1993 | A |
5282121 | Bornhorst et al. | Jan 1994 | A |
5294865 | Haraden | Mar 1994 | A |
5307295 | Taylor et al. | Apr 1994 | A |
5329431 | Taylor et al. | Jul 1994 | A |
5350977 | Hamamoto et al. | Sep 1994 | A |
5357170 | Luchaco et al. | Oct 1994 | A |
5371618 | Tai et al. | Dec 1994 | A |
5374876 | Horibata et al. | Dec 1994 | A |
5375043 | Tokunaga | Dec 1994 | A |
5388357 | Malita | Feb 1995 | A |
5402702 | Hata | Apr 1995 | A |
5404282 | Klinke et al. | Apr 1995 | A |
5406176 | Sugden | Apr 1995 | A |
5410328 | Yoksza et al. | Apr 1995 | A |
5412284 | Moore et al. | May 1995 | A |
5412552 | Fernandes | May 1995 | A |
5420482 | Phares | May 1995 | A |
5421059 | Leffers, Jr. | Jun 1995 | A |
5432408 | Matsuda et al. | Jul 1995 | A |
5436535 | Yang | Jul 1995 | A |
5461188 | Drago et al. | Oct 1995 | A |
5463280 | Johnson | Oct 1995 | A |
5465144 | Parker et al. | Nov 1995 | A |
5475364 | Kenet | Dec 1995 | A |
5489827 | Xia | Feb 1996 | A |
5491402 | Small | Feb 1996 | A |
5504395 | Johnson et al. | Apr 1996 | A |
5519809 | Husseiny et al. | May 1996 | A |
5545950 | Cho | Aug 1996 | A |
5561346 | Byrne | Oct 1996 | A |
5575459 | Anderson | Nov 1996 | A |
5575554 | Guritz | Nov 1996 | A |
5592051 | Korkala | Jan 1997 | A |
5640061 | Bornhorst et al. | Jun 1997 | A |
5642129 | Zavracky et al. | Jun 1997 | A |
5662403 | Akashi et al. | Sep 1997 | A |
5673059 | Zavracky et al. | Sep 1997 | A |
5701058 | Roth | Dec 1997 | A |
5721471 | Begemann et al. | Feb 1998 | A |
5734590 | Tebbe | Mar 1998 | A |
5751118 | Mortimer | May 1998 | A |
5752766 | Bailey et al. | May 1998 | A |
5769527 | Taylor et al. | Jun 1998 | A |
5774098 | Kawashima et al. | Jun 1998 | A |
5803579 | Turnbull et al. | Sep 1998 | A |
5808689 | Small | Sep 1998 | A |
5821695 | Vilanilam et al. | Oct 1998 | A |
5838308 | Knapp et al. | Nov 1998 | A |
5848837 | Gustafson | Dec 1998 | A |
5850126 | Kanbar | Dec 1998 | A |
5851063 | Doughty et al. | Dec 1998 | A |
5852658 | Knight et al. | Dec 1998 | A |
RE36030 | Nadeau | Jan 1999 | E |
5859508 | Ge et al. | Jan 1999 | A |
5886701 | Chauvin et al. | Mar 1999 | A |
5895986 | Walters et al. | Apr 1999 | A |
5896010 | Mikolajczak et al. | Apr 1999 | A |
5896457 | Tyrrel | Apr 1999 | A |
5912653 | Fitch | Jun 1999 | A |
5923363 | Elberbaum | Jul 1999 | A |
5924784 | Chliwnyj et al. | Jul 1999 | A |
5926168 | Fan | Jul 1999 | A |
5938772 | Welch | Aug 1999 | A |
5945988 | Williams et al. | Aug 1999 | A |
5946209 | Eckel et al. | Aug 1999 | A |
5952680 | Strite | Sep 1999 | A |
5959547 | Tubel et al. | Sep 1999 | A |
5963185 | Havel | Oct 1999 | A |
5974262 | Fuller et al. | Oct 1999 | A |
5974553 | Gandar | Oct 1999 | A |
5999185 | Kato et al. | Dec 1999 | A |
6008783 | Kitagawa et al. | Dec 1999 | A |
6011546 | Bertram | Jan 2000 | A |
6012980 | Yoshida et al. | Jan 2000 | A |
6016038 | Mueller et al. | Jan 2000 | A |
6018237 | Havel | Jan 2000 | A |
6018332 | Nason et al. | Jan 2000 | A |
6020825 | Chansky et al. | Feb 2000 | A |
6025550 | Kato | Feb 2000 | A |
6031343 | Recknagel et al. | Feb 2000 | A |
6068383 | Robertson et al. | May 2000 | A |
6072280 | Allen | Jun 2000 | A |
6087776 | Yamashita et al. | Jul 2000 | A |
6095661 | Lebens et al. | Aug 2000 | A |
6097352 | Zavracky et al. | Aug 2000 | A |
6132072 | Turnbull et al. | Oct 2000 | A |
6135604 | Lin | Oct 2000 | A |
6150774 | Mueller et al. | Nov 2000 | A |
6166496 | Lys et al. | Dec 2000 | A |
6166718 | Takeda | Dec 2000 | A |
6183086 | Neubert | Feb 2001 | B1 |
6184628 | Ruthenberg | Feb 2001 | B1 |
6196471 | Ruthenberg | Mar 2001 | B1 |
6211626 | Lys et al. | Apr 2001 | B1 |
6215409 | Blach | Apr 2001 | B1 |
6227973 | Kikuchi | May 2001 | B1 |
6250774 | Begemann et al. | Jun 2001 | B1 |
6289466 | Bayramoglu et al. | Sep 2001 | B1 |
6292901 | Lys et al. | Sep 2001 | B1 |
6304287 | Nagata | Oct 2001 | B1 |
6340868 | Lys et al. | Jan 2002 | B1 |
6379244 | Sagawa et al. | Apr 2002 | B1 |
6408128 | Abecassis | Jun 2002 | B1 |
6459919 | Lys et al. | Oct 2002 | B1 |
6476726 | Pederson | Nov 2002 | B1 |
6486873 | McDonough et al. | Nov 2002 | B1 |
6492908 | Cheng | Dec 2002 | B1 |
6494593 | An et al. | Dec 2002 | B2 |
6528954 | Lys et al. | Mar 2003 | B1 |
6542155 | Mifune et al. | Apr 2003 | B1 |
6548967 | Dowling et al. | Apr 2003 | B1 |
6553178 | Abecassis | Apr 2003 | B2 |
6560707 | Curtis et al. | May 2003 | B2 |
6564108 | Makar et al. | May 2003 | B1 |
6577080 | Lys et al. | Jun 2003 | B2 |
6608453 | Morgan et al. | Aug 2003 | B2 |
6608996 | Laurikka et al. | Aug 2003 | B1 |
6611297 | Akashi et al. | Aug 2003 | B1 |
6624597 | Dowling et al. | Sep 2003 | B2 |
6717376 | Lys et al. | Apr 2004 | B2 |
6720745 | Lys et al. | Apr 2004 | B2 |
6868292 | Ficco et al. | Mar 2005 | B2 |
7015825 | Callahan | Mar 2006 | B2 |
20010033488 | Chliwnyj et al. | Oct 2001 | A1 |
20020004423 | Minami et al. | Jan 2002 | A1 |
20020038157 | Dowling et al. | Mar 2002 | A1 |
20020044066 | Dowling et al. | Apr 2002 | A1 |
20020047569 | Dowling et al. | Apr 2002 | A1 |
20020048169 | Dowling et al. | Apr 2002 | A1 |
20020057061 | Mueller et al. | May 2002 | A1 |
20020070688 | Dowling et al. | Jun 2002 | A1 |
20020074559 | Dowling et al. | Jun 2002 | A1 |
20020078221 | Blackwell et al. | Jun 2002 | A1 |
20020101197 | Lys et al. | Aug 2002 | A1 |
20020130627 | Dowling et al. | Sep 2002 | A1 |
20020145394 | Morgan et al. | Oct 2002 | A1 |
20020145869 | Dowling | Oct 2002 | A1 |
20020152045 | Dowling et al. | Oct 2002 | A1 |
20020153851 | Dowling et al. | Oct 2002 | A1 |
20020158583 | Lys et al. | Oct 2002 | A1 |
20020163316 | Dowling et al. | Nov 2002 | A1 |
20020171365 | Morgan et al. | Nov 2002 | A1 |
20020171377 | Mueller et al. | Nov 2002 | A1 |
20020171378 | Morgan et al. | Nov 2002 | A1 |
20020176259 | Ducharme | Nov 2002 | A1 |
20020195975 | Dowling et al. | Dec 2002 | A1 |
20030011538 | Lys et al. | Jan 2003 | A1 |
20030028260 | Blackwell | Feb 2003 | A1 |
20030057884 | Dowling et al. | Mar 2003 | A1 |
20030057886 | Lys et al. | Mar 2003 | A1 |
20030057887 | Dowling et al. | Mar 2003 | A1 |
20030057890 | Lys et al. | Mar 2003 | A1 |
20030076281 | Morgan et al. | Apr 2003 | A1 |
20030100837 | Lys et al. | May 2003 | A1 |
20030133292 | Mueller et al. | Jul 2003 | A1 |
20030137258 | Piepgras et al. | Jul 2003 | A1 |
20030222587 | Dowling et al. | Dec 2003 | A1 |
20040032226 | Lys | Feb 2004 | A1 |
20040036006 | Dowling | Feb 2004 | A1 |
20040052076 | Mueller et al. | Mar 2004 | A1 |
20040090191 | Mueller et al. | May 2004 | A1 |
20040090787 | Dowling et al. | May 2004 | A1 |
20040105261 | Ducharme et al. | Jun 2004 | A1 |
20040113568 | Dowling et al. | Jun 2004 | A1 |
20040116039 | Mueller et al. | Jun 2004 | A1 |
20040130909 | Mueller et al. | Jul 2004 | A1 |
20040156192 | Kerr et al. | Aug 2004 | A1 |
20040178751 | Mueller et al. | Sep 2004 | A1 |
20040212320 | Dowling et al. | Oct 2004 | A1 |
20040212321 | Lys et al. | Oct 2004 | A1 |
20040212993 | Morgan et al. | Oct 2004 | A1 |
20040240890 | Lys et al. | Dec 2004 | A1 |
20040257007 | Lys et al. | Dec 2004 | A1 |
20060053447 | Krzyzanowski et al. | Mar 2006 | A1 |
20060064533 | Rael et al. | Mar 2006 | A1 |
Number | Date | Country |
---|---|---|
6 267 9 | Dec 1996 | AU |
2 178 432 | Dec 1996 | CA |
101 37 919 | Jun 2002 | DE |
0495305 | Jul 1992 | EP |
0 564 127 | Oct 1993 | EP |
0534710 | Jan 1996 | EP |
0752632 | Jan 1997 | EP |
0752632 | Aug 1997 | EP |
0823812 | Feb 1998 | EP |
0 903 169 | Mar 1999 | EP |
0935234 | Aug 1999 | EP |
0942631 | Sep 1999 | EP |
1020352 | Jul 2000 | EP |
1113215 | Jul 2001 | EP |
1 130 554 | Sep 2001 | EP |
88 17359 | Dec 1998 | FR |
2045098 | Oct 1980 | GB |
2135536 | Aug 1984 | GB |
2176042 | Dec 1986 | GB |
2327047 | Jan 1999 | GB |
2354602 | Mar 2001 | GB |
57-157293 | Sep 1982 | JP |
06043830 | Feb 1994 | JP |
7-39120 | Jul 1995 | JP |
8-106264 | Apr 1996 | JP |
9 320766 | Dec 1997 | JP |
2000-17383 | Jun 2000 | JP |
WO 8905086 | Jun 1989 | WO |
WO 9418809 | Aug 1994 | WO |
WO 9513498 | May 1995 | WO |
WO 9641098 | Dec 1996 | WO |
Number | Date | Country | |
---|---|---|---|
20030057884 A1 | Mar 2003 | US |
Number | Date | Country | |
---|---|---|---|
60277911 | Mar 2001 | US | |
60268259 | Feb 2001 | US | |
60262153 | Jan 2001 | US | |
60262022 | Jan 2001 | US | |
60243250 | Oct 2000 | US | |
60242484 | Oct 2000 | US | |
60090920 | Jun 1998 | US | |
60079285 | Mar 1998 | US | |
60078861 | Mar 1998 | US | |
60068792 | Dec 1997 | US | |
60071281 | Dec 1997 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09213548 | Dec 1998 | US |
Child | 09213540 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09923223 | Aug 2001 | US |
Child | 10045604 | US | |
Parent | 09917246 | Jul 2001 | US |
Child | 09923223 | US | |
Parent | 09886958 | Jun 2001 | US |
Child | 09917246 | US | |
Parent | 09815418 | Mar 2001 | US |
Child | 09886958 | US | |
Parent | 09805590 | Mar 2001 | US |
Child | 09815418 | US | |
Parent | 09805368 | Mar 2001 | US |
Child | 09805590 | US | |
Parent | 09742017 | Dec 2000 | US |
Child | 09805368 | US | |
Parent | 09626905 | Jul 2000 | US |
Child | 09742017 | US | |
Parent | 09333739 | Jun 1999 | US |
Child | 09626905 | US | |
Parent | 09213189 | Dec 1998 | US |
Child | 09333739 | US | |
Parent | 09213581 | Dec 1998 | US |
Child | 09213189 | US | |
Parent | 09213540 | Dec 1998 | US |
Child | 09213581 | US | |
Parent | 09215624 | Dec 1998 | US |
Child | 09213548 | US |