Vector Search · ML
Materials Similarity Search
From scattered lab spreadsheets to sub-second similarity search.
Built during my AptiSkills internship
- composite materials structured (2,560 raw rows)
- 74
- composite materials structured (2,560 raw rows)
- explained variance (R²) on max stress
- 88%
- explained variance (R²) on max stress
- similarity search over 1,279 vectors
- <1 s
- similarity search over 1,279 vectors
- manual lookup time
- Hours → min
- manual lookup time
01 Context
AptiSkills R&D internship on polymer composite materials, promising for type IV/V hydrogen tanks and extreme marine environments (MHK). Source data: the Sandia National Laboratories MHK Materials Database.
02 Problem
The experimental data lived in heterogeneous multi-sheet Excel files: scattered, non-standardised and hard to query. Engineers spent hours looking up materials with comparable properties by hand.
03 What I built
- 01
Data cleaning - extraction and normalisation of the multi-sheet MHK database into a clean dataset.
- 02
Relational model - SQLite schema Matériau / Résine / Essai, fed automatically.
- 03
Regression - scikit-learn pipeline (LinearRegression with one-hot encoding) predicting maximum stress from fibre ratio, Young's modulus, max strain, thickness, cycles and resin type.
- 04
Vector search - FAISS L2 index over normalised material vectors.
- 05
Product - a Streamlit app to explore, filter, analyse mechanical performance and find similar materials.
04 In action
Screenshots from the project repository.
05 Results
- composite materials structured (2,560 raw rows)74
- explained variance (R²) on max stress88%
- similarity search over 1,279 vectors<1 s
- manual lookup timeHours → min
06 What I learned
- Cleaning complex, heterogeneous multi-sheet data and modelling it relationally.
- Supervised regression with a complete scikit-learn pipeline and feature standardisation.
- Vector search with FAISS for fast multidimensional similarity.
- Designing a Streamlit tool around engineers' real workflows, and running a one-month sprint with weekly deliverables.
07 What came next
Material Discovery Engine
A personal continuation outside the internship: the Streamlit prototype rebuilt as a production-ready REST API.
- FAISS similarity search (IndexFlatL2) on 3,819 composite materials
- 8 numerical features normalised with StandardScaler
- FastAPI REST API with automatic documentation
- Docker containerisation
- 32 automated tests with pytest, GitHub Actions CI/CD
- FastAPI
- FAISS
- SQLite
- Docker
- pytest
- GitHub Actions
Next case study
NYC Taxi ETL


