Generating a stroke with gravity-based fluid flow

By simulating the gravity characteristics on a virtual canvas through a fluid flow system, brushstrokes with the appearance of watercolor paint are generated, solving the problem that traditional technologies cannot simulate gravity-related effects and improving the realism and aesthetic expression of virtual painting.

CN122492859APending Publication Date: 2026-07-31ADOBE INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ADOBE INC
Filing Date
2025-11-13
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

Existing painting applications cannot generate realistic brushstrokes with the appearance of watercolor paint in virtual environments, and traditional fluid simulation technology lacks gravity-related effects, resulting in virtual paintings lacking realism and aesthetic flaws.

Method used

By determining gravity characteristics based on the texture and orientation of a virtual canvas through a fluid flow system, and using algorithms to simulate the interaction between fluid and canvas, brushstrokes with the aesthetics of watercolor paints are generated, including dripping, flowing, and spreading edges.

Benefits of technology

It achieves the simulation of the flow effect of real watercolor paint on a virtual canvas, enhancing the realism and aesthetic expressiveness of virtual painting.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122492859A_ABST
    Figure CN122492859A_ABST
Patent Text Reader

Abstract

Embodiments of this disclosure relate to generating brushstrokes with gravity-based fluid flow. In an implementation of the technique for generating brushstrokes with gravity-based fluid flow, a computing device implements a fluid flow system to receive input brushstrokes on a virtual canvas. The fluid flow system uses an algorithm based on the geometry on the virtual canvas to determine gravity features involved in simulated fluid interaction with the virtual canvas. Based on the gravity features, the fluid flow system generates brushstrokes simulating fluid interaction on the virtual canvas based on the shape of the input brushstrokes. The fluid flow system then renders the brushstrokes on the virtual canvas in a user interface.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Painting applications help generate computer graphics, including detailed artworks for display in user interfaces or for printing media. Painting applications involve receiving virtual painting strokes that together form a virtual painting. However, virtual strokes are often uniform and appear computer-generated. For example, virtual painting strokes lack the imperfections that contribute to the typical organic aesthetics of real-life painting. Therefore, painting applications result in visual inaccuracies, errors, and computational inefficiencies in real-world scenes. Summary of the Invention

[0002] The techniques and systems for generating brushstrokes with gravity-based fluid flow are described. In the example, the fluid flow system receives input brushstrokes on a virtual canvas.

[0003] Fluid flow systems use algorithms based on the geometry of a virtual canvas to determine gravity features involved in simulated fluid interactions with the virtual canvas. For example, the geometry of the virtual canvas describes a texture, and fluid interactions on the virtual canvas are based on that texture. In some examples, gravity features are based on input selection of the texture type of the virtual canvas. Furthermore, in some examples, gravity features are based on input selection of the orientation of the virtual canvas. Additionally, some examples involve generating gravity maps that describe the effects of gravity features related to portions of the virtual canvas.

[0004] Based on gravity characteristics, the fluid flow system generates brushstrokes that simulate fluid interactions on a virtual canvas, based on the shape of the input stroke. In some examples, fluid interactions on the virtual canvas involve determining the simulated surface tension of the fluid on the virtual canvas. For example, fluid interactions on the virtual canvas are based on the input selection attribute of the virtual fluid in the input stroke. Furthermore, in some examples, fluid interactions on the virtual canvas involve determining the simulated dripping of the virtual fluid based on gravity characteristics. The fluid flow system then renders the brushstrokes on the virtual canvas in the user interface.

[0005] This invention provides a simplified summary of some concepts that will be further described in the following detailed description. Therefore, this summary is not intended to identify essential features of the claimed subject matter, nor is it intended to help determine the scope of the claimed subject matter. Attached Figure Description

[0006] The accompanying drawings provide a detailed description. The entities shown in the drawings refer to one or more entities, and therefore, the single or multiple entity forms may be referred to interchangeably in the discussion.

[0007] Figure 1This is an illustration of a digital media environment in an example implementation that can be operated to employ techniques and systems as described herein for generating brushstrokes with gravity-based fluid flow.

[0008] Figure 2 A system in an exemplary implementation is depicted, illustrating the operation of a mesh-advancing module for generating brushstrokes with gravity-based fluid flow.

[0009] Figure 3 An example of receiving input including strokes on a virtual canvas is depicted.

[0010] Figure 4 An example is depicted for determining the gravity characteristics involved in fluid interaction with a virtual canvas.

[0011] Figure 5 An example of generating brushstrokes based on gravity features and textures of a virtual canvas is depicted.

[0012] Figure 6 An example of generating brushstrokes based on gravity features and the orientation of a virtual canvas is depicted.

[0013] Figure 7 The process in an example implementation of generating brushstrokes with gravity-based fluid flow is described.

[0014] Figure 8 The process in an additional example implementation of generating brushstrokes with gravity-based fluid flow is described.

[0015] Figure 9 An example system is shown, comprising various components of an example device that can be implemented as a reference. Figures 1 to 8 Any type of computing device described and / or used to implement the various embodiments of the techniques described herein. Detailed Implementation Overview

