Acoustic Data-based Characterization of Incipient Boiling for Space Applications
This repository contains code, data, and documentation for a project aimed at detecting and characterizing incipient boiling in cryogenic fuel tanks using non-intrusive acoustic sensors. The project was developed in collaboration with NASA Ames Research Center.
To download and use the Acoustic-Space-Boiling app:
- Clone the repository:
git clone https://github.com/your-username/Acoustic-Space-Boiling.git cd Acoustic-Space-Boiling - Install dependencies:
- Ensure you have Python 3.10+ installed.
- Install required packages:
pip install -r Production/requirements.txt
- Run the pipeline:
- To process new data and retrain models, run:
python Production/retrain.py
- You will be prompted to choose whether to run both supervised and unsupervised retraining, or just unsupervised retraining. Type
yornas instructed. - Outputs (features, models, plots) will be saved in
Production/app_resources/output/.
- To process new data and retrain models, run:
- Launch the web app:
- Start the interactive web application:
python Production/web_app/app.py
- Open your browser and go to
http://localhost:5000to explore results and visualizations.
- Start the interactive web application:
For more details, see the documentation in the Production/ folder and the comments in each script.
To add new experimental runs and label them for supervised learning:
- Place new data files:
- Copy your new acoustic data CSV files into the
Production/new_runs/directory.
- Copy your new acoustic data CSV files into the
- Prepare a label CSV:
- Create a CSV file in
Production/new_labels/with two columns:filenameandlabel. - The
filenameshould be just the name of the CSV file (do not include any folder path), and should match the new run's CSV filename (up to the first period is used for matching). - The
labelshould be an integer corresponding to the current label mapping (see the mapping inProduction/web_app/app.pyfor the correspondence between integers and boiling regime categories, or to modify the mapping).
- Create a CSV file in
- Run the pipeline:
- Execute the retraining script:
python Production/retrain.py
- You will be prompted to choose whether to run both supervised and unsupervised retraining, or just unsupervised retraining. Type
yornas instructed. - The pipeline will automatically sort new runs into labeled and unlabeled directories, merge labels, extract features, and update all downstream outputs.
- Execute the retraining script:
For more details on file formats and troubleshooting, see the documentation in the Production/ folder.
Cryogenic fuel tanks store liquefied gases like oxygen and hydrogen for spacecraft. Even minor heat leaks in microgravity can trigger incipient boiling, leading to pressurization and catastrophic failure. Traditional thermal sensors often miss early boiling events due to low resolution and delayed response times.
Our approach uses accelerometer-based acoustic sensing to rapidly and reliably detect the onset of boiling—enabling safer cryogenic fuel management in space environments.
- 441 acoustic experiments conducted at NASA
- Data recorded at 10,000 Hz
- Each CSV contains:
- 2 channels (sensor amplitudes)
- 1–30 seconds of signal data
- Labels correspond to boiling regimes (e.g., random, single rhythmic)
Two main categories:
- Peak amplitudes and timing
- Time above threshold
- Peaks per second
- Peak time differences
- Dominant rhythmic patterns
- Power spectral density
- Spectral entropy
- Frequency centroid
- Top peak frequency
- Number of spectral peaks
A 5-step algorithm detects dominant rhythmic patterns in the acoustic data:
- Estimate noise level
- Generate candidate rhythms
- Count peak “hits” for each candidate
- Prune weak candidates via statistical tests
- Group similar candidates and extract dominant ones
The result: number of statistically significant boilings per trial.
- Feature Extraction →
features.csv - Scaling → for PCA + clustering
- PCA → reduce noise & redundancy (6 PCs > 97% variance)
- K-Means Clustering → unsupervised boiling regime grouping
- Classification → supervised learning with decision trees
- Label Training Data → manually categorize boiling regimes (e.g., Single Rhythmic, Noise)
- Feature Extraction → engineer time-domain and frequency-domain features
- Select Model → evaluate classifiers; use decision trees for interpretability
- Fit Model → train model on PCA-transformed feature set
- Test Model → evaluate using precision, recall, and F1 score per class
| Class | Support | Precision | Recall | F1 Score |
|---|---|---|---|---|
| Single Rhythmic | 62 | 86.56% | 85.48% | 85.22% |
| Random | 57 | 87.54% | 80.70% | 83.36% |
| Noise | 31 | 90.16% | 87.09% | 87.38% |
| Other Classes | – | Lower performance due to underrepresentation |
A demo web application allows interactive exploration of results:
- 2D/3D PCA visualizations
- Detailed time-domain signal plots
- Dynamic cluster selection and comparison tools
- Supervised learning model visualization
| Name | Role | |
|---|---|---|
| Zachary Weinfeld | Acoustic feature engineering, supervised learning | zweinfeld@calpoly.edu |
| James Lamkin | Data pipeline, rhythmic detection algorithm | lamkin@calpoly.edu |
| Krish Gupta | Web application, system integration | kgupta15@calpoly.edu |
| Andrew Martinez | Statistical analysis, clustering | amart531@calpoly.edu |
If you use this work in your research, please cite our project as follows:
Krishnanshu Gupta, James Lamkin, Andrew Martinez, and Zachary Weinfeld.
Acoustic-Space-Boiling: Acoustic Feature-Based Characterization of Boiling Regimes in Cryogenic Fuel Tanks.
GitHub repository, 2025. Available at: https://github.com/lamkin1/Acoustic-Space-Boiling.
APA Citation:
Gupta, K., Lamkin, J., Martinez, A., & Weinfeld, Z. (2025). Acoustic-Space-Boiling: Acoustic feature-based characterization of boiling regimes in cryogenic fuel tanks. GitHub. https://github.com/lamkin1/Acoustic-Space-Boiling
Or, include a link to our GitHub repository: