System and method for constructing 3D objects

The present invention is directed to an object construction device configured to enclose a specified assembly area and assemble objects, such as toys, using standardized interlocking assembly units. The construction device includes processor with a memory device configured to access an instruction set encoding the assembly instructions of the object. The processor executes the instruction set in order to control and direct an assembly unit manipulator to additively construct or assemble the object from the interlocking assembly units. The assembly units are configured with surface features that interconnect the assembly units such that once connected they are substantially permanently attached to one another.

FIELD OF THE INVENTION

The present invention is directed to an apparatus and method for constructing or 3D printing objects using standardized assembly units according to a specific instruction set. In one particular arrangement, the present invention describes an apparatus configured to assemble or construct an object from a supply of multi-colored assembly units according to an electronic instruction set included along with the supply of standard assembly units. In another arrangement, the invention is directed to constructing an object, such as a toy, from standard assembly units that are permanently bonded or affixed to one another. This permanent bonding characteristic is accomplished by mechanical or chemical adhesion mechanisms.

BACKGROUND OF THE INVENTION

Additive and subtractive manufacturing technologies enable computer designs, such as CAD files, to be made into three dimensional (3D) objects. 3D printing, also known as additive manufacturing, typically comprises depositing, curing, fusing, or otherwise forming a material into sequential cross-sectional layers of the 3D object.

For example, fused deposition modeling techniques, which are generally disclosed in U.S. Pat. No. 4,749,347 and U.S. Pat. No. 5,121,329, herein incorporated by reference, describe melting a filament of material and extruding the material out of a dispenser that is moved in the x, y and z-axes relative to a print pad. The material is generally deposited in layers in the x and y axes to form cross-sectional layers that are stacked along the z-axis to form the 3D object.

The prior art uses powders, resins and other substances to additively assemble structures.

However there is no description in the art for assembling objects using a plurality of uniform, discrete assembly units. Furthermore, the art does not describe uniform discrete assembly units having specific color characteristics. Thus, what is needed in the art is an apparatus and method for assembling objects having specific and varied color characteristics without the necessity for painting or otherwise adorning the object after assembly.

Additionally the construction devices and methods describe solve the problem of constructing structurally sound objects from standardized assembly units, especially standardized assembly units of uniform size.

SUMMARY OF THE INVENTION

In certain aspects, the present invention concerns an apparatus and method for assembling objects using standardized assembly units, or voxels. As used herein a “voxel” is a three dimensional assembly unit which operates as a 3-dimensional extension of a 2D pixel, i.e., a volume pixel.

In one particular arrangement, an object construction device is configured to enclose a specified assembly area and assemble objects, such as toys, within this assembly area. The construction device includes a processor with a memory device configured to access an instruction set encoding the assembly instructions of the object. The processor executes the instruction set in order to control and direct a voxel manipulator to additively construct or assemble the object from voxel construction units. The voxel manipulator is further configured to alter the orientation of at least one voxel prior to positioning the voxel in the assembly area. The voxels are stored prior to use in a storage device configured to supply voxels to the voxel manipulator. In one specific, yet non-limiting implementation, the voxels are arranged in the voxel storage device according to the order of use in the assembly process.

DESCRIPTION OF CERTAIN EMBODIMENTS OF THE INVENTION

By way of overview and introduction, the present apparatus and method describe constructing objects out of a plurality of standardized construction units, herein “voxels”, using an object constructor. In one particular arrangement, the apparatus is configured to assemble a three-dimensional object out of standardized construction units placed in overlapping and interlocking layers and having particular surface features and characteristics. For example, the object constructor constructs a three-dimensional article, such as a toy, having a variety of color features. By constructing the toy from voxels of varying colors, the end user avoids the necessity of painting the finished assembled object. Additionally, depending of the size and nature of the assembled object, the use of different colors allows for the integration of text and graphics onto the surface of the object at the time of assembly.

As shown inFIG. 1, the object constructor100includes an object assembly area102, a voxel manipulator104, and a plurality of voxel storage containers106. The object constructor100also includes a processor or computer110configured to instruct the voxel manipulator104where to position a voxel112within the object assembly area based on an instruction set. In one arrangement, the instruction set is a computer file, such as a CAD computer file.

