Show HN: Olelo Foil - NACA Airfoil Sim

28 rbrownmh 15 5/20/2025, 4:44:41 PM foil.olelohonua.com ↗
Hi HN!

A while back, I started exploring ways to make aerodynamic simulation more interactive and visual for the web. I wanted something that felt immediate—intuitive enough for students, fast enough for hobbyists, and hackable enough for engineers. That’s how Olelo Foil was born.

Foil is a browser-based airfoil simulator written in JavaScript using Three.js and WebGL. It lets you interactively explore how airfoils behave under different conditions, all rendered in real time. Right now, it uses simplified fluid models, but I’m working toward integrating Navier-Stokes for more accurate simulations—and I’d love help from anyone interested in fluid dynamics, GPU compute, or numerical solvers.

I’m also building Olelo Honua, an educational platform focused on Hawaiian STEM content and digital tools. Foil is one piece of that larger vision—bringing STEM education into the browser with open, accessible tools.

Check it out, and if you're interested in collaborating (especially on the physics side), I’d love to connect!

Comments (15)

rbrownmh · 2h ago
Figure I'd drop this here - some other projects I'm working on currently:

Seafloor LOD (infinite terrain generator): https://github.com/kanakawai-maui/seafloor-lod

Olelo Honua (free LLM-enabled translation tool): https://www.olelohonua.com/

observationist · 2h ago
For those of us who didn't know what these were, you can specify a 4 digit code that corrrelates with an airfoil shape, and here's how it works.

http://airfoiltools.com/airfoil/naca4digit

ge96 · 3h ago
Oh damn that's trippy how you can move the camera haha I am the airfoil

0990 chonker

hbrav · 6h ago
I have a background in fluid dynamics and may be interested in helping with this. Is there a way for me to contact you?
rbrownrw8 · 6h ago
Do you have Reddit by chance? Feel free to DM me u/Creative_Walrus_5197
rbrownrw8 · 6h ago
(and I'll give you my email just want to avoid too much spam)
hbrav · 5h ago
I've sent you a message.
addaon · 4h ago
Unless you're planning to resolve the boundary layer and model separation (good luck...), you'd probably be better off using panel methods than NS. Look at XFoil or JavaFoil for available implementations.
addaon · 4h ago
Also, it looks like you might have a bug in generating the airfoil shape. An airfoil like the 8412, while extreme, is well-defined and constructible from NACA-style combination of thickness and camber forms; but you show it as having a "kink" on the bottom surface, which is definitely not correct.
observationist · 2h ago
841220 is interesting, if you want to see what a borg cube aerodynamics might look like.
addaon · 1h ago
841220 is, sadly, not a legal NACA airfoil designator.

There are three major families of procedurally-defined NACA airfoils -- four-digit like the 2412, five-digit like the 23012, and the 6-series like the 64A012.

It looks like this site only expects the four-digit form, and is mis-parsing anything other than that -- which is a pity, because one of the uses of a tool like this is to get a sense of /why/ the 23012 is similar CLmax to the 2412, but with lower moment and a more sudden stall. If nothing else, input validation is necessary!

rbrownmh · 2h ago
LOL and it's also completely vertical
rbrownmh · 2h ago
Good catch - I'll look into fixing this. thanks!
addaon · 1h ago
Yep. If you're generating them yourself, you'll probably want to be careful to follow the NACA method for combining camber and thickness profiles -- basically, running a circle of thickness-profile-defined diameter along the camber line and unioning the areas. The alternative (which is these days sometimes called the Riblett approach) is just to define the airfoil as the camber line plus or minus half the thickness vertically at each point -- which often leads to better airfoils for many purposes, but will disagree with available NACA data, especially w.r.t. nose radius (and thus, critical angle for airfoils which stall near the nose).

If the goal is to allow a user to compare the properties of different airfoils, there's a lot to get right to make sure they actually know what airfoils they're comparing. The alternative is to allow airfoil selection from one of these sites [1][2], which also allow a link to provide comparative analysis.

[1] https://m-selig.ae.illinois.edu/ads/coord_database.html [2] https://bigfoil.com/

rbrownmh · 2h ago
I just pushed an update using spalart-allmaras turbulence model (somewhere in between NS and panel methods). Also updated the controls to use arrow keys :)