Guidefor players5 min read
OptiFine's decade on top, and why Sodium, Lithium and Iris replaced it
OptiFine was the default Minecraft performance mod for over a decade. Closed source and increasingly awkward on Fabric, it was eventually overtaken by three open, focused alternatives. Here is the actual history.
A museum of FPS increases
A SpigotMC and MinecraftForum thread titled "[b1.4-1.9] OptiFine History" catalogues every OptiFine build going back to Beta 1.4, version by version. As of this guide it has 1,389,462 views and 91 replies. One reply calls it, accurately, "a museum of FPS increases."
That thread is a good way to see how completely OptiFine dominated Minecraft's performance and shader scene for over a decade. It is also, unintentionally, a record of a mod that eventually stopped being the obvious choice. This guide covers both halves: where OptiFine actually came from, why it lost ground, and what replaced it.
Where OptiFine actually came from
OptiFine did not start as OptiFine. Its author, sp614x, released an earlier mod called OptiFog in the Beta 1.4 era, built with a small team including Insecs, Payton147 and lacuravivid. OptiFog pushed back the game's fog and added occlusion culling, texture mipmapping, and chunk loading optimizations, an early frame rate and render distance mod in its own right.
In Beta 1.5, OptiFog gained compatibility with Optimine and ModLoader. That combination, OptiFog plus Optimine plus a mod called Lag Spikes of Death, became OptiFine. OptiFog was discontinued once OptiFine existed. The thread's b1.4 starting point is not arbitrary; it is the actual point where the lineage begins.
Closed source, for basically its entire life
OptiFine was closed source for essentially its whole run. In its earliest years, before mod loaders existed in a form most players used, installing it meant patching a modified jar directly into the base game. Later it became a proper standalone mod compatible with Forge and, eventually, usable on Fabric. What never changed was that nobody outside sp614x could read the code.
You can see this structurally today: sp614x's own GitHub repository for OptiFine contains no source files, only issue tracking, over 2,700 issues and a handful of pull requests against a project whose actual code was never public there. That is not a documentation gap. It is the project.
Closed source meant other mod developers could not see what OptiFine's rendering hooks were actually doing to the game. When OptiFine broke another mod, or another mod broke OptiFine, developers on both sides were debugging a black box rather than reading code they could inspect and coordinate against. This was a long-running, well-known friction point, not an occasional edge case.
The clearest evidence is OptiFabric, the compatibility shim that let OptiFine run on Fabric at all, since OptiFine itself never officially supported the loader. OptiFabric was eventually discontinued: keeping OptiFine's proprietary, closed rendering hooks working against Fabric's own rendering API was not something a third party could sustain indefinitely. The Fabric community maintains a dedicated "OptiFine alternatives" page on its own wiki specifically because of this history, not as a passing recommendation.
What replaced it: three focused tools instead of one closed one
The mod that displaced OptiFine did not arrive as a single project. It arrived as three separate, open source ones, each doing one job well.
- Sodium, first released around 2019 by jellysquid, now maintained under the CaffeineMC organization. Sodium replaces Minecraft's rendering engine outright, commonly two to four times vanilla frame rates, and is entirely open source.
- Lithium, also by jellysquid and CaffeineMC. Lithium optimizes general game logic: physics, mob AI, block ticking. It is complementary to Sodium, not competing with it, and the two are routinely run together.
- Iris, released in February 2021, built specifically to load OptiFine-format shader packs on top of Sodium's rendering pipeline. Sodium alone does not render shaders at all; Iris is the piece that closes that gap.
Together they cover almost everything OptiFine did, split across three actively maintained, open projects instead of one closed one.
Why the open alternative won
Being faster was not the whole story. Three structural things mattered more over a decade:
Other developers could actually build against it. Because Sodium, Lithium and Iris are open source, other mod authors can see exactly what they change and coordinate compatibility deliberately, instead of reverse-engineering a black box after something breaks. That is the direct opposite of the OptiFabric problem.
Division of labor beat one project doing everything. OptiFine tried to be a rendering engine, a shader loader, and a general performance mod all in one closed package. Sodium, Lithium and Iris each do one of those jobs and do it well, which is generally how software ends up better at each individual thing than a single project attempting all three.
Trust in open code compounds, and Fabric grew around code OptiFine wasn't built for. A decade of public scrutiny gives an open project a track record a closed jar can never fully match. And as the Fabric ecosystem matured into the dominant modern modding platform, it did so around an architecture OptiFine was never a native citizen of, hence needing a shim like OptiFabric just to run there at all, while Sodium, Lithium and Iris were built as first-class Fabric mods from the start.
Is OptiFine still maintained
Yes, but slowly. sp614x shipped OptiFine HD U J9, a stable build for Minecraft 1.21.11, in February 2026, and a preview build for 26.1.2 in June 2026. It is not abandoned software.
It is, however, consistently behind. By July 2026, Lithium already had builds out for Minecraft 26.2 while OptiFine was still working through a preview for the prior update, 26.1.2. That gap, not any single dramatic event, is the actual shape of OptiFine's decline: still being built, no longer keeping pace, no longer the default.
OptiFine retains a few features nothing else fully replicates, custom entity models in particular, which is why it has not disappeared from every setup. For everything else, Sodium and Iris are the current answer, covered in setting up Sodium and Iris for shaders.
Why mcreference doesn't track OptiFine as a project
mcreference's catalogue is built by syncing Modrinth, CurseForge and GitHub Releases automatically. That is where Sodium, Lithium and Iris all live, and it is why they have full project pages here with version histories.
OptiFine has never been distributed through any of those three. It comes from optifine.net directly, with a SourceForge mirror as a backup. That is the entire reason it has no project entry on this site while hundreds of resource packs and mods that require it do: distribution, not relevance. It is exactly why this guide exists as a standalone page rather than as project notes attached to a catalogue entry.

