The present disclosure relates generally to methods, systems, and apparatuses related a geometric model for beams of a lattice structure that provides a compromise between shape flexibility, and ease and accuracy of computation. The disclosed techniques may be applied to, for example, the generation of lattice structures in additive manufacturing applications.
Architected materials comprise lattice structures that are often defined in terms of a set of spheres (or “balls”) and beams that connect a pair of balls in the set. In several lattices, a beam connects to its balls tangentially. However, multiple beams can connect to the same ball and are not pairwise disjoint. The complexity and accuracy of the process of computing the boundary representation of the lattice, i.e. of the union of the balls and beams, depends on the shape of the beams. So do the many queries that must be performed on the lattice to support its usage in designing architected materials.
Conventional lattice generation practices either use simple beams (cylinders and cones) or use beams bounded by the surface of revolution of a circular or parabolic profile but accept the above-mentioned complexity and accuracy challenges. Thus, there is a need to find an effective compromise between, the flexibility of designing the beam's shape and the above-mentioned complexity and accuracy challenges.
Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks, by providing methods, systems, and apparatuses related to a geometric model for beams of a lattice structure that provides a compromise between shape flexibility, and ease and accuracy of computation. In its simplest embodiment, each beam is either a single quadric of revolution (“quador”), or two smoothly connected ones (“biquador”). Compared to beams supported in existing solutions or discussed in prior art, quador beams provide additional freedom in designing and optimizing lattice structures. One can design graded lattice structure by changing length, thickness and also the quadric profile of the beams, to improve factors such as strength to weight ratio, distribution of stresses, design desired physical behavior, and handling of buckling loads.
According to some embodiments, a computer-implemented method for constructing structures using beams bounded by quadric surfaces of revolution includes generating a quador beam within a computer-aided design (CAD) tool. The quador beam comprises two spheres at opposing endpoints, and the beam is bounded by a quadric surface of revolution around an axis of symmetry joining the center of the two spheres. The quadric surface of revolution abuts with tangent continuity with the surface of each of the spheres. Once generated, the quador beam can be visualized in the CAD tool or another display medium.
According to other embodiments, a computer-implemented method for constructing structures using beams bounded by quadric surfaces of revolution includes generating a plurality of quador beams within a CAD tool. A lattice is then constructed from a set of balls and the plurality of quador beams. Each quador beam connects an arbitrary pair of the balls. Once generated, the lattice can be displayed, for example, in the CAD tool. Also, in some embodiments, the lattice can be used to generate a structure printable by a 3D printer.
According to other embodiments, a computer-implemented method for constructing structures using beams bounded by a series of quadric surfaces of revolution includes generating a multi-quador beam within a CAD tool. The multi-quador beam comprises two spheres at opposing endpoints, and beam is bounded by a plurality of quadric surfaces of revolution around an axis of symmetry joining the center of the two spheres. The surface of the first sphere abuts with tangent continuity with the first surface in the series of quador surfaces and the second sphere abuts with tangent continuity with the last surface in the series of quador surfaces. The plurality of quadric surfaces of revolution is smoothly connected with tangent continuity within each multi-quador beam. Once generated, the quador beam can be visualized in the CAD tool or another display medium.
According to other embodiments, a computer-implemented method for constructing structures using beams bounded by quadric surfaces of revolution includes generating a plurality of multi-quador beams within a CAD tool. A lattice is constructed from a set of balls and the plurality of multi-quador beams. Each multi-quador beam connects an arbitrary pair of the balls. Once generated, the lattice can be displayed, for example, in the CAD tool. Also, in some embodiments, the lattice can be used to generate a structure printable by a 3D printer.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
The foregoing and other aspects of the present invention are best understood from the following detailed description when read in connection with the accompanying drawings. For the purpose of illustrating the invention, there are shown in the drawings embodiments that are presently preferred, it being understood, however, that the invention is not limited to the specific instrumentalities disclosed. Included in the drawings are the following Figures:
Objects with designed internal structure often comprise a lattice of beams, in which the surface of each beam smoothly connects two spheres, possibly of different radii. Systems, methods, and apparatuses are described herein which relate generally to a geometric model for these beams that provides a compromise between shape flexibility and ease of computation. In its simplest embodiment, each beam is either a single quadric of revolution (“quador”), or two smoothly connected ones (“biquador”). As described in further detail below, using the techniques described herein, quador and biquador beams can be specified using easily adjustable parameters. They simplify and accelerate several common geometric queries, including point classification, ray casting, planar slicing, and boundary evaluation.
Briefly, given two circles (one not containing the other) in a plane, one can create a parametrized family of conic (quadric) profiles that are tangent to the two circles and are axis symmetric about the line joining the circle's centers. Then, a 3D beam can be created as a surface of revolution using the quadric profile and the axis of symmetry described above. We call these beams quador beams. The two circles can be replaced with two balls of corresponding center and radii and the surface of revolution created above will be tangent to these two balls. The proposed construction guarantees that any two quador beams connecting to the same ball will intersect in a plane along a conic curve. This property can be exploited to increase the efficiency and accuracy of the boundary evaluation process and of various queries that must be performed on such structures. In some embodiments, the quador beam may be extended to create bi-quador beams. These beams are defined by a profile curve that joins two tangent continuous quadric profiles, computed using two end balls and a middle ball to control the shape and location of merger of the two quadric profiles.
To illustrate the differences between the techniques described herein and traditionally lattice generation methods,
The surface S that bounds a beam is a surface of revolution that has, as its axis, a straight line, A, that passes through the centers of the two balls that the beam connects. Hence, S is the rotational sweep of some planar “profile” curve C. The plane containing both C and A intersects the two balls at circles C1 and C2. C connects to C1 and C2 with tangential continuity (also referred to as normal continuity). C is invalid if it crosses A.
As shown in
Any conic section curve (ellipse, hyperbola, or parabola) that is symmetric about the x-axis can then be represented by a quadratic equation in the general form:
ax
2
+y
2+2bx+c=0. (1)
We need to find values of a, b, c that will make this curve tangent to the two given circles C1 and C2. Tangency to the two circles will fix only two of these three parameters. So, we let a be a free input variable, for the time being, and we calculate b and c as functions of a. Later, we will replace a by a different free parameter that has a clearer geometric meaning.
To further exploit symmetry, we define r=(r2+r1)/2 and d=(r2−r1)/2, i.e. r1=r−d and r2=r+d. With these definitions, the equations of our two circles become:
C
1:(x+1)2+y2=(r−d)2 (2)
C
2:(x−1)2+y2=(r+d)2 (3)
To find the points where the general conic intersects circle C1, we eliminate y2 from (1) and (2). This gives us
ax
2+2bx+c=(x+1)2−(r−d)2. (4)
If the conic and circle are tangent, then this equation will have repeated roots, so its discriminant will be zero. So, we equate the discriminant to zero, and solve for c. Then, after substituting m=a−1, for brevity, we get:
Similar reasoning with circle C2 gives:
We equate the two expressions for c from (5) and (6), and solve for b:
b=dmr. (7)
We can substitute this value of b back into either (5) or (6) to get c as a function of m alone:
If we substitute b from (7) and c from (8) back into (4), we get an equation that we can solve to obtain the x-coordinate of the tangency points on circle C1. Straightforward calculations show that these tangency points (x1, y1) are given by:
Similar computations show that the tangency points (x2, y2) on circle C2 are given by
The correspondence between the sign of parameter a and of another parameter g=b2/a−c was discussed in Jia Jinyuan, Joneja Ajay, Tang Kai. Revolute quadric decomposition of canal surfaces and its applications. In: Computational science—ICCS 2005. 2005. p. 95-104.
However, Jia does not specifically state the minimum and maximum values of a that bound the valid set of profiles. By “valid,” we mean a profile that is tangent to the two given circles and produces a singly connected solid of revolution. For example,
The equation of our third circle, C3, is x2+y2=(r+t)2. The conic is tangent to the circle C3 if
Since m=a−1, we can compute a in terms oft and use t as the controlling parameter.
The minimum value of t will correspond to the hourglass shape, and can be computed by equating amin to a(t) from Eq. (12), which considering r+tmin>0 gives:
t
min
=d−r. (13)
The max value of t will correspond to the elliptical shape when the profile curve loses tangency with the smaller circle. It can be computed by equating amax to a(t) from Eq. (12). This gives a quadratic in t, and we pick the larger root:
t
max
=−r+√{square root over (d2+(r−d)(r+1))}. (14)
Observe that neither a, nor t provide a direct control over the min or max cross-section of the beam. This cross-section is referred to herein as the “waist” of the beam and the corresponding beam diameter as waist-thickness ω. For example, observe that even though mid-circle has non-zero radius, the waist-thickness ω is close to zero. We compute waist thickness by writing Eq. (1) in the canonical form, i.e.:
We solve for y at x=−b/a, and compute waist position and thickness in terms of parameter a:
ω(a)=2√{square root over (b2/a−c)}at(−b/a,0). (16)
We can then invert Eq. (16) to express a as a function of ω, but the equations are non-linear. Moreover, the waist can occur outside of the beam. We therefore recommend control by mid-circle tangency, i.e. by parameter t, for which the equations are relatively simple and the results are intuitive.
We reduce the biquador construction to two simpler problems, one on each side of Lm. In each sub-problem, we are given an axis A, a circle C (standing either for C1 or for C2) that has radius r, a point X, and a unit normal N. We want a symmetric conic Q that is tangent to C and that passes through X with normal N at X.
We choose the origin to be the center of C and axis A as the x-axis. We compute the equation of each quador as follows. From classical analytic geometry, we know that for any given λ the equation:
x
2
+y
2
−r
2+λ(x−d)2=0 (17)
represents a conic Q that is tangent to the circle C at the two points where it intersects the vertical line x=d. This conic passes through the given point X=(p, q) if:
p
2
+q
2
−r
2λλ(p−d)2=0. (18)
We then differentiate Eq. (17) to compute the slopes of the normal to the conic Q. At X, s=tan θ, which gives:
We then solve the system of Eqs. (18) and (19) to obtain:
A beam may be divided into two segments referred to herein as “stumps.” Each stump includes one of the spheres. Biquador beams are divided at the junction between the two quadors. Quador beams may be divided by a plane normal to the beam axis. For example, the dividing plane may be placed at equal distances from the surface of the two balls of the beam, or at the minimum waist location. Splitting a beam into stumps introduces a cap face in the shape of a disk at the end of each stump.
We organize the nodes and stumps of the lattice into an assembly of hubs, each comprising a node and its stumps, which are abutting their node with normal continuity.
The intersection of two general quadric surfaces is a space curve of degree 4. Its computation and processing have received much attention in the CAD and Computer Aided Geometric Design (CAGD) communities. However, the intersection curve of any two quadors of a hub is either empty or is a conic section, and hence planar. This fact follows from Salmon's observation in Art. 140 on page 137 of Salmon, George. A treatise on the analytic geometry of three dimensions, 7th ed., Hodges, Smith, and Company. 1927., where he states that “Two quadrics having plane contact with the same third quadric intersect each other in plane curves.” In the case of a hub, the first two quadrics are the curved faces of the stumps and the third quadric is the surface of the -ball of the hub.
We follow the common convention of using the same symbol to denote a polynomial expression and its zero set. So, for example, the symbol S might denote both the expression S(x, y, z)=x2+y2+z2−1, and the spherical surface {(x, y, z)∈R3:S(x, y, z)=0}.
A=√{square root over (λ1)}P1−√{square root over (λ2)}P2
B=√{square root over (λ1)}P1+√{square root over (λ2)}P2 (20)
If λi=0, then we have Qi=S, and such cases are of no interest to us. So, we will assume that √{square root over (λ1)}>0 and >√{square root over (λ2)}>0.
Let R be the center of sphere S. Using the techniques described above with respect to biquador beam construction, we can find the distance d from R to the plane P1. Then, if U is the unit vector along the axis of Q1 away from R, point R+dU lies on the plane P1. So, the plane P1 includes those points X satisfying the equation RX·U=d. Once P1 is known, we can equate coefficients in the identity Q1=S+λ1P12 to calculate λ1. The plane P2 and the scalar λ2 can be obtained by similar reasoning, and then Eq. (20) gives us the desired planes A and B containing the two intersection curves of the entire quadors.
As noted above, the intersection of two quadors of the same hub can be computed by intersecting either of them with a plane. So, in this section, we turn to the problem of intersecting quador Q with plane A.
The intersection of a quador with a plane, may be computed using general techniques that apply to intersection of any surface of revolution with a plane. However, the process may be simplified by taking advantage of the fact that the surface is a quadric-of-revolution. In most cases that occur in lattice geometry, the intersection curve is an ellipse E (see
Consider the plane H that is parallel to the axis of the quador Q and is normal to the plane A. Let L be the line of intersection of this plane and the plane A. We intersect L with the quadric Q to obtain two points F1 and F2. These are the end-points of the longer axis of the ellipse E. The center of the ellipse is therefore the point O=½(F1+F2). Next, we intersect Q with a line through O that is normal to the plane H. The resulting intersection points N1 and N2 are the end-points of the shorter axis of the ellipse. If I=OF1 and J=ON1, then the ellipse has the parametric equation: E(t)=O+I cos(t)+J sin(t).
The sections below discuss computing the boundary of a hub by trimming quadors with planes. The validity of such trimming hinges upon the special property of conics may be understood as follows. A well-known theorem of Brianchon states that for a quadrilateral with an inscribed conic, the lines connecting the points of tangency on pairs of opposite edges and the two diagonals of the quadrilateral intersect in a common point. A more general result known in the art extends Brianchon's results to the case of a conic quadrilateral, i.e. a quadrilateral whose opposite edges are segments of the same conic.
In this section, we discuss constructive and explicit representations of the hub and of its boundary, and also their use to support some common queries.
Each hub has a simple Constructive Solid Geometry (CSG) formulation: it is the union of its ball with its stump primitives, which of course may overlap. Each individual stump primitive, Si, is the intersection of three half-spaces: one quador half-space Qi and two planar half-spaces, Pi and Ei. Half-space Pi is bounded by the contact-plane, containing the contact circle between the quador and the ball. Half-space Ei, is bounded by the splitting-plane that we used to cut this stump from the other half of the beam. To illustrate this concept,
This CSG representation may be used to support an efficient and precise classification of candidate points, lines, or planes against the hub via the standard divide-and-conquer paradigm, where these candidates are classified against the primitives and the results combined according to the Boolean expression.
The boundary-diminishing property of CSG expressions guarantees that the boundary of a hub is a subset of the boundaries of its primitives. Hence, boundary evaluation of a hub amounts to trimming the faces of its constituent primitives: (1) the sphere that bounds the ball and (2), for each stump Si, the quadric surface Qi and, if desired, the cap disk in plane Ei.
The cap disk in Ei is, in its entirety, a face of the hub in a clean lattice, but does not contribute any two-dimensional portion to the boundary of the lattice, because it lies inside a beam. The cap disk in Pi always lies inside the ball. So the cap-disks need not be trimmed.
However, we do need to trim the spherical and the quador faces, their intersection curves, and the contact circles between the ball and the quadors.
In many contemporary Solid Modeling systems, such a trimming is performed using loops of edges. Sometimes, complex edges are approximated by spline curves defined in the parametric space of each face. This approach is complicated mathematically and numerically fragile; each edge might have 2 or 3 representations that are not geometrically identical, resulting in “cracks.” In the case of a hub of a clean lattice, we avoid these problems because we have a simple CSG representation of each hub, and a BRep where all faces and edges have simple mathematical descriptions.
Instead of bounding faces by loops of edges, we advocate using, whenever possible, a Constructive Solid Trimming (CST), where each face of the boundary of the hub is defined as the intersection of the corresponding primitive face with a specific solid, represented by a CSG expression. Having CSG expressions for trimming each face allows the classification of candidate points on the untrimmed face. It also makes it possible to use a multi-pass GPU algorithm to render the BRep with pixel accuracy or to obtain images of discretized planar cross-sections.
Various approaches may be used for computing trimming expressions. The sections that follow describe two example approaches: (1) Active Zone and (2) Trimming Polyhedron.
The Active Zone, Z(A), of a primitive A in the CSG expression E(A, B, C, . . . ) of a solid S identifies the point-set where changing A will affect S. Hence, the trimmed version of a face F of primitive A is the intersection F∩Z(A). In other words, Z(A) is the CST of A. Because the hub is the union of its primitives, the active zone of each primitive is the intersection of the complements of all the other primitives. For example, the CST of the ball is the complement of the union of the CSG formulations of its stumps. If a stump is represented as the intersection of a quador half-space with two linear ones, its complement is the union of their complements.
We prove below that the portion of the quador surface Qi, that corresponds to a face of the hub is the intersection of Qi with its Trimming Polyhedron, Ti, where Ti is the intersection of a specific set of linear half-spaces.
Hence, instead of the (CSG-based) CST expression discussed above, which involves several quadric surfaces, Ti may be used for queries on Si including boundary evaluation. Such a formulation has several benefits. First, it simplifies and accelerates CPU and GPU trimming. Second, it provides an exact expression of all the edges of the BRep as portions of conic sections. Third, it provides an exact expression of each vertex of the BRep as the intersection of a quador with a line. These benefits are significant. They hold when the lattice is clean (i.e. hubs are quasi-disjoint).
We have explained already how to compute the planes Pi and Ei that bound stump Si.
We have also explained how to compute the intersection-planes, A and B, (Eq. (20)), the union of which contains the intersection curve between stumps Si and Sj. Below, we prove that the intersection curve lies on plane A and propose a simple expression for the trimming polyhedron.
The normal of plane Ei is oriented such that the corresponding half-space Ei contains the center of the ball of the hub. Normal to plane Pi has the opposite direction. For clarity, we use Aij to denote the half-space bounded by plane A, whose normal is oriented such that its corresponding half-space Aij contains the active zone of primitive Si in the CSG formulation of the hub.
Theorem. The trimming polyhedron, Ti, of a stump Si is the intersection of a specific set of linear half-spaces: Pi, Ei, and the half-spaces Aij for all j≠i.
Note that some of these half-spaces may be redundant in the CST of stump Si. They can be identified, as such, through a straightforward process. Doing so may accelerate subsequent processing.
We now prove that the intersection curve of two stumps is contained in plane A and not in the plane B of Eq. (20). Consider the configurations of the two contact-planes P1 and P2 in
The conic section curve, C, along which the boundaries of Si and Sj intersect, lies on plane A. To trim C to the extent that is on the boundary of the hub, we need to compute its intersection with a modified version of the trimming polyhedron CST of stump Si, from which we have removed the half-space Aij.
A simple way of doing this trimming is to parameterize C, to compute parameter intervals defining the portion of C in each half-space of the modified CST, and to return the intersection of these intervals. The computation of the parameter interval for a given half-space, H, of the modified CST amounts to computing the intersection of C with a line L, where A and H intersect. Note that the trimmed version of C may have several connected components, each being a different edge of the hub.
The polyhedral CST for sphere S is the intersection of the complements of the contact half-spaces, Pi, of its stumps. Hence, its trimmed face is bounded by circular arcs of tangential contact with the quadors (as shown in
In previous sections, we have shown that the computational complexity of quador beams is no worse than cylinder or cone beams. However, from an engineering perspective, lattices constructed from quador beams have some significant advantages, which are described in this section.
In order to increase their strength-to-weight ratio, micro lattices are often optimized by varying the diameters of their nodes and beams. If a lattice has cylindrical beams, then the tangency condition that we have used means that all beams and all nodes will have the same diameter, so there is only a single variable that can be used in editing and optimization. Freedom can be increased by relaxing the tangency condition, but then beam/beam intersections become much more complex, and it is impossible to derive any computational benefit from the properties discussed herein.
For lattices with cone beams and with tangent node/beam junctions, thickness gradation can be achieved by changing the diameters of the nodes. This implicitly fixes the diameters of the beams. In particular, all beams that end at a given node must have the same end-diameter. With this approach, it is impossible to make beam thickness dependent on the beam orientation, which restricts opportunities for optimization.
In lattices with quador, biquador or multi-quador beams, beam diameters can be controlled independently of node diameters. For example, with quador beams, the thickening parameter t discussed above can be used as one of the design variables. The increased freedom does not adversely affect the complexity of the geometry at lattice nodes, while it provides a larger design space for optimization, better results can be achieved. For example, if a lattice is supporting a load, it is quite likely that an optimal design will have thin horizontal beams and thicker vertical ones. This is possible with quador beams, but not with conical ones as shown in
When optimizing a quador lattice, all of the individual node and beam diameters are potentially available for use as independent variables. However, a complex lattice may have billions of nodes and beams, so using individual diameters would give us far more variables than a typical optimization process could handle. A better approach is to use field functions to define node and beam diameters. So, for example, we might have two real-valued functions fN and fB that give us the node and beam diameters at any point in the lattice in terms of a few dozen design parameters. These parameters would be used as the independent variables in optimization processes, not the individual node and beam diameters. Additionally, it should be noted that the curved profiles discussed herein provide additional freedom to design topologically optimized structure.
Another advantage of using quador or biquador beams over cylinder or cone beams is that one can significantly vary the ratio of their surface area to volume. For example, the area/volume ratio of the quador beam in
Microlattices are also optimized by designing them as hierarchical or multilevel structures, essentially replacing each ball or beam of the lattice with a lattice and so on. We expect that quador, biquador, and multi-quadors may be useful at the coarsest level, i.e. level 1 to support overall aesthetics or functional design goals, at level 2 to support optimization that adjusts the thickness of individual beams while ensuring hub validity, and at the level 3 to help to redistribute mass.
The Design Computer 2020 executes a series of steps 2020A-2020E to generate a set of instructions for a 3D Printer 2015 to print a lattice. At step 2020A, a plurality of quador beams are generated within the CAD tool. For example, in some embodiments, the quador is a primitive within the CAD tool. Each quador beam comprises two spheres at opposing endpoints of the quador beam and each quador beam is bounded by a quadric surface of revolution around an axis of symmetry joining the center of the two spheres. The exact details of how each quador beam is designed can vary according to different embodiments using the techniques described above. For example, in some embodiments, the quador beams vary in length. In other embodiments, the two spheres included in each quador beam are defined with different radius values.
Next, each quador beam is divided into two stumps at step 2020B. In some embodiments, each quador beam is divided by a dividing plane normal to the quador beam. In other embodiments, the dividing plane is placed at equal distance from the two balls of the quador beam. Each stump comprises one of the two spheres included in the quador beam. At step 2020C, the Design Computer 2020 organizes the stumps and the balls of the lattice, into a plurality of hubs. Each hub comprises a plurality of stumps intersecting in a plane along a conic curve. The Design Computer 2020 generates a lattice structure as an assembly of the hubs at step 2020D. Finally, at step 2020E, instructions are generated for printing the lattice structure on the 3D Printer 2015. Techniques for translating 3D models to programming instructions for a 3D printer are generally known in the art, and such techniques are often dependent on the type of printer being employed. Thus, the techniques for translating the lattice structure to printing instructions are not discussed in detail herein
This computer network 2010 may be configured using a variety of hardware platforms. For example, the computer network 2010 may be implemented using the IEEE 802.3 (Ethernet) or IEEE 802.11 (wireless) networking technologies, either separately or in combination. In addition, the computer network 2010 may be implemented with a variety of communication tools including, for example, TCP/IP suite of protocols. In some embodiments, the computer network 2010 is the Internet. A virtual private network (VPN) may be used to extend a private network across the computer network 2010.
This 3-D Printer 2015 may generally be any three-dimensional printer generally known in the art. Additionally, in some embodiments, hybrid devices such as the big area additive manufacturing machines (BAMM) may be used which combine 3-D printing with computer numerical control (CNC) routing. Moreover, the general techniques presented in
Parallel portions of a deep learning application may be executed on the architecture 2100 as “device kernels” or simply “kernels.” A kernel comprises parameterized code configured to perform a particular function. The parallel computing platform is configured to execute these kernels in an optimal manner across the architecture 2100 based on parameters, settings, and other selections provided by the user. Additionally, in some embodiments, the parallel computing platform may include additional functionality to allow for automatic processing of kernels in an optimal manner with minimal input provided by the user.
The processing required for each kernel is performed by grid of thread blocks (described in greater detail below). Using concurrent kernel execution, streams, and synchronization with lightweight events, the architecture 2100 of
The device 2110 includes one or more thread blocks 2130 which represent the computation unit of the device 2110. The term thread block refers to a group of threads that can cooperate via shared memory and synchronize their execution to coordinate memory accesses. For example, in
Continuing with reference to
Each thread can have one or more levels of memory access. For example, in the architecture 2100 of
The embodiments of the present disclosure may be implemented with any combination of hardware and software. For example, aside from parallel processing architecture presented in
Unless stated otherwise as apparent from the following discussion, it will be appreciated that terms such as “applying,” “generating,” “identifying,” “determining,” “processing,” “computing,” “selecting,” or the like may refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. Embodiments of the methods described herein may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement embodiments of the present invention.
An executable application, as used herein, comprises code or machine-readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine-readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
A “graphical user interface” (GUI), as used herein, comprises one or more display images, generated by a display processor and enabling user interaction with a processor or other device and associated data acquisition and processing functions. The GUI also includes an executable procedure or executable application. The executable procedure or executable application conditions the display processor to generate signals representing the GUI display images. These signals are supplied to a display device which displays the image for viewing by the user. The processor, under control of an executable procedure or executable application, manipulates the GUI display images in response to signals received from the input devices. In this way, the user may interact with the display image using the input devices, enabling user interaction with the processor or other device.
The functions and process steps herein may be performed automatically or wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to one or more executable instructions or device operation without user direct initiation of the activity.
The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the invention to accomplish the same objectives. Although this invention has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be implemented by those skilled in the art, without departing from the scope of the invention. As described herein, the various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and/or combinations thereof. No claim element herein is to be construed under the provisions of 35 U.S.C. 112(f) the element is expressly recited using the phrase “means for.”
This application claims the benefit of U.S. Provisional Application Ser. No. 62/555,884, filed Sep. 8, 2017, which is incorporated herein by reference in its entirety.
This invention was made with government support under HR0011-17-2-0015 awarded by National Science Foundation. The government has certain rights in the invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/049356 | 9/4/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62555884 | Sep 2017 | US |