All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Satin API

Satin API

by Pyrofab • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Satin is a simple library allowing modders to add interesting graphical effects to their mods. Its main feature is to significantly simplify the use of Minecraft's data-driven shader system (that is, the one used by super secret settings, mob vision, and spectral arrows).

A full feature list with installation instructions is available on the github repository : https://github.com/Ladysnake/Satin/

You can find documentation for the shader format on the wiki : https://github.com/Ladysnake/Satin/wiki/Data-driven-shaders

FAQ

Can it replace Optifine ?

No. Optifine shaders are significantly more complex than what this library allows. For a work-in-progress alternative, see the Canvas Renderer project.

Can it bring back Super Secret Settings ?

Satin is just a library, so it does not add any content by itself. You may however be interested in Secrets No More, a mod using Satin to do exactly that !

Does this library have a Forge version ?

No, and I do not want to port it myself. I will however support anyone who does so. Also note that the documentation for the shader format stays applicable regardless of the mod loader being used.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.x
Fabric Quilt
9h ago 1
1.21.x
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.20.4
Fabric Quilt
9h ago 1
1.19.2
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.20.x
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.4
Fabric Quilt
9h ago 1
1.19.3
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.19.x
Fabric Quilt
9h ago 1
1.18.x
Fabric Quilt
9h ago 1
Version 3.0.0-alpha.1:

Partially updated to MC 1.21.2

This update contains major breaking changes made by Mojang to shader declarations preparing the terrain for Vibrant Visuals.
More breaking changes should be expected for later versions.

  • For this first alpha, only ShaderEffectManager#manage, ManagedShaderEffect and basic uniform manipulation methods are expected to work.**

Feedback is welcome on the [Satin GitHub page](https://github.com/Ladysnake/Satin/discussions/55).

  • Changes**
  • Post process shaders are now loaded from post_effect and shaders
instead of respectively shaders/post and shaders/program.
By convention, files previously in shaders/program should go to the shaders/post subdirectory.
  • Identifiers for ManagedShaderEffect have changed: mymod:shaders/post/example.json becomes mymod:example
(the example.json file also needs to be moved to the post_effect directory)
  • Includes (loaded from shaders/include) are now available in post process shaders
  • Post-process effect format has changed:
  • inputs take a sampler_name, which will be suffixed with "Sampler" (e.g. "sampler_name": "In" becomes "name": "InSampler" in the shader definition)



see full changelog [here](https://github.com/Ladysnake/Satin/blob/3.0.0-alpha.1/changelog.md "Changelog")
[2.0.0] 2.0.0 by Pyrofab on Oct 13, 2026
Download
Version 2.0.0:

Updated to MC 1.21

  • Changes**
  • The root package has been changed from ladysnake.satin to org.ladysnake.satin
  • global search-replace of ladysnake.satin -> org.ladysnake.satin should do the trick for the migration in your projects

  • Removals**
  • Removed the nanoTime parameter in PostWorldRenderCallback and PostWorldRenderCallbackV2 (deprecated since 1.17.0)
  • Removed the ShaderEffectManager#manageProgram methods (deprecated since 1.6.0)
  • Removed deprecated GlMatrices methods (deprecated since 1.1.0)



see full changelog [here](https://github.com/Ladysnake/Satin/blob/2.0.0/changelog.md "Changelog")
[1.9.2] 1.9.2 by Pyrofab on Oct 13, 2026
Download
Version 1.9.2:

Ported to Quilt to hopefully fix the incompatibility issue



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.9.2/changelog.md "Changelog")
[1.18.0] 1.18.0 by Pyrofab on Oct 13, 2026
Download
Version 1.18.0:

  • Additions**
  • Added WorldRendererReloadCallback, an event that gets triggered when e.g. video settings are updated or the player joins a world

  • Changes**
  • Shaders' init callbacks now also run during the above event
  • This fixes resource leaks caused by setting a sampler uniform to a vanilla Framebuffer in those callbacks
  • Added a warning in the logs for bad framerate when installed together with the Vivecraft mod



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.18.0/changelog.md "Changelog")
[1.17.0] 1.17.0 by Pyrofab on Oct 13, 2026
Download
Version 1.17.0:

Updated to MC 1.20.5

  • Additions**
  • Added PostWorldRenderCallbackV3, with the projection and model-view matrices passed in

  • Changes**
  • The nanoTime parameter in PostWorldRenderCallback and PostWorldRenderCallbackV2 has been deprecated, and is subject to removal in a future version



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.17.0/changelog.md "Changelog")
[1.16.0] 1.16.0 by Pyrofab on Oct 13, 2026
Download
Version 1.16.0:

