1. Introduction
Because of their striking shapes, deformations, and various colors, giant soap bubbles are widely used in bubble shows, children’s entertainment, and public presentations [
1].
Figure 1 shows the photographs of a real giant soap bubble blowing and bursting. Making giant soap bubbles requires skillful techniques, a highly viscous soap solution, tools such as bubble wands, and a demonstration space. If a method can be found that simulates realistic giant soap bubbles, and which can automatically reflect the user’s motion, the practicality issue could be solved in the virtual world. However, managing both the control of the user’s motion and the visual realism of the giant soap bubble simulation is extremely challenging.
To address the existing issue, we propose an efficient approach that automatically demonstrates a giant soap bubble driven by the user’s hand movements in a virtual environment. The proposed system controls the shape, size, and position of the bubble in real time by the user’s hand movements. It also allows the user to experience various shapes of the soap bubble making process. Since our system recognizes the movement of the user’s hands without an object attached to the human body, it is more comfortable and user-friendly than the motion capturing technology based device that attaches the marker to the user’s body. In addition, the proposed system is more convenient and less costly than the technology that features a haptic device, because our method recognizes the movement of both the left and right hands of the user with one Kinect which is a consumer level depth camera widely used in the gaming industry.
The bursting phenomenon of small spherical soap bubbles occurs extremely quickly and is thus difficult to observe with the naked eye. Nevertheless, the bursting phenomenon of giant soap bubbles at a meter scale is an important factor for visual realism. Since the soap film is extremely large with giant soap bubbles, the progress of the soap film bursting can be visually observed. Although a previous method [
2] has been introduced to generate the realistic and detailed bursting phenomenon of soap bubble, the method is still computationally expensive to use in interactive applications and did not consider drainage. This paper offers a method of simulating the details of the phenomenon of soap film bursting based on hole opening propagation and position-dependent draining in real time. In addition, the shape and the size of the soap bubble can be adjusted according to the amount of remaining soap solution.
Kim et al. [
3] proposed a giant soap bubble method that makes the versatile shape of soap bubbles from a soap film by incorporating the surface tension effects into deformable models. For time-varying surface tension, they introduce Gibbs elasticity and Marangoni elasticity adaptively depending on the material properties of soap films. They also present a re-meshing method for topological change from a soap film into a soap bubble. Their method focuses on the animating the evolving process of soap films into giant soap bubbles in a way to keep minimal surfaces, show local oscillations on surfaces, and result in realistic animation of soap bubbles. However, they did not consider the effects due to external forces including bubble bursting, air inflow, and user interventions during simulation. Therefore, it is necessary to develop soap film bursting and air inflow methods for interactive simulation system of giant soap bubbles and also to modify a force generation method to apply continuous user interventions during simulation.
We extend and modify an existing method [
3] so that users interactively build giant soap bubbles as they move both of their hands. Our major technical contributions are as follows: (1) we introduce an interactive blowing and bursting system of giant soap bubbles; (2) we generate smooth user exerted force over time by interpolating the tracked hand motion; (3) we present the bursting animation method of soap film that introduces local draining parameters due to deformations and gravity, makes a hole on soap film meshes, and propagates the holes gradually; and (4) we visualize the standing waves in the soap film, due to movements of wands, using an air flow transfer method.
5. Soap Bubble Simulation
We use a unified framework to simulate soap film and bubbles, which consists of a thin shell model based on a mass-spring system. Each soap molecule is represented by a particle, each particle is connected to the neighboring particles by springs, where the rest length
is determined by the initial distance between connected particles. Our thin shell model is governed by the Lagrangian dynamics equation of motion by the following equation:
where
is the mass of particle
,
is the position of particle
, and
is the second derivative of
with respect to time. Applied forces are given by surface tension
, damping force
, air inflow force
, air pressure force
, and external force
. External force consists of gravity and other force fields, and damping force is proportional to the velocity difference projected onto the spring.
5.1. Surface Tension
A soap bubble gradually evolves into a minimal surface with symmetric properties. This occurs because of the effect of surface tension. Surface tension that minimizes the surface area of the soap bubble is given by the following equation:
where
is the rest length of a spring that is connected from
to
,
and
are the positions of particles
and
respectively.
is the varying elasticity of particle
, and is obtained separately. We apply Marangoni elasticity [
3] to the initial soap film, which diffuses the surfactant evenly on the soap film. We then apply Gibbs elasticity [
3] to the soap film, which allows the soap bubble to reach a minimal surface. Marangoni elasticity is proportional to the surfactant concentration and Gibbs elasticity is in inverse proportion to the thickness of soap film.
is given by the following:
where
is typically 4 μm,
is typically 12.3. The thickness of soap film
is given by the following:
, where
is the area weight and
is the Voronoi area [
20] of particle
. The pseudo code for surface tension force and damping force is shown in Algorithm 1.
Algorithm 1 Pseudo-code for surface tension and damping force |
1: for all springs do 2: , : position of connected particle by spring 3: 4: 5: 6: 7: end for |
5.2. Air Effects
Bubble artists generate a variety of deformations and standing waves in soap film using air effects created by the movement of the wand to make giant soap bubbles with complex and detailed surfaces. This study proposes an efficient method that focuses on the air flow in order to realistically represent this air effect. First, we model the air inflow created by the movement of the wand. We then propose an air flow transfer algorithm that handles the phenomenon in which the air flowing into the soap film is transferred. After the soap film is converted to a soap bubble, we treat the air pressure in consideration of the air flow inside the soap bubble.
5.2.1. Air Inflow
We estimate the local air inflow using the relation that the air inflow is inversely proportional to the distance between each wand and each soap film particle. The air inflow for particle
created by the motion of the wand is calculated using the following equation:
where
and
are the distances from the particle
to the left and right wands, respectively.
is the velocity of the left wand,
is the velocity of the right wand, and
is the angle between the velocities of the left and right wands. As the direction and velocity of the left and right hands become more similar, the soap film becomes more inflated. For example, when the left and right wands are gathered together, the soap film does not inflate.
is an approximation of the air volume generated by the movement of the left and right wands, and
is the height of the wire, and
is the area where the wands move.
Figure 5 shows a schematic diagram of the air inflow.
5.2.2. Air Flow Transfer
Dynamic volumetric air flow methods (such as that of [
21]) can simulate realistic air flows at a reasonable computational cost, but they can cause large deformations and self-collisions in giant soap film mesh undergoing topological change. We exploit the triangle elements that convey thickness of soap film meshes and material properties based on Gibbs and Marangoni elasticity. These properties are varied spatially and temporally during simulation and are the key factors of our proposed method. Therefore, our approach requires the same mesh connectivity from the beginning and is based on an explicit modeling method that is difficult to handle topological changes. This study proposes a new air flow transfer method, inspired by an existing, efficient air transfer method between cloth and a deformable body [
16], as an alternative to solving this problem in real time.
The effect of air flow transferred into the inflated soap film is processed in a fast and efficient manner. The schematic diagram of the algorithm is shown in
Figure 6 and the pseudo code is shown in Algorithm 2. Since air inflow is created due to the movement of the wand, the air flow transfer is handled from the end particles of soap film which is first affected by the movement of the wand. First, the generated air inflow
is assigned to the end particles. We then progressively propagate the
of each particle to its neighboring particles of which the direction is similar to
. Whether the direction is similar to
is determined by
>
, where
is typically selected from 0.5 to 0.7, and
is given by the following:
where
is the position of the currently selected particle and,
is the location of a neighboring particle.
Algorithm 2 Pseudo-code for Air Flow Transfer |
1: if air inflow is created 2: assign to the end particles 3: for each particle do 4: if particle has air flow then 5: for each particle one-ring neighborhood particles of particle do 6: if > then 7: add to 8: end for 9: delete 10: end for |
We apply the air inflow force
before the soap film is converted to the soap bubble, which is given by the following equation:
where
is normal vector of particle
.
represents the force applied to the soap film by the air flow transferred to the inflated soap film, and
represents the force with which the air inflow
directly acts on the soap film. The air inflow force describes the air flow transferred to the inflated soap film and the air inflow directly acting on the soap film.
5.2.3. Air Pressure
A large amount of air is contained inside the giant soap bubble, and the air flow is high. Because of this internal air flow, the deformation and standing waves of the giant soap bubbles are enhanced. Our proposed method efficiently represents the phenomenon of air flow interaction inside a giant soap bubble based on air flow transmission, whereby the air flow transfer is performed until the bubble bursts. The air pressure force of each soap film particle is given by following equation:
where
is the pressure coefficient of the current bubble calculated based on Boyle’s law, which explains that the pressure of the bubble is inversely proportional to the volume of the bubble.
is given by the following equation:
where
= 1.01 kPa is the atmospheric pressure coefficient,
is the volume of the initial bubble, and
is the volume of the current bubble.
5.3. Time Integration
We use semi-implicit time integration to update the position and velocity of particles at each time step. The efficiency of semi-implicit time integration was recently effectively used for a deformable surface model of a water drop [
22], flower [
23], and cloth [
24]. Since the motion of the soap bubble is dominated by the boundary surface due to the surface tension effect, semi implicit time integration can preserve the surface detail. The position and velocity of a particle is updated using Equation (3) at each time step,
where
is the time step,
and
are the current position and velocity of particle
, respectively, and
and
are the position and velocity of particle
, respectively, at the next time step.
8. Experimental Results and Analysis
We implemented the system using KinectSDK-v1.8 (Microsoft, Redmond, WA, USA) and multi-threading, which runs on an Intel i5 3.2 GHZ (Intel Corporation, Santa Clara, CA, USA), 16 GB RAM, Nvidia GTX 560 (NVIDIA, Santa Clara, CA, USA) PC with one Kinect. The proposed system controls the wand motions based on the user’s hand motions that are tracked with from Kinect input, and the air inflow, air flow transfer, and soap film bursting are simulated according to the wand’s motion. We employ a previous rendering method [
3] for realistic soap bubble rendering to represent interference and reflection, as well as the refraction phenomenon in real time. The self-collisions of the soap bubble are detected using a bounding volume hierarchy [
30] and the collision response is computed using collision forces [
22], which result in slipping of the colliding particles. If the impact with which the soap film collides is higher than the colliding threshold (
), the soap film bursts.
Figure 10 shows the simulation results according to the user’s hand movements (left), including the left wand trajectory (middle), and the right wand trajectory (right). It also shows the input hand trajectory (dotted line), wand trajectory (full line), starting point (+), end point (×), and current point (square).
Figure 10a shows that when the trajectories of the left and right wands are straight with few redirections, the soap bubble grows in a straight direction.
Figure 10b shows that when the trajectory of the left wand moves in a circle and the trajectory of the right wand is straight, ridges and valleys appear on the left side of the soap bubble.
Figure 10c shows that when the trajectories of the left and right wands all move in a circle, ridges and valleys appear throughout the soap bubble.
Figure 10d shows that when the trajectories of the left and right wands are increasingly redirected and twisted, and the number of movements is large, the soap film bursts.
Figure 10e shows that when the trajectories of the left and right wands are less twisted, the number of movements is large, and when the left and right wands move up and down, the soap bubble is inflated further.
Figure 10f shows that when the left and right wands are moved up from the bottom, the soap bubble is tilted downward and ridges and valleys appear at the top of the bubble.
Figure 11 shows the simulation results of the soap film bursting method. As the crack propagates in the outward direction, the bursting soap films transform into spherical particles similar to those of an aerosol.
Figure 12 shows a comparison between the existing method [
3] and our method. Because the existing method [
3] does not consider air flow inside the bubble and applies internal pressure to the soap film, it is difficult to generate the detailed deformation and an overall flat surface is often produced. Our model controls the air flow inside the soap bubble based on an air flow transfer algorithm, in order to generate detailed deformation and standing waves. In addition, our model processes air flow transfer with negligible computational cost using the efficient operations between one-ring neighboring particles, which are directly accessible in the mass-spring system.
Figure 13 shows the color-coded results of
Figure 12b. The blue color indicates weak air flow while the red color indicates strong air flow. When the wand moves towards the right direction, air flow moves towards the left. Air flow accumulates as the wand is moved, which shows that the intensity of the air flow is stronger than in the previous state.
Table 1 shows the computation times for each result and
Table 2 shows the parameters used in our system.
Figure 14 shows the comparisons of our simulation results with real footage.
Figure 14a,b show the actual footage and simulation results, respectively, when using a tool with two wands. The simulation results show the inflation of the soap film in the left direction, opposite the direction in which the wand moves, as shown in the footage. The simulation results also show that the soap film surface is very smooth and curved as seen in the footage.
Figure 14c,d show the real footage and simulation results, respectively, when creating a giant soap bubble from a soap solution using a single wand tool. The simulation results show that the soap bubble is created according to the direction in which the wand moves from bottom to top, as shown in the footage. In addition, although the new surface continues to be generated according to the motion of the wand, the simulated results show that the soap film surface is smooth and the standing wave is expressed as seen in the footage.
9. Conclusions and Future Work
We present a novel method that automatically generates realistic animated giant soap bubbles according to the user’s hand motions. Our system allows real-time control of the shape, size, and position of soap bubbles in accordance with the user’s hand trajectory, direction of motion and distance travelled. We obtain smooth and gentle wand trajectories using a smoothing method for hand motions. Our air flow transfer algorithm represents the detailed deformation and standing wave of soap film. Our soap film bursting algorithm produces the bursting effect of soap films and bubbles based on hole opening propagation and position-dependent draining in a unified framework. The proposed system can be used for physics education and media art, and enables users to experience virtual giant soap bubble blowing and bursting using the consumer level depth camera Kinect.
In future work, we intend to investigate full body capture and minimize the occlusion problem that arises with the frequent turning and twisting motion. We will also attempt to accelerate our model by parallelizing our simulation method entirely on the GPU.