[0016] Painting apps allow for the generation of detailed artwork in computer graphics. For example, a painting app offers multiple options for brush size and paint color, and receives input strokes from the user's drawing on a virtual canvas. However, painting apps are limited to creating strokes with smooth edges that have almost no visual difference. This is problematic when users want to create artwork with the look of watercolor art. In practical terms, watercolor paint is water-based, resulting in fluid flow that causes imperfections on paper or canvas. For example, watercolor paint flows around bumps and into depressions that form the texture of the canvas, and drips depending on the orientation of a real-life canvas. Artists who want the convenience of using painting apps to create virtual paintings on a virtual canvas while maintaining the realistic look of watercolor paint seek out these imperfections.

[0017] Traditional fluid simulation techniques can simulate fluid flow based on the temperature-dependent flow of rapidly moving fluids or dense liquids. However, fluid velocity and temperature are irrelevant to simulating watercolor brushstrokes involving thin liquid layers, making traditional fluid simulation techniques unsuitable for generating realistic brushstrokes in a user interface. Therefore, traditional fluid simulation techniques cannot simulate the fluid flow of watercolor paint in a virtual environment.

[0018] Techniques and systems for generating brushstrokes with gravity-based fluid flow that overcome these limitations are described. For example, gravity features related to how fluids interact with a virtual canvas to generate brushstrokes mimicking the appearance of watercolor paint are identified. By generating brushstrokes based on gravity features, the brushstrokes are configured to simulate realistic fluid flow based on a simulated texture of the canvas, giving the appearance of watercolor paint and which cannot be replicated by existing physics-based models. Conversely, conventional fluid simulation techniques cannot simulate gravity-related effects, including dripping, and therefore cannot generate brushstrokes that mimic the appearance of watercolor paint.

[0019] In this example, the fluid flow system begins by receiving input including strokes on a virtual canvas displayed in the user interface. Strokes indicate the intended brushstrokes to be displayed in the user interface and are input via waving, dragging, tapping, or other gestures relative to the virtual canvas displayed in the user interface. For example, a virtual canvas is a designated portion of a user interface used to virtually draw or paint digital media.

[0020] In this example, the fluid flow system is configured to determine gravity characteristics based on the canvas texture type. The canvas texture type describes the type of virtual texture represented on the virtual canvas. While the canvas texture type affects how simulated fluids (e.g., watercolor paint) interact with the virtual canvas, in some examples, the texture of the virtual canvas may be visible or invisible, depending on the user input selection. The fluid flow system utilizes an algorithm to determine gravity characteristics, which describes how the fluid flows relative to areas of the virtual canvas based on the canvas texture type and / or the orientation of the virtual canvas. Because the virtual canvas in this example is a virtual representation in the user interface, in some examples, the fluid flow system receives additional input specifying the orientation of the virtual canvas or the canvas texture type of the virtual canvas. Therefore, in some examples, when the virtual canvas is tilted or vertically positioned, the fluid flows around bulges, enters depressions, or drips along the surface of the virtual canvas.

[0021] The fluid flow system is also configured to generate brushstrokes based on gravity features. For example, brushstrokes visually simulate fluid interactions on a virtual canvas based on gravity features. To this end, the fluid flow system uses an algorithm to determine simulated fluid flow at brushstroke boundaries based on gravity features. For example, the fluid flow system analyzes gravity features and predicts the behavior of fluid dripping, flowing, and spreading across the virtual canvas accompanying the brushstroke.

[0022] The fluid flow system then generates output including brushstrokes. Each brushstroke has the overall shape of a stroke, with boundary edges that simulate real fluid flow based on the texture or orientation of the virtual canvas (including how the simulated fluid drips, flows, and spreads across the virtual canvas). For example, a brushstroke might have the appearance of a hand-painted watercolor.

[0023] Generating brushstrokes with gravity-based fluid flow in this way overcomes the limitations of traditional fluid simulation techniques, which lack the gravity factor and therefore cannot generate brushstrokes that simulate the appearance of watercolor paints. For example, determining the gravity characteristics related to how the fluid interacts with the virtual canvas leads to the generation of realistic brushstrokes with the aesthetics of watercolor paints. For these reasons, generating brushstrokes with gravity-based fluid flow is more accurate and produces more aesthetically pleasing results compared to traditional fluid simulation techniques.

[0024] In the following discussion, an example environment employing the techniques described herein is described. Example procedures executable in the example environment, as well as in other environments, are also described. Therefore, the execution of the example procedures is not limited to the example environment, and the example environment is not limited to the execution of the example procedures. Example Environment

[0025] Figure 1 This is an illustration of a digital media environment 100 in an example implementation, operable to employ the techniques and systems described herein for generating brushstrokes with gravity-based fluid flow. The illustrated digital media environment 100 includes a computing device 102, which can be configured in various ways.

[0026] Computing device 102 can be configured as, for example, a desktop computer, a laptop computer, a mobile device (e.g., a handheld configuration such as a tablet or mobile phone), an augmented reality device, etc. Therefore, the range of computing device 102 extends from fully-resourced devices with abundant memory and processor resources (e.g., personal computers, game consoles) to low-resourced devices with limited memory and / or processing resources (e.g., mobile devices). Furthermore, while a single computing device 102 is shown, computing device 102 also represents multiple different devices, such as those used by an enterprise to perform tasks such as… Figure 9 The multiple servers described in the text as operating "in the cloud".

[0027] The computing device 102 also includes an image processing system 104. The image processing system 104 is implemented at least partially in the hardware of the computing device 102 to process and represent digital content 106, which is shown to be maintained in the memory 108 of the computing device 102. Such processing includes the creation of the digital content 106, the representation of the digital content 106, the modification of the digital content 106, and the presentation of the digital content 106 for display in the user interface 110 for output, for example, by the display device 112. Although illustrated as being implemented locally at the computing device 102, the functionality of the image processing system 104 can also be configured, in whole or in part, via features available through the network 114, such as portions of a web service or “in the cloud.”

