
Opticores is a client-side mod that works with Embeddium and Sodium on (Neo)forge and Fabric for 1.21.x, made to fix the bottleneck that integrated graphics (Intel UHD) and low-end devices.
Performance — Minecraft 1.21.1 (Cherry Grove)
Test system: Intel i3-1115G4 (2 Cores/4 Threads) • Intel UHD Graphics • 16 GB RAM (2133 MT/s)
| Configuration | Min FPS | Avg FPS | Max FPS |
|---|---|---|---|
| Vanilla | 2 | 45 | 149 |
| Sodium | 30 | 147 | 255 |
| Sodium + OptiCores | 84 | 270 | 396 |
| Comparison | Min | Avg | Max |
|---|---|---|---|
| Sodium vs Vanilla | +1400% | +227% | +71% |
| Sodium + OptiCores vs Sodium | +180% | +84% | +55% |
| Sodium + OptiCores vs Vanilla | +4100% | +500% | +166% |
How it works:
- Asynchronous Culling Pipeline (ACP):
Distance and frustum intersection math moves off the main rendering thread onto a background worker instead of blocking each frame.
- Concurrent Data Management (CDM):
The culling output is stored in a thread safe ConcurrentHashMap so the render thread reads the chased result instead of reloading it every frame.
- Dynamic Load Throttling (DLT):
Monitors chunk loading and temporarily scales back entity rendering during harsh world loading, teleporting to a new area, so the terrain generation gets priority.
- Compatibility:
Bypasses for custom block entities like Create’s and coordination with Distant Horizons or Voxy to avoid culling conflicts during LOD making.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 8d ago | 1 | ||||
| 11d ago | 1 | ||||
| 18d ago | 1 | ||||
| 24d ago | 1 | ||||
| 27d ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 |
- Load Spreading system** for chunk/VBO upload scheduling.
- New config option enableLoadSpreading.
- New config option loadSpreadingThreshold.
- New **"Load Spreading"** section in the in-game config screen.
## Fixed
- Fixed issue from user **colocappi** ([#15](https://github.com/anibalmolina-debug/Opticores/issues/15))
- Vulkan** capabilities section (Minecraft 26.x Blaze3D RenderPearl pipeline) in Opticores settings.
- Graphics API** switch button at the end of the settings screen (Change to Vulkan/OpenGL).
- When changing graphic API, a restart is required.
- /opticore graphics command**: shows selected vs effective API, current backend, Vulkan status, and restart notice
## **Fixed:**
- Fixed Sodium section-capture mixin for 0.9.2 (ChunkBuildOutput signature)
- Fixed issue from user **hannespellegrini353-maker** ([#16](https://github.com/anibalmolina-debug/Opticores/issues/16))
- Fixed issue [#13](https://github.com/anibalmolina-debug/Opticores/issues/13)
- Updated the internal block redenring hooks for full compatibility with Minecraft 1.20.1.
- Refined Mixin descriptors to prevent future crashes.
- Fixed issue in [#11](https://github.com/anibalmolina-debug/Opticores/issues/11)
- Updated to **26.1** to **26.3**
- Fixed issue in [#10](https://github.com/anibalmolina-debug/Opticores/issues/10)
- Added [Chunky](https://modrinth.com/plugin/chunky) compatibility.
- Fixed issue [#8](https://github.com/anibalmolina-debug/Opticores/issues/8)
- Changed from **Vertical** gui perspective to a **Horizontal** gui perspective.
- Background Task performance
- Thread management
- CPU workload
- Chunk processing
- Improved resource utilization
- Smoother background processing
- Better workload during heavy load
A new UI option to enable or disable the **Virtual Threads**.
- Changed the settings screen from a multi-tab layout to a single scrollable page with collapsible section headers (matching your hand-drawn sketch):
- Replaced separate ConfigCategory tabs with SubCategoryBuilder sections under one "Settings" tab
- Replaced separate ConfigCategory tabs with SubCategoryBuilder sections under one "Settings" tab
- All sections (Entity Culling, Block Entity Culling, Advanced/Experimental, Chunk Throttling) are expanded by default
- Added Automatic Crash Reporting**
Created
- CrashHandler.java
Injected a printCrashReport hook into MixinMinecraftClient.java that calls the crash handler
- Fixed MixinLevelRenderer** — updated the render() injection signature from (MatrixStack, Matrix4f, Matrix4f) to (GameRenderer, LightmapTextureManager, Matrix4f, Matrix4f) to match 1.21.1
- Fixed CullWorker** — moved WaterCreatureEntity and AmbientEntity imports to net.minecraft.entity.mob
- Fixed ConfigScreenBuilder** — replaced Text.method_43470 → Text.literal, fixed EnumListEntry generic type, corrected Screen/Text import paths
- Fixed fabric.mod.json** — lowered fabricloader requirement from >=0.19.2 to >=0.16.5
- Added dependencies** — Cloth Config via Shedaniel Maven, ModMenu via direct JAR download
- Chunk Update Optimization:** We intercepted the LevelRenderer to reset the chunk budget math, allowing the game to render terrain much more efficiently.
- The 2D Item Frame LOD:** We designed a system with a configurable distance slider (itemFrame2DDistance). If a player walks away from a massive wall of chests, the game cancels the expensive 3D item rendering and instantly swaps it to a flat, 2D particle sprite to save massive amounts of GPU power. (Currently waiting to be rewritten for 1.21.11!)
- Distant Horizons & Voxy Support:** Intelligently detects when these massive Level of Detail (LOD) mods are rendering distant fake terrain. Opticores temporarily pauses its strict culling so they don't fight over visibility, completely stabilizing your frame rate.
- Sodium Safe-Yielding:** Uses a pre-boot IMixinConfigPlugin to scan for Sodium. If Sodium is heavily modifying the rendering engine, Opticores politely disables its conflicting Mixins to prevent InvalidInjectionException crashes before the game even starts.
- Sinytra Connector Ready:** Engineered with strict require = 0 fallback rules and official Connector metadata in the fabric.mod.json, allowing NeoForge players to run this Fabric JAR seamlessly.
- Smart Configuration & UI Integration:**
- Hardware-Aware Auto-Tuning:** Features a new AUTO mode that polls your CPU thread count during client initialization. It dynamically calculates and assigns the optimal culling percentage for your specific hardware footprint.
- In-Game Configuration GUI:** Fully integrated with the Cloth Config API. Users can now modify performance parameters directly through the in-game Mods menu via a dedicated "Shader Culling Adjustments" category.
- Dynamic UI Locking:** When AUTO mode is active, the manual configuration slider is automatically disabled and visually snaps to display the precise culling percentage calculated for your hardware, preventing accidental misconfigurations.
- Manual Override:** Advanced users can easily toggle the configuration button to MANUAL mode to unlock the slider, allowing for precise, customized control over the exact culling rate.
- Core Engine & Stabilization Upgrades:**
- Predictive Frustum Margin:** Implemented a 2.0-block mathematical bounding box expansion during frustum intersection checks. This invisible margin pre-renders objects slightly before they enter the screen, entirely eliminating the micro-stutters previously caused by rapid camera panning.
- Aggressive Shadow Pass Culling:** Integrated a Mixin pipeline to detect shadow rendering passes (compatible with Iris/Oculus). When active, the engine enforces a strict 32-block render limit for entity and block-entity shadows, massively reducing GPU bottlenecking without impacting perceptible visual quality.
- Reflection Caching:** Replaced slow, per-frame reflection calls with a thread-safe, lazy-initialized caching system. This significantly reduces CPU overhead during dynamic lighting and shadow calculations.
- Zero-Overhead Math:** All hardware polling and culling calculations are strictly cached upon client boot, ensuring the dynamic configuration logic introduces absolutely zero overhead during gameplay.d
- Hardware-Aware Auto-Tuning:** The new AUTO mode evaluates your CPU thread count during client initialization. It dynamically assigns an optimal shader culling percentage based on your hardware footprint, balancing performance gains on lower-end systems with visual fidelity on high-end machines.
- In-Game Configuration GUI:** Fully integrated with the Cloth Config API. Users can now modify performance parameters directly through the in-game mod menu via a dedicated "Shader Culling Adjustments" category.
- Dynamic UI Locking:** When AUTO mode is active, the manual configuration slider is automatically disabled. The interface will then display the precise culling percentage calculated for your hardware, preventing accidental misconfigurations.
- Manual Configuration:** Advanced users can toggle to MANUAL mode to unlock the slider, allowing for precise, customized control over the exact culling rate (from 1% to 100%).
- Zero-Overhead Caching:** All hardware polling and configuration logic is strictly cached during the client boot sequence. This ensures the dynamic adjustments introduce zero performance overhead during active gameplay.
- Fixed Sinytra Connector Crashes:** This forces Opticores to load after other rendering mods, preventing conflicts if players are using Fabric mods on NeoForge.
- Fixed Missing-Shader Crashes:** Changed how the mod checks for shaders (using Java Reflection). Previously, if a player installed Opticores without Iris or Oculus, the game would crash looking for them. Now, it safely bypasses the check.
- Sinytra connector compability added
- Asynchronous Culling:** Offloads heavy rendering math to a background thread to prevent CPU stuttering.
- Primitive Data Sets:** Uses FastUtil IntOpenHashSet instead of standard Java maps to eliminate memory leaks and "garbage" collection spikes.
- Double-Buffering:** Implements a lock-free "swap" system so the main thread never has to wait for background calculations.
- Adaptive Item Culling:** Automatically hides dropped items and XP orbs at shorter distances to prioritize framerates in crowded areas.
- Platform Target:** Engineered specifically for NeoForge 1.21.1 on integrated graphics (Intel UHD/Iris Xe).
- Quantum Culling Engine:** Rewritten entity and block-entity rendering pipeline for NeoForge 1.21.1.
- Adaptive Performance Awareness and Smart thottling:** Automatically halves culling distances during high-intensity chunk loading to eliminate movement stutter.
- Shader-Force:** Deep Iris/Oculus integration that detects active shader packs and automatically scales performance to keep low performance iGPU's with stable FPS.
