What are you searching for?

Helium
Helium

Helium

Client-side performance mod for Minecraft. Cuts out the stuff your GPU shouldn't be wasting time on.

download 188 Downloads · favorite 6 Followers · Updated 1 day ago
Fabric Game-mechanics Optimization Utility 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 +6 more

Versions

inventory_2
Performance & Polish

v1.1.0 · 1 day ago · 660.35 KB

Release download
Fabric 1.21.1 1.21.2 1.21.3
inventory_2
Initial Release

v1.0.0 · 1 week ago · 633.42 KB

Release download
Fabric 1.21.1 1.21.2 1.21.3

Gallery

About

Helium

Client-side Fabric mod that applies a set of rendering, memory, and QoL tweaks to Minecraft.

All features are toggleable and configurable through Sodium's settings.


⚡ Features

Distance Culling

Helium skips rendering entities, block entities, and particles that are beyond a configurable distance from the player. This reduces draw calls in areas with many objects.

  • Entity culling injects into EntityRenderer.shouldRender() and returns false for entities past the set distance (default 64 blocks)
  • Block entity culling registers render predicates through Sodium's BlockEntityRenderHandler API for 13 block entity types: chests, signs, hanging signs, banners, bells, campfires, enchanting tables, end portals, end gateways, decorated pots, beds, shulker boxes, skulls, and conduits (default 48 blocks)
  • Particle culling intercepts ParticleManager.addParticle() and cancels particles spawned beyond the set distance (default 32 blocks)

All distances are adjustable per type with sliders.

Math Optimization

Replaces MathHelper.sin(), MathHelper.cos(), MathHelper.atan2(), and MathHelper.fastInverseSqrt() with faster implementations:

  • sin/cos use a pre-computed 65536-entry lookup table instead of java.lang.Math
  • atan2 uses a polynomial approximation (degree-3 minimax)
  • inverseSqrt uses the Quake III fast inverse square root with two Newton-Raphson iterations

These are used throughout Minecraft's rendering and physics code.

GL State Caching

Tracks the current OpenGL state (bound textures, blend mode, depth test, face culling, blend function parameters, depth function) and skips redundant GlStateManager calls when the state hasn't changed. Intercepts 7 different GL state methods via mixin.

Auto-disables when ImmediatelyFast is installed since it handles similar optimizations.

Memory Management

  • Object pooling: Thread-local pools for BlockPos.Mutable and Vector3f objects (borrow/return pattern, max 512 per pool) to reduce allocations
  • Buffer pooling: Reuses direct ByteBuffer objects across 6 size buckets (256B to 256KB, max 64 per bucket)
  • String deduplication: WeakReference-based intern pool to deduplicate repeated strings
  • Palette deduplication: FNV-1a hash-based dedup for chunk palette arrays

The memory compactor runs a cleanup pass every 600 ticks to evict stale entries.

Thread Priority

Sets the render thread to Thread.MAX_PRIORITY on startup. Worker threads created by Helium run at below-normal priority so they don't compete with rendering.

Multiplayer QoL

  • Fast server pinging: Replaces vanilla's server pinger thread pool with a larger one (sized to max(availableProcessors, 8) threads instead of vanilla's default). All servers ping concurrently
  • Scroll preservation: When you press refresh in the multiplayer screen, the scroll position is saved from the old widget and restored on the new one via a @Redirect on MinecraftClient.setScreen() inside MultiplayerScreen.refresh()

📦 Installation

  1. Install Fabric Loader (0.16.0+)
  2. Install Fabric API
  3. Install Sodium (0.6.0+)
  4. Drop Helium in your mods folder, launch

Optional: ModMenu for a master on/off toggle


🤝 Compatibility

  • Sodium (required): Helium's config pages live inside Sodium's video settings
  • Lithium: Compatible, they optimize different things (Lithium focuses on game logic, Helium on rendering/client)
  • Iris: Compatible
  • ImmediatelyFast: Compatible. GL state cache auto-disables via mod detection to avoid conflicts
  • ViaFabricPlus: Compatible, multiplayer features don't interfere with protocol translation

⚙️ How It Works

Helium is a mixin-based mod. It injects into Minecraft's rendering pipeline, math utilities, and multiplayer UI at specific points:

Mixin Target What It Does
EntityRenderer.shouldRender() Distance check before entity rendering
BlockEntityRenderHandler (Sodium API) Register per-type block entity render predicates
ParticleManager.addParticle() Distance check before particle creation
MathHelper.sin/cos/atan2/fastInverseSqrt Replace with LUT / polynomial / fast inverseSqrt
GlStateManager._bindTexture/_enableBlend/... Skip call if state unchanged
ClientWorld.tick() Run memory compactor cleanup
MultiplayerServerListWidget.<init> Replace pinger thread pool
MultiplayerScreen.refresh()setScreen() Save and restore scroll position

Source code is available on GitHub.


📝 License

Licensed under the MIT License.

open_in_new View on Modrinth
Compatibility
Client: Required Server: Unsupported
gavel MIT

Conversation

What are your thoughts?

Related projects

Optimization
Sodium
Sodium

by jellysquid3

The fastest and most compatible rendering optimization mod for Minecraft. Now available for both NeoForge and Fabric!

download 122.7M
favorite 33,145
Decoration Optimization
Iris Shaders
Iris Shaders

by coderbot

A modern shader pack loader for Minecraft intended to be compatible with existing OptiFine shader packs

download 94.2M
favorite 24,031
Optimization Utility
FerriteCore
FerriteCore

by malte0811

Memory usage optimizations

download 87.9M
favorite 12,905
Optimization
Entity Culling
Entity Culling

by tr7zw

Using async path-tracing to hide Block-/Entities that are not visible

download 87.5M
favorite 13,925
lock Cookie consent

SkinMC uses cookies to provide functionality and features.