Search Blogs

Sunday, October 11, 2026

The Everything Bagel Phase

I was thinking about how universal these foundation MLIPs are, or more specifically, what universality actually means. Some use "foundation" or "pre-trained," which is probably more accurate, i.e. a training recipe of broad data and then deploy, whereas universal would be a potential energy surface (PES) that still behaves for any chemistry regardless if it was captured in the training data. The word fight is mostly vocabulary. Still, the blunt question is, what does "universal" get you once the chemistry no longer resembles anything in the training set, where out-of-distribution means that local neighborhood was not an environment the fit saw.

So here is the stunt I came up with: take one cell and every element from hydrogen to francium, $1 \leq Z \leq 87$, put them in a periodic box at equal atomic fractions, attach a foundation MLIP with coverage, and ask how sampling different configurations via swapping sites and relaxing the cell samples the PES.

This is not some insane equiatomic high-entropy alloy ... although it is an insane chemistry ... but it mixes metals, nonmetals, halogens, noble gases, lanthanides, and radioactive species that barely exist long enough to sit in a box. The chance anyone synthesizes anything close is next to nil. For fun let me call this fictitious initial state the Everything Bagel Phase. Phase is loose here, it names the starting configuration, not a claim that 87 elements form a stable homogeneous thermodynamic phase.

The digital experiment

Equal mole fractions, $x_i=1/87$, so $N=87m$ with $m$ copies of each element. The probe3 below uses $m=1$ ($N=87$), which may introduce finite-size noise effects. A serious run wants tens or hundreds of atoms per species but not trying to spend more than few minutes on this with my compute.

I kept the composition closed ... and of course we can't capture nuclear decay since we have classical nuclei on a learned PES, no explicit electrons or plasma chemistry. Also we are working with periodic boundaries. The search below is a labeling on this PES, so it is not a claim that the cell found the thermodynamic ground state of an 87-component mixture.

The oracles here are just whichever few MLIP ASE calculators will take the whole cell. The calculator has to take every $Z$ from 1 through 87, and the thing to note on the Matbench Discovery diatomics page is that Po, At, Rn, Fr, and Ra are already off the scored curves so the metric stays compatible with Materials Project compositions, the same cut MACE-MPA-0 [1] and M3GNet [2] follow when their element tables skip $Z=84$ through $88$, which puts those models out on this cell. I stayed on the three that accept the full cell, mattersim_v1_5m, orb_v3 (orb-v3-conservative-inf-mpa), and orb_v3_direct_inf (orb-v3-direct-inf-mpa) [3], with orb-models 0.5.4. Both ORB models one-hot atomic number out to 117, and their reference-energy tables are filled through Ra, with Po, At, Rn, and Fr in the table and a filler near $-4.9$ eV from Ac onward. Open MatterSim v1.0.0-5M [4] is one of the three, its embedding runs to $Z=94$ and its paper describes support for the first 89 elements, and the H through Fr cell has a finite energy on all three. The swap and cell-relax loops are in the footnotes.3

Random packing at some guessed "average density" mostly tests overlapping cores. There is no meaningful average density for H, Xe, W, Hg, F, and Fr together I can think of. A less pathological path is a radius-aware pack at low density, then a soft-repulsive cleanup, then the MLIP. Figure 1 is one instance of H through Fr ($N=87$) in a cubic cell of side $13.18$ Å ($V=2290.6$ Å$^3$), density from a covalent-radius volume proxy at packing fraction $0.64$ ($\rho \approx 6.64$ g/cm$^3$), and the soft-overlap push got the shortest pair to about $1.44$ Å.

One atom of each element H through Fr in a soft-overlap-relaxed periodic cell. Left, colored by atomic number $Z$. Right, the same cell colored by chemical class.
Figure 1. One atom of each element H through Fr in a soft-overlap-relaxed periodic cell. Left, colored by atomic number $Z$. Right, the same cell colored by chemical class.

Local minima searching

Starting with a trial, which is one proposal of two random atom pairs swapping labels, then FIRE relaxes the cell and the positions together on a FrechetCellFilter at $P=0$, and the state updates only when $E/N$ drops. The shortest pair permitted is at least $1.0$ Å, and the volume is constrained to stay between $0.45$ and $2.2$ times the initial volume.

