Skip to content

We simulate a wind tunnel, place a rectangular occlusion in it, and then use gradient descent to turn the occlusion into a wing.

Notifications You must be signed in to change notification settings

greydanus/optimize_wing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Optimizing a Wing

Blog post | Paper | Colab notebook

In this project, I use Navier-Stokes to simulate a wind tunnel, place a rectangular occlusion in it, and use gradient descent to optimize its lift/drag ratio. This gives us a wing shape. I'm releasing this repo as a supplement to a series of blog posts I wrote about human flight.

To obtain the figure below: clone this repo, cd into it, and run python main.py

optimize_wing.png

Note: the code and ideas in this repo build on this Autograd demo.

Appendix: Failure cases

Biplane wing. When making the differentiable region wider (in hopes of a wider wing) the wing split into two wings, like a biplane.

biplane.gif

Shattered wing. When adjusting the granularity of the simulation, we accidentally made the wing shatter into many little wings. Fun to look at, but probably not so fun to fly with.

shatter.gif

Stubby wing. This sad little wing occurred after making the initial rectangle too impermeable. Not enough simulated air was making it past the boundary layer of the rectangle so we hit a bad local minima.

stubby.gif

About

We simulate a wind tunnel, place a rectangular occlusion in it, and then use gradient descent to turn the occlusion into a wing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages