Skip to main content

Data-Driven Modeling/KNS Spring 2026

Recovering a bubble's volume
from two shadows

  • Volumetric reconstruction with a 3D convolutional neural network (3D CNN)
  • Two orthogonal silhouette views as input
  • Synthetic training data from anisotropic metaballs

A single photograph carries no depth. Given only two silhouettes, taken by two cameras set at right angles, can we rebuild the entire three-dimensional shape of a deformed bubble?

  • Sang Oh Shin
  • Jang Hun Han
  • Min Seop Song
Department of Nuclear Engineering, Hanyang UniversityTransactions of the Korean Nuclear Society Spring Meeting, 2026

01 — The problem

The shape of one bubble
sets the safety margin

Water and steam flow together through reactor cores and steam generators. How well that gas-liquid two-phase flow moves heat is what sets both the power and the safety margin.

The behaviour of each individual bubble comes down to two quantities: the void fraction (the share of the channel volume occupied by gas) and the interfacial area concentration (the gas-liquid interface area per unit volume). Both feed directly into predictions of the Critical Heat Flux (CHF), so how accurately we measure a bubble's volume and surface area governs the accuracy of the safety analysis.

Small Modular Reactors and other advanced designs are moving towards internals that are more compact and more geometrically complex. Bubbles inside them are subjected to strong shear, deform severely, and change shape from moment to moment, which means the gap between a spherical assumption and reality keeps widening.

  • Intrusive probes

    Wire-mesh sensors and local electrical probes give good cross-sectional data, but placing an object in the flow changes the very bubble behaviour being measured.

  • 2-View optics

    Two cameras at right angles. Nothing touches the flow, and only two optical windows are needed, which is what makes it practical in a test facility.

  • More cameras

    Three or more improves accuracy, but a real thermal-hydraulic facility has room neither for the extra windows nor for the optics.

So two views is a constraint one rarely gets to relax. Until now it has been handled by approximating the bubble as a set of semi-ellipsoids, by stacking horizontally sliced elliptical cross-sections, or by merging the two contours with an active contour algorithm. These work for spherical or mildly oblate bubbles, but errors grow quickly once strong shear makes a bubble strongly asymmetric or carves a concavity into it, because every one of them starts by assuming something about the shape.

02 — What we do

No shape assumptions — straight from the two images

This work drops the geometric assumptions entirely and rebuilds the 3D volume voxel by voxel, directly from two orthogonal silhouettes.

2-View → 3D

① The real 3D shape

a single deformed bubble

② Two orthogonal silhouettes

model input · 2 × 128 × 128

Front view

Side view

③ Reconstructed volume

128³ binary voxels · concept

Many 3D shapes cast the same pair of silhouettes. The trained network fills in the hidden curvature probabilistically.

03 — The data bottleneck

There is no ground truth
to learn from

Training a 3D network needs a large number of paired samples: two 2D images together with the matching 3D ground truth. Producing those pairs from real experiments or high-fidelity CFD costs prohibitive amounts of time and computation. That is the main reason 3D CNNs have been scarce in this field.

There is a second problem. Data generated for one set of physical conditions gives a model that performs well under those conditions and fails on unfamiliar shapes outside the training distribution. Real bubbles are always unfamiliar.

So this work changes direction. Instead of simulating physics to produce bubble-like shapes, it mass-produces arbitrary, irregular free-form geometries. The network is not taught physics; it is taught geometry, the single ability to recover a volume from two projections, whatever shape arrives.

How one shape is made

Isocontour f(x) = τsᵢ > 0 · adds volumesᵢ < 0 · carves volume

Concave dimples (sᵢ < 0)

Control points
7

Density field — Eq. (1)

f(x) = Σi si / ( (qx,i/rx,i)² + (qy,i/ry,i)² + (qz,i/rz,i)² + ε )

qᵢ = Rᵢᵀ(x − cᵢ) places the origin at the i-th control point and undoes its rotation. Because rₓ, r_y and r_z differ, the base unit is a squashed ellipsoid rather than a sphere.

Raise τ and the surface pulls inward; lower it and the shape swells.
  1. 01

    Anisotropic metaballs

    Scatter 5–13 control points at random, each an ellipsoid with its own directional radii and a random 3D rotation. Their summed density field is the raw material.

  2. 02

    Concave dimples

    Some control points are given a negative strength. They carve volume out where they sit, producing the concave dimples commonly seen on real bubbles.

  3. 03

    Isosurface

    The surface where the density field equals the threshold τ is extracted with the Marching Cubes algorithm, then filtered for bounding box inclusion, single-component connectivity and reasonable surface curvature, and centred on the origin.

  4. 04

    Ground-truth voxels

    To remove any dependence on absolute scale, everything is handled in the dimensionless domain [−3, 3]³ and discretised into a 128³ binary voxel grid. That grid is the 3D ground truth.

  5. 05

    Virtual cameras

    Two virtual cameras with a 35° field of view are placed orthogonally in PyVista to capture front and side silhouettes. The two 600 × 600 binary images are the model input.

