Client-side performance mod for Minecraft. Cuts out the stuff your GPU shouldn't be wasting time on.
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.
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.
EntityRenderer.shouldRender() and returns false for entities past the set distance (default 64 blocks)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)ParticleManager.addParticle() and cancels particles spawned beyond the set distance (default 32 blocks)All distances are adjustable per type with sliders.
Replaces MathHelper.sin(), MathHelper.cos(), MathHelper.atan2(), and MathHelper.fastInverseSqrt() with faster implementations:
java.lang.MathThese are used throughout Minecraft's rendering and physics code.
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.
BlockPos.Mutable and Vector3f objects (borrow/return pattern, max 512 per pool) to reduce allocationsByteBuffer objects across 6 size buckets (256B to 256KB, max 64 per bucket)WeakReference-based intern pool to deduplicate repeated stringsThe memory compactor runs a cleanup pass every 600 ticks to evict stale entries.
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.
max(availableProcessors, 8) threads instead of vanilla's default). All servers ping concurrently@Redirect on MinecraftClient.setScreen() inside MultiplayerScreen.refresh()Optional: ModMenu for a master on/off toggle
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.
Licensed under the MIT License.
Conversation