In a particular configuration, the object construction device also includes a power supply127. In one non limiting example, the power supply is battery supply. In an alternative configuration, the power supply is an AC/DC converter device to transform AC outlet power to DC power. Those possessing ordinary skill in the art will appreciate that the power supply operates in cooperation with the processor and power control or distribution linkages to deliver power to the various components.

As shown in the illustrated configuration, the assembly area102defines an enclosed space that includes an assembly stage114. The assembly stage114is configured to be raised or lowered in order to meet the voxel manipulator104. In one arrangement, the voxel manipulator104works in conjunction with the assembly stage114in order to move and position voxels112within the assembly area. In a particular configuration, the movement of the assembly stage114is controlled by instructions or signals sent from the processor110, such as may be used to energize a motor or solenoid that has moveable parts physically coupled to the assembly stage.

The object constructor100constructs the intended object120using a plurality of voxel construction units112. A voxel112is a three dimensional interlocking assembly unit, and as such, has at least one surface feature for mechanically attaching to a complimentary surface feature on at least one other voxel. In a further arrangement, the voxels are each provided with attachment features that allow the voxels to be permanently secured with vertically and horizontally aligned neighboring voxels. More particularly, the voxels allow for multi-voxel width and height objects to be constructed free of the need to use an overlapping, or brick-work like stacking strategy.

In the illustrated configurations, the voxel112is substantially square in two dimensions, and can be substantially cubic in all three dimensions. In alternative arrangements, the voxels112have different polyhedron configurations such as tetrahedral, hexahedral or other known and understood three-dimensional shapes. In yet a further arrangement, the voxel112is spherical or ovoid in shape.

In the illustrated arrangement, the object constructor100also includes an optional adhesive or binding activator121. The adhesive activator is configured to activate an adhesive coated on the surface of the voxels. For example, where the voxel is coated in a heat activated adhesive the adhesive activator is a device configured to transmit electromagnetic energy to the voxel in the form of infrared light. Alternatively, the adhesive activator is used to deposit a water vapor onto a voxel coated with a water activated adhesive.

In one particular arrangement, the voxels have millimeter scale dimensions. In this configuration, the voxels are used to construct small scale items and objects. Thus, the overall dimensions of the voxels112are sufficiently small to allow efficient 3D manufacturing techniques

In an alternative implementation, the voxels have diameters of at least 1 centimeter in size along one side or dimension of the voxel112. Thus, unlike prior art additive and subtractive 3D manufacturing techniques, the invention described uses voxels having dimensions that allow for individual manipulation.

Those skilled in the art will also appreciate in at least one arrangement of the described apparatus and method, the voxels112used in assembling the object120are selected from a number of different shapes and sizes.

As illustrated inFIGS. 1 and 2A-C, the voxels112are stored in a voxel storage device106. In a particular iteration of the object assembly apparatus, the voxel storage device106is a cartridge504. In the illustrated configuration, two voxel storage devices are provided. Those skilled in the art will appreciate that any number of voxel cartridges can be used in suitable arrangement with the device and methods described.

In a non-limiting arrangement of the elements described inFIG. 2A, the voxel storage106is composed of a cartridge containing an unordered collection of voxels112. In this particular arrangement, voxels112in a given cartridge have identical characteristics, such as identical shape and color.

In an alternative arrangement shown inFIG. 2B, the voxel cartridge is composed of a plurality of receptacles502, each receptacle holding voxels of different characteristics. For example, one storage receptacle502is equipped with a collection of voxels each having a particular color, dimension or combination of features. In this arrangement, the number of voxels in each sub-arrangement or collection is not tied to the specific construction instructions for a given item or object.

In still a further arrangement, as illustrated inFIG. 2C, the cartridge504contains a pre-determined number of voxels that exit from the cartridge in a pre-determined sequence (A, B, C, D, E . . . ). This sequence is related to the instruction steps necessary to construct the object120. For example, the voxels112stored in the cartridge504are arranged such that the first voxel accessible to the voxel feed represents the first voxel necessary to assemble a particular object120. Depending on the nature and complexity of the object120under assembly, an array of sub-sequences506is provided. Each subsequence contains a specific sub sequence that corresponds to a portion of the overall object assembly sequence.

These cartridge types can be used as a standalone cartridge or in various combinations with other cartridge types. By way of non-limiting example, the object constructor is equipped with a plurality of cartridges, each cartridge holding a plurality of receptacles containing voxels having different characteristics.

