Hacker News new | past | comments | ask | show | jobs | submit login
Surface-Only Liquids (columbia.edu)
90 points by fitzwatermellow on May 18, 2016 | hide | past | favorite | 12 comments



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.


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).


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.


> 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...


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.


Thanks! At this point, since this is really the first version of a new and different technique than is typical in graphics, the method is not near real-time. As you suggest, the offline setting is probably the most relevant for now. We are hopeful that future research may substantially accelerate it.


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 [1] http://facstaff.susqu.edu/brakke/evolver/html/datafile.htm


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/


It is novel as it is an accepted paper to SIGGRAPH, generally considered to be the top computer graphics conference.

I've pinged Christopher Batty, one of the co-authors, to come here and answer questions. :)

Dr. Batty does have experience with offline 3D fluid simulators for movies: https://cs.uwaterloo.ca/~c2batty/


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/

Ofcourse, this is completely different beast.


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 :).


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

Rendering Synthetic Objects into Legacy Photographs https://vimeo.com/28962540

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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: