Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Circular Rendering
English | 中文
This is a Fabric mod that modifies chunk rendering to a circular (or elliptical) shape around the player.
By default, it renders chunks within a perfect circle (radius = view distance × 16 blocks).
You can optionally scale the left/right radius to create an ellipse, culling more chunks to the sides while keeping forward/backward visibility unchanged. This reduces GPU load and improves FPS without affecting gameplay mechanics.
Features
- Renders chunks in a circle centered on the player (default behavior).
- Optional elliptical rendering: the forward/backward radius remains fixed, while the left/right radius is scaled by a configurable factor (
renderRadiusScale).- When
renderRadiusScale = 1.0, it's a perfect circle. - When
renderRadiusScale < 1.0, it becomes an ellipse (narrower left/right).
- When
- Optional vertical range limitation: limit rendering to a certain number of chunk layers above and below the player.
- Chunk loading (logic updates) remains square, so all chunks are still loaded and updated.
- Presets & Custom Mode: Quickly switch between predefined configurations (Balanced, Performance, Aggressive) or choose Custom to freely adjust all parameters.
- Compatible with Sodium:
- When Sodium is present, configuration appears in the Video Settings screen.
- Without Sodium, the mod works standalone using a JSON config file.
- No effect on entities or other objects – only chunk rendering is affected.
Dependencies
- Required: Fabric Loader ≥0.18.4
- Optional: Sodium 0.8.6+ (for in-game GUI configuration)
- Optional: Super Fast Math any version (for faster math)
Installation
- Install Fabric Loader.
- Download the latest
circular-rendering-<version>.jarfrom the Releases page. - Put the JAR into your
modsfolder. - (Optional) Install Sodium if you want the in-game configuration sliders and presets.
Configuration
With Sodium installed
- Go to Options → Video Settings.
- Scroll down to find the Circular Rendering section.
Presets
- Render Preset dropdown:
- Balanced:
Render Radius Scale = 100%, vertical range disabled (vanilla behavior, but still optimized). - Performance:
Render Radius Scale = 80%, vertical range enabled, 10 layers. - Aggressive:
Render Radius Scale = 40%, vertical range enabled, 3 layers. - Custom: All sliders become unlocked, allowing you to freely adjust the parameters below.
- Balanced:
Selecting a non‑Custom preset automatically applies its parameters and locks the manual controls.
Manual Configurations (available only when “Custom” preset is selected)
- Render Radius Scale (10% – 100%):
- 100% = perfect circle (radius = view distance × 16).
- Lower values make the left/right radius smaller, turning the circle into an ellipse and culling more chunks to the sides.
- Enable Custom Vertical Range (toggle) – when enabled, you can set:
- Vertical Range (1–32 layers): Number of chunk layers (16 blocks each) to render above and below the player.
Without Sodium
The mod creates a JSON config file at config/circular-rendering.json.
Example content:
{
"renderRadiusScale": 1.0,
"enableVerticalRange": false,
"verticalRange": 16,
"preset": "BALANCED"
}
renderRadiusScale– a double between 0.1 and 1.0.1.0= perfect circle.< 1.0= ellipse (narrower left/right).
enableVerticalRange– a boolean, enables vertical range limiting when true.verticalRange– an integer (1–32), number of chunk layers to render above and below the player (each layer = 16 blocks).preset– one of"BALANCED","PERFORMANCE","AGGRESSIVE", or"CUSTOM".- If the preset is not
"CUSTOM", the three manual parameters are ignored and the preset's values are used. - If the preset is
"CUSTOM", the manual parameters are used exactly as set.
- If the preset is not
Changes take effect after restarting the game or reloading chunks.
How It Works
- Vanilla mode (no Sodium): The mod injects into
WorldRenderer.renderBlockLayersand filters the chunk list using the shape defined by:
where(forward² / a²) + (right² / b²) ≤ 1a = view distance × 16(fixed forward/backward radius) andb = a × renderRadiusScale(left/right radius).
Whenb = a, the shape is a circle. If vertical range is enabled, it also checks chunk Y layers. - Sodium mode: The mod injects into Sodium's
OcclusionCuller.isWithinRenderDistanceand returnsfalsefor chunks outside this shape or vertical range.
Both approaches only affect chunk rendering; chunk loading remains square, so game mechanics (redstone, entity AI, etc.) work normally everywhere.
Compatibility
- Support status of Minecraft versions:
| Versions | Support Status |
|---|---|
| 26.1.2 | ✅ |
| 26.1.1 | ✅ |
| 26.1 | ✅ |
| 1.21.11 | ✅ |
| Lower versions | Will not support |
- Fully compatible with Sodium 0.8.6+ (both mods can be used together).
- Should be compatible with most other mods that don't heavily modify chunk rendering. If you encounter issues, please report them.
Building from Source
Clone the repository and run:
./gradlew build
The built JAR will be in build/libs/.
License
This project is licensed under the MIT License. See the LICENSE file for details.