[0028] The computing device 102 also includes a fluid flow module 116, which is illustrated in conjunction with the image processing system 104 to process digital content 106. In some examples, the fluid flow module 116 is separate from the image processing system 104, for example in instances where the fluid flow module 116 can be accessed via a network 114.

[0029] The fluid flow module 116 is configured to generate brushstrokes 118 that mimic the aesthetics of watercolor paint strokes. For example, the fluid flow module 116 first receives input 120 including strokes 122 on the canvas 124. Strokes 122 are input, for example, through interaction with a touch or non-touch display device, from touch, drag, drawing, or other input. Here, strokes 122 represent portions of a drawing desired to be rendered with the aesthetics of watercolor paint. The canvas 124 is a virtual painting or drawing surface that includes simulated textures. In this example, for example, the texture is a virtual representation of watercolor paper or other textured surfaces. The texture of the canvas 124 includes various bumps and depressions that contribute to the uneven surface of the canvas 124.

[0030] Because the texture of canvas 124 results in uneven brushstroke edges and / or drips in real-life scenarios, the fluid flow module 116 mimics the aesthetics of real-life brushstrokes based on the geometry of canvas 124, which involves the texture or orientation of canvas 124. To this end, the fluid flow module 116 determines gravity features 126 associated with canvas 124 based on the texture or orientation of canvas 124. Gravity features 126 describe how fluid flows relative to areas of canvas 124, based on the texture and / or orientation of canvas 124. In some examples, for instance, when canvas 124 is tilted or vertically positioned, fluid flows around bulges, enters recesses, and / or drips along the surface of canvas 124. Because canvas 124 in this example is a virtual representation of a canvas, in some examples, the fluid flow module 116 receives additional input specifying the orientation of canvas 124 and / or the type of canvas texture of canvas 124.

[0031] The fluid flow module 116 generates brushstrokes 118 based on strokes 122 and gravity features 126. For example, the fluid flow module 116 uses an algorithm configured to determine the boundary edges of brushstrokes 118 based on gravity features 126, simulating fluid flow. Brushstrokes 118 have the overall shape of strokes 122, and their boundary edges simulate realistic fluid flow based on the texture and / or orientation of the canvas 124, including how simulated fluid drips, flows, and diffuses around brushstrokes 118 on the canvas 124. For example, brushstrokes 118 have the appearance of hand-painted using watercolor paints.

[0032] The fluid flow module 116 then generates an output 128 including brushstrokes 118, further examples of which are described in the following sections and shown in the corresponding figures. For example, brushstrokes 118 are displayed in the user interface 110, regardless of whether the texture of the canvas 124 is visible or not. In some examples, brushstrokes 118 are then further incorporated into an additional medium.

[0033] Generally, the functions, features, and concepts described with respect to the examples above and below are used in the context of the exemplary processes described in this section. Furthermore, the functions, features, and concepts described with respect to the different figures and examples in this document are interchangeable and are not limited to implementations within the context of a particular figure or process. Additionally, the boxes associated herein with different representative processes and corresponding figures can be applied and / or combined in different ways. Therefore, the individual functionalities, features, and concepts described herein with respect to different instance environments, devices, components, illustrations, and steps can be used in any suitable combination and are not limited to the specific combinations represented by the examples listed in this specification.

[0034] Figure 2 The example implementation of system 200 is depicted, which shows in more detail... Figure 1 The operation of the fluid flow module 116. The following discussion describes the techniques that can be implemented using the aforementioned system and apparatus. Aspects of each process are implemented in hardware, firmware, software, or a combination thereof. These processes are shown as a set of boxes specifying operations performed and / or caused by one or more devices, and are not necessarily limited to the order shown for the operations performed by the respective boxes. In the sections of the following discussion, references are made to... Figures 1 to 9 .

[0035] In this example, the fluid flow module 116 begins by receiving input 120 including strokes 122 on a canvas 124. For example, stroke 122 is a marker or other indicator of an input gesture associated with drawing movements via the user interface 110. Stroke 122 is input regarding the canvas 124, a designated portion of the user interface 110 used to virtually draw or paint digital media. Additionally, in some examples, stroke 122 refers to a draft stroke whose outline or path corresponds to an indication displayed in the user interface 110. For example, a draft stroke represents the overall shape of stroke 122 for edge editing to generate brushstrokes 118.

[0036] The fluid flow module 116 includes a gravity module 202. In this example, the gravity module 202 is configured to determine gravity features 126 based on canvas texture type 204. Canvas texture type 204 describes the type of virtual texture represented on canvas 124. Although canvas texture type 204 affects how simulated fluids (e.g., watercolor paint) interact with canvas 124, in some examples, the texture of canvas 124 may be visible or invisible. The gravity module 202 utilizes algorithm 206 to determine gravity features 126, which will be referred to below. Figure 4 To explain in more detail. For example, gravity feature 126 describes how the fluid flows relative to an area of ​​canvas 124 based on canvas texture type 204 and / or the orientation of canvas 124. In some examples, for instance, when canvas 124 is tilted, skewed, or vertically positioned, the fluid flows around a protrusion, enters a depression, and / or drips along the surface of canvas 124. Because canvas 124 in this example is a virtual representation of a canvas, in some examples, fluid flow module 116 receives additional input specifying the orientation of canvas 124, the tilt angle of the canvas, and / or the canvas texture type of canvas 124, as selected by the user.

[0037] The fluid flow module 116 also includes a brushstroke module 208 configured to generate brushstrokes 118 based on gravity features 126. For example, brushstrokes 118 simulate fluid interactions on canvas 124 based on gravity features 126. To this end, the fluid flow module 116 uses algorithm 206, which is configured to determine simulated fluid flow for the boundaries of brushstrokes 118 based on gravity features 126. For example, brushstroke module 208 analyzes gravity features 126 and predicts the behavior of fluid dripping, flowing, and spreading on canvas 124 accompanying brushstrokes 122.

[0038] In some examples, algorithm 206 is a machine learning model trained to determine gravity features 126 and generate brushstrokes 118 based on gravity features 126. For example, the machine learning model is trained on real-world examples of fluid flow associated with different paints (including watercolors) on different canvas types. For example, different canvas types have different geometries, including textures and / or orientations. By observing fluid flow behavior on different canvas types, the machine learning model is trained to predict brushstrokes 118 corresponding to the gravity features 126 of the different canvas types.

[0039] The fluid flow module 116 then generates an output 128 including brushstrokes 118. Brushstrokes 118 have the overall shape of strokes 122, and their boundaries are based on the texture and / or orientation of the canvas 124 to simulate realistic fluid flow, including how simulated fluid drips, flows, and diffuses on the canvas 124. For example, brushstrokes 118 have the appearance of hand-painted using watercolor paints.

[0040] Figures 3 to 6 The diagrams illustrate the stages involved in generating brushstrokes with gravity-based fluid flow. In some examples, the stages depicted in these diagrams are performed in a different order than described below.

[0041] Figure 3 An example 300 is shown receiving input including strokes on a virtual canvas. As shown, the fluid flow module 116 receives input 120 including strokes 122 on a canvas 124. In this example, stroke 122 is a drawing stroke that is part of a virtual painting of a pumpkin. The virtual painting in this example includes multiple strokes of various shapes, sizes, and colors received as input as part of a drawing application. For example, in addition to various selectable colors and widths for drawing or painting stroke 122, the user interface 110 also displays a canvas 124 configured for drawing or painting. For example, stroke 122 corresponds to a waving, tapping, dragging, or other movement received via a touchscreen display, simulating a mouse or other computational input mechanism.

[0042] In this example, user interface 110 is also configured to present an option for canvas texture type 204 and receive a selection of canvas texture type 204. Canvas texture type 204 indicates the virtual texture drawing or painting surface used for the input strokes 122. As shown in this example, the selection of canvas texture type 204 includes watercolor paper, textured canvas, flat paper, and parchment, as presented in user interface 110. Input 120 in this example includes the selection of watercolor paper as canvas texture type 204. In some examples, fluid flow module 116 is also configured to present an option for different fluid-based pigments used to generate brushstrokes 118 and receive a selection of said different fluid-based pigments, including watercolor paints or other types of pigments. For example, different fluids have different levels of absorbency that affect flow.

[0043] Additionally, in this example, input 120 includes instructions to generate a stroke with the appearance of watercolor paint or other fluid-based pigments. For example, stroke 122 currently has a shape with smooth edges, which approximates a line drawn by the user on user interface 110. However, the user desires stroke 122 to have an organic appearance that mimics watercolor paint, characterized by flowing, uneven edges. This is because watercolor paint is water-based and therefore flows unevenly on the painting surface, influenced by the texture and / or orientation of the painting surface. Therefore, in some examples, input 120 receives instructions to convert stroke 122 into brushstroke 118 in user interface 110.

[0044] Figure 4 Example 400 depicts the determination of gravity characteristics involved in fluid interaction with a virtual canvas. Figure 4 yes Figure 3 A continuation of the example described herein. Upon receiving input 120, which includes strokes 122 on canvas 124, gravity module 202 of fluid flow module 116 determines gravity features 126 relating to the interaction between the fluid and canvas 124.

[0045] To determine gravity feature 126, gravity module 202 uses algorithm 206 configured to analyze the geometry of canvas 124 to determine a gravity map corresponding to canvas 124. In this example, canvas 124 includes protrusions 402, depressions 404, and other texture features that contribute to the uneven surface of canvas 124. Flow direction 406 is influenced by protrusions 402 and depressions 404 because fluid characteristically flows around protrusions 402 and into depressions 404. For example, the gravity map depicts the flow direction 406 relative to the protrusions 402, depressions 404, or the geometry and texture of canvas 124.

[0046] Because Algorithm 206 is configured to determine the gravity characteristics 126 associated with the fluid flow of simulated watercolor paint, Algorithm 206 is based on slow laminar flow, which is a flow lacking turbulence and simulates the flow of watercolor paint. Algorithm 206 is also known as the Thin Fluid Equation, which has an additional gravity term and is partially derived from the Navier-Stokes equations: The addition of the gravity vector allows algorithm 206 to model the flow over small deformations of the surface and thus take into account moderate effects.

[0047] Furthermore, the equation was rewritten to make it dimensionless. To do this, the equation was scaled to make it dimensionless, taking into account the height of the fluid passing far behind the front. To scale the fluid Height: Horizontal dimension: also according to the so-called parameters: Scaling. This was rewritten as: .

