🏛️ Technical Architecture & Mixin Engine (MC 26.3)
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
1. Official Infobox Table
| Parameter | Technical Details |
|---|---|
| Subsystem Name | Technical Architecture & Mixin Engine |
| Minecraft Anchor | MC 26.3 |
| Mod ID | velocity-render |
| Root Package | net.vanillaoutsider.velocityrender |
| Client Mixin Class | net.vanillaoutsider.velocityrender.client.mixin.SectionTaskDynamicQueueMixin |
| Target Minecraft Class | net.minecraft.client.renderer.chunk.SectionTaskDynamicQueue |
| Mixin Configuration | velocity-render.mixins.json |
| Compatibility Level | JAVA_25 |
| Dependencies | Fabric Loader >=0.18.4, Fabric API *, DasikLibrary >=1.8.0 |
2. Step-by-Step Architecture & Execution Flow
+=============================================================================+
| MOD INITIALIZATION PIPELINE |
+=============================================================================+
|
[ YouRunFastMod.onInitialize() ]
|
+------------------------------+------------------------------+
| | |
v v v
[ ModVersionGuard ] [ YouRunFastGameRules ] [ YouRunFastCommand ]
(Verify GameRules class) (Register via DasikLib) (Register Brigadier)
| | |
+------------------------------+------------------------------+
|
+------------------------------+------------------------------+
| |
v v
[ ServerTickEvents.END_SERVER_TICK ] [ ServerPlayConnectionEvents.DISCONNECT ]
(ForwardTicketManager.tickPlayer) (ForwardTicketManager.onPlayerDisconnect)
+=============================================================================+
| CLIENT RENDERING PIPELINE |
+=============================================================================+
[ ClientTickEvents.END_CLIENT_TICK ]
|
v
[ ClientVelocityTracker.clientTick() ]
|
v
Updates Volatile Cache: activeBias, cachedNorm, lead
|
v
[ Render Section Worker Threads: SectionTaskDynamicQueue.poll() ]
|
v
[ SectionTaskDynamicQueueMixin Redirect ]
|
v
[ AnisotropicDistanceHelper.calculateBiasedDistanceSqr() ]
|
(Forward sections polled first with lower scores)3. Algorithmic Complexity & Performance Analysis
| Operation | Frequency | Complexity | Allocation Overhead | Technical Strategy |
|---|---|---|---|---|
| Biased Distance Calculation | Multi-kHz (Render workers) | $O(1)$ | Zero Bytes | Volatile primitive cache reads, no heap objects |
| Client Velocity Smoothing | 20 Hz (Client tick) | $O(1)$ | Zero Bytes | In-place double arithmetic with EMA constant |
| Server Velocity Tracking | 20 Hz (Server tick) | $O(1)$ | Zero Bytes | FastUtil hash map lookup by UUID |
| Forward Ticket Allocation | 2 Hz (Throttled) | $O(K)$ ($K \le 24$) | Zero Bytes | Bit-packed coordinates in LongOpenHashSet |
| Ticket Pruning Diff | 2 Hz (Throttled) | $O(K)$ ($K \le 24$) | Zero Bytes | Iterator removal against existing ticket set |
4. Visual ASCII Architecture Diagram
CLIENT SIDE (JVM Render Pipeline) SERVER SIDE (World Tick Loop)
+------------------------------------+ +-----------------------------------+
| net.vanillaoutsider.velocityrender. | | net.vanillaoutsider.velocityrender. |
| client | | server |
| | | |
| +--------------------------------+ | | +-------------------------------+ |
| | YouRunFastClient | | | | ForwardTicketManager | |
| | (ClientTickEvents.END) | | | | (ServerTickEvents.END) | |
| +--------------------------------+ | | +-------------------------------+ |
| | | | | |
| v | | v |
| +--------------------------------+ | | +-------------------------------+ |
| | ClientVelocityTracker | | | | ServerBudgetManager | |
| | - Volatile Cache Variables | | | | - Lateral & Rear Trimming | |
| +--------------------------------+ | | +-------------------------------+ |
| | | +-----------------------------------+
| v | |
| +--------------------------------+ | v
| | SectionTaskDynamicQueueMixin | | +-----------------------------------+
| | - Redirects distToCenterSqr() | | | net.minecraft.server.level. |
| +--------------------------------+ | | ServerChunkCache |
+------------------------------------+ | - TicketType.PLAYER_LOADING |
| +-----------------------------------+
v
+------------------------------------+
| net.vanillaoutsider.velocityrender. |
| math |
| |
| +--------------------------------+ |
| | AnisotropicDistanceHelper | |
| | VelocityCalculator | |
| +--------------------------------+ |
+------------------------------------+5. Manifest & Configuration Schemas
velocity-render.mixins.json
json
{
"required": true,
"minVersion": "0.8",
"package": "net.vanillaoutsider.velocityrender.client.mixin",
"compatibilityLevel": "JAVA_25",
"mixins": [],
"client": [
"SectionTaskDynamicQueueMixin"
],
"injectors": {
"defaultRequire": 1
}
}fabric.mod.json Metadata
json
{
"schemaVersion": 1,
"id": "velocity-render",
"version": "${version}",
"name": "Velocity Render",
"description": "Velocity-biased anisotropic chunk world generation and client meshing prioritization for fast-traveling players.",
"authors": [
"Dasik (Rifaditya)"
],
"contact": {
"homepage": "https://modrinth.com/mod/velocity-render",
"sources": "https://github.com/Rifaditya/Vanilla-Outsider-Velocity-Render",
"issues": "https://github.com/Rifaditya/Vanilla-Outsider-Velocity-Render/issues"
},
"license": "GPL-3.0-only",
"icon": "assets/velocity-render/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"net.vanillaoutsider.velocityrender.YouRunFastMod"
],
"client": [
"net.vanillaoutsider.velocityrender.client.YouRunFastClient"
]
},
"mixins": [
"velocity-render.mixins.json"
],
"depends": {
"fabricloader": ">=0.18.4",
"minecraft": ">=26.3-",
"fabric-api": "*",
"dasik-library": ">=1.8.0"
}
}6. Exhaustive Mixin Injection Breakdown Table
| Property | Value | Architectural Significance |
|---|---|---|
| Mixin Class | net.vanillaoutsider.velocityrender.client.mixin.SectionTaskDynamicQueueMixin | Isolated client-side injection |
| Target Class | net.minecraft.client.renderer.chunk.SectionTaskDynamicQueue | The core dynamic queue sorting chunk compile tasks |
| Target Method | public RenderSection.CompileTask poll(...) / SectionTask poll(...) | Worker thread polling method |
| Injection Point | @At(value = "INVOKE", target = "Lnet/minecraft/core/BlockPos;distToCenterSqr(Lnet/minecraft/core/Position;)D") | Intercepts Euclidean squared distance calculation |
| Injection Type | @Redirect | Replaces return value with anisotropic biased distance score |
| Thread Safety | Fully thread-safe | Reads only primitive volatile doubles without mutating state |
| Version Difference | MC 26.1 uses CompileTaskDynamicQueue; MC 26.2 & 26.3 use SectionTaskDynamicQueue | Reflected faithfully in sovereign source trees |
7. Developer & Addon Extension Hooks
Developers extending You Run Fast or integrating custom HUDs can access all tracking subsystems:
java
// Read client speed and flight vector
double speedBlocksPerTick = ClientVelocityTracker.getSpeedBlocksPerTick();
double speedMetersPerSecond = ClientVelocityTracker.getSpeedMetersPerSecond();
double normDx = ClientVelocityTracker.getNormDx();
double normDy = ClientVelocityTracker.getNormDy();
double normDz = ClientVelocityTracker.getNormDz();
// Check if anisotropic bias is currently influencing compile tasks
boolean isBiasingActive = ClientVelocityTracker.activeBias;
double currentLeadOffset = ClientVelocityTracker.cachedLeadOffset;