NeuralDrop: DNN-based Simulation of Small-Scale Liquid Flows on Solids

by   Rajaditya Mukherjee, et al.
The Ohio State University

Small-scale liquid flows on solid surfaces provide convincing details in liquid animation, but they are difficult to be simulated with efficiency and fidelity, mostly due to the complex nature of the surface tension at the contact front where liquid, air, and solid meet. In this paper, we propose to simulate the dynamics of new liquid drops from captured real-world liquid flow data, using deep neural networks. To achieve this goal, we develop a data capture system that acquires liquid flow patterns from hundreds of real-world water drops. We then convert raw data into compact data for training neural networks, in which liquid drops are represented by their contact fronts in a Lagrangian form. Using the LSTM units based on recurrent neural networks, our neural networks serve three purposes in our simulator: predicting the contour of a contact front, predicting the color field gradient of a contact front, and finally predicting whether a contact front is going to break or not. Using these predictions, our simulator recovers the overall shape of a liquid drop at every time step, and handles merging and splitting events by simple operations. The experiment shows that our trained neural networks are able to perform predictions well. The whole simulator is robust, convenient to use, and capable of generating realistic small-scale liquid effects in animation.



There are no comments yet.


page 1

page 3

page 7

page 8


Predictive networking and optimization for flow-based networks

Artificial Neural Networks (ANNs) were used to classify neural network f...

Fundamental Challenges in Deep Learning for Stiff Contact Dynamics

Frictional contact has been extensively studied as the core underlying b...

A consistent approach for fluid-structure-contact interaction based on a porous flow model for rough surface contact

Simulation approaches for fluid-structure-contact interaction, especiall...

DiffCloth: Differentiable Cloth Simulation with Dry Frictional Contact

Cloth simulation has wide applications in computer animation, garment de...

Cellular Automata Simulation on FPGA for Training Neural Networks with Virtual World Imagery

We present ongoing work on a tool that consists of two parts: (i) A raw ...

Development of a High Fidelity Simulator for Generalised Photometric Based Space Object Classification using Machine Learning

This paper presents the initial stages in the development of a deep lear...

Projection method for droplet dynamics on groove-textured surface with merging and splitting

We study the full dynamics of droplets placed on an inclined groove-text...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1. Introduction

Realistic simulation of small-scale liquid flows on solids, i.e., liquid drops and streamlets, is an important feature in virtual surgery, forensics (for simulating crime scenes), virtual painting, and entertainment applications. Unfortunately, small-scale liquid flows on solids are notoriously difficult to simulate, because of the surface tension. At a small scale, liquids, especially water, exhibit strong surface tension effect that places a stringent CFL condition on physics-based liquid simulation and demands a large computational cost to handle. While this issue can be remedied by ignoring interior flows and animating drop motions by the exterior surfaces only [Zhang et al., 2012; Da et al., 2016], a much more critical issue exists: how to model the surface tension among liquid, air, and solid. At the contact front where the three phases meet, the surface tension effect is highly complicated [Fowkes, 1964; Mittal, 2013]. For example, it is known that the surface tension acts differently when the contact front is advancing vs. receding, known as the hysteresis effect. The surface tension also relies on the material properties of the solid, which are not conveniently measurable due to varying factors, including moisture, roughness, and dirt. In computer graphics, researchers [Wang et al., 2005, 2007] tried to simulate these liquid-solid effects by a varying contact angle scheme. While their result looks plausible, it is still far from realistic and they fail to display the same level of complexity demonstrated by real-world drops.

An interesting idea of simulating complex natural phenomena is to use data acquired from the real world. Real-world data are free of artifacts caused by incompetent physical models and they are able to capture complex dynamics well. However, data-driven liquid simulation is not easy, due to the volatile nature of real-world liquids. The recent advance in the machine learning technology inspires graphics researchers to revisit this idea from a learning-based perspective. While the limited research in learning-based simulation is largely focused on generic simulation of large-scale liquid bodies, small-scale liquid flows and their interactions with solid surfaces remain unexplored. Large-scale liquids are volatile and their flows are turbulent. This causes many previous learning-based simulation techniques to be developed for predicting fluid behaviors in a local neighborhood, such as using convolutional neural networks (CNN) 

[Guo et al., 2016; Yang et al., 2016; Chu and Thuerey, 2017]. In contrast, the motion of a small-scale liquid body, i.e., a liquid drop, is more predictable and often free of heavy topological events. Hence we prefer to simulate small-scale liquids in a unique way, rather than in a unified way with large-scale liquids.

