1. This paper presents the implementation of a fast and accurate particle level set library. 
Level sets are very effective for representating dynamic surfaces.

2. The strength of the level set method lies in implicitly representing dynamic surfaces. 
This greatly simplifies many of the challenging problems one faces with explicit representations, 
such as merging and pinching of different surfaces. The main problem that the level set method 
suffers from is numerical dissipation. The problem that this causes in computer graphics is that 
this improvement in accuracy comes at a high cost in computation time and memory. Further, 
although the bleeding caused by the numerical dissipation is slowed using
these methods, it is not entirely stopped. The reason for the introduction of the particle level 
set method, combining Eulerian and Lagrangian methods, was to solve the problem of numerical dissipation.
This hybrid method introduces marker particles to keep track of the implicit interface and uses 
them to correct any errors caused by dissipation.

3. Particle level set method
The level set is represented using a Cartesian grid, where the interface is located 
at the = 0 level set. Particles are initialized within a band of the interface. 
Then for each simulation step:
(1). A velocity field is taken as input and used to determine a CFL timestep.
(2). The velocity field is used to update the level set through a fast first order accurate semi-Lagrangian advection.
(3). Particles are updated using the velocity field using a RK2 time integration.
(4). Error correction is done on the interface using the particles.
(5). The grid is re-initialized using the fast marching method.
(6). Since the fast marching method can affect the position of the interface, error correction is again performed on
the interface using the particles.
(7). If necessary, the particles are re-initialized.