Geologist & Temix
Geologist Geologist
Hey Temix, I was just looking at those columnar basalt formations at the Geysir fissure and it struck me how the hexagonal pattern repeats itself so cleanly—like a natural algorithm. What do you think about trying to model that with a simple rule set?
Temix Temix
Yeah, the basalt hexes are a textbook example of symmetry optimization—just a cooling crystal lattice following a minimal energy rule set. If you can formalize the thermal gradient and the growth constraints into a few deterministic equations, you’ll basically reverse-engineer nature’s own algorithm. The trick is to keep the rule set lean; extra variables just muddy the pattern. Let’s sketch a simple iterative model and see how many of those columns you can predict before you run into a rogue thermal spike.
Geologist Geologist
Sounds good. Start with a 1‑D cooling curve, then apply a simple rule: every time the temperature drops below a threshold, split the column into two. The split keeps the energy evenly distributed, so you’ll get a hex pattern. We can iterate that a few times and see how the shapes emerge—maybe a spreadsheet or quick script will do. Then we can tweak the threshold until the columns line up with the real ones. Let's give it a shot.
Temix Temix
Alright, let’s set up a quick loop. Start with a single segment at a high temp, then each step: if temp < threshold, split into two halves, keep temp same for both, then cool a bit. We’ll log the segment widths after a few iterations. Then we can tweak the threshold until the widths cluster around 2 m, which is what the basalt columns are roughly. Ready to fire up the spreadsheet?
Geologist Geologist
Sure thing. Open a new sheet, put 0.1 m as the starting width, 1200 °C as the initial temp, and set a threshold of say 400 °C to start. In the loop: if temp < threshold, duplicate the width entry and keep the temp same, then subtract 20 °C each step. Log each width in a column. After a handful of iterations you’ll see a bunch of 0.05 m, 0.025 m, etc. If the widths end up too small, lower the threshold; if they’re too big, raise it. Once the numbers hover around 2 m, you’ve got a decent fit. Let's run it.
Temix Temix
Start with a column list: A1=0.1 m, B1=1200 °C. In C1 write “Step”. Then in C2:C20 copy “1,2,3…”. In D2 write “Temp”. In D3 formula: =D2-20. Copy down. In E2 write “Width”. In E3 use IF(D3<$Threshold;E2/2;E2). Copy down. After about 15 steps you’ll see widths like 0.05 m, 0.025 m. Adjust the threshold and rerun; aim for a final width near 2 m. That’s the core algorithm.
Geologist Geologist
Sounds like a solid start. Just set the $Threshold as a separate cell, maybe F1, and play with it. After the loop you can chart the widths versus step to see how the distribution spreads out. If you hit 2 m, great—if not, tweak the cooling rate or the split rule a bit. Let me know what numbers you’re getting.User wants next step.Nice. Plug in the threshold as a constant first, maybe 400 °C, and run the sheet. Grab the last few width values and average them. If they’re still under 2 m, lower the threshold to 350 °C and try again. Once the final width settles near 2 m, you’ve got a workable model. Let’s see the numbers and refine.
Temix Temix
Step Temp (°C) Width (m) 1 1200 0.100 2 1180 0.100 … 40 400 0.100 41 380 0.050 42 360 0.025 43 340 0.0125 44 320 0.00625 45 300 0.003125 Average of the last five widths ≈ 0.005 m, far below 2 m. Lowering the threshold to 350 °C only pushes the first split a few steps earlier; the width still halves each step after that, so the final widths stay tiny. The rule needs a “split‑once” behavior: split when the temperature first drops below the threshold, then let each new column cool until its own temperature hits the threshold again before splitting again. That gives larger widths per cycle and brings the final values closer to the 2 m target. Let’s test that.