In this paper, we advocate the use of deep neural networks to predict the motion of a small-scale liquid body on surfaces as a whole. We believe this is reasonable practice, because: 1) small-scale liquid flows are difficult to simulate in a physics-based way; 2) small-scale liquid flows are free of turbulence and they are more predictable. We also would like to promote the idea of using a Lagrangian form to represent small-scale liquids. Compared with large-scale liquid bodies, small-scale liquids do not experience a significant number of merging or splitting events, therefore, we can afford handling them by simple operations. The outcome of this research is a DNN-based simulator for animating small-scale liquids on solid surfaces. To this end, we have made the following technical contributions.

  • Data preparation.      We present a convenient way to acquire raw liquid flow data from the real world. We then develop practical techniques to convert raw data into training data under a novel Lagrangian representation, which models an individual liquid drop solely by its contact front.

  • Neural networks.      Given the training data, we study the development and the training of three neural networks. These networks are responsible for predicting the contour of a liquid drop’s contact front, the color gradient at the contact front, and finally whether a contact front breaks at the next time step.

  • DNN-based simulation.      Our simulator combines neural networks with simple geometric/topological operations to achieve realistic simulation of water drops. The implementation of this simulator involves a series of research on shape reconstruction, initialization, topological events, and flows on curved surfaces.

Our experiment shows that the simulator is efficient, robust, parallelizable, convenient to use and its cost is linearly scalable to the number of liquid drops, as expected. The animation results generated by our simulator are realistic and contain many complex details that cannot be easily handled by physics-based methods.

2. Related Work

Physics-based small-scale liquid simulation.

Physics-based liquid simulation has been extensively studied by graphics researchers in last two decades. Here we narrow our discussions down to physics-based liquid simulation at a small scale. Similar to general liquid simulation, the simulation of small-scale liquids can be developed in three ways: volumetric simulation [Enright et al., 2002; Wang et al., 2005, 2007], particle-based simulation [Akinci et al., 2013; He et al., 2014; Chen et al., 2015; Jones and Southern, 2017], and mesh-based simulation [Thürey et al., 2010; Clausen et al., 2013; Zhang et al., 2012; Zhu et al., 2015; Da et al., 2016]. While researchers have expressed their strong interests in free liquid surface flows in these works, they paid much less attention to liquid flows on surfaces. One of the reasons is because the surface tension at the contact front where liquid, air, and solid meet can be highly complicated. In materials science and computational physics, this surface tension can be quantified by the contact angle between the liquid-air surface and the solid surface. Wang and colleagues [2005] developed a virtual surface method to control the contact angles along the contact front in volumetric simulation. This enabled them to model the hydrophobicity of a solid and produce contact angle hysteresis effects in animation. Later they [2007] extended this idea to the simulation of water drops on unstructured surface meshes. Recently, Zhang and collaborators [2012] studied the virtual surface method in surface-only liquid simulation. In general, small-scale liquid flows on solids are still difficult to be simulated realistically and efficiently, not only because of the computational cost, but also because of the complex physical phenomena that cannot be precisely predicted by mathematical models.

Learning-based fluid simulation.

The use of machine learning in fluid simulation starts to emerge recently, but it is still sparse in the computer animation community. Ladicky and colleagues [2015] used random regression forests to correct particle positions in incompressible SPH simulation. Guo and collaborators [2016] trained a convolutional neural network (CNN) to efficiently approximate steady flow. Yang and colleagues [2016] accelerated a pressure projection solver in Eulerian fluid simulation by CNN. Tompson and collaborators [2016] incorporated multi-frame information into a similar network structure for long-term accuracy improvement. Bonev and colleagues [2017] proposed to predict surface deformation in water simulation by neural networks and soon Um and collaborators [2017] used it for modeling water splashes. To synthesize smoke animation, Chu and colleagues [2017] trained feature descriptors with CNN for fast example database query. As mentioned before, the difference between large-scale liquids and small-scale liquids restricts the applicability of these techniques in the simulation of small-scale liquid flows.

3. Data Preparation

Before we discuss the architecture of our deep neural networks in Section 4, we would like to present the acquisition and the representation of our training data from real-world experiments. The choices we make here are important to the success of the whole simulator and we will discuss the rationales behind them.

3.1. Data Acquisition

As mentioned in Section 1, we choose to use real-world experiments, rather than physics-based simulation, to generate the training data, since they are more accessible and more accurate in describing liquid flow behaviors. The setup of our data capture system is shown in Fig.  2. It consists of a test area made of a non-adsorbent matte plastic sheet, a dripping device that drops dyed water onto the top of the test area, and a commodity camera that records the video of liquid flows at 720p and 240 FPS. We set the test area on an inclined ramp with a fixed angle of , so that liquid drops can flow at a suitable speed. The surrounding environment uses indirect natural light to minimize reflected highlight spots on liquid drops. We calibrate the camera and perform basic image rectification to remove camera distortion.