There are sixty trials on one seed for each of mattersim_v1_5m, orb_v3 (conservative, unlimited neighbors), and orb_v3_direct_inf (direct forces, same cutoff), so one hundred twenty pair swaps were proposed per model, of which MatterSim kept fourteen, ORB v3 conservative kept thirteen, and ORB v3 direct kept fifteen. Rather than compare absolute $E/N$ across models, in Figure 2 the drop from each model's own start against accepted trials is shown. MatterSim finishes $0.20$ eV/atom down, its largest single drop being Mg with S and Re with Ni ($-0.042$), ORB v3 conservative finishes $0.19$ eV/atom down, its largest single drop being Pb with Y and Dy with W ($-0.043$), and ORB v3 direct finishes $0.16$ eV/atom down, its largest single drop being Mo with As and Sn with Ni ($-0.031$), with a short further relax of those three landing at $-4.949$, $-5.191$, and $-5.137$ eV/atom.

The first trial is the same on all three, Ti with At and Eu with Ni, kept by MatterSim and by the direct model, and the conservative model leaves the state unchanged. Density barely changes, and those values and shortest/largest first-neighbor distances are shown in the table below ... just as point of reference, stainless steel is about $8$ g/cm$^3$.

Packed MatterSim ORB cons. ORB direct
Density (g/cm$^3$) 6.64 6.66 6.68 6.60
Shortest pair (Å) 1.77 1.75 1.79 1.72
Largest first-neighbor pair (Å) 3.33 3.40 3.43 3.47

Because every element appears once, a partial radial distribution function (RDF) by element is a single distance, so the structure info is shown in Figure 3, each entry is how many atoms of one class have the other class as their closest neighbor.2 MatterSim piles metals next to metals ($11$ to $16$), ORB conservative sits in between, and ORB direct does not follow that metal-metal rise, while lanthanide-halogen contacts fall from $5$ on the packed cell toward $1$ under ORB direct. Alkali-halogen stays rare, and metal-halogen is zero for every model. With one atom per element these counts are small, so this is a packing-and-disagreement check, and not so much a motif one.

The final structure in Figure 4 is the MatterSim cell after those sixty trials, $-4.949$ eV/atom at $\rho \approx 6.66$ g/cm$^3$. Sixty trials are a local sample of the labeling, not a ground state.1

Sixty trials on the packed $N=87$ cell, plotted as accepted trials only. Each trial swaps two random pairs and FIRE-relaxes cell and positions. The curves are the energy drop from each model's own start for MatterSim, ORB v3 conservative, and ORB v3 direct. Leader labels mark the first kept trial and each model's largest single drop.
Figure 2. Sixty trials on the packed $N=87$ cell, plotted as accepted trials only. Each trial swaps two random pairs and FIRE-relaxes cell and positions. The curves are the energy drop from each model's own start for MatterSim, ORB v3 conservative, and ORB v3 direct. Leader labels mark the first kept trial and each model's largest single drop.

Nearest-neighbor class pairing after sixty trials. Each panel is a count matrix, row is the center atom's class, column is its closest neighbor's class, for the packed start and each model's incumbent. Class abbreviations marked on the axes are defined in the footnotes.
Figure 3. Nearest-neighbor class pairing after sixty trials. Each panel is a count matrix, row is the center atom's class, column is its closest neighbor's class, for the packed start and each model's incumbent. Class abbreviations marked on the axes are defined in the footnotes.

MatterSim cell after sixty trials, $E/N\approx -4.949$ eV/atom, $\rho\approx 6.66$ g/cm$^3$. Left, colored by atomic number $Z$. Right, the same cell colored by chemical class.
Figure 4. MatterSim cell after sixty trials, $E/N\approx -4.949$ eV/atom, $\rho\approx 6.66$ g/cm$^3$. Left, colored by atomic number $Z$. Right, the same cell colored by chemical class.

What the swaps say

Of course trying to synthesize the Everything Bagel is a stunt rather than providing utility. My main interest was just to see what foundation MLIPs would do if handed some ridiculous chemical system cell. I also was curious about the agreement between them, although in this case its just really two types and one of a different flavor. The MLIPs did return finite energy, and under the volume constraint the drop from each model's own start seemed reasonable and controlled. While the kept atom pairs are not the same, and after the first trial those three searches are already on different structures, so there is a split in the search/acceptance.

I'm not entirely sure this answered my initial question about how well these would do with something so out of distribution, although truth is my question may have actually not really been well posed because there is nothing to validate against. But it is an interesting exercise about MLIPs and their behavior under extreme conditions.