[0048] To derive the equation for rarefied fluids The additional dimensionless parameter is This parameter It is capillary length Capillary length balances capillary force with gravity.

[0049] Define the velocity scale as Another physical parameter, the dimensionless capillary number, is Capillary number balances viscous forces and capillary forces. and Replacing them with their dimensionless values, the following equation is derived (symbols omitted for clarity). ): This produces a set of three parameters for interpretation.

[0050] Traditional physics techniques primarily focus on the accurate modeling of wave instability and high Reynolds number flows. When considering problems involving fingering instability and low Reynolds numbers, traditional physics techniques treat the gravity vector as a constant and account for a fixed non-zero tilt angle. In contrast, generating strokes with gravity-based fluid flow involves the gravity vector and is therefore represented as… ,in For a constant tilt angle, this yields the following equation:

[0051] Then identify the scaling rules, and make the scaling rules , ,as well as They are related to each other. For example, choosing a scaling rule makes the different terms of the equation have the same order of magnitude. In this case, and The equation for Algorithm 206 is then written as:

[0052] In this example, gravity feature 126 represents the gravity that influences the flow of fluid relative to the protrusions 402 and recesses 404 of canvas 124. For example, the gravity map indicates the flow direction 406 around the protrusions 402 and into the recesses 404 on canvas 124. In some examples, the gravity map includes a field of view or arrow indicating the flow direction 406, which affects the generation of brushstrokes 118, as discussed below.

[0053] Figure 5 Example 500 depicts brushstrokes generated based on the gravity features and textures of a virtual canvas. Figure 5 yes Figure 4 A continuation of the example described herein. After determining the gravity feature 126, the fluid flow module 116 uses the stroke module 208 to generate strokes 118 based on the shape of strokes 122, which simulate fluid interaction on the canvas 124 based on the gravity feature 126.

[0054] Watercolor paints possess a unique aesthetic that is mimicked by brushstrokes 118 generated by brushstroke module 208. For example, watercolor paints are influenced by the interaction between the canvas and the water-based paint. The canvas is made of absorbent cellulose fibers and has small bumps and depressions, creating a complex surface. This results in anisotropic flow of water in the watercolor paint, and the accumulation of pigment in depressions or other pits in the canvas. This interaction is simulated by canvas module 208 on a virtual version of the canvas, where the clean, straight edges of canvas 122 are replaced with flowing edges 502 as part of canvas 118.

[0055] To generate a brushstroke 118 including a flowing edge 502, the brushstroke module 208 uses algorithm 206, which takes into account surfaces whose height varies slightly with respect to their size. The gravity vector is applied to the canvas 124. The local coordinate representation. Considering another point on the canvas, the local coordinate vectors a priori have a slightly different tilt. Then, the gravity vector is expressed as such that .

[0056] Because physical quantities are represented in local space, changes in canvas height are translated into changes in the orientation of the gravity vector. This is to calculate the new coordinates. Using rotation matrix , making By utilizing the height map associated with the canvas, the global canvas base is calculated. Local base in To obtain the matrix using coordinates .

[0057] The equations are solved using the explicit Euler scheme. Two discrete operators are listed below, for example, Representing the spatial discretization step, fluid height field Discrete gradient and Laplace operator Defined as: gradient: Laplace:

[0058] The quantities of the equation are computed by combining these two discrete operators. For a given simulation step, the implementation first extracts neighboring values ​​and stores them in a local array for efficiency. Then, the different terms of the differential equation are estimated and the local fluid height increment is calculated. Then update the fluid height to... In order to choose the time step and space away from walking The value of the stability factor is ,in It is a constant.

[0059] As shown in this example, the brushstroke module 208 generates brushstrokes 118 based on the shape of brushstroke 122, which simulates fluid interaction on canvas 124 based on gravity feature 126. For example, brushstroke 118 for painting a pumpkin now has a flowing edge 502 that mimics a watercolor brushstroke. The flowing edge 502 depicts watercolor paint flowing into the recesses of canvas 124, thus generating an edge with an interlaced appearance.

[0060] As part of this, the fluid flow module 116 simulates surface tension in some examples to generate brushstrokes 118. This is because surface tension relates to how watercolor paint interacts with the canvas 124. Water has a high surface tension, causing it to form viscous droplets rather than spreading uniformly. When water is mixed with pigment to generate watercolor paint, this surface tension affects how the paint flows, holding the pigment particles together while resisting diffusion. The texture and absorbency of the canvas 124 further influence this interaction. On highly absorbent paper, the advantage of surface tension decreases as the paint sinks into the fibers, resulting in less significant diffusion. Conversely, smoother, less absorbent paper enhances the surface tension effect, leading to more significant diffusion and water accumulation. Because different fluid-based pigments have different absorbency levels and other factors related to surface tension, in some examples, the choice of the fluid-based pigment received further influences brushstrokes 118. For example, the fluid flow module 116 utilizes algorithm 206 to account for the factor of surface tension in determining how watercolor paint interacts with the canvas 124 to generate brushstrokes 118.

[0061] In some examples, algorithm 206 is a machine learning model trained to determine gravity features 126 and generate brushstrokes 118 based on gravity features 126. For example, the machine learning model is trained on real-world instances of fluid flow associated with different paints (including watercolors) on different canvas types. For example, different canvas types have different geometries, including textures and / or orientations. By observing fluid flow behavior on different canvas types, the machine learning model is trained to predict brushstrokes 118 corresponding to the gravity features 126 of different canvas types.