Figure 2. Our data capture system. We build a simple system to capture liquid flow data from the real world. This system is easy to build and convenient to use.

The length of each recorded video clip varies from 150 to 1200 frames. In total, we capture 70 video clips, each of them contains one to three drops. We typically do not include videos that contain too fast drops, since they can interfere with the overall network training. Nearly one third of the clips contain splitting or merging events. From the video clips, we obtain a data set that contains 80K training sets. In addition to the training clips, we capture 10 more video clips for testing and evaluation purposes.

3.2. Liquid Drop Representation

Given the captured raw video data, we need to convert them into a compact representation for training purposes later in Section 4. Perhaps the most straightforward way is to cover the area of a liquid drop by a local window and use the interior color field as its representation. However, such an Eulerian representation suffers from two drawbacks. First, as the size of the liquid drop grows or shrinks, so does the size of the local window, which cannot be directly used for training neural networks. Possible solutions include normalizing the window size, or using a fixed window size. But they can cause other issues, such as wasted window space or confusing networks by liquid drops in different sizes. The second drawback is the dimensions of this representation. For a small liquid drop contained in a low-resolution window with

cells only, the overall dimension of the Eulerian representation vector would be 1024. This is too big for neural networks to be trained with efficiency, especially if the training set is large.

Instead, we present a Lagrangian liquid drop representation, solely based on the drop’s contact front as shown in Fig. 3. This representation uses a fixed number of control points at the contact front, each of which stores its location and its color gradient in 2D. The point locations outline the contour of the liquid drop, and the sampled gradients determine the interior shape of the drop. Our representation is not only compact, but also effective in separating the 2D contour shape from the 3D interior shape. This allows the contour and the interior, i.e., the locations and the gradients, to be trained and predicted by two separate networks, as shown in Section 4.

3.2.1. Contour extraction

Given a video sequence obtained by our data capture device, our first job is to extract the contours of the contact fronts for our learning system.

First, we apply morphology operations to smooth out any irregularity or noise in each frame, and run Otsu’s thresholding algorithm to convert the frame into a binary image, as shown in Fig. 3b. We then use an active contour method on the binary image to obtain a contour, represented as a densely sampled piecewise linear curve shown in Fig. 3c. To make those contours useful in our training system, we need both their shapes and their temporal dependencies. While a contour in one frame remains as a contour in the next frame most of the time, merging and splitting events do occur occasionally as well. Our solution is an automatic contour tracking algorithm that uses contour overlaps to determines whether a contour in one frame becomes:

  • another contour in the next frame,

  • or part of another contour in the next frame, due to merging,

  • or two contours in the next frame, due to splitting.

We do not consider the splitting of a contour into three or more contours, nor the merging of three or more contours, since they are rare given the frame rate of our video camera. The outcome of our algorithm is a set of contour sequences, each of which is tracked over a different number of frames in our videos. The contour sequences starts when the video starts, or when it gets newly generated by merging or splitting event. The contour sequence ends when the video ends, when it leaves the field view, or when it gets terminated by merging or splitting events. Those contour sequences that end with splitting are specifically labeled for breakage prediction later in Subsection 4.3.

((a)) Image
((b)) Binary image
((c)) Dense samples
((d)) Control points
Figure 3. The contour of a liquid drop in a Lagrangian representation. After we densely sample the contour of a liquid drop in a binary image (b), we approximate it by a B-spline curve with a fixed number of control points in (d). These control points form a vector representing the liquid drop contour, used by our training system.

The dense samples can represent the contour well, but they are not suitable for training neural networks, since the number of samples per contour is determined by the contour size, which can vary from contour to contour, and from time to time. To solve this issue, we use a cubic B-spline curve with exactly 52 control points to approximate the sampled piecewise linear contour. The control points are ordered in a clock-wise fashion from the top. In this way, we represent each contour by a control point vector in the space. Fig. 3e shows that the reconstruction from the control points is a good approximation to the original contour.

3.2.2. Gradient extraction

Figure 4. The gradients at the control points of a contact front.

The contour representation given in Subsection 3.2.1

does not provide any information inside of the contour, i.e. the color intensity of every liquid pixel. Based on the assumption that the surface tension is sufficiently large to smooth out the mean curvature of the liquid surface, we assume that the color field is smooth as well and it can be estimated from its gradient at the contact front as discussed later in Section 


