Iris Shaders: an OptiFine-compatible shader mod for Minecraft, built for Sodium
A modern shaders mod for Minecraft compatible with existing OptiFine shader packs
At a glance
- What is it?
- Iris loads existing OptiFine shader packs on modern Minecraft versions and is designed to run alongside Sodium. It is LGPL-3.0, Java, and still incomplete in places where OptiFine features have not been matched.
- Who is it for?
- Adopt Iris if you want existing OptiFine shader packs on a modern Minecraft version and you already run Sodium; the repository's own goals list backwards compatibility as a target. Do not adopt it if your pack appears in docs/unsupportedshaders.md or your setup depends on OptiFine features the docs list as unfixable limitations.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap Iris was written to fill
Minecraft shader packs have historically been authored against OptiFine's shader pipeline. OptiFine's licence restricts tinkering, and the README states it is mutually incompatible with Sodium, the rendering optimization mod. ShadersMod stopped at 1.12 and does not cover many modern packs. Iris exists to load those same OptiFine-format packs on current game versions while remaining compatible with modpacks.
The audience is narrow and specific. It is players who already have a favourite shader pack and want it on a recent Minecraft release, and modpack authors who need shaders plus Sodium in the same instance. The README is candid that the author built it for himself first, then released it. That origin explains the priorities: performance with Sodium, minimal disruption to existing packs, and a codebase the author wants to work in.
The project is not archived and the last push was on 2026-09-20, so the repository is being touched. Releases are versioned per game version, such as 1.7.3+1.21, which means a new Minecraft release usually requires a matching Iris build rather than a single universal download.
How Iris loads an OptiFine pack without rewriting it
The mechanism is bytecode patching. The README credits Mumfrey's Mixin system, which Iris and Sodium both use internally, and credits the Fabric and Quilt projects for enabling mods that patch the game heavily. Iris does not ask shader authors to port their packs to a new format; it intercepts the game's rendering path and feeds the pack's GLSL through its own pipeline.
The repository layout reflects a multi-loader strategy rather than a single Fabric-only mod. The top level contains common/, fabric/ and neoforge/ alongside build.gradle.kts and settings.gradle.kts, with a DHApi.jar at the root and a docs/ directory. That split means shared rendering and shader code lives in common/, and each loader module supplies its own entry points.
The README lists goals rather than a finished feature matrix: performance through Sodium, correctness, mod compatibility, and backwards compatibility with all existing ShadersMod and OptiFine packs without modification. It also states plainly that Iris has not fully achieved all of them. Missing OptiFine features are acknowledged as making the implementation incomplete. Future work named in the README includes unlimited color buffers, direct voxel data access and debug HUDs for pack developers, which are described as intentions, not shipped behaviour.
Installing Iris and loading a first shader pack
Iris is distributed as a mod, not a standalone launcher. The README points to the project website for downloads and to Modrinth for shader packs. Because releases are tagged per game version, pick the build whose suffix matches your Minecraft version, such as 1.7.3+1.21. It works with the official releases of Sodium, and the repository has fabric/ and neoforge/ modules, so both loaders are represented in the source tree.
The README does not give an install path, a directory layout or a launch command, and it does not document a shaderpacks directory. What it does give is the place to get the mod and the place to get packs, plus two documents that describe what will not work. If a pack fails to load, docs/unsupportedshaders.md and docs/usage/limitations.md are the project's own record, and they are more useful than forum threads.
The one concrete file the repository exposes for building is the Gradle wrapper at the root:
gradlewThat is a build entry point for the source tree, not a player-facing installer. Anyone who wants the mod itself should use the website the README names rather than assembling a jar from source.
Where Iris is the wrong tool
The README does not claim completeness, and the docs directory carries two files that matter more than the marketing: docs/unsupportedshaders.md and docs/usage/limitations.md. The second is described as a list of unfixable limitations. Unfixable is a strong word from the maintainers themselves, and it means some OptiFine behaviour will not be reproduced, not now and not after a bug report.
Performance is the other honest caveat. The README says performance can be improved, which is a different statement from the goal of fully utilizing the GPU. If your reason for using shaders is a specific pack that leans on OptiFine-only features, Iris may render it differently or not at all, and no configuration will close that gap.
There is also a licensing boundary that affects redistribution. The README states that glsl-transformer is licensed under AGPL-3.0 and that this may affect your ability to distribute Iris. For a player running the mod locally this is background noise. For anyone repackaging Iris into a modpack build or a hosted download, it changes what you can ship, and the repository carries a separate LICENSE-DEPENDENCIES file for exactly that reason.
Iris versus Canvas, and the format question underneath
The README names Canvas directly as the other shaders mod with traction, and the comparison is about format rather than features. Canvas uses a new shader pack format designed for better integration with mods. That design buys tighter coupling and enables packs written for it, such as Lumi Lights. It also means existing OptiFine packs do not carry over.
Iris takes the opposite bet. It keeps the OptiFine format and patches the game to consume it, accepting the compatibility burden in exchange for the existing library of packs. The README's own analogy is that shader packs are not interchangeable, so the choice is really about which library you want access to. If the packs you care about are Canvas-native, Iris gives you nothing there. If they are OptiFine packs, Canvas gives you nothing there either.
The README also notes that Iris and Canvas are both reasonable ways to enjoy shaders, which is a more measured position than the usual mod rivalry. The practical decision rule is simple: check which format your pack was written for before choosing a loader.
Licence, upgrade cost and what a new Minecraft version means
Iris code is LGPL-3.0. You can read, distribute and modify it under those terms. The README asks, without requiring it, that you ask before hosting public downloads of compiled Iris builds, while explicitly allowing listing on sites such as MCBBS without asking. That is a social request layered on top of the licence, not an additional legal condition.
The dependency situation is the part to read carefully. glsl-transformer is AGPL-3.0, and the README says this may affect your ability to distribute Iris. AGPL and LGPL are not the same obligation, and the repository keeps LICENSE-DEPENDENCIES separate from LICENSE for that reason. This is not legal advice; if you plan to redistribute, read both files and get your own answer.
Upgrade cost tracks Minecraft releases, not Iris releases. Builds are tagged with a game version suffix like +1.21 or +1.20.6, so a new Minecraft version means waiting for a matching Iris build before you can play with shaders. The README also notes that Iris is still not complete software and that more features are being added for shader developers, so behaviour can shift between versions. Pinning a known-good Iris and Sodium pair per instance is cheaper than upgrading both the moment a new tag appears.
Editorial conclusion
Adopt Iris if you want existing OptiFine shader packs on a modern Minecraft version and you already run Sodium; the repository's own goals list backwards compatibility as a target. Do not adopt it if your pack appears in docs/unsupportedshaders.md or your setup depends on OptiFine features the docs list as unfixable limitations. Before installing, check the release tag for your exact Minecraft version (for example 1.7.3+1.21) and read LICENSE-DEPENDENCIES, because glsl-transformer is AGPL-3.0 and the README says that may affect your ability to distribute Iris.
Frequently asked questions
What are the cons of using the Iris mod?
The README states that Iris is still not complete software, that performance can be improved, and that some minor OptiFine features are missing. The docs directory also lists unfixable limitations in docs/usage/limitations.md and unsupported shader packs in docs/unsupportedshaders.md.
Is Iris Shaders discontinued?
No. The repository is not archived and the last push was on 2026-09-20. The README describes public releases for the latest Minecraft version that work with official Sodium releases.
Why can't I run the iris installer?
The README does not describe a standalone Iris installer. It points to the project website for downloads and describes Iris as a mod, with Fabric and NeoForge modules in the repository, so installation is a mod jar placed in your loader's mods directory.
Are Minecraft shaders legal?
The README does not address the legality of shader packs. It does state that Iris code is LGPL-3.0 and that glsl-transformer is AGPL-3.0, which the README says may affect your ability to distribute Iris.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/irisshaders-iris)