[0062] Additionally, in some examples, the fluid flow module 116 generates strokes 118 as a frame-by-frame simulation based on continuous analysis of strokes 122. For example, the fluid flow module 116 receives real-time input of strokes 122 and generates strokes 118 in real-time while drawing strokes 122.

[0063] Figure 6 Example 600 depicts brushstroke generation based on gravity features and the orientation of a virtual canvas. Example 600 is about... Figures 3 to 5 Replacement of the example described.

[0064] As shown, the fluid flow module 116 receives input 120 including strokes 122 on a canvas 124. In this example, strokes 122 are drawing strokes that form part of a virtual painting of a series of hexagons. The virtual painting in this example includes multiple strokes of various shapes, sizes, and colors received as input as part of a drawing application. The hexagons are painted with various different colors and overlap in areas. For example, in addition to the various selectable colors and widths for drawing or painting strokes 122, the user interface 110 also displays a canvas 124 configured for drawing or painting. For example, strokes 122 correspond to waving, tapping, dragging, or other movements received via a touchscreen display, simulating a mouse, or other computational input mechanism.

[0065] In this example, the user interface 110 is also configured to receive a selection of the orientation 602 of the canvas 124. Orientation 602 indicates the position and / or angle of the canvas 124. For example, as shown in this example, the canvas 124 is positioned vertically at an angle. In some examples, the fluid flow module 116 presents selection options for the orientation 602 of the canvas 124 used to simulate watercolor paint. For example, the fluid flow module 116 presents optional options for editing the angle of the canvas 124 in the user interface 110 (e.g., tilting the canvas 124 in a grid environment within the user interface 110) to specify a vertical, horizontal, or angled orientation of the canvas 124. In other examples, the fluid flow module 116 receives a description including a text command or prompt describing the orientation 602 (e.g., "vertical canvas").

[0066] Additionally, in this example, input 120 indicates a desired stroke with the appearance of watercolor paint or other fluid-based pigments. For example, stroke 122 currently has a shape with smooth edges, which approximates a hexagon drawn by the user on user interface 110. However, the user desires stroke 122 to have an organic appearance simulating watercolor paint, characterized by drips, which in this example are influenced by orientation 602. This is because watercolor paint is water-based and therefore flows unevenly on the painting surface affected by orientation 602.

[0067] To determine gravity feature 126, gravity module 202 uses algorithm 206 configured to analyze the geometry of canvas 124 to determine a gravity map corresponding to canvas 124. In this example, canvas 124 has a vertical orientation 602, which affects the simulated appearance of watercolor paint. For example, due to the orientation 602 of canvas 124, gravity feature 126 indicates the direction of vertical fluid flow along the surface of canvas 124.

[0068] As shown in this example, brushstroke 118 is generated based on the shape of stroke 122, which simulates fluid interaction on canvas 124 based on gravity feature 126. For example, the brushstroke 118 of a hexagonal painting now has a drip edge 604 that mimics a watercolor brush dripping down the surface of canvas 124 due to gravity feature 126. For example, orientation 602 influences gravity feature 126 by inducing a simulated downward force that attracts simulated fluid watercolor paint to drip down canvas 124. The drip edge 604 depicts the watercolor paint flowing down onto the surface of canvas 124 and, in this example, blending into different colors of different hexagons. Example Program

[0069] The following discussion describes techniques that can be implemented using the aforementioned systems and devices. Aspects of each process can be implemented in hardware, firmware, software, or a combination thereof. These processes are shown as groups of boxes specifying operations to be performed by one or more devices, and are not necessarily limited to the order in which the operations are performed by the respective boxes as shown. References are made in the following sections of the discussion. Figures 1 to 6 .

[0070] Figure 7 The process 700 in an example implementation of generating brushstrokes with gravity-based fluid flow is depicted. At box 702, input brushstrokes are received on a virtual canvas.

[0071] In box 704, an algorithm 206 based on the geometry of the virtual canvas is used to determine gravity features 126 relating to simulated fluid interactions with the virtual canvas. In some examples, the geometry of the virtual canvas describes a texture, and the fluid interactions on the virtual canvas are based on that texture. Some examples also include generating a gravity map describing the effects of the gravity features in relation to portions of the virtual canvas. For example, gravity feature 126 is based on an input selection of the texture type of the virtual canvas. Additionally or alternatively, gravity feature 126 is based on an input selection of the orientation 602 of the virtual canvas.

[0072] At box 706, a brushstroke 118 is generated based on the shape of the input stroke, and fluid interaction on a virtual canvas is simulated based on gravity feature 126. In some examples, fluid interaction on the virtual canvas involves determining the simulated surface tension of the fluid on the virtual canvas. Additionally or optionally, fluid interaction on the virtual canvas is based on the input selection attributes of the virtual fluid used for the input stroke.

[0073] At box 708, brushstrokes 118 on a virtual canvas are presented in user interface 110. In some examples, fluid interaction on the virtual canvas involves determining simulated drips of virtual fluid based on gravity feature 126. Additionally, in some examples, brushstrokes 118 are frame-by-frame simulations of brushstrokes based on continuous analysis of the input strokes.

[0074] Figure 8 The process 800 in an additional example implementation of generating brushstrokes with gravity-based fluid flow is depicted. At box 802, input brushstrokes and the selection of orientation 602 of the virtual canvas are received on the virtual canvas.