To predict such gradient information by our neural networks, we extract the gradient of the color field at each control point by the Sobel operator in the image space. We stack the gradient vectors together to form another large vector for training gradient prediction networks. Fig.  4 shows the gradients extracted at the contact front of a liquid drop. Compared with the contour, the gradients are more sensitive to image noises and imperfections, such as highlight spots. While these issues can be addressed by applying more image editing operations, we find it is unnecessary as we expect the neural networks to learn the noises and remove their influence on predictions automatically.

4. Neural Networks

Given the extracted contour and gradient at the contact front of a liquid drop, our neural networks are responsible for predicting the contour and the gradient at the next time step. It also needs to predict whether the contact front breaks or not, for simulating liquid drop splitting events in Subsection 5.3.

X Coordinates Y Coordinates Center
Input–52 Input–52 Input–2
LSTM(Lin)–260 LSTM(Lin)–260 LSTM(Lin)–260
Merge LSTM(Lin)–260
LSTM(Lin)–260 LSTM(Lin)–260
((a)) Contour prediction subnet

Gradient Magnitude Input–104 LSTM(Lin)–250 LSTM(Lin)–250 LSTM(Lin)–250 LSTM(Lin)–250 LSTM(Lin)–250 LSTM(Lin)–250 Dense(Lin)–50

((b)) Gradient prediction subnet

X and Y Coordinates Input–50


Dense(ReLu)–150 Dense(ReLu)–150 Dense(ReLu)–150 Dense(ReLu)–150 Dense(ReLu)–150 Dense(Sig)–1

((c)) Breakage prediction subnet
Table 1. The structure of three subnets. We use the following name convention for each layer: type (activation)dimension. For instance, LSTM(Lin)–260 stands for a LSTM cell layer with 260 dimensions and linear activation, and Dense(Lin)–104 represents a fully connected dense input layer with 104 dimensions and linear activation. All of the LSTM layers except for the last one generates a sequence output.

Our networks are a combination of fully connected classification networks and recurrent regression networks. Our deep learning architecture is a chimeric network consisting of three individual sub networks (hence abbreviated as subnets

) operating at each individual time step. To reduce the overfitting issue, we adopt the dropout approach in all of the layers except for the output layer. What it basically does is to randomly select a network node and exclude it during the training stage. In this way, the networks can be more generalized without developing co-dependencies among its neurons. See 

[Srivastava et al., 2014] for more details.

4.1. Contour Prediction Subnet

Given the contours of a contact front at the previous time steps, we would like to predict the contour at the next time step by a subset, rather than physics models. The training process of such a subnet involves heavy temporal data dependencies, which are prone to problems of exploding and vanishing gradients. To avoid these problems, we choose to use a recurrent neural network (RNN) architecture. Based on the compact representation provided in Subsection 3.2.1, we can then consider the subnet training process as predicting the temporal trajectory of contour control points.

Our deep learning model uses long short term memory (LSTM) units 

[Hochreiter and Schmidhuber, 1997]

, based on the recurrent neural network (RNN) architecture. LSTM is popularly used in natural language processing community to model complex language model dependencies. As is the common practice for most deep learning applications, we normalize (with respect to the overall dimensions of the 2D domain on which the B-spline curve is drawn) and centralize the control points. As an additional input, we track and predict the center using the previous contours. Considering the complexity and the variability of our network, its structure is shown in Table  


a. We note that each input has its own separate processing as well as combined processing. This allows all of the attributes of this nonlinear input function to be learned both on its own and with mutual dependencies. To optimize network parameters, we use stochastic gradient descent optimization, with Nesterov acceleration 


to speed up the convergence rate. We have also tested the adaptive moment estimation (Adam) technique 

[Kingma and Ba, 2014], but its performance is generally lower than stochastic gradient descent with Nesterov acceleration. The convergence of the training process for this contour prediction subnet is illustrated in Fig. 5a.

4.2. Gradient Prediction Subnet

To fill the interior of the contact front, we need a subnet to predict the gradient of the color field at the contact front next. Similar to the contour prediction subnet in Subsection 4.1, this gradient prediction subnet uses the gradients at the last time steps and it is formulated under a LSTM-based RNN framework. To simplify the training process, we predict the gradient magnitude at each control point only and we assume that the gradient is always perpendicular to the B-spline curve. The structure of the gradient prediction subnet is shown in Table  1c. The training procedure is similar to that of the shape prediction subnet. The convergence behavior of the training process for the contour prediction subnet is illustrated in Fig. 5b.

