#### NOTE
This is a **Hugging Face dataset**. For large datasets, ensure `huggingface_hub>=1.1.3` to avoid rate limits. Learn more in the <a href="https://docs.voxel51.com/integrations/huggingface.html#loading-datasets-from-the-hub" target="_blank">Hugging Face integration docs</a>.

<a href="https://huggingface.co/datasets/Voxel51/BoilingBench-Multimodal" target="_blank">![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Dataset-yellow)</a>

# BoilingBench Multimodal → FiftyOne (Native Multimodal MCAP)

![preview](https://huggingface.co/datasets/Voxel51/BoilingBench-Multimodal/resolve/main/preview.gif)

[BoilingBench-Multimodal](https://huggingface.co/datasets/hanhuark/BoilingBench-Multimodal)
from the NED³ laboratory at the University of Arkansas, converted to native
multimodal MCAP episodes.

A copper surface is driven past the onset of boiling while a high-speed camera
watches from the side and a hydrophone, a microphone and an acoustic-emission
sensor listen. Boiling changes character before it changes appearance, and the
release is built so that both can be read against each other: every modality
carries a recorded clock offset against the temperature acquisition, so the
sound, the surface temperature and the frames sit on one timeline.

Two closed-loop immersion-cooling runs are carried alongside the pool-boiling
experiments, recorded in infrared with HFE-7100 and water over a flat device.

## Installation

```bash
pip install fiftyone
```

## Usage

```python
import fiftyone as fo
import fiftyone.utils.huggingface as fouh

dataset = fouh.load_from_hub(
    "Voxel51/BoilingBench-Multimodal",
    name="BoilingBench-Multimodal",
    persistent=True,
)
fo.launch_app(dataset)
```

The runs that reached the highest wall temperature:

```python
view = dataset.sort_by("max_surface_temp_C", reverse=True)
fo.launch_app(dataset, view=view)
```

## What you get

Seven episodes and 1.72 hours of recording, holding 389,483 camera frames,
3,392,459 thermal samples and 171,970 acoustic-emission hits.

The four pool-boiling episodes each carry:

- `/video`, the side view of the heater as `foxglove.CompressedVideo`
- `/thermal.plot`, surface temperature, heat flux, wall superheat, heat
  transfer coefficient, saturation temperature, pressure and DC power
- `/thermocouples.plot`, the four embedded thermocouples the surface
  temperature and heat flux are fitted from
- `/acoustic-power.plot`, band-integrated power in V² and dB, per sensor
- `/acoustic-frequency.plot`, peak frequency, spectral centroid and spectral
  bandwidth, per sensor
- `/ae-hits.plot`, per-hit amplitude, energy, absolute energy, duration,
  counts, rise time and average and peak frequency
- `/events`, the release’s derived markers stamped where they were found:
  departure from nucleate boiling, the surface temperature peak, the
  critical-heat-flux marker, the return to nucleate boiling, and the DC power
  start and shutoff
- `/instruction`, the surface, fluid and condition being run

The two infrared episodes carry `/video`, `/ir-temperature.plot` and
`/thermocouples.plot`. The hydrophone reference run carries
`/acoustic-power.plot` and `/thermal.plot` and ships no video.

| Episode                            | Source         | Surface     | Condition                | Duration   | Frames   | Capture       |
|------------------------------------|----------------|-------------|--------------------------|------------|----------|---------------|
| `ambient-subcooled-flat-cu`        | BoilingBench-1 | flat copper | ambient subcooled        | 16m29s     | 96,331   | 97 fps        |
| `subatmospheric-saturated-flat-cu` | BoilingBench-2 | flat copper | subatmospheric saturated | 25m57s     | 96,331   | 62 fps        |
| `ambient-saturated-cu-foam`        | BoilingBench-3 | copper foam | ambient saturated        | 9m16s      | 82,603   | 149 fps       |
| `ambient-saturated-flat-cu`        | BoilingBench-4 | flat copper | ambient saturated        | 6m26s      | 58,933   | 153 fps       |
| `ambient-saturated-hydrophone`     | BoilingBench-6 | flat copper | ambient saturated        | 4m25s      | —        | acoustic only |
| `immersion-water-100w`             | BoilingBench-7 | flat device | water, 100 W             | 13m43s     | 15,150   | 18 fps IR     |
| `immersion-hfe7100-50w`            | BoilingBench-7 | flat device | HFE-7100, 50 W           | 27m01s     | 40,135   | 25 fps IR     |

Episodes carry the fields `experiment`, `test_id`, `surface`, `fluid`,
`condition`, `analysis_mode`, `duration`, `applied_heat_load_W_cm2`,
`input_subcooling_C`, `pressure_mean_kPa`, `saturation_temperature_C`,
`max_surface_temp_C`, `max_heat_flux_W_cm2`, `chf_proxy_W_cm2`,
`chf_event_status`, `dnb_time_s`, `nbr_W_cm2`, `dc_power_start_s`,
`dc_power_shutoff_s`, `acoustic_sensors`, `critical_events` and the
per-stream counts. The infrared episodes add `applied_power_W`, `ir_metric`
and `max_ir_temperature_C`.

| Episode                            | Peak wall temperature   | Peak heat flux   | CHF marker   |
|------------------------------------|-------------------------|------------------|--------------|
| `subatmospheric-saturated-flat-cu` | 250.1 °C                | 43.3 W/cm²       | 40.1 W/cm²   |
| `ambient-saturated-cu-foam`        | 236.9 °C                | 165.4 W/cm²      | 165.4 W/cm²  |
| `ambient-saturated-flat-cu`        | 173.1 °C                | 88.6 W/cm²       | 88.6 W/cm²   |
| `ambient-subcooled-flat-cu`        | 172.9 °C                | 278.0 W/cm²      | 177.3 W/cm²  |

The critical-heat-flux figures are the release’s own screening markers rather
than independently validated measurements, and each episode carries the
source’s `chf_event_status` alongside them.

## Notes on the conversion

Every sensor stream is placed on the temperature acquisition clock using the
offset table the release publishes, so the acoustic-emission sensor opens
about eight seconds before the temperature record and lands there.

The camera is the exception: it carries no offset record, and its container
duration is the run stretched for playback at 30 fps. Frames are placed by
scaling container time onto the run, and the result is checked against the
logged DC power events. On `ambient-subcooled-flat-cu` the onset of boiling
brackets the power start at 5.2 s and the decay begins where shutoff is
logged at 673.9 s; `subatmospheric-saturated-flat-cu` agrees at its shutoff.
Each episode carries the `video_time_scale` and `video_capture_fps` it was
placed with.

The infrared runs need no scaling. Their temperature tables carry one row per
recorded frame, so frames take their times directly.

Plot channels are thinned to 10 Hz. The thermal acquisition runs at 3 kHz on
two of the experiments, and the full rate is not readable on a timeline. The
hydrophone in the reference run is carried as a windowed RMS rather than a
decimated sample, since the waveform runs at 2 kHz and a thinned copy of it
carries no signal.

Video is re-encoded to Annex-B H.264 without B-frames.

The release also ships a human-annotated still-image set and the raw
acquisition files, including a 12.6 GB acoustic-emission waveform per
experiment. Neither is carried here; the derived series the release publishes
alongside them are.

## License & attribution

The source release is distributed under
[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), and this
conversion is distributed under the same license.

```bibtex
@misc{boilingbench,
  title  = {BoilingBench-Multimodal},
  author = {{NED\textsuperscript{3} Laboratory, University of Arkansas}},
  year   = {2026},
  url    = {https://github.com/UARK-NED3/BoilingBench-Multimodal}
}
```

The individual experiments carry their own citations:

```bibtex
@article{dunlap2023acoustic,
  title   = {Nonintrusive Heat Flux Quantification Using Acoustic Emissions
             During Pool Boiling},
  author  = {Dunlap, Connor and Pandey, Hari and Weems, Ethan and Hu, Han},
  journal = {Applied Thermal Engineering},
  volume  = {228},
  pages   = {120558},
  year    = {2023}
}

@inproceedings{pandey2024immersion,
  title     = {Two-Phase Immersion Cooler for Medium-Voltage Silicon Carbide
               MOSFETs},
  author    = {Pandey, Hari and others},
  booktitle = {IEEE ITherm},
  year      = {2024}
}
```

Changes from the source: conversion to the FiftyOne MCAP flavor, re-encoding
of the video to H.264, placement of every stream on the published temperature
clock, thinning of the derived series to a readable rate, and encoding of the
sensor, acoustic and event streams as message streams.