10,000 pairs were generated in total and split 80% training · 10% validation · 10% test.

04 — The network

Squeeze it flat, then unfold it into a volume

The two images are concatenated along the channel dimension and fed in as one tensor. The first half extracts features with 2D convolutions and compresses them into a single vector of length 128; the second half unfolds that vector into a 3D grid and grows it back with transposed convolutions, layers that turn a small grid into a larger one. Everything the network knows about the shape passes through that one narrow vector.

Input2 × 128 × 12832641282562D encoder4 × 4 convolutions · ReLULatent vector128Lift to 3D128 × 16³12864323D decoder4 × 4 × 4 transposed conv.Output1 × 128³channels

The trap of answering “all zero”

The output asks each of 128³ voxels whether it lies inside the bubble. Almost all of that box is background (the bubble occupies a tiny fraction), so a naively trained model converges on answering “outside everywhere”, because that still scores a high accuracy.

The loss therefore uses a binary cross-entropy with extra weight on the voxels that should be answered “inside”. Getting those wrong is made to hurt more.

Training setup

Optimizer
Adam
Initial learning rate
1 × 10⁻⁴
Decay
× 0.5 on validation stagnation
Metric
3D IoU

05 — Results

How much actually overlaps

Evaluation used 1,000 shapes held out from training. The primary metric, IoU, is the overlap between predicted and true volume divided by their union: 1 means an exact match, 0 means no overlap at all. It is the same measure used to evaluate 3D MRI and CT segmentation in medical imaging.

A volume error alone cannot catch a prediction that has the right size in the wrong place. Because IoU falls whenever the shape is displaced even at constant volume, a size metric and a shape metric are reported together.

How much actually overlaps
MetricMeanMinMax
IoU0.9150.6590.978
Volume errorEV7.15 %0.15 %34.56 %
Surface area errorES3.76 %0.02 %19.87 %

Regardless of the absolute scale of the shape, almost every predicted volume fell inside ±10%. Since ±10% is the usual bar for two-phase flow parameter predictions in nuclear thermal hydraulics, the output is accurate enough to feed void fraction and interfacial area estimates.

What the failures had in common

The cases that dropped below an IoU of 0.70 shared a feature: a deep concavity or an internal void lying exactly parallel to the viewing axes of both cameras. In that orientation the carved feature hides completely inside the outer silhouette.

This is not the network failing. Under a two-view constraint no method whatsoever can tell those shapes apart. It is a limit of the measurement geometry. Even then the model did not collapse into scattered voxels; it filled in a plausible solid body enclosing the hidden concavity and kept the overall structure intact.

horizontal section, seen from aboveThe real shape, with a dimpleFront viewSide viewA shape without the dimpleFront viewSide view=The two silhouettes are identical

06 — In short

What has been established

  • No shape assumptions

    Volume is recovered voxel by voxel from two orthogonal silhouettes, with no semi-ellipsoid or elliptical-slice prior.

  • Self-generated data

    Free-form geometries produced in bulk with anisotropic metaballs supplied the training set without recourse to CFD or experiment.

  • IoU 0.915

    The mean over 1,000 independent test samples. Volume predictions fell almost entirely within ±10%.

  • And its limit

    A concavity aligned with both viewing axes cannot be recovered in principle. That is a limit of the optical arrangement, not of the model.

What comes next

Everything above was established on geometry alone. Applying the trained model to real CFD results and to actual multiphase flow measurements, and seeing how far it carries in practice, is the next step.

Source

Sangoh Shin, Janghun Han, Minseop Song, “A Fully Data-Driven 3D CNN Framework for Volumetric Reconstruction of a Deformed Bubble from Two Orthogonal Views,” Transactions of the Korean Nuclear Society Spring Meeting, Jeju, Korea, 2026.

Related patent application
S. Shin · M. Song, “Method and system for volumetric 3D reconstruction of an irregular bubble using two orthogonal views and a 3D convolutional neural network” (2026)

This work was supported by the Innovative Small Modular Reactor Development Agency grant funded by the Ministry of Science and ICT (No. RS-2024-00408520) and by the National Research Foundation of Korea grant funded by the Korea government, MSIT (RS-2025-02310831).

See it in our publication record