Writing / Dev Logs
Dev LogSango16.08.2026

A hunch about compression that turned out to be right

The optimizer had been running for a while and the shapes looked convincing, until I sat looking at one result and something bothered me. The tall arm of the part had two thin walls and nothing at all between them. If you really squeezed that part, would those walls not just fold sideways? That turned out to be the right thing to worry about. The optimizer only ever answers one question, how do I make this bend as little as possible, and the physics behind that question has a blind spot. It knows exactly how much a part flexes. It has no concept of a long thin column bowing out and collapsing well before the material is anywhere near its limit. So it kept producing exactly the shapes that buckle, because nothing in its world ever said otherwise.

The good thing about a suspicion is that you can measure it. Against a plain uniform blank holding the same amount of material, the optimized part came out seven times stiffer and twice as easy to buckle. That was the trade being made quietly all along, because nobody had asked it not to. Fixing it was the hardest stretch of the project so far, since there was no library function to call and the geometric side of the stiffness had to be assembled by hand, then checked against Euler's column formula from 1744 until refining the mesh walked the error from 7.8 percent down to 0.6. The picture shows where a finished part gives way, and the very first mode is a long unsupported wall bowing near its middle. Textbook Euler.

The honest ending is that I got the outcome wrong. I was confident that once the optimizer could see buckling it would start putting cross braces into that hollow arm. It did nothing of the sort. It thickened the walls instead, which is also a perfectly good way to resist folding. Something else eventually put braces in there, and that is the next post.

topology-optimizationfemmathematics