((d)) Contour prediction subnet
((e)) Gradient prediction subnet
((f)) Breakage prediction subnet
Figure 5. Relative training error losses during the training of the three contour prediction subnets. For contour and gradient predictions, the error is defined as the L2-norm between the ground truth and the prediction outcome. For breakage predictions, the error is defined as the accuracy of the prediction outcome.

4.3. Breakage Prediction Subnet

Finally, we use a breakage prediction subnet to determine whether the contact front of a liquid drop breaks at the next time step or not. If it does break, it will cause the liquid drop to split into two new drops. While this phenomenon has a substantially complex explanation in the real world, we formulate it in our simulator as a binary classification problem based on the contact front information.

The input to this breakage prediction subnet is the mean-centered and normalized control points and its decision is binary: whether the contact front breaks or not. For this classification problem, we use a fully connected deep learning classifier network. The structure of the breakage prediction subnet is shown in Table  


An important aspect to note here is that breakage is a relatively uncommon event and the resulting class classification problem is highly unbalanced. Therefore, accuracy is not a good measure of the overall classification success. Instead, we train the network by a balanced mixture of positives (those with breakages) and negatives (those without breakages), which are selected using an under-sampling method based on the near-miss algorithm [Zhang and Mani, 2003].

Unlike the regression problems discussed in Subsection 4.1 and 4.2, this classification problem can use either adaptive moment estimation (Adam) [Kingma and Ba, 2014] or stochastic gradient descent with Nesterov acceleration, both of which have plausible convergence rates as shown in our experiment. In our simulator, we choose Adam and the convergence of the training process is shown in Fig. 5c.

5. DNN-based Simulation

Given the neural networks trained for predicting the contour, the gradient, and the breakage of a contact front, we now would like to develop a simulator that animates the time evolution of every liquid drop. To begin with, we will discuss the 3D shape reconstruction of a liquid drop from its contact front in Subsection 5.1. We will then study how to initialize the simulation of a liquid drop newly added to the scene in Subsection 5.2. In Subsection 5.3, we investigate the modeling and simulation of topological events, i.e., splitting and merging of liquid drops. Finally, we will present an ad hoc method for simulating drops on curved surfaces in Subsection 5.4.

5.1. Shape Reconstruction

Figure 6. The side view of a liquid drop. Using the gradient information at the contact front, we solve a biharmonic equation to reconstruct the overall shape of this liquid drop.

Without external force, a liquid drop in its equilibrium state has a uniform mean curvature over its surface. With external force, a moving liquid drop no longer has a uniform mean curvature surface, but the surface should still be sufficiently smooth. Similar to [Wang et al., 2007], we describe such a smooth liquid surface by a biharmonic equation of the color field, subject to boundary conditions at the contact front:


in which is the liquid drop domain encircled by the contact front and is the predicted gradient at the contact front. To solve the PDE system in Equation 1, we discretize the biharmonic operator by finite differencing and creates a stencil covering the 2-ring neighborhood of each grid cell. To make this stencil well defined near the boundary, we use the two boundary conditions to generate the color values around the contact front. The boundary conditions are discretize in the first order. The resulting linear system is denser than the linear system of Laplace’s equation, but still sparse enough for fast linear solvers. Therefore, we solve it efficiently on the CPU by MKL PARIDSO in real time. Once we obtain the color field, we convert it into a height field after proper scaling for maintaining an explicitly tracked volume, and generate a triangle mesh from the height field for visualization afterwards.

Fig. 6 shows the side view of a liquid drop generated by our method. Thanks to larger gradients near the head and smaller gradients near the tail, we are able to recover a plausible shape of this liquid drop. We note that first-order boundary conditions can cause grid artifacts at both the contact front and on the interior surface. Instead of switching to use higher-order boundary conditions, we simply smooth the contact front and the interior surface as a post-processing.

5.2. Initialization

To initialize the simulation of a liquid drop, we request the contour of its contact front to be provided externally, either by animators or from a contour template database. One problem is that the contour prediction network needs the contours at the last time steps, which do not exist at the very beginning of the simulation process. To solve this problem, we simply perform a cold start, by replicating the same contour shape times. This is a common practice in LSTM, when it is applied to language models and recommender systems.

Similar to shape prediction, gradient prediction also needs the last color field gradients to begin with. Simply asking the animators to provide such gradient information is impractical. One solution is to initialize the whole 3D shape of a liquid drop and then calculate the contour and the gradient at the contact front from the shape. Alternatively, we provide a more convenient solution, which automatically chooses the proper value of each gradient vector from captured real-world data. Our idea is based on the assumption that liquid drops with similar contact front contours have similar contact front gradients. We search through a representative liquid drop database and find the one with the most similar contact front contour. We then assign its gradients to the newly initialized liquid drop. We note that this database is used for initialization only, so it is much more compact than the training database.

5.3. Splitting and Merging

In this subsection, we will discuss how to process two topological events in our simulation: splitting and merging.

5.3.1. Splitting

Once we are informed by the breakage prediction subnet about a splitting event, the first thing we must decide is: where does splitting happen? Assuming that splitting always happens at the “neck” of a liquid drop, we propose to find the splitting location by solving a discrete optimization problem:


in which and are the 2D positions of two control points and , are their curvalinear distance along the contact front, and and are their normals. Intuitively, the first term in Equation 2 tries to reduce the Euclidean distance between the two points, while the second term tries to make them well separately along the contact front, and the constraint ensures that the two points are well opposite to each other. Since there are only 52 control points per contour, we can check every control point pair to find the one with the minimum cost, with some culling to avoid unnecessary computation.

Once we decide the splitting pair, we simply divide the B-spline curve into two and resample each new curve by their own control points. We then calculate the gradients at these new control points by linearly interpolating the gradients of the original control points. We note that this resampling and interpolation process happens not only at the current time step, but also at the last

time steps. This ensures that the newly generated drops are ready for future prediction.

5.3.2. Merging

Compared with splitting, merging is relatively easy to handle in our simulator. At every time step, we first check whether the B-spline contours of two liquid drops start to overlap using dense samples. If they do, we remove the intersecting samples and approximate the remaining samples by a new B-spline curve. The gradients at newly generated control points are linear interpolated from the old ones, as in Subsection 5.3.1.

An interesting issue is how to initialize the needed data of this new drop at the previous time steps. It makes little sense to simply combine the information of the two merged drops, since they are irrelevant before merging happens and the prediction result would be problematic as shown in our experiment. Instead we simply treat a merged drop as a new drop and initialize it by a ”cold start”. A side effect of this practice is a small lag right after merging. One possible solution is to calculate the average control point displacements at the last time steps and apply them to the whole contour of the new drop to obtain the estimations of the last contours. We have not tried this idea yet.

5.4. Liquid Flows on Curved Surfaces

Our data capture device acquires the original data as liquid drops flowing on a planar slope with a fixed incline angle. While the resulting neural networks can effectively predict liquid behaviors in the same scenario, they become less accurate in the simulation of liquid drops on curved surfaces, or planar slopes with other incline angles.

((a)) The whole scene
((b)) A static drop
((c)) A dynamic drop
Figure 7. A lotus leaf example. Our simulator can simulate both static and dynamic liquid drops on a curved solid surface.

To solve this problem, we propose to provide two adjustments to our simulator. First, we discretize the curved surface into a height field as well and place the height field of the liquid drop on it. Doing this allows the generated liquid triangle mesh to be aligned with the curved surface. Second, we scale the contact front and gradient of a liquid drop by a factor: during prediction, in which is the average incline angle of the surface area contacting the liquid drop. The motive behind this practice is that larger drops move faster while smaller drops move slower, as shown in Fig. 8. By adjusting the size of the liquid drop during prediction, we can indirectly control its moving speed due to a varying incline angle. Fig. 7 shows that these techniques can be used to effectively simulate liquid flows on a curved lotus leaf.

6. Results

(Please watch the supplemental video for animation examples. We will release our 10G data set including recorded videos and pre-trained models after the paper gets published.) Our framework is implemented in Python 3 using Keras with the TensorFlow backend. Each network is trained for 1000 epochs with a mini-batch size of 128. The initial learning rate is

and learning rate decay of was used. All the training procedures are done on an Intel Xeon E6-2640 Processor with a single NVIDIA P100 GPU. The evaluation is done on a desktop with Intel i7 Processor with NVIDIA 980GTX GPU. It takes approximately 0.5s per epoch for the breakage prediction subnet, 204s per epoch for the shape predictor subnet and 130s per epoch for the gradient predictor subnet to train respectively. The total training time is approximately four days.

((a)) Before simulation
((b)) After simulation
Figure 8. Four liquid drops in different sizes. This example demonstrates the ability of our simulator in animating flowing behaviors of liquid drops, based on their sizes.
Flow comparison with the ground truth.

To evaluate how accurate our simulation is, we select one liquid drop from the evaluation data set and use our simulator to generate its time evolution from the initial state, as shown in Fig. 9. Fig. 9 shows that our simulator can provide a plausible prediction for the dynamic motion of this drop. The breakage prediction subset also correctly predicts one splitting event, although the real liquid drop splits multiple times. We think there are several factors contributing to the difference between our simulation and the ground truth video. First, we use the color image to estimate the initial drop state, which is subject to noises and errors. Second, our neural networks have their own errors. Third, the shape reconstruction process that generates the 3D shape of the liquid drop may not be accurate. Finally, each video is captured at slightly different physical conditions, which can cause the same drop to flow differently anyway.

