
Surface-Only Liquids - fitzwatermellow
http://www.cs.columbia.edu/cg/surfaceliquids/
======
defenestration
Wow, the demo in the YouTube video looks impressive. I would like to
understand the technique they propose and what's unique in their thinking. Can
someone with expertise on this topic explain the abstract in layman's terms?

Abstract: We propose a novel surface-only technique for simulating
incompressible, inviscid and uniform-density liquids with surface tension in
three dimensions. The liquid surface is captured by a triangle mesh on which a
Lagrangian velocity field is stored. Because advection of the velocity field
may violate the incompressibility condition, we devise an orthogonal
projection technique to remove the divergence while requiring the evaluation
of only two boundary integrals. The forces of surface tension, gravity, and
solid contact are all treated by a boundary element solve, allowing us to
perform detailed simulations of a wide range of liquid phenomena, including
waterbells, droplet and jet collisions, fluid chains, and crown splashes.

~~~
santaclaus
Roughly, usually when simulating a fluid you have to consider the interior.
Think of this as roughly scaling cubically in three dimensions. In this paper,
they make some simplifying assumptions about the internal dynamics of a fluid
that allows them to simulate with only a representation of the surface, which
is lower dimensional and which will perform better (quadratic scaling under
mesh refinement).

~~~
defenestration
Thanks, that makes sense. So, by describing a fluid as a surface instead of a
volume you'll need less calculations to simulate the fluid and you'll gain
performance.

Let's dive into the details of the abstract. Please correct where wrong!

'... for simulating incompressible, inviscid and uniform-density liquids with
surface tension in three dimensions.'

So it only works when you can't compress the fluid, the fluid is not sticky
like honey or oil, had as uniform-density, and is an enclosed body (bubbles,
not seas).

'The liquid surface is captured by a triangle mesh on which a Lagrangian
velocity field is stored.'

There seems to be two ways of looking at fluid motion. The Lagrangian way is
following an individual parcel through time and space. The Eulerian way is
looking at a specific location and watch fluid flow through that location.

'Because advection of the velocity field may violate the incompressibility
condition,'

Advection is the transport of a property by the fluid due to the fluids bulk
motion. So the speed of fluid might compress the fluid, and that should be
prevented.

'... we devise an orthogonal projection technique to remove the divergence
while requiring the evaluation of only two boundary integrals.'

Orthogonal projection is representing a 3D object in two dimensions. In two
dimensions there can be no divergence if I understand it correctly.

'The forces of surface tension, gravity, and solid contact are all treated by
a boundary element solve, allowing us to perform detailed simulations of a
wide range of liquid phenomena, including waterbells, droplet and jet
collisions, fluid chains, and crown splashes.'

The mathematics of surface tension, gravity and solid contact are much easier
in two dimensions than in three. The boundary element solve is an efficient
method to solve equations with boundery integrals. So liquid behavior can be
modelled in more detail and visualized in a realistic way.

~~~
santaclaus
> So it only works when you can't compress the fluid, the fluid is not sticky
> like honey or oil, had as uniform-density, and is an enclosed body (bubbles,
> not seas).

Right, most (non-gaseous) fluids are just about incompressible. This is a
pretty safe approximation for tons of applications, although if you were
simulating sound wave propagation through water or something you would need
compressibility. The lack of viscosity is a bit more limiting and more of an
approximation, as even water is fairly viscous. I'm not sure about the
enclosed body part, I'd have to read the paper in detail.

> There seems to be two ways of looking at fluid motion. The Lagrangian way is
> following an individual parcel through time and space. The Eulerian way is
> looking at a specific location and watch fluid flow through that location.

Exactly, although the Lagrangian/Eulerian views aren't just limited to fluid
dynamics, they are common throughout continuum mechanics. Both approaches have
tradeoffs, and hybrid techniques do exist.

> Advection is the transport of a property by the fluid due to the fluids bulk
> motion. So the speed of fluid might compress the fluid, and that should be
> prevented.

An incompressible velocity field is one that is 'divergence free,' as
divergence roughly maps to how much material is entering or leaving an
infinitesimal volume element. For an incompressible fluid simulation, you thus
need to maintain a divergence free velocity field. This leads to the next
point...

> Orthogonal projection is representing a 3D object in two dimensions. In two
> dimensions there can be no divergence if I understand it correctly.

I think here they are referring to a projection from a general velocity field
to a velocity field that is divergence free. See for example [1].

[1]
[https://en.wikipedia.org/wiki/Projection_method_(fluid_dynam...](https://en.wikipedia.org/wiki/Projection_method_\(fluid_dynamics\))

------
mizzao
That looks pretty @%(*ing compelling. Does anyone know how novel this is, and
whether it would be computationally feasible to implement in real time (e.g.
video games?)

I could already see it being very useful in for offline 3D animation, such as
animated movies.

~~~
jszymborski
Reminds of the work Ken Brakke has done with his Surface Evolver [0]. It's
ancient, and it parses files written in it's own weird ini-like language [1]
(seriously!?). If only it exposed a decent API (which would lend itself to e.g
a python wrapper), it'd be the easiest thing on earth to use.

[0]
[http://facstaff.susqu.edu/brakke/evolver/evolver.html](http://facstaff.susqu.edu/brakke/evolver/evolver.html)
[1]
[http://facstaff.susqu.edu/brakke/evolver/html/datafile.htm](http://facstaff.susqu.edu/brakke/evolver/html/datafile.htm)

~~~
batty
Yes, there is a fair amount of similarly and connection in the underlying mesh
data structure. In fact, we published a paper on that aspect of the framework
at SIGGRAPH a couple years back, which heavily cites the Surface Evolver work.
[http://www.cs.columbia.edu/cg/multitracker/](http://www.cs.columbia.edu/cg/multitracker/)

------
asadlionpk
Wow. Some years ago, I spent significant time on simulating 2d fluid for
games. Here is one version of it:
[http://jsexperiments.herokuapp.com/sph/](http://jsexperiments.herokuapp.com/sph/)

Ofcourse, this is completely different beast.

------
davesque
I definitely have no expertise and don't know how this fits into the larger
field of research but the video's really fun to watch :).

~~~
wlesieutre
SIGGRAPH videos are always a lot of fun. Two of my favorites:

Rendering Synthetic Objects into Legacy Photographs
[https://vimeo.com/28962540](https://vimeo.com/28962540)

Disney's Frozen A Material Point Method For Snow Simulation
[https://www.youtube.com/watch?v=O0kyDKu8K-k](https://www.youtube.com/watch?v=O0kyDKu8K-k)

