# caffeinemc/sodium

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/caffeinemc-sodium).**

5,469 stars · 900 forks · Java · other

## Links

- GitHub: https://github.com/CaffeineMC/sodium
- awesome-repositories: https://awesome-repositories.com/repository/caffeinemc-sodium.md

## Topics

`azdo` `fabric` `minecraft` `neoforge` `opengl`

## Description

Sodium is a Minecraft performance optimization project that replaces the default rendering engine to increase frame rates and reduce stutter. It functions as a game rendering modification that applies runtime patches to the engine to change how graphics are displayed.

The project provides a customizable settings registry, allowing for the addition of new configuration options to the video menu so other extensions can integrate their own visual settings.

The rendering system implements chunk-based culling logic and buffer-based geometry caching to minimize draw calls and reduce CPU overhead. It utilizes bytecode-level engine patching and direct memory access to manipulate GPU memory and replace default rendering logic.

## Tags

### User Interface & Experience

- [Minecraft Optimizations](https://awesome-repositories.com/f/user-interface-experience/rendering-optimizers/minecraft-optimizations.md) — Optimizing the rendering pipeline in Minecraft to improve frame rates and reduce stutter across hardware.
- [Settings Screen Extensions](https://awesome-repositories.com/f/user-interface-experience/settings-screen-extensions.md) — Registers custom configuration pages into an existing options screen via a plugin hook.

### Web Development

- [Minecraft Client Optimizations](https://awesome-repositories.com/f/web-development/performance-optimizations/minecraft-server-optimizations/minecraft-client-optimizations.md) — Performance-enhancing Minecraft mod that adds shader pack support and extends graphics settings configuration.
- [Bytecode Transformers](https://awesome-repositories.com/f/web-development/content-insertion-utilities/dynamic-content-insertion/marker-based-injection-utilities/source-code-injection/bytecode-transformers.md) — Injects custom code into precompiled class files at load time using bytecode transformation.

### Data & Databases

- [Graphics Settings Persistence](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores/app-settings-persistence/graphics-settings-persistence.md) — Component that saves and restores user rendering preferences with automatic default regeneration.

### Graphics & Multimedia

- [Draw Call Batching](https://awesome-repositories.com/f/graphics-multimedia/draw-call-batching.md) — Combines multiple world sections into a single draw call to reduce GPU overhead.
- [Shader Pack Loaders](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders/shader-binding-managers/third-party-shader-loaders/shader-pack-loaders.md) — Runtime engine that loads and runs GLSL-based shader packs for advanced visual effects.
- [Visual Effect Shaders](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders.md) — Uses GLSL shaders for programmable vertex and fragment processing, enabling custom visual effects.
- [Occlusion Culling](https://awesome-repositories.com/f/graphics-multimedia/occlusion-culling.md) — Hides invisible geometry by testing bounding boxes against the view frustum and depth buffer before rendering.

### Software Engineering & Architecture

- [Configuration Page Hooks](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/plugin-extenders/configuration-page-hooks.md) — Extend the video settings screen so other modules can add custom configuration pages. ([source](https://github.com/CaffeineMC/sodium/wiki/CaffeineMC-Maven-&-Config-API))
- [Frustum Culling Utilities](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/frustum-culling-utilities.md) — Skips rendering objects outside the camera's viewing frustum based on spatial hierarchy tests.

### Development Tools & Productivity

- [Maven Artifact Publishing](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/package-publishing/artifact-publishing-utilities/maven-artifact-publishing.md) — Maven publication module that distributes API and implementation artifacts for other projects to depend on.
- [Video Settings Screen Extensions](https://awesome-repositories.com/f/development-tools-productivity/system-settings-managers/edition-configuration-managers/graphical-settings-editors/video-settings-screen-extensions.md) — Extending the video settings screen so other mods can inject their own configuration pages for graphics options.