Footnotes


  1. You can view and download the same final cell as Figure 4, rotatable in MatterViz. ↩

  2. In Figure 3, Ae* is alkaline earth, Ln† is lanthanide, and MG‡ is other main-group (B, Al, Si, P, S, Ga, Ge, As, Se, In, Sn, Sb, Te, Tl, Pb, Bi, Po). ↩

  3. Core ASE loops (calculator attach omitted) code block below. Each swap trial relaxes the cell and the positions together. ↩↩

    ASE Loops
    
              from ase.optimize import FIRE
              from ase.filters import FrechetCellFilter
    
              def relax(atoms, fmax=1.0, steps=40):
                  """FIRE on cell and positions at zero pressure."""
                  filt = FrechetCellFilter(atoms, scalar_pressure=0.0)
                  FIRE(filt, 
                       logfile=None,
                       maxstep=0.04).run(fmax=fmax, steps=steps)
                  return atoms
    
              def swap(numbers, rng, n=2):
                  """Swap n random pairs of species labels."""
                  out = numbers.copy()
                  for _ in range(n):
                      i, j = rng.choice(len(out), 2, replace=False)
                      out[i], out[j] = out[j], out[i]
                  return out
            

References

[1] I. Batatia, P. Benner, Y. Chiang, others, A Foundation Model for Atomistic Materials Chemistry, The Journal of Chemical Physics 163 (2025) 184110. https://doi.org/10.1063/5.0297006.
[2] C. Chen, S.P. Ong, A Universal Graph Deep Learning Interatomic Potential for the Periodic Table, Nature Computational Science 2 (2022) 718–728. https://doi.org/10.1038/s43588-022-00349-3.
[3] B. Rhodes, S. Vandenhaute, V. {\v{S}}imkus, others, {Orb-v3}: Atomistic Simulation at Scale, arXiv Preprint arXiv:2504.06231 (2025). https://doi.org/10.48550/arXiv.2504.06231.
[4] H. Yang, C. Hu, others, {MatterSim}: A Deep Learning Atomistic Model Across Elements, Temperatures and Pressures, arXiv Preprint arXiv:2405.04967 (2024). https://doi.org/10.48550/arXiv.2405.04967.

Reuse and Attribution

Sunday, September 20, 2026

Be goal oriented!

Idea-chasing versus taking goal-driven path and picking up tools/ideas as you go
Figure 1. Idea-chasing versus taking goal-driven path and picking up tools/ideas as you go

I came across this read by John Schulman, the short essay An Opinionated Guide to ML Research, which is old but still lands hard. The distinction that stuck with me is goal-driven versus idea-driven research. Idea-driven is the mode I've always assumed how to do things and is much of how research works, i.e. you read a paper that does X, you get an idea for doing X better, and you chase that idea. Goal-driven is different. You pick a concrete capability you actually want to exist, then you solve whatever subproblems get you closer to it, borrowing methods when they help and inventing when they do not. I had never really framed basic research that way, and after sitting with it I am pretty bullish on the goal-oriented approach.

The real takeaway is that a goal keeps you focused when the resource pool for ideas is loud, and it also gives you a shot at being potentially novel ... at least I think so ... because your questions come from the capability you care about achieving rather than from the same corpus everyone else just fishes through. Schulman's point is not that ideas are worthless, just that taking such a path has the potential that you get scooped or you spend months on a 10% tweak with no larger target of value. The focus of Schulman's essay is on ML research, but it has broad applicability.


Reuse and Attribution

Saturday, September 12, 2026

Omarchy, Omakase for your Desktop

Desktop environments are usually an uninteresting topic for me, and I say that as someone who has been on Linux for about fifteen years, since graduate school ... a pretty good decision in my opinion. I default to Ubuntu because I want something that mostly just works and I never really cared about windowing or the desktop shell beyond "does the brightness key work."1 I took whatever the distro handed me and got on with the work.

That is the backdrop for why Omarchy surprised me. I've only run it in a VM so far, mostly browser and terminal work, so treat this as field notes rather than a daily-driver review. Omarchy is an opinionated Arch Linux distribution built around the Hyprland tiling window manager, where windows auto-arrange into tiles instead of floating free, and the marketing is not subtle. Omakase is Japanese for "I'll leave it up to you," which is mostly with respect to just taking what the Sushi chef decides what you should eat that day. Archy is because it is Arch underneath ... basically they are trying to say this is a chef's-choice Linux desktop, so don't patronize us if you're not interested. I find the pronunciation awkward and I would have just called it Omakase or Makase ... sounds better to my ear.

The metaphor mostly holds. It feels like sitting down at a high-end sushi counter where, for my terminal-heavy VM use while needing some browser stuff, eight out of ten courses are excellent and two of them are just not your thing. Below is my tasting menu from the VM.

Setup and the terminal

The speed of getting a usable linux machine is the part that is hardest for other distros to match with Omarchy. I am used to Ubuntu being "good enough" after install, then spending evenings chasing issues related to hardware and configuration quirks. Omarchy ships as if someone already did that pass for a scientist or researcher who lives in the shell. You could argue with the chef's defaults later on your own time, and those defaults will still fight you if your workflow is GUI-first or the guest hardware is weird, but the short answer is the time from install to a working nice configuration is extremely high.

