My journey to create a Jet Engine from scratch
Tags: python, opensource, cad, programming
Published: 2023-01-08 18:21:10

For my New Year's resolution I decided to reward myself with a new project. After all, I just graduated from college and figured you know what I don’t have enough of in my evenings…homework. I kid of course but I wanted my next project to be something challenging. Something where I could prove I was capable of learning hard things. That one thing for me has been an enigma since I was a child. I wanted to build something that could fly.  Back then my earliest science fair submission was a solar plane. It was rudimentary at best but the idea stayed with me.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2h9aa02wibpubl80996i.png)

This time around I wanted to get into the meat of what makes modern aviation possible. That of course is the jet engine. Going into this I started without an aerospace background. What I do have are strong software design instincts the most important of which for a project like this is the concept of **Decomposition**. That principle states that to represent a complex system we must first break it down into smaller more manageable pieces. I’ve taken this as my strategy for building my mental model, coming up with tasks, and representing the code into more manageable pieces.

For my jet engine those smaller pieces are the axial compressor (a fan that takes air and packs it into a smaller space), the combustion chamber (a container that combines fuel and oxygen rich air for the purpose of burning the fuel to generate thrust), and the turbine which converts some of the the thrust into energy that drives the compressor shaft. Now this all sounds easy breaking it down like this but I am still working on the axial compressor.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elh6k4bp1gks40phuwfb.png)
> Credits: NASA

As one does in my field the first place we start is Stack Overflow, but there is no Stack Overflow for jet engines. Google wasn’t much better. There is almost no freely available information on this topic. And that's when it became clear to me that this project would be more daunting than any I have worked on in the past.

I had to go old school. Back to those large rooms full of moldy books and linoleum tiles. You know the thing, I think they called them libraries. The most useful content was in textbooks. Sometimes I found good content from a dissertation or a white paper. It started out very overwhelming, but as I immersed myself in the content the ideas that at first seemed foreign to me started to make sense. I was able to take formulas from textbooks and write programs out of them. Suddenly the project started to gain steam. Practice problems from textbooks turned into unit tests. I’d write up formulas just for the sake of documentation and later on they would become useful core pieces of the project.

And that's when the next big idea of the project came. How do I visualize all the math I was doing? I felt If I could visualize the models I would know quickly if what I was learning was relevant to how engineers build axial compressors at aviation companies. So I worked to plug my models into a tool called CadQuery to generate 3D models with Python. Those first images showed me this project has potential. I luckily got it done before New Years. It was like my own personal firework show.



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0x47aqjuuadl65xsatrr.png)



> Axial Rotor Shaft

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5pql19ziwbk60pny5az4.png)

> Axial Stator Casing


With the axial compressor done I am now onto the next step of this project to understand what makes an efficient axial compressor. From reading the literature much of the field seems to rely on approximations. I want to use the tools of my trade to see if I can come up with something better. For example, I hope to  use cloud compute to run reinforcement learning algorithms on top of fluid simulations to see If I can generate more efficient designs.

If this sounds interesting to you I have open sourced the tool here for anyone to contribute or just have a peek: https://github.com/Turbodesigner/turbodesigner