((a)) Ground truth
((b)) Simulated result
((c)) Ground truth
((d)) Simulated result
Figure 9. A comparison example with the ground truth. The ground truth here is a video clip selected from the evaluation data set, which is unused for training.
Flow comparison of drops in different sizes.

Fig. 8 compares four drops in different sizes flowing on the same solid surface. It shows that our simulator can correctly handle flowing speeds with respect to drop sizes. In particular, large drops flow faster, while small drops remain static because of contact angle hysteresis. When two drops are in similar sizes, such as the two in the middle of Fig. 8a, it becomes difficult to know which one moves faster ahead of time and our simulator determines the outcome in an uncontrollable fashion.

6.1. Limitations

Due to a limited number of data categories, our neural networks are not able to predict flow behaviors for a wide range of liquid and solid material properties. Even if they do, our intrinsic data representation is unable to handle highly hydrophobic surfaces with contact angles greater than 90. Currently, our simulator provides only an approximation to liquid flows on curved surfaces and the result would be problematic if the surface is highly uneven. The simulator has difficulty in handling liquid flows under external forces, such as wind or user interaction. The simulator becomes less accurate when it simulates long liquid streamlets and their topological events. Since the simulator is ignorant of volume preservation, it needs the volume to be explicitly tracked and maintained. Finally, our current simulator works as it is and it cannot handle liquids entering or leaving solid surfaces, such as the dripping effect.

7. Conclusions and Future Work

In this paper, we present a novel approach to simulate small-scale liquid flows on solid surfaces by deep neural networks. Our research shows that the shape and the topological events associated with an individual liquid drop can be well predicted by trained neural networks. Combined with geometric operations, these networks can be effectively used to form a learning-based simulator for realistic animation of small-scale liquids.

Our future plan is centered around solving the limitations summarized in Subsection 6.1. Specifically, we plan to collect more diversified data, to see if our simulator is able to simulate flow behaviors for various liquid and solid material properties. We also plan to combine our learning-based system with existing physics-based liquid simulation techniques for simulating comprehensive liquid behaviors. How to parallelize our system for real-time liquid simulation, especially on the GPU, is another important problem we would like to investigate.