In a particular arrangement, the cartridges are equipped with an exit port or door508configured to allow the voxels to leave the cartridge or receptacle. Those skilled in the art will appreciate that the door508is activated by commonly used mechanisms, such as springs, levers, louvers, dilators, and the like. The voxels are configured to exit the cartridge for use in the construction process. In one non-limiting arrangement, each cartridge is equipped with a mechanical door or port configured to allow passage of one voxel at a time from the cartridge to the voxel manipulator.

For example, the door508is spring operated and configured to work with the force of gravity to remove voxels from the bottom of the cartridge. In an alternative configuration, the cartridge and/or sub cartridges are equipped with spring-loaded pushing mechanisms configured to push voxels out of the cartridge according to an electrical or mechanical input. In a further arrangement, the cartridge is equipped with a sliding element, that when retracted, allows the removal of a voxel. In this arrangement the object constructor is equipped with sufficient extraction devices to obtain a voxel from the cartridge and orient the voxel into proper placement position.

An alternative arrangement of the voxel cartridge is provided inFIG. 2D, a portion of which is shown in detail inFIG. 3. Here, the voxels are secured on a strip512wound upon a spool510in a cartridge504. By activating an advance mechanism controlled by the processor110, the strip of voxels512is advanced so as to present voxels112to the voxel manipulator104. In an alternative configuration, a mechanism for advancing the voxels within the cartridge is contained within the cartridge and is controlled by the processor via electrical linkages. In yet a further arrangement, the advancing mechanism is manually controlled and operable. In a further arrangement, a second spool is provided as a take-up wheel to store an empty backing strip and provide tension to the strip504.

As illustrated, the voxels112are arranged on the bottom portion of the strip512. However, in an alternative configuration, the voxels are placed on a top surface of the strip. One potential configuration of the backing strip is provided inFIG. 3. As shown, the voxels112are attached to a backing or strip material512by securing the voxel to a strip retainer514. The strip retainer514is configured to removably couple to one of the interlocking elements of the voxel112and secure the voxel to the strip.

In an additional or alternative configuration, the voxels are pushed out of or otherwise extracted from the cartridge. In one or more configurations, the cartridge is equipped with an extraction device, such as a plunger or other mechanical device configured to push voxels out of the cartridge. In a further arrangement the voxel pushing device is controlled electronically. In still a further configuration, the voxel pushing device is a mechanically operated device.

In a further arrangement, the described cartridges504are equipped with an additional data storage element, or a separate processor (not shown). The data element110of the object constructor100is configured to receive the instruction set from the data storage element of the cartridge504. A processor integral to the cartridge504is configured to communicate with the processor110in order to transmit the instruction set based on the data stored in the data storage element included with the cartridge504. The stored data or instruction set included with the cartridge optionally includes a template for the construction of an object102using the pre-determined voxels112in the cartridge504.

In one configuration of the object construction apparatus, the data stored in the data storage element of the cartridge504also includes authentication and use data. The authentication data is used to confirm that the cartridge504is used in conjunction with a verified object constructor100. In a specific configuration, the use data confirms an authorized amount of times that the instruction set can be used to assemble a given object102. The use code configures the object constructor100to assemble a single object120based on the instruction set stored within the data storage device of the cartridge504. Alternatively, the use code grants unlimited access to the instruction set regardless of the amount of voxels present in the cartridge.

The voxels112are moved from the voxel storage106by way of the voxel manipulator104. In one arrangement, the cartridge includes a strip or portion of backing material.

In a further, non-limiting arrangement shown inFIG. 4, the voxel manipulator is used to obtain the voxels from the voxel storage devices directly. For instance, in one arrangement the voxel manipulator104is configured to access or receive a voxel112that has exited from a receptacle or cartridge504. In an alternative arrangement, the voxel manipulator is configured to extract the voxel112from the cartridge directly and orient the voxel for placement and use in the construction process. In a further configuration, the voxel manipulator104is configured to alter the orientation of each voxel112that is received from the voxel feed, such that a desired surface of the voxel112is placed in a proper location.

In one arrangement shown inFIG. 5, the voxel manipulator104is configured to select a voxel using the voxel capture head413and move the voxel112by selecting a transporting it to the desired location within the X, Y coordinate space. Specifically, the voxel manipulator is configured to move in the X, Y and Z coordinate space to allow for the selection and transport of voxels. In the arrangement ofFIG. 5, the voxel capture head couples to an interlocking element of the voxel112and extracts the voxel112from the backing strip material512.