Updated to MC 1.20.4 proper (thanks DietrichPaul!)

  • Additions**
  • Added a new UniformMat4#setFromArray method for those cases where going through a matrix is too impractical



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.16.0/changelog.md "Changelog")
[1.9.1] 1.9.1-unstable by Pyrofab on Oct 13, 2026
Download
Version 1.9.1:

  • Fixes**
  • Fixed incompatibility with newer Fabric API for 1.19.2 (thanks unilock for the backport !)
  • may break some mods, only install this if your modpack crashes with 1.9.0



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.9.1/changelog.md "Changelog")
[1.15.0] 1.15.0 by Pyrofab on Oct 13, 2026
Download
Version 1.15.0:

Updated to MC 1.20.3 (thanks DietrichPaul!)

  • Changes**
  • Slightly optimized shader uniform loading



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.15.0/changelog.md "Changelog")
[1.14.0] 1.14.0 by Pyrofab on Oct 13, 2026
Download
Version 1.14.0:

Updated to MC 1.20.1

  • Additions**
  • Added the satin:format framebuffer extension (big thanks to Will BL !)

  • Changes**
  • Moved publication to the ladysnake maven (maven.ladysnake.org/releases instead of ladysnake.jfrog.io/mods)
  • Changed the maven group to org.ladysnake

Refer to the readme for updated buildscript instructions.



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.14.0/changelog.md "Changelog")
[1.13.0] 1.13.0 by Pyrofab on Oct 13, 2026
Download
Version 1.13.0:

Updated to MC 1.20



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.13.0/changelog.md "Changelog")
[1.12.1] 1.12.1 by Pyrofab on Oct 13, 2026
Download
Version 1.12.1:

  • Changes**
  • Optimized shader loading (should now be faster)

  • Fixes**
  • Fixed managed sampler uniforms losing data upon resource reloading (Ported fix from v1.10.1 to MC 1.19.4)



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.12.1/changelog.md "Changelog")
[1.12.0] 1.12.0 by Pyrofab on Oct 13, 2026
Download
Version 1.12.0:

  • Additions**
  • Satin's float uniforms now have a setter overload that accepts a JOML vector object as argument

  • Fixes**
  • Fixed crash with Iris installed



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.12.0/changelog.md "Changelog")
[1.11.0] 1.11.0 by Pyrofab on Oct 13, 2026
Download
Version 1.11.0:

Updated to MC 1.19.4



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.11.0/changelog.md "Changelog")
[1.10.0] 1.10.0 by Pyrofab on Oct 13, 2026
Download
Version 1.10.0:

Updated to MC 1.19.3



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.10.0/changelog.md "Changelog")
[1.9.0] 1.9.0 by Pyrofab on Oct 13, 2026
Download
Version 1.9.0:

  • Changes**
  • The vertex format specified in ShaderEffectManager#manageCoreShader is now used by RenderLayers created from ManagedCoreShader#getRenderLayer



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.9.0/changelog.md "Changelog")
[1.8.0] 1.8.0 by Pyrofab on Oct 13, 2026
Download
Version 1.8.0:

Updated to MC 1.19



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.8.0/changelog.md "Changelog")
[1.7.2] 1.7.2 by Pyrofab on Oct 13, 2026
Download
Version 1.7.2:

  • first version available on modrinth
  • removed iris from transitive dependencies



see full changelog [here](https://github.com/Ladysnake/Satin/blob/1.7.2/changelog.md "Changelog")
Satin API Icon
Download Satin API
Select game version
Select platform