This work was funded by NSF grant CHS-1524992. The authors would also like to thank Adobe Research and NVIDIA Research for additional equipment and funding supports.


  • [1]
  • Akinci et al. [2013] Nadir Akinci, Gizem Akinci, and Matthias Teschner. 2013. Versatile Surface Tension and Adhesion for SPH Fluids. ACM Trans. Graph. (SIGGRAPH Asia) 32, 6, Article 182 (Nov. 2013), 8 pages.
  • Bonev et al. [2017] Boris Bonev, Lukas Prantl, and Nils Thuerey. 2017. Pre-computed Liquid Spaces with Generative Neural Networks and Optical Flow. CoRR abs/1704.07854 (2017). arXiv:1704.07854
  • Chen et al. [2015] Zhili Chen, Byungmoon Kim, Daichi Ito, and Huamin Wang. 2015. Wetbrush: GPU-based 3D Painting Simulation at the Bristle Level. ACM Trans. Graph. (SIGGRAPH Asia) 34, 6, Article 200 (Oct. 2015), 11 pages.
  • Chu and Thuerey [2017] Mengyu Chu and Nils Thuerey. 2017. Data-driven Synthesis of Smoke Flows with CNN-based Feature Descriptors. ACM Trans. Graph. 36, 4, Article 69 (July 2017), 14 pages.
  • Clausen et al. [2013] Pascal Clausen, Martin Wicke, Jonathan R. Shewchuk, and James F. O’Brien. 2013. Simulating Liquids and Solid-liquid Interactions with Lagrangian Meshes. ACM Trans. Graph. 32, 2, Article 17 (April 2013), 15 pages.
  • Da et al. [2016] Fang Da, David Hahn, Christopher Batty, Chris Wojtan, and Eitan Grinspun. 2016. Surface-only Liquids. ACM Trans. Graph. (SIGGRAPH) 35, 4, Article 78 (July 2016), 12 pages.
  • Enright et al. [2002] Douglas Enright, Ronald Fedkiw, Joel Ferziger, and Ian Mitchell. 2002. A Hybrid Particle Level Set Method for Improved Interface Capturing. J. Comput. Phys. 183, 1 (Nov. 2002), 83–116.
  • Fowkes [1964] Frederick M. Fowkes (Ed.). 1964. Contact Angle, Wettability, and Adhesion. Vol. 43. American Chemical Society.
  • Guo et al. [2016] Xiaoxiao Guo, Wei Li, and Francesco Iorio. 2016. Convolutional Neural Networks for Steady Flow Approximation. In Proceedings of the 22Nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD ’16). 481–490.
  • He et al. [2014] Xiaowei He, Huamin Wang, Fengjun Zhang, Hongan Wang, Guoping Wang, and Kun Zhou. 2014. Robust Simulation of Sparsely Sampled Thin Features in SPH-Based Free Surface Flows. ACM Trans. Graph. 34, 1, Article 7 (Dec. 2014), 9 pages.
  • Hochreiter and Schmidhuber [1997] Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long Short-Term Memory. Neural Comput. 9, 8 (Nov. 1997), 1735–1780.
  • Jones and Southern [2017] Richard Jones and Richard Southern. 2017. Physically-based Droplet Interaction. In Proceedings of SCA. Article 5, 10 pages.
  • Kingma and Ba [2014] Diederik P. Kingma and Jimmy Ba. 2014. Adam: A Method for Stochastic Optimization. CoRR abs/1412.6980 (2014). arXiv:1412.6980
  • Ladický et al. [2015] L’ubor Ladický, SoHyeon Jeong, Barbara Solenthaler, Marc Pollefeys, and Markus Gross. 2015. Data-driven Fluid Simulations Using Regression Forests. ACM Trans. Graph. (SIGGRAPH Asia) 34, 6, Article 199 (Oct. 2015), 9 pages.
  • Mittal [2013] Kashmiri Lal Mittal (Ed.). 2013. Advances in Contact Angle, Wettability and Adhesion, Volume 001. Wiley Higher Education.
  • Nesterov [1983] Yurii Nesterov. 1983. A Method for Unconstrained Convex Minimization Problem with The Rate of Convergence O(1/k2). In Soviet Mathematics Doklady, Vol. 27. 372–376.
  • Srivastava et al. [2014] Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. 2014. Dropout: A Simple Way to Prevent Neural Networks from Overfitting. J. Mach. Learn. Res. 15, 1 (Jan. 2014), 1929–1958.
  • Thürey et al. [2010] Nils Thürey, Chris Wojtan, Markus Gross, and Greg Turk. 2010. A Multiscale Approach to Mesh-based Surface Tension Flows. ACM Trans. Graph. (SIGGRAPH) 29, 4, Article 48 (July 2010), 10 pages.
  • Tompson et al. [2016] J. Tompson, K. Schlachter, P. Sprechmann, and K. Perlin. 2016. Accelerating Eulerian Fluid Simulation With Convolutional Networks. ArXiv e-prints (July 2016). arXiv:cs.CV/1607.03597
  • Um et al. [2017] Kiwon Um, Xiangyu Hu, and Nils Thuerey. 2017. Liquid Splash Modeling with Neural Networks. CoRR abs/1704.04456 (2017). arXiv:1704.04456
  • Wang et al. [2007] Huamin Wang, Gavin Miller, and Greg Turk. 2007. Solving General Shallow Wave Equations on Surfaces. In Proceedings of SCA. Eurographics Association, 229–238.
  • Wang et al. [2005] Huamin Wang, Peter J. Mucha, and Greg Turk. 2005. Water Drops on Surfaces. ACM Trans. Graph. (SIGGRAPH) 24, 3 (July 2005), 921–929.
  • Yang et al. [2016] Cheng Yang, Xubo Yang, and Xiangyun Xiao. 2016. Data-driven Projection Method in Fluid Simulation. Comput. Animat. Virtual Worlds 27, 3-4 (May 2016), 415–424.
  • Zhang and Mani [2003] J. Zhang and I. Mani. 2003. KNN Approach to Unbalanced Data Distributions: A Case Study Involving Information Extraction. In Proceedings of the ICML’2003 Workshop on Learning from Imbalanced Datasets.
  • Zhang et al. [2012] Yizhong Zhang, Huamin Wang, Shuai Wang, Yiying Tong, and Kun Zhou. 2012. A Deformable Surface Model for Real-Time Water Drop Animation. IEEE Transactions on Visualization and Computer Graphics 18, 8 (2012), 1281–1289.
  • Zhu et al. [2015] Bo Zhu, Minjae Lee, Ed Quigley, and Ronald Fedkiw. 2015. Codimensional non-Newtonian Fluids. ACM Trans. Graph. (SIGGRAPH) 34, 4, Article 115 (July 2015), 9 pages.