In a particular configuration shown inFIG. 6, the voxel capture head413is provided with an end piece having a given shape. Likewise, the voxels in this arrangement are provided with an opening on the top portion having a complementary shape to the end piece, the voxel manipulator descends and inserts the end piece into the complementary opening and then rotates the end piece such that the end piece shape and the voxel opening are no longer complementary. The voxel manipulator raises the voxel capture head and removes the voxel from the its backing strip.

As illustrated inFIG. 6, the voxel manipulator104is configured to select a portion of the voxel112with voxel capture head413, and use the capture head to secure a voxel112for transport to the desired location.

The processor110is configured to instruct the voxel manipulator104to deliver the voxel to a given location within an X and Y and optionally Z axis coordinate space within the assembly area102. Continuing with the voxel positioning illustrated inFIG. 5,FIGS. 6A-Dillustrates the placement of a voxel in the course of assembling the object120. As shown, a voxel112is positioned in proximity to an object120already under construction. As shown, a voxel112is then moved to a position, as inFIG. 6Bthat allows it to join or bind to another voxel that is already part of the object120under construction. As shown inFIGS. 6C-D, the voxel manipulator releases the voxels and moves to retrieve another voxel.

As shown inFIG. 7, the entire voxel manipulator104assembly is configured to move vertically along the Z-axis within the assembly area to deliver a voxel112to a given location. In this arrangement, the voxel manipulator104is equipped with motors, gears, solenoids or other actuators to allow for vertical movement of the voxel capture head413, such that the voxel capture head413is positioned over the voxel and moved to retrieve a voxel112from a voxel storage container. In a particular arrangement, the voxel manipulator104is configured to move along rails603aligned along the perimeter of the assembly area102using a motor or arrangement of motors. In this configuration the voxels are deposited in the assembly area in a layer-by-layer manner in order to assemble the particular three-dimensional object.

In a further configuration, the voxel manipulator104is configured to move within the x-y space of the assembly area in movement increments corresponding to the dimensions of a single voxel. For example, the voxel manipulator104is equipped with a drive system. The drive system is configured to deliver energy to the motor in pulses, each pulse configured to only advance the motor, such that the voxel manipulator104has moved the width of a voxel112. In an alternative configuration, the voxel manipulator104is equipped with a gear arrangement that limits the movement of the voxel manipulator to voxel length movement increments.

In a further arrangement, the voxel manipulator104or processor110is configured with sensing and feedback mechanisms. For example, the voxel manipulator104includes a mechanical or electronic device (not shown) configured to count the number of movement steps intended by the processor instruction set and compare that information to the present location of the voxel manipulator104. In one arrangement a two-dimensional gird is used to orient the present position of the voxel manipulator104. Any of the foregoing mechanisms are then used to correct the position of the voxel manipulator104such that a voxel is positioned correctly.

In one particular arrangement, the voxel manipulator104is configured to change the orientation of the voxel112such that a particular surface is presented as an exterior surface of the object120. In one arrangement the voxel manipulator104is configured to rotate along rotation axis R in order to alter the orientation of the voxel112. The voxel manipulator104receives the voxels112from the voxel feed108at a voxel head (not shown). In a particular arrangement the voxels112are held in place prior to positioning by the voxel head by friction, surface tension, magnetic fields or compressive pressure.

Once the voxel112has been placed in the location determined by the instruction set executed by the processor110, subsequent voxels112are obtained from voxel storage106and are placed according to the instruction set. In another implementation, subsequent voxels112can be obtained from voxel storage106while another voxel is being placed relative to the assembly stage114.

In order to place the voxels, a computer or processor110is utilized to execute instructions detailing the acquisition of voxels according to a pre-set or user defined plan or schematic. In one configuration, the processor is configured to access pre-set instructions stored in an onboard memory. In one implementation, the processor is a chipset of microchips that include separate and multiple analog and digital processors. As shown inFIG. 10, the processor can provide coordination of the other components of a general computing device, such as control of user interfaces, applications run by the computing device1350, and data communication by the computing device.

Furthermore, the object constructor device of the present invention is configured to communicate with a general purpose computer equipped with software to control the functions of the object construction. In one arrangement the object constructor is connected to a general purpose computer by a physical linkage, such as, but not limited to, a USB cable. Alternatively, the object constructor is equipped with wireless communication protocols features that permit the bi-directional or unidirectional exchange of data from the general computer to the object constructor.

