Show HN: Olelo Foil - NACA Airfoil Sim
foil.olelohonua.comHi 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!
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/
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
I have a background in fluid dynamics and may be interested in helping with this. Is there a way for me to contact you?
Do you have Reddit by chance? Feel free to DM me u/Creative_Walrus_5197
(and I'll give you my email just want to avoid too much spam)
I've sent you a message.
Oh damn that's trippy how you can move the camera haha I am the airfoil
0990 chonker
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.
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.
841220 is interesting, if you want to see what a borg cube aerodynamics might look like.
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!
Added validation and looking into fully supporting the 5 digit codes - thanks for the feedback!
LOL and it's also completely vertical
Good catch - I'll look into fixing this. thanks!
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/
I may have fixed 8412 :)
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 :)
This is very fun - here's a small feature request: add the ability to define KFM airfoils.
https://en.wikipedia.org/wiki/Kline–Fogleman_airfoil
I experiment with these airfoil designs and it would be very nice to have a smooth way to see the various efficiencies/inefficiencies of various dimensions of KFM airfoil.
Notes re: CFD, Navier Stokes,
"Deep Learning Poised to ‘Blow Up’ Famed Fluid Equations" https://news.ycombinator.com/item?id=31049608
https://github.com/chennachaos/awesome-FEM4CFD?tab=readme-ov...
>> Numerical methods in fluid mechanics: https://en.wikipedia.org/wiki/Numerical_methods_in_fluid_mec...
jax-cfd mentions phiflow
jax-cfd > Other awesome projects: https://github.com/google/jax-cfd#other-awesome-projects
PhiFlow: https://github.com/tum-pbs/PhiFlow/
We had a monochrome green aerodynamic simulation app literally on floppy disks in middle school in approximately 1999 that was still cool then. IIRC various keyboard keys adjusted various parameters of the 2d hull that was tested to eventually - after floppy disc noises - yield a drag coefficient.
TIL that the teardrop shape maximizes volume and minimizes drag coefficient, but some spoiler wings do generate downward lift to maintain traction at speed.
A competitive game with scores and a leaderboard might be effective.
...
Navier-Stokes for compressible and incompressible fluids, but it's a field of vortices with curl so SQG/SQR Superfluid Quantum Gravity / Relativity has Gross-Pitaevskii for modeling emergent dynamics like fluidic attractor systems in exotic states like superfluids and superconductors and supervacuum.
TIL the mpemba effect says that the phase diagram for water is incomplete because one needs the initial water temperature to predict the time to freeze or boil; those have to be manifold charts like HVAC.
There's a Gross-Pitaevskii model of the solar system; gravity results in n-body fluidic vortices which result in and from the motions of the planets and other local masses.
/?hnlog "CFD" :
From "FFT-based ocean-wave rendering, implemented in Godot" https://news.ycombinator.com/item?id=41683990 :
> Can this model a fluid vortex between 2-liter bottles with a 3d-printable plastic connector?
> Curl, nonlinearity, Bernoulli, Navier-Stokes, and Gross-Pitaevskii are known tools for CFD computational fluid dynamics with Compressible and Incompressible fluids.
> "Ocean waves grow way beyond known limits" (2024-09) https://news.ycombinator.com/item?id=41631177#41631975
Also, recently I learned that longitudinal waves in superfluids (and plasmas) are typically faster than transverse standing waves that we observe in fluid at Earth pressures.