[0075] At box 804, an algorithm 206 based on the virtual canvas orientation is used to determine gravity features 126 involving simulated fluid interaction with the virtual canvas. Some examples are also configured to generate gravity maps describing the effects of gravity features 126 in relation to portions of the virtual canvas. For example, gravity features 126 are based on the orientation of the virtual canvas, and the orientation of the canvas corresponds to the receiving tilt angle of the virtual canvas.

[0076] At box 806, a brushstroke 118 is generated based on the shape of the input stroke, and fluid interaction on a virtual canvas is simulated based on gravity feature 126. In some examples, fluid interaction on the virtual canvas involves determining the simulated surface tension of the fluid on the virtual canvas. For example, fluid interaction on the virtual canvas involves determining the simulated dripping of virtual fluid based on gravity feature 126. Additionally, in some examples, the virtual canvas has a texture, and fluid interaction on the virtual canvas is based on that texture.

[0077] At box 808, brushstrokes 118 on a virtual canvas are presented in user interface 110. In some examples, fluid interactions on the virtual canvas are based on the input selection attribute of the virtual fluid used to input the brushstrokes. Example system and equipment

[0078] Figure 9 An example system including example computing device 902 is generally shown at 900, representing one or more computing systems and / or devices implementing the various technologies described herein. This is illustrated by including fluid flow module 116. Computing device 902 may be configured as, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system-on-a-chip, and / or any other suitable computing device or computing system.

[0079] The example computing device 902 shown includes a processing system 904 communicatively coupled to each other, one or more computer-readable media 906, and one or more I / O interfaces 908. Although not shown, the computing device 902 also includes a system bus or other data and command transfer system that couples the various components to each other. The system bus includes any one or a combination of different bus architectures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of the various bus architectures. Various other examples, such as control and data lines, are also contemplated.

[0080] Processing system 904 represents the functionality of performing one or more operations using hardware. Therefore, processing system 904 is shown as including hardware elements 910 that can be configured as processors, function blocks, etc. This includes implementations in hardware as application-specific integrated circuits (ASICs) or other logic devices formed using one or more semiconductors. Hardware elements 910 are not limited by the materials forming them or the processing mechanisms employed therein. For example, a processor can be configured as a semiconductor and / or transistor (e.g., an electronic integrated circuit (IC)). In such a context, processor-executable instructions are electronically executable instructions.

[0081] Computer-readable storage medium 906 is shown as including memory / storage device 912. Memory / storage device 912 represents a memory / storage capacity associated with one or more computer-readable media. Memory / storage device 912 includes volatile media (e.g., random access memory (RAM)) and / or non-volatile media (e.g., read-only memory (ROM), flash memory, optical disk, magnetic disk, etc.). Memory / storage device 912 includes fixed media (e.g., RAM, ROM, fixed hard disk drive, etc.) and removable media (e.g., flash memory, removable hard disk drive, optical disk, etc.). As further described below, computer-readable medium 906 may be configured in a variety of other ways.

[0082] Multiple input / output interfaces 908 represent the ability to allow users to input commands and information into computing device 902, and also allow the use of various input / output devices to present information to the user and / or other components or devices. Examples of input devices include keyboards, cursor control devices (e.g., mice), microphones, scanners, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), cameras (e.g., using visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures not involving touch), etc. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network interface cards, haptic-responsive devices, etc. Therefore, computing device 902 can be configured to support user interaction in various ways as further described below.

[0083] This document describes various technologies in the general context of software, hardware components, or program modules. Typically, such modules include routines, programs, objects, elements, components, data structures, etc., that perform specific tasks or implement specific abstract data types. The terms “module,” “function,” and “component” as used herein generally refer to software, firmware, hardware, or a combination thereof. The technologies described herein are characterized as platform-independent, meaning that they can be configured on a variety of commercial computing platforms with various processors.

[0084] The implementations of the described modules and technologies are stored on or transmitted across some form of computer-readable medium. Computer-readable medium includes various media accessed by computing device 902. By way of example and not limitation, computer-readable medium includes "computer-readable storage medium" and "computer-readable signal medium".

[0085] "Computer-readable storage medium" means a medium and / or device capable of persistently and / or non-transitory storing information, as opposed to mere signal transmission, carrier waves, or signals themselves. Therefore, computer-readable storage medium refers to non-signal-bearing media. Computer-readable storage media include hardware such as volatile and non-volatile, removable and non-removable media, and / or storage devices implemented with methods or techniques suitable for storing information such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, hard disk, magnetic tape cassette, magnetic tape, disk storage, or other magnetic storage devices, or other storage devices, tangible media, or articles of art suitable for storing desired information and accessible by a computer.

[0086] "Computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions to the hardware of computing device 902, for example, via a network. Signal media typically include computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves, data signals, or other transmission mechanisms. Signal media also includes any information transmission medium. The term "modulated data signal" refers to a signal whose one or more characteristics are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as wired networks or direct-wire connections, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0087] As previously described, hardware element 910 and computer-readable medium 906 represent modules, programmable device logic, and / or fixed device logic implemented in hardware form. These modules, programmable device logic, and / or fixed device logic are used in some embodiments to implement at least some aspects of the techniques described herein, such as executing one or more instructions. Hardware includes components of integrated circuits or systems-on-a-chip, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon or other hardware. In this context, hardware operation refers to processing means for executing program tasks defined by instructions and / or logic embodied in the hardware, and hardware for storing instructions for execution, such as the previously described computer-readable storage medium.

[0088] The combinations described above can also be used to implement the various techniques described herein. Therefore, software, hardware, or executable modules are implemented as one or more instructions and / or logic included on some form of computer-readable storage medium and / or implemented by one or more hardware elements 910. The computing device 902 is configured to implement specific instructions and / or functions corresponding to the software and / or hardware modules. Therefore, the implementation of a module executed by the computing device 902 as software is at least partially implemented in hardware, for example, by using the computer-readable storage medium and / or hardware elements 910 of the processing system 904. The instructions and / or functions can be executed / operated by one or more articles of manufacture (e.g., one or more computing devices and / or processing systems 904) to implement the techniques, modules, and examples described herein.

[0089] The techniques described herein are supported by various configurations of computing device 902, and are not limited to specific examples of the techniques described herein. This functionality can also be implemented using distributed systems, such as on a “cloud” 1114 via platform 916 as described below.

[0090] Cloud 914 includes and / or represents platform 916 for resource 918. Platform 916 abstracts the underlying functionality of the hardware (e.g., server) and software resources of cloud 914. Resource 918 includes applications and / or data that can be used when performing computer processing on a server located remotely from computing device 902. Resource 918 may also include services provided via the Internet and / or via a subscriber network (e.g., cellular or Wi-Fi network).

[0091] Platform 916 abstracts resources and functions to connect computing device 902 to other computing devices. Platform 916 also abstracts resource scaling to provide appropriate levels of scaling for the demands encountered by resource 918 implemented through platform 916. Therefore, in interconnect device embodiments, the implementation of the functions described herein can be distributed throughout system 900. For example, the function can be implemented partly on computing device 902 and partly via platform 916 through abstract cloud 914.

Claims

1. A method comprising: The processing device receives input strokes from the virtual canvas; The processing device uses an algorithm based on the geometry of the virtual canvas to determine the gravity characteristics involved in the simulated fluid interaction with the virtual canvas; The processing device generates brushstrokes based on the shape of the input strokes, and the brushstrokes simulate fluid interactions on the virtual canvas based on the gravity features; as well as The processing device renders the brushstrokes on the virtual canvas in the user interface.

2. The method of claim 1, wherein the geometry of the virtual canvas describes a texture, and the fluid interaction on the virtual canvas is based on the texture.

3. The method of claim 1, further comprising generating a gravity map describing the gravity characteristics in relation to a portion of the virtual canvas.

4. The method of claim 1, wherein the gravity feature is based on an input selection of a texture type for the virtual canvas.

5. The method of claim 1, wherein the gravity feature is based on an input selection of orientation for the virtual canvas.

6. The method of claim 1, wherein the fluid interaction on the virtual canvas involves the simulated surface tension of the fluid on the virtual canvas.

7. The method of claim 1, wherein the fluid interaction on the virtual canvas is based on an attribute of input selection of a virtual fluid for the input stroke.

8. The method of claim 1, wherein the fluid interaction on the virtual canvas involves simulated dripping of virtual fluid based on the gravity characteristics.

9. The method of claim 1, wherein generating the stroke is a frame-by-frame simulation of the stroke based on continuous analysis of the input stroke.

10. A method comprising: The processing device receives input strokes on a virtual canvas and selects the orientation of the virtual canvas; The processing device uses an algorithm based on the orientation of the virtual canvas to determine the gravitational characteristics involved in the simulated fluid interaction with the virtual canvas; The processing device generates brushstrokes based on the shape of the input strokes, and the brushstrokes simulate fluid interactions on the virtual canvas based on the gravity features; as well as The processing device renders the brushstrokes on the virtual canvas in the user interface.

11. The method of claim 10, wherein the orientation of the virtual canvas is based on a received indication of the tilt angle of the virtual canvas.

12. The method of claim 10, further comprising generating a gravity map describing the gravity characteristics in relation to a portion of the virtual canvas.

13. The method of claim 10, wherein the gravity feature is based on an input selection of a texture type for the virtual canvas.

14. The method of claim 10, wherein the fluid interaction on the virtual canvas involves the simulated surface tension of the fluid on the virtual canvas.

15. The method of claim 10, wherein the fluid interaction on the virtual canvas is based on an attribute of input selection of a virtual fluid for the input stroke.

16. The method of claim 10, wherein the fluid interaction on the virtual canvas involves simulated dripping of the virtual fluid based on the gravity characteristics.

17. A system comprising: Memory components; as well as A processing device coupled to the memory component, the processing device performing operations including: Receive input strokes from the virtual canvas; An algorithm based on the geometry of the virtual canvas is used to determine the gravity characteristics involved in the simulated fluid interaction with the virtual canvas. Brushstrokes are generated based on the shape of the input strokes, and these brushstrokes simulate fluid interactions on the virtual canvas based on the gravity features; and The brushstrokes on the virtual canvas are displayed in the user interface.

18. The system of claim 17, wherein the geometry of the virtual canvas describes a texture, and the fluid interaction on the virtual canvas is based on the texture.

19. The system of claim 17, further comprising generating a gravity map describing the gravity characteristics in relation to a portion of the virtual canvas.

20. The system of claim 17, wherein the fluid interaction on the virtual canvas involves the simulated surface tension of the fluid on the virtual canvas.