If you love the terminal and TUI tools, meaning full-screen text apps rather than a bare shell prompt, which I really do, this is one of the most natural Linux desktop experiences I have used for that niche. The desktop does not treat the terminal as a leftover window you tolerate while hunting for a GUI.

Omarchy Hyprland desktop tiling layouts from the official manual
Figure 1. Omarchy Hyprland desktop tiling layouts from the official manual

Keybindings and tiling

The keybindings are different from what Ubuntu/GNOME, so a bit annoying for the ones already burned into my fingers. They are not hard to keep in your muscle memory once you accept that the chef rearranged the kitchen, but it still frustrates when I am mid-habit, and the main crux is that they are easy enough to learn by doing and slow to become automatic. That tradeoff is fine for what Omarchy brings to the table, and the more time I spend with it the more I suspect remapping my brain is worth it rather than a reason to bounce.

The tiling window manager is the course I keep chewing and not sure how I feel about it. Hyprland seems powerful and snappy, and information on screen is often presented better than on my usual Ubuntu desktop; think screen grabs, dictation etc. Still, the mental model is the hard part for me since I grew up floating windows and using overview gestures. Omarchy requires you to think in tiles and workspaces which I have never been confined to before. What I miss most is a native "show everything at once" key, basically what Super does in recent Ubuntu GNOME with the Activities overview. I want a panoramic dump of open windows when my brain loses the state of my desktop, not another "what's the right key binding for this?" hunt. I guess the tiling model is supposed to make that less necessary, since it automatically resizes windows, and the more I use it the more I think that is the real answer, I just have not put enough hours in yet.

GNOME Activities overview with open windows spread across the monitor, the Super-key habit from Ubuntu
Figure 2. GNOME Activities overview with open windows spread across the monitor, the Super-key habit from Ubuntu

Little things and taste

The top-bar bits I noticed for dictate (voice-to-text) and set reminder feel natural and well manufactured, little things that usually take a plugin scavenger hunt on other linux desktops environments, and screenshots are similarly one of those chef defaults that just work without hunting. Screen recording has seemed broken or flaky in my VM, so I am chalking that up to the guest environment until I see otherwise. Worth saying so I do not oversell the polish.

The lack of a pinned app launcher bar is mildly annoying. Part of me still believes mousing over and clicking is as fast as typing the app name, at least for the three things I open constantly. You can keybind those, and the chef clearly expects you to. I am halfway convinced and halfway stubborn about it.

Some of the fonts and visuals are beautiful, some are just ehh, and the wallpapers, screensaver, and Omarchy logo are where I think the chef had a bad night. The screensaver in particular is one of those chef's choices that is just :nauseated_face: for me. Taste is personal, and this is the 2/10 dish in an otherwise strong meal.

Closing notes

Omarchy is a coherent, keyboard-heavy, terminal-native Arch/Hyprland stack with strong defaults and a few stubborn mismatches for someone coming from GNOME, and the more I live in the VM the more bullish I get on how well thought out the whole meal is. Things feel way way faster and more responsive in a VM than Ubuntu ever has. That could be the tiling model, the lighter shell, or just good configuration bias. I didn't measure any quantitative numbers so not going to pretend these are concrete facts.

The part I had barely touched in the tasting notes above, and the part that is shifting my stance, is how well AI coding agents seem to find their way around Omarchy compared with other distros I use. From poking at the docs it looks like both things are true, i.e. they ship an omarchy skill as breadcrumbs into the usual agent skill folders, and the omarchy CLI itself is self-documenting in a way that agents can actually navigate. Worth saying so I do not oversell it, the skill is labeled experimental and model quality still matters, but the feeling in practice is that agents just figure this desktop out faster. I am also a little sold on Herdr here, because it makes persistent sessions easy, and from there you can spin up teams and use the Herdr skill so agents actually talk to one another across panes. For my daily-driver agent setup I still prefer Agent of Empires, meaning my multi-agent fleet harness rather than a single CLI in a terminal, but as an OS layer for VMs where agents and terminals are the point, Omarchy is climbing toward the top of what I have tried.

My provisional stance is no longer ambivalent field notes with a slight nudge. I am probably not replacing Ubuntu on the metal yet, mostly because I have not put in the keybinding training hours, but for a VM aimed at browser plus terminal work Omarchy is near the top of the menu, eight excellent courses for that niche, two that are still not my thing, and a chef who is very sure about the meal.

Footnotes


  1. To be honest, hardware quirks are a Linux stereotype with real history, but troubleshooting is much faster now. You can usually fix the problem in minutes with AI coding agents. ↩


Reuse and Attribution