In still a further arrangement, the general computer device is a portable or handled computing device such as, but not limited to, an Apple IOS®, Windows® or Android® operating system based device.

In a particular arrangement the processor110is equipped with a memory element that stores information for use with the processor device. In some implementations, the memory is a volatile memory unit or units. In alternative implementations, the memory is a non-volatile memory unit or units. Alternatively, the memory includes magnetic or optical disk(s) or solid state memory components.

In one non-limiting arrangement, the general computer is equipped with software for designing an object to be constructed and converting that design into instructions for use by the object constructor. In an alternative arrangement, the general purpose computer is configured to access a software appliance located on a remote server configured to store and provide access to instructions sets that have been purchased and/or created.

The present invention also includes a method of using the object assembly device described to carry out and achieve the function of building an object using supplied voxels112according to an instruction set supplied to the processor. The instruction step includes receiving an instruction set indicating the necessary steps required for assembling a specified object120from voxel112units.

In one arrangement the steps include an accessing step for accessing an instruction set from a cartridge in communicative contact with the object constructor. In the alternative, the accessing step includes accessing an instruction set from a remote storage device or computer.

The method also includes a voxel acquisition step for instructing the voxel feed to transport voxels to the voxel manipulator for placement in the assembly area. In one arrangement the voxel acquisition step includes selecting the appropriate voxel from a plurality of voxel reservoirs or cartridge sub-arrays. The method described also includes an optional voxel reservoir selection step where voxels having a specific characteristic are selected from a specific voxel reservoir.

The method further includes a voxel placement step in which the voxel manipulator transports a voxel to a location according to the instructions provided in the instruction set. In one arrangement, the voxel placement step includes sending instructions to the assembly stage to rise vertically to a given height so as to provide the proper placement position for the voxel. In an alternative arrangement the voxel placement step includes moving the voxel manipulator along 3-axis so as to place the voxel at a given location on the assembly stage. In a further arrangement, the voxel placement step also includes a sub-step of aligning the voxel with another already placed voxel through the use of the voxel alignment element. Furthermore an additional step includes the manipulation of the orientation of a selected voxel by the voxel manipulator such that the appropriate color surface is selected.

The voxel manipulation and voxel acquisition steps are repeated continuously until the object detailed in the instruction set is assembled.

The method also includes an optional adhesion step, in which the voxels are bonded or otherwise permanently joined to one another. Depending on the nature of the voxel and the included adhesion properties, i.e. mechanical, electrostatic etc., the adhesion step includes bringing the voxels into contact with one another and activating the surface adhesion coatings. In one arrangement the adhesion step involves removing the assembled object from the object assembly area and exposing it to electromagnetic radiation, such as microwaves.

The steps described above and each of their processing functions can be operated as a series of programmed steps performed by a computer system having a processor or processors configured using one or more modules of computer-executable code. For instance, a set of software modules can be configured to cooperate with one another to configure a processor so that when executed, they provide an instruction set to an object constructor in order to assemble the intended object. In this regard, there can be a plurality of object selection modules, a voxel selection module, a manipulation module, and an adhesion module.

The instruction module can be configured as a series of discrete sub-modules designed to access an object creation instruction set from a data storage location and configure the computer to instruct the voxel manipulator to as to the proper placement of the voxels within the assembly area.

A voxel selection module can be configured as a series of discrete sub-modules designed to access the object creation instruction set and correlate that data to the specific voxels available in the voxel storage receptacle. For example, the voxel selection module can be configured to determine which voxel reservoir to select the necessary voxels given the intended color and shape of the intended object.

A voxel manipulation module can be configured as a series of discrete sub-modules designed to compare the instruction set for the intended object to the current state of the object, and position the next voxel accordingly.

An adhesion module is provided in which an adhesion device, accessible by the processor, is instructed to emit an adhesion substance, or energy that cures an adhesion substance for a specified period of time. For instance, the instruction can energize an emitter that opens a valve to release a substance under pressure in the direction of the voxels to be adhered. Likewise, the instruction can commence an action that otherwise causes an adhesive, vapor, or energy to be directed toward specific or general voxels in a prescribed manner.

