Skip to content

🏛️ Technical Architecture & Mixin Engine (MC 26.1) ​

📌 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 ​

ParameterTechnical Details
Subsystem NameTechnical Architecture & Mixin Engine
Minecraft AnchorMC 26.1.2
Mod IDvelocity-render
Root Packagenet.vanillaoutsider.velocityrender
Client Mixin Classnet.vanillaoutsider.velocityrender.client.mixin.CompileTaskDynamicQueueMixin
Target Minecraft Classnet.minecraft.client.renderer.chunk.CompileTaskDynamicQueue
Mixin Configurationvelocity-render.mixins.json
Compatibility LevelJAVA_25
DependenciesFabric 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: CompileTaskDynamicQueue.poll() ]
                                       |
                                       v
                  [ CompileTaskDynamicQueueMixin Redirect ]
                                       |
                                       v
             [ AnisotropicDistanceHelper.calculateBiasedDistanceSqr() ]
                                       |
                 (Forward sections polled first with lower scores)

3. Algorithmic Complexity & Performance Analysis ​

OperationFrequencyComplexityAllocation OverheadTechnical Strategy
Biased Distance CalculationMulti-kHz (Render workers)$O(1)$Zero BytesVolatile primitive cache reads, no heap objects
Client Velocity Smoothing20 Hz (Client tick)$O(1)$Zero BytesIn-place double arithmetic with EMA constant
Server Velocity Tracking20 Hz (Server tick)$O(1)$Zero BytesFastUtil hash map lookup by UUID
Forward Ticket Allocation2 Hz (Throttled)$O(K)$ ($K \le 24$)Zero BytesBit-packed coordinates in LongOpenHashSet
Ticket Pruning Diff2 Hz (Throttled)$O(K)$ ($K \le 24$)Zero BytesIterator 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
| | CompileTaskDynamicQueueMixin | |        +-----------------------------------+
| | - 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": [
    "CompileTaskDynamicQueueMixin"
  ],
  "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.1-",
    "fabric-api": "*",
    "dasik-library": ">=1.8.0"
  }
}

6. Exhaustive Mixin Injection Breakdown Table ​

PropertyValueArchitectural Significance
Mixin Classnet.vanillaoutsider.velocityrender.client.mixin.CompileTaskDynamicQueueMixinIsolated client-side injection
Target Classnet.minecraft.client.renderer.chunk.CompileTaskDynamicQueueThe core dynamic queue sorting chunk compile tasks
Target Methodpublic 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@RedirectReplaces return value with anisotropic biased distance score
Thread SafetyFully thread-safeReads only primitive volatile doubles without mutating state
Version DifferenceMC 26.1 uses CompileTaskDynamicQueue; MC 26.2 & 26.3 use SectionTaskDynamicQueueReflected 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;

Official documentation & web portal for Dasik Igaijinn mods.