🧪 From Concept to Code: Breathing Life into My Undergraduate Thesis

Breathing life into my thesis on ANN-guided shape optimization—now rebuilding it as an open-source research project.

🧪 From Concept to Code: Breathing Life into My Undergraduate Thesis
Photo by Kelly Sikkema / Unsplash

🧠 The Idea: Smarter Aerodynamic Optimization

My undergraduate thesis focused on generalizing existing Aerodynamic Shape Optimization (ASO) systems by combining:

  • Artificial Neural Networks (ANNs) for surrogate modeling
  • Multi-Objective Particle Swarm Optimization (MOPSO) as the base optimization method
  • A classifier module to dynamically select the most appropriate flow solver for a given problem

The key motivation was to reduce solver cost and increase generalizability across domains—most current ASO frameworks are rigid, tuned for a narrow range of problems, and expensive to adapt.


📚 What I Did Then

  • Conducted a deep literature review on MOPSO variants, ANN-PSO hybrids, and solver-coupled optimization strategies
  • Designed a modular architecture where:
    • The optimizer learns from simulation history
    • The classifier switches solvers based on problem traits
    • The system could, in theory, generalize across aerodynamic domains (vehicles, trains, airfoils)
  • But due to resource and time constraints, I couldn’t implement the full pipeline during my undergrad

🔄 What I'm Doing Now

I'm now rebuilding my thesis as an open, working research project, with the goal of producing actual benchmarks, visuals, and—eventually—a short research paper.

🔧 Phase 1 – Minimal Working Pipeline

  • Use PyTorch to implement the surrogate ANN
  • Build a simplified MOPSO module using SciPy
  • Train the ANN on historical drag/lift function outputs
  • Run tests on open NACA 4-digit datasets

🧪 Phase 2 – Benchmarking & Solver Switching

  • Build a binary classifier that picks solvers (e.g. steady-state vs transient) based on inputs like shape complexity or convergence rate
  • Compare performance vs baseline MOPSO: speed, accuracy, iteration count
  • Log and visualize optimization steps with matplotlib/seaborn

🧰 Phase 3 – Open Source Modular Toolkit

Project codename: aso-kit

Structure:

aso-kit/
├── optimizer.py         # MOPSO core with ANN guidance
├── surrogate.py         # PyTorch-based ANN model
├── solver_selector.py   # Classifier to switch solvers
├── runner.py            # CLI + experiments
├── visualizer.py        # Plotting module

📄 Where I’m Headed

  • Submit a short preprint on arXiv or NeurIPS workshop by end of 2025
  • Integrate an open CFD engine like SU2 or OpenFOAM for real aerodynamic simulation
  • Document trade-offs between learning cost and solution quality
  • Package aso-kit as a research toolkit for anyone exploring optimization + ML + simulation

💬 Why This Still Matters

We often write promising ideas in a thesis and leave them to collect digital dust. This project is my attempt to resurrect a promising concept and build something real—something useful to the community and meaningful to me.

Stay tuned for updates, dev logs, and lessons learned.