Each of these modules can comprise hardware, code executing in a processor, or both, that configures a machine, such as the computing system, to implement the functionality described herein. The functionality of these modules can be combined or further separated, as understood by persons of ordinary skill in the art, in analogous implementations of arrangements of the invention.

The processor of the described apparatus is configurable for connection to remote storage devices and computing devices. For example the processor of the described apparatus is configuration for communication with a mobile computing device, or connecting via the internet to a remote server.

The computing system is further illustrated inFIG. 8A, and includes a processor1302, a memory1304, a storage device1306, a high-speed interface1308connecting to the memory1304and multiple high-speed expansion ports1310, and a low-speed interface1312connecting to a low-speed expansion port1314and the storage device1306. Each of the processor1302, the memory1304, the storage device1306, the high-speed interface1308, the high-speed expansion ports1310, and the low-speed interface1312, are interconnected using various busses, and can be mounted on a common motherboard or in other manners as appropriate. The processor1302can process instructions for execution within the computing device1300, including instructions stored in the memory1304or on the storage device1306to display graphical information for a GUI on an external input/output device, such as a display1316coupled to the high-speed interface1308. In other implementations, multiple processors and/or multiple buses can be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).

As further illustrated inFIG. 8B, the mobile computing device1350includes a processor1352, a memory1364, and an input/output device such as a display1354, a communication interface1366, and a transceiver1368, among other components. The mobile computing device1350can also be provided with a storage device, such as a micro-drive or other device, to provide additional storage. Each of the processor1352, the memory1364, the display1354, the communication interface1366, and the transceiver1368, are interconnected using various buses, and several of the components can be mounted on a common motherboard or in other manners as appropriate.

The processor1352can communicate with a user through a control interface1358and a display interface1356coupled to the display1354. The display1354can be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface1356can comprise appropriate circuitry for driving the display1354to present graphical and other information to a user. The control interface1358can receive commands from a user and convert them for submission to the processor1352. In addition, an external interface1362can provide communication with the processor1352, so as to enable near area communication of the mobile computing device1350with other devices. The external interface1362can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces can also be used.

The memory1364stores information within the mobile computing device1350. The memory1364can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. An expansion memory1374can also be provided and connected to the mobile computing device1350through an expansion interface1372, which can include, for example, a SIMM (Single In Line Memory Module) card interface. The expansion memory1374can provide extra storage space for the mobile computing device1350, or can also store applications or other information for the mobile computing device1350. Specifically, the expansion memory1374can include instructions to carry out or supplement the processes described above, and can include secure information also. Thus, for example, the expansion memory1374can be provided as a security module for the mobile computing device1350, and can be programmed with instructions that permit secure use of the mobile computing device1350. In addition, secure applications can be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.

It should be understood that various combination, alternatives and modifications of the present invention could be devised by those skilled in the art. The present invention is intended to embrace all such alternatives, modifications and variances that fall within the scope of the appended claims. While the invention has been particularly shown and described with reference to a preferred arrangement thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention

The mobile computing device1350can communicate wirelessly through the communication interface1366, which can include digital signal processing circuitry where necessary. The communication interface1366can provide for communications under various modes or protocols, such as GSM voice calls (Global System for Mobile communications), SMS (Short Message Service), EMS (Enhanced Messaging Service), or MMS messaging (Multimedia Messaging Service), CDMA (code division multiple access), TDMA (time division multiple access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000, or GPRS (General Packet Radio Service), among others. Such communication can occur, for example, through the transceiver1368using a radio-frequency. In addition, short-range communication can occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, a GPS (Global Positioning System) receiver module1370can provide additional navigation- and location-related wireless data to the mobile computing device1350, which can be used as appropriate by applications running on the mobile computing device1350.

The mobile computing device1350can also communicate audibly using an audio codec1360, which can receive spoken information from a user and convert it to usable digital information. The audio codec1360can likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of the mobile computing device1350. Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, etc.) and can also include sound generated by applications operating on the mobile computing device1350.

The mobile computing device1350can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as a cellular telephone1380. It can also be implemented as part of a smart-phone1382, personal digital assistant, or other similar mobile device.

These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms machine-readable storage medium and computer-readable storage medium refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable storage medium that receives machine instructions as a machine-readable signal. The term machine-readable signal refers to any signal used to provide machine instructions and/or data to a programmable processor. A machine-readable storage medium does not include a machine-readable signal.