US 7098917 B2 Abstract A method of generating visual art includes providing a fractal object, which includes an initiator element, a set of generator elements and a set of parameters. The set of parameters are used to render a representation of the fractal object. The generator elements follow a rule. The method also includes replacing the initiator element with the set of generator elements by scaling and orientating the set of generator elements based on the initiator element. The method further includes replacing the generator element with the set of generator elements so that the set of generator elements replacing a generator element is oriented and scaled based on the generator element being replaced. The method includes iteratively replacing generator elements with the set of generator elements.
Claims(37) 1. A method of generating visual art, the method comprising:
providing a fractal object that includes an initiator element, a set of generator elements, comprised of fractal objects and a set of parameters, the set of parameters used to render a representation of the fractal object, with the set of parameters including a probability, q(0≦q≦1) that a generator element in the set of generator elements is used to replace a generator element, and with the generator elements following rules;
replacing the initiator element with the set of generator elements comprised of fractal objects, the set of generator elements being scaled and orientated based on the initiator element;
replacing at least one of the generator elements with the set of generator elements comprised of fractal objects, which are oriented and scaled based on the generator element being replaced; and
iteratively replacing generator elements with the set of generator elements comprised of fractal objects.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
using the initiator element as a generator element.
11. The method of
rendering a representation of the fractal object on a display device.
12. The method of
grouping fractal objects by an artistic personality.
13. The method of
editing the generator element of the fractal object.
14. The method of
re-rendering a group of fractal objects sequentially.
15. The method of
re-rendering a group of fractal objects randomly.
16. The method of
scaling subsequent fractal generator elements based on a formula and the initiator element.
17. The method of
re-rendering a group of fractal objects; and
specifying an order for rendering each fractal object and a location for each fractal object rendered.
18. The method of
19. The method of
20. An apparatus comprising:
a memory to store executable instructions for generating visual art; and
a processor to execute the executable instructions to:
provide a fractal object that includes an initiator element, a set of generator elements, comprised of fractal objects and a set of parameters, the set of parameters used to render a representation of the fractal object, with the set of parameters including a probability, q(0≦q≦1) that a generator element in the set of generator elements is used to replace a generator element, and with the generator elements following rules;
replace the initiator element with the set of generator elements, comprised of fractal objects the set of generator elements being scaled and orientated based on the initiator element;
replace at least one of the generator elements with the set of generator elements, comprised of fractal objects which are oriented and scaled based on the generator element being replaced; and
iteratively replace generator elements with the set of generator elements.
21. The apparatus of
22. The apparatus of
23. The apparatus of
24. The apparatus of
25. The apparatus of
26. The apparatus of
27. The apparatus of
28. The apparatus of
29. An article comprising a machine-readable medium that stores executable instructions for generating visual art, the instructions causing a machine to:
provide a fractal object that includes an initiator element, a set of generator elements, comprised of fractal objects and a set of pararmeters, the set of parameters used to render a representation of the fractal object, with the set of parameters including a probability, q(0≦q≦1) that a generator element in the set of generator elements is used to replace a generator element, and with the generator elements following rules;
replace the initiator element with the set of generator elements, comprised of fractal objects, the set of generator elements being scaled and orientated based on the initiator element;
replace at least one of the generator elements with the set of generator elements, comprised of fractal objects, which are oriented and scaled based on the generator element being replaced; and
iteratively replace generator elements with the set of generator elements.
30. The article of
31. The article of
32. The article of
33. The article of
34. The article of
35. The article of
36. The article of
37. The article of
Description This invention relates to generating visual art. Through the ages, art generation typically included an artist, a paint set, a paintbrush and a canvas. The artist would brush the paintbrush with paint onto the canvas copying what the artist was actually observing or what the artist visualized. Recent developments in computers and graphical software allow an artist to generate images with a mouse by moving a cursor across a screen and performing a series of point-and-click actions. Some art has been generated using fractals. Some fractals are based on mathematical equations. In one aspect, the invention is a method of generating visual art. The method includes providing a fractal object, which includes an initiator element, a set of generator elements and a set of parameters. The set of parameters are used to render a representation of the fractal object. The generator elements follow a rule. The method also includes replacing the initiator element with the set of generator elements by scaling and orientating the set of generator elements based on the initiator element. The method further includes replacing the generator element with the set of generator elements so that the set of generator elements replacing a generator element is oriented and scaled based on the generator element being replaced. The method includes iteratively replacing generator elements with the set of generator elements. In another aspect, the invention is an apparatus that include a processor and a memory, which stores executable instructions for generating art. The processor executes the executable instructions to provide a fractal object, which includes an initiator element, a set of generator elements and a set of parameters. The set of parameters are used to render a representation of the fractal object and the generator elements follow a rule. The processor also executes instructions to replace the initiator element with the set of generator elements by scaling and orientating the set of generator elements based on the initiator element. The processor further executes instructions to replace the generator elements with the set of generator elements so that the set of generator elements replacing a generator element is oriented and scaled based on the generator element being replaced. The processor also executes instructions to iteratively replace generator elements with the set of generator elements. In still another aspect, the invention is an article including a machine-readable medium that stores executable instructions for generating art. The instructions cause a machine to provide a fractal object, which includes an initiator element, a set of generator elements and a set of parameters. The set of parameters are used to render a representation of the fractal object. The generator elements follow a rule. The instructions cause a machine to replace the initiator element with the set of generator elements by scaling and orientating the set of generator elements based on the initiator element. The instructions cause a machine to further replace each generator element with the set of generator elements so that the set of generator elements replacing a generator element is oriented and scaled based on the generator element being replaced. The instructions cause a machine to iteratively replace generator elements with the set of generator elements. Some or all of the aspects of the invention described above may have some or all of the following advantages. The invention generates original art automatically. The user can choose options as to how the art is generated. The user can also edit objects using a graphical user interface. The art can be depicted in two-dimensions or three-dimensions. The art can be used to uniquely to form a variety of objects including human faces and parts of nature. Referring to System Fractal objects are more complex than conventional fractal and fractal objects can be stored and reused. In system Referring to In a determinate fractal, every line is always replaced with every component, e.g., line, circle or other geometric shape, of the fractal generator. That is, the probability that each line is replaced with the fractal generator is equal to 1. In an indeterminate fractal, the probability that each line is replaced with the fractal generator is less than 1. Alternatively, a probability may be assigned to each line in the fractal generator. Determinate fractals provide interesting geometric patterns. Indeterminate fractals are potentially more useful in that they can model the inherent chaotic nature of “natural” phenomena such as landscapes, coastlines, clouds, trees, vegetation, rocks, skin, hair, and other natural surfaces and textures. Referring to Referring to FIGS. In this embodiment, the default is to have the start point of the first object in the fractal generator correspond with the start point of the object it is replacing and the end point of the last object in the fractal generator correspond with the end point of the object it is replacing. However, the user may change the default so that the start point and the endpoint of the first object and the fractal generator do not correspond. Like conventional fractals, some objects may be determinate objects in which case the objects always look the same for a given set of input parameters (size, orientation, etc.), although their size and orientation will vary from instance to instance. Other objects are indeterminate in that each rendering will look different, but will share certain qualities. As an example, consider the following, all using indeterminate objects. A maple leaf object produces an image of a maple leaf. Each maple leaf rendered by the maple leaf object appears different, but all look like maple leaves. Another object could be a maple tree object, which uses the maple leaf object as part of its definition. Each maple tree rendered by the maple tree object would include many maple leaves, each rendered by the maple leaf object. Each maple tree is different (and not just because the leaves look different), but all nonetheless look like maple trees. A maple tree grove object could then be defined, with each maple tree grove rendered by the maple tree grove object including a set of maple trees. Another example of an indeterminate object would be an indeterminate human face object, which would use indeterminate objects representing different facial features (e.g., mouth object, nose object, eye objects, eyebrow objects); or a human figure object defined using different objects representing body parts. Many other examples are possible. Referring to In other methods of generating indeterminate objects, a user can also designate a probability less than 1 that an initiator element is replaced by the fractal generator. This has further implications as explained above in that each generator element being replaced by the fractal generator acts as an initiator element for the next generation image. Object library Object library In the fully automated mode, the “painting” is one object, which is defined in terms of other objects (which in turn are defined in terms of yet other objects, etc.). Each object is defined by the user (e.g., an “object designer,” an “artist personality designer”) using an interactive on-screen process. Artist Personality Artist personalities System System 2D Objects Referring to Not all fractal objects are intended to be expanded iteratively. For example, a face object may be defined to contain a fixed set of objects (e.g., one mouth, one nose, two eyes, etc.), and thus only one generation of expansion would be specified. The core of the definition of an object is the specification of the fractal generator. The fractal generator is considered to replace another object. Every object has a start and end point. In defining a fractal generator, the start point of the object being replaced is considered to be (x=0, y=0) and the end point is considered to be (x=1, y=1) (these are double precision floating point values). The objects in the fractal generator are scaled and oriented to correspond to the actual start and end points of the object being replaced. Fractal objects have parameters, which can affect their expansion. For example, a tube object may have a parameter called “width” which controls the width of the tube. A face object may have a parameter called “fatness” which controls the fatness of the face. Thus, each fractal object includes the initiator element, the fractal generator and a set of parameters that effect the representation of the fractal object. Users can see examples of their object as they define it on display The object definition process includes specifying a number of elements in dialog box Expanding probabilities field Referring to Level Generating field Other parameters that could be designated are the minimum and maximum number of generations of iterative expansion (with this min and max expressed as a formula using elements as specified below for point coordinates). In other embodiments, a different definition for the last generation of expansion is allowed. This allows, for example, a tree to be generated as a fractal expansion of tree limbs, with leaves provided at the end of the terminal branches. The number of objects in the fractal generator can also be specified. In addition there are a number of ways to specify the start and end point of an object. There are four options: absolute coordinates, relative coordinates, a formula and two-dimensional regions specified by formulas. Note that of the four options below, each is a generalization of the previous options. Thus, the last option, two-dimensional regions specified by formula, covers all of the previous options. Nonetheless, the user is given these four choices, and is guided interactively through the specifications required for each choice. For the first option using absolute coordinates, the start and end points of the object being replaced are (0, 0) and (1, 1) respectively. For the second option, relative coordinates, the coordinates are relative to the start and end points of other earlier objects in this fractal generator. For example, the second object in the fractal generator can specify its start point and/or end point relative to the start point and/or end point of the first object in the fractal generator. Note that points may be specified in relation to other points either in terms of rectangular coordinates, or by angular coordinates. The third option uses a formula. The formula option has a number of elements. Definitions of an object can use formulas using these elements such as: absolute coordinates, start and end points of earlier objects in this fractal generator, measurements of the object being replaced (or supplemented) by this fractal generator (such as width, depth, area), measurements of earlier objects in this fractal generator (such as width, depth, area), parameters of this object, the coordinates of the end point may be specified in terms of the coordinates of the start point, and random numbers. In the fourth option, two-dimensional regions are specified by the formulas. A region can just be a circle, but other shapes can be added. At the time of expansion, the point is selected randomly from the two-dimensional region. Different shadings of the region can be specified. The shading specifies the likelihood of different points in the region. For example, if a circular region is specified with a shading that is darkest in the middle and which becomes lighter towards the outer edge of the circular region, then points near the center of the region are more likely to be selected than points near the edge of the region. Other parameters that can be chosen by the user include specifying the type of object. The object is specified as one of the following: a previously defined object, a hand drawn drawing, and primitive objects. The previously defined object is specified by name and is stored in object library Certain primitive objects are provided by the system such as a line, which requires one thickness parameter; a Bezier curve, which requires one curvature parameter and one thickness parameter; and a circle arc, which requires one curvature parameter and one thickness parameter. Parameters for the object if required are specified as formulas using the same types of elements as the specification of the start and end point coordinates. The user can also perform fractal generation using color specifications. For example, color can be selected by a user to specify a start color (chosen from the palette of all colors), a region of variation within the color circle, and a rate of variation. For example, the user can designate a color for the initiator element, a color for each generator element in the fractal generator and a color for each image generated. Editing Fractals Referring to Referring to Re-Rendering Fractals Referring to 3D Objects System The object definition process interactively specifies a number of elements, similarly to the two-dimensional objects indicated above with some differences describe below. For each such object there are options that include the start and end point of the object that include the absolute coordinates, relative coordinates, formulas, and 3D specified by formula. Of the options, each is a generalization of the previous options. Thus, the last option (3D specified by formula) covers all of the other options. Nonetheless, the user is given choices, and is guided interactively through the specifications required for each choice. For absolute coordinates option, system A formula option uses the following elements and all definitions of an object can use formulas using these elements: absolute coordinates, start and end points of earlier objects in this fractal generator, measurements of the object being replaced (or supplemented) by this fractal generator (such as width, depth, area), measurements of earlier objects in this fractal generator (such as width, depth, area), parameters of this object, coordinates of the end point are specified in terms of the coordinates of the start point, and random numbers Three-dimensional regions specified by the formula option can have a region be a sphere. In other embodiments other shapes are added. At the time of expansion, the point is selected randomly from the three-dimensional region. Different shadings of the region can be specified. The shading specifies the likelihood of different points in the region. For example, if a spherical region is specified with a shading that is darkest in the middle and which becomes lighter towards the outer edge of the spherical region, then points near the center of the region are more likely to be selected than points near the edge of the region. The object can be specified either as a previously defined object, a hand drawn object, which require a thickness parameter, or certain primitive objects. A previously defined object is specified by name would be one of the objects from object library A hand drawn drawing (requires a thickness parameter) is done on a plane, and the orientation of the plane is specified. In other embodiments system The certain primitive objects are provided by the system and include a line, which requires one thickness parameter; a Bezier curve, which requires one curvature parameter and one thickness parameter; a circle arc, which requires one curvature parameter and one thickness parameter; a pipe, which may have one of a variety of cross sectional shapes (circle, triangle, square, etc.). For a pipe, the user selects a type of surface, which includes the parameters of thickness and curvature. The user can also specify how the pipes are joined. Other primitive objects include basic three-dimensional objects such as rectangular solid, spherical solid, conical solid, elliptical solid, etc. The user selects a type of surface. Parameters for these include dimensions and curvature when applicable. Other parameters for the object can be specified if required. These are specified as formulas using the same types of elements as the specification of the start and end point coordinates above. Color of the object is specified as a start color, a region of variation within the color circle, and a rate of variation. The 3D image is rendered onto the 2D screen by specifying the six dimensions of a viewpoint where a point in space is defined by three degrees of freedom, a direction of view is defined by two degrees of freedom, and an angle of view (telephoto to wide angle) is defined by one degree of freedom. The viewpoint can be fixed (as is the case for a conventional fixed painting with perspective), or can move dynamically. The movement can be defined by the user in real-time, or can be automated (with user specified parameters). Modes System In a third example, the user can watch the painting evolve as it is produced. Thus, some lines and colors are applied, then removed, and replaced with other lines and colors, and so on. The human viewer thus sees the system System In another mode, system In other embodiments, one or more of the modes above can be incorporated in a screensaver displaying images on monitor Fractal Object Data Structure Referring to Computer Process Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language. Each computer program may be stored on a storage medium (article) or device (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform process The process is not limited to the specific embodiments described herein. For example, system Other embodiments are also within the scope of the following claims. Patent Citations
Referenced by
Classifications
Legal Events
Rotate |