A luminous MC³ multiverse with a violet portal and distant explorers
Fabric · Minecraft 26.2 · v0.3.23 technical preview

MC3Cubed.

Minecraft gives you 384 blocks of height. MC3 throws that limit away: the world is sliced into independently addressed cubic chunks, so you can build sky cities miles above the clouds or dig all the way down to the planet’s molten core.

v0.3.23 latest build16 published releases13 Sept 2026 last shipped±30M block range
01 / Install

Four steps to
boundless.

MC3 is a Fabric mod. Drop it in and the ceiling disappears.

01

Install Fabric

Grab Fabric Loader for your launcher, matching Minecraft 26.2. Fabric API sits alongside happily.

02

Grab the mod

Download mc3-0.3.23.jar from the version history below, or use the .mrpack for a one-click modpack install in Prism or Modrinth apps.

03

Drop it in mods/

Place the jar in .minecraft/mods. No config required to start playing.

04

Break the ceiling

Create a world and dig or build freely. /mc3 gives you status, pre-generation and profiling.

02 / System

What
“cubed” means.

The four pillars of the cubic world engine, diagrammed. Screenshots and footage appear here automatically as soon as they ship with a release.

Cube addressing

Independent 16×16×16 cubes with their own CubePos, payloads and per-cube persistence. The chunk column is dead.

Infinite verticality

The full −30,000,000 to +30,000,000 block range is valid cube space. Sky cities and planet cores, coherently.

Streamed regions

A square-prism view volume with its own vertical view distance streams every cube the renderer needs.

Layered worldgen

Stack terrain profiles (caves, nether, overworld, floating islands) into one configured generator.

03 / Releases

The build
timeline.

Every published MC3 build, baked in when a release ships: changelog, mod jar, modpack and sha256 checksums included.

Latest release · 13 Sept 2026

MC³ 0.3.23

MC³ 0.3.23

This release carries the 0.3.22 fixes for Save and Quit during pending generation, shutdown callback quiescence, bounded chunk-section allocation, heightmap boxing and batched directory flushing. Placement-stream work is measured in a matched 120-second JFR profile using a 6 GiB heap.

In that profile, weighted allocation fell 6.6%, total GC phase-pause time fell 23.6%, and chunk delivery rose 7.6%. The worst pause increased from 594 ms to 621 ms, so visible stutter remains unresolved; pauses of at least 150 ms fell from 12 to 7, and pauses of at least 500 ms from 4 to 1. These are bounded sampled-profile results, not live-heap or universal memory evidence. The replay used a 6 GiB heap; the reported 20 GiB memory behaviour has not been reproduced.

Local validation covered 955 executed tests across core and Frontier, zero failures, and three additional diagnostic tests skipped, plus the normal compatibility mixin and strict two-boot server save/reload smoke. Separately, a matched GUI Save and Quit run completed successfully in 72 seconds. The full Build gate passed, including mixin and strict two-boot server save/reload checks (run 34738289766). Release validation and package verification also passed (run 34738302071); the manually published assets passed strict checksum and profile verification. A new 0.3.22 Save and Quit crash report remains open, so this release does not claim the whole problem is resolved.

  1. 13 Sept 2026 · latest

    MC³ 0.3.23

    MC³ 0.3.23

    This release carries the 0.3.22 fixes for Save and Quit during pending generation, shutdown callback quiescence, bounded chunk-section allocation, heightmap boxing and batched directory flushing. Placement-stream work is measured in a matched 120-second JFR profile using a 6 GiB heap.

    In that profile, weighted allocation fell 6.6%, total GC phase-pause time fell 23.6%, and chunk delivery rose 7.6%. The worst pause increased from 594 ms to 621 ms, so visible stutter remains unresolved; pauses of at least 150 ms fell from 12 to 7, and pauses of at least 500 ms from 4 to 1. These are bounded sampled-profile results, not live-heap or universal memory evidence. The replay used a 6 GiB heap; the reported 20 GiB memory behaviour has not been reproduced.

    Local validation covered 955 executed tests across core and Frontier, zero failures, and three additional diagnostic tests skipped, plus the normal compatibility mixin and strict two-boot server save/reload smoke. Separately, a matched GUI Save and Quit run completed successfully in 72 seconds. The full Build gate passed, including mixin and strict two-boot server save/reload checks (run 34738289766). Release validation and package verification also passed (run 34738302071); the manually published assets passed strict checksum and profile verification. A new 0.3.22 Save and Quit crash report remains open, so this release does not claim the whole problem is resolved.

  2. 13 Sept 2026

    MC³ 0.3.22

    MC³ 0.3.22

    • Save and Quit no longer crashes while loading: pending-only cubes retain their payload, dirty residents cross the durable barrier, and shutdown callbacks quiesce before repository close.
    • Scoped chunk-section allocation, heightmap boxing and batched directory flushing reduce measured allocation and redundant synchronisation work while preserving reload correctness.
    • Bounded validation passed 934 core tests, with three existing core diagnostic skips (937 core total), plus 15 Frontier tests; compatibility mixin loading, scoped allocation guards and both true-cubic smoke boots also passed.
    • Live pending-generation acceptance passed at 7679x2106 FOV70 with Sodium/Iris/Voxy: pending 10,810, sent 299, delivered 291, terminal failures 0; fresh save, level.dat, normal quit, JVM exit and launcher exit 0 completed without MC³ shutdown, cancellation, OOM or error reports.
    • A bounded 16-cube diagnostic measured candidate mean 282.267 ms versus 376.577 ms baseline, and allocation diagnostics measured 3,176 versus 12,693,936 bytes and 141,856 versus 7,742,440 bytes. These are fixture measurements; broad heap/GC and whole-world save-speed claims remain open.
  3. 12 Sept 2026

    MC³ 0.3.21: rendering stability and generation performance

    MC³ 0.3.21: rendering stability and generation performance

    The candidate adds an epoch guard against stale graph and mesh publication,
    bounded snapshots for empty sections, and a per-terrain-batch biome cache. A
    single controlled 90-second cold diagnostic pair measured weighted allocation
    falling from 93.1 GB to 41.3 GB and GC pause from 30.0 s to 6.0 s. These results
    are diagnostic and make no universal memory or performance claim.

    It carries the published 0.3.19 cave and POI fixes and the 0.3.20 Save and Quit
    repair. The original malformed ultrawide scene was not reproduced in the cold
    comparison; #177 remains open because the original user world is unknown.

  4. 12 Sept 2026

    MC³ 0.3.20: shutdown hotfix

    MC³ 0.3.20 shutdown hotfix

    MC³ 0.3.20 fixes a Save and Quit shutdown race where execute could run a cube-load callback inline after shutdown and corrupt server executor state. The repair queues callbacks onto the server while it is running and drops shutdown refill work once shutdown starts.

    The release retains the published 0.3.19 cave-lighting and tall-empty-POI allocation fixes. Ultrawide rendering remains a separate unresolved acceptance item.

    Build-and-test 34700768588 and Release 34701661056 completed successfully. The core suite ran 911 tests with three existing skips and zero failures or errors; Frontier ran 15 tests with zero skips, failures or errors. Mixin and both-boot true-cubic smoke checks passed, packaging and verification passed, and four Save and Quit runs completed with saved-world confirmation, game JVM gone and launcher status 0.

  5. 12 Sept 2026

    MC³ 0.3.19

    MC³ 0.3.19

    This release delivers two focused fixes:

    • #178: cave lighting now follows engine-consistent near and far terrain behaviour, preventing cave sky leakage and darkness errors.
    • #180: tall POI columns with unchanged empty data remain bounded, avoiding allocation of 4,096 empty slots per column while preserving real, version-changed and normal POI data.

    Measured verification:

    • GPU lighting checks passed at noon and midnight across six client/server samples: cave skylight 0, ordinary-height control 5, and sky-lit ceiling control 15. All samples were legal and authoritative; near and far terrain was visually reviewed.
    • Bounded AFK gameplay passed for 13m47 with 25 responsive checks and 19 settled samples. POI storage held at 28 slots, loaded columns at 1,646, and delivery at 11,109/11,109 cubes. There were zero POI warnings or OOMs. The world saved cleanly and the launcher exited normally.
    • Core verification executed 904 tests with three diagnostic skips and zero failures; Frontier passed 15 tests with zero failures.

    Known limitations and follow-ups remain explicit. Save and allocation pressure, including retained heap growth as workload and loaded columns changed, remains tracked by #183 and is not a general memory or performance acceptance claim. Saved-world invalid block-entity observations remain tracked by #182; attribution is unknown. Ultrawide visual acceptance remains a separate, non-blocking follow-up under #177.

  6. 9 Sept 2026

    MC³ 0.3.18

    MC³ 0.3.18 fixes bedrock generation in new cubic terrain.

    • Removes the bedrock floor around Y=-64 in the default layered world.
    • Restores normal surface materials in the deep cave layers, where an inverted surface rule previously replaced solid terrain with bedrock.
    • Retains the other biome material rules and the default repeated cave generation.

    The generation fix applies to newly generated terrain. Existing saved blocks are preserved.

    Includes the MC³ core JAR, the matching test profile with Sodium, Iris and Voxy, and the compatible MC³ Frontiers JAR.

    Validated with 28 focused regression tests, a full build (906 passing tests and three diagnostic skips), and Knot runtime checks with Sodium, Iris and Voxy. Actual generated cubes contain real solid materials and no bedrock at the -64 join and four deep levels through Y=-32768. A fresh default-profile graphical world also verified deep stone terrain and a player block surviving save/reload. Core, test-profile and Frontiers packages passed staging verification.

    The local dedicated-server smoke passed all generation and persistence assertions across two boots, but its strict timing check reported a first-boot tick overrun. The release workflow retains its existing functional gates and documented shared-runner timing policy.

    Known issues: slow terrain delivery and save stalls remain under investigation (#168/#169 in TASKS.md). Separate shutdown callback and restored block-entity warnings remain open (#174/#175). This release addresses generated bedrock and deep materials.

  7. 31 Aug 2026

    MC³ 0.3.17

    MC3 0.3.17: performance fix release

    Fixes the 0.3.15 server-thread stalls (9-25s freezes when flying or
    breaking blocks, fps dips to 3 during chunk loads):

    • Demand-flip churn: ticket release/return no longer scans the whole
    • Light engine: the server thread no longer blocks for whole light
    • Cube sender: stale deferred-preparation retirements bounded per tick

    Rig-measured on an aggressive 8x teleport storm: worst server stall
    25s -> 3s; world loads clean. Full root JUnit suite green. The 0.3.16
    tag build failed only on a stale harness contract test (the frontier
    pregen band syntax fix); no content changes since 0.3.15 beyond the
    already-released decorate-once pipeline.

  8. 30 Aug 2026

    MC³ 0.3.15

    [!WARNING] DEPRECATED — do not install. This release has severe server-side stalls (9-25 second freezes when flying or breaking blocks, frame dips during chunk loads) caused by a generation-queue scan storm, a light-engine lock block, and unbounded cleanup bursts. Fixed in MC³ 0.3.17.

    ---

    Highlights

    • Decorate-once worldgen: trees, plants and structures are merged into a cube before its first delivery (fingerprint full-v6); a delivered cube is never re-decorated.
    • Existing worlds never regenerate: full-v5 is a full compatible prior of full-v6 (generated-only content and player mutations both preserved). Worlds saved on 0.3.6 through 0.3.14 load as priors with zero regeneration.
    • Per-cube group decoration: decoration runs once per 3x3 column tile instead of once per cube; sibling cubes harvest from the shared pass (content-identical, proven by kernel parity tests).
    • C2ME guard: standard incompatibility popup for C2ME worldgen-option builds that break MC3 (c2me-opts-worldgen-vanilla <0.4.2-alpha.0.43+26.2).
    • Vertical-fly stall from 0.3.10 not reproducible on this build: a 40k-cube vertical demand spike drains in under 60s at 118 fps on the validation rig.

    Upgrade notes

    • Install over your existing instance; your world is untouched and will not regenerate.
    • Paired frontier: mc3frontier-0.1.3.jar (requires MC3 ~0.3.15).
  9. 30 Aug 2026

    MC³ 0.3.14

    Highlights

    • Existing worlds load again: full-v5 is recognised as a compatible prior of the current full-v6 fingerprint, so worlds saved on 0.3.9-0.3.11 (and 0.3.6+) load as priors with zero regeneration. Fixes the spawn-chunk stall / black chunk reported on 0.3.12.
    • C2ME compatibility: standard incompatibility popup for the C2ME worldgen option builds that break MC³ (c2me-opts-worldgen-vanilla <0.4.2-alpha.0.43+26.2).
    • Decorate-once worldgen (fingerprint v6): trees, plants and structures merge into a cube before first delivery; never re-decorates an already-delivered cube.
    • Windows save fix (directory-handle denial) and exit-freeze fix carried from 0.3.11.

    Upgrade notes

    • Install over your existing instance; your world is untouched and will not regenerate.
    • Paired frontier: mc3frontier-0.1.3.jar (requires MC³ ~0.3.14).
  10. 30 Aug 2026

    MC³ 0.3.12

    [!WARNING] DEPRECATED — do not install. This release breaks loading of existing worlds: the worldgen fingerprint bump was not paired with a compatibility prior, so previously saved cubes were flagged for regeneration on load (frozen spawn, black chunks). The compatibility prior shipped in 0.3.14+. Upgrade to MC³ 0.3.17.

    ---

    MC³ 0.3.12 — decorate-once and full board closure

    Summary of changes since 0.3.11

    • Decorate-once for the unified pipeline (TASKS.md #140, owner-approved): one group closure over a 3×3-column bounding box instead of 9× per-column re-decoration. Each origin runs exactly once in canonical order; writes land in whichever group column contains them; per-column harvest follows. The per-cube pipeline fingerprint bumps to full-v6 to reflect the semantic change. Existing saved cubes load as priors and are never regenerated.
    • The parity test proves a small deterministic divergence (as expected: features read shared scratch state from the expanded origin set), bounded within a ±10-cell tolerance on the fixture world.
    • The ownership provenance scan is restored to its fail-closed spec after a silent-filter attempt broke the loud-rejection unit tests.
    • Frontier dependency and tool pins track core 0.3.12.

    Also in this release (carried from the 0.3.11 line)

    • Exit-path hardening: shutdown flush force-cancels in-grace abandonments; the generation pump never starts zero-ticket abandoned work.
    • Windows save fix: denied directory handles fall back to platform semantics instead of failing every cube save.
    • Ball pregen: pregen start shapes a chunk-unit sphere around the given coords, uncapped, with cube-granular progress.
    • Legacy config fix: pre-0.3.6 configs map to per-cube instead of unified.
    • Bottom-edge sky-light domain fix: client floor dwell no longer packs the sink section.
    • Spawn diagnostics surface (MC3_SPAWN_DIAGNOSTICS=1).

    Verification

    • Full aggregate + Frontiers: green (fingerprint v6, all parity and regression fixtures).
    • True-cubic smoke: boot + reload + persistence clean (local rig).
    • Clean-runner CI: prepare (aggregate + per-cube acceptance + mixin load test + packaging) and publish green; release immutable with self-consistent checksum manifest.

    Upgrade note: drop mc3-0.3.12.jar into your mods folder (requires Fabric API ~0.155.2+26.2). The matching Frontiers JAR is attached.

  11. 29 Aug 2026

    MC³ 0.3.11

    MC³ 0.3.11 — exit-path hardening and pregen shape directives

    Carries everything from 0.3.10 (legacy-config fix, Windows save fix, abandonment grace, ball pregen) plus:

    Summary of changes since 0.3.10

    • Shutdown flush can no longer hang on in-grace abandonments: a shutdown flush runs no further level ticks, so generations parked in the 40-tick abandonment grace could never be swept and the flush waited forever — the exit-hang class reported on 0.3.9/0.3.10. Shutdown flush and close() now force-cancel zero-ticket abandonments up front; normal play keeps the per-tick sweep. Regression fixture pins close() returning promptly with an in-grace abandonment pending.
    • The generation pump never starts a zero-ticket abandoned generation, and the shutdown force-cancel covers active abandonments too: demand-lost work is cancelled, not started-then-discarded, and nothing persisted is ever regenerated (owner directive).
    • Pregen ball radius is chunk-unit and uncapped (owner directive): pregen start <radiusChunks> [centre] builds a chunk-space sphere around the given coords; the 8192-block cap is gone — the world border is the only limit. Huge footprints report an analytic cube estimate in progress instead of scanning billions of columns.

    Verification

    • LevelCubeRepositoryTest 107/107 including the new shutdown fixture (close() returns promptly with an in-grace abandonment pending) and the demand-returns-within-grace fixture.
    • Pregen gates: command grammar, plan shape, resume-state and ETA fixtures all green; aggregate root + Frontiers green on the tag commit (CI prepare).
    • Clean-runner CI: prepare and publish green; release immutable with a self-consistent checksum manifest.

    Upgrade note: drop mc3-0.3.11.jar into your mods folder (requires Fabric API ~0.155.2+26.2). The matching Frontiers JAR is attached.

  12. 29 Aug 2026

    MC³ 0.3.10

    [!WARNING] DEPRECATED — do not install. Known defects in this release: heavy stalls while flying vertically (server verified instant, client-side churn), and jungle trees can render with gaps at cube boundaries (delivery/render side; worldgen itself is correct). Both are resolved in later releases. Upgrade to MC³ 0.3.17.

    ---

    MC³ 0.3.10 — legacy-config fix and abandonment grace

    Fixes the two root causes behind the 0.3.8 exit/save failures (see the pasted 0.3.8 log: AccessDeniedException from CubeDiskStore.forceDirectory on every cube save, plus the 215-second join through the unified pipeline).

    Summary of changes since 0.3.9

    • Legacy configs no longer trap you in unified mode. Configs written before generationMode existed (every pre-0.3.6 install) were silently mapped to the slow unified pipeline by the legacy migration — the unified-closure threads and multi-minute joins in 0.3.8/0.3.9 logs come from exactly this. The legacy default now maps to the shipped per-cube pipeline; explicit generationMode values (including deliberate unified) are untouched, and the derivation is logged at startup. World data is safe across the switch (cross-pipeline cubes load as compatible priors).
    • Cube-ticket abandonment now honours the 40-tick demand-loss grace (TASKS.md #152): releasing the last tracking ticket no longer instantly cancels a queued generation while the deferred-job level waits 40 ticks — the disagreement crashed the integrated server through the fail-closed save guard during demand flaps (pregen stop/start churn, view flaps). Demand returning inside the window continues the generation; only expiry cancels. Verified by the #116 halo proof: 12 flap cycles completed with content identical to the clean reference.
    • Ball pregen (TASKS.md #153): /mc3 pregen start now generates a sphere of cubes around the given coords with cube-granular progress (cubes=X/Y rate cubes/s), never full world height. The legacy full-depth column form lives on as /mc3 pregen band.
    • Bottom-edge sky-light domain fix: a client dwelling at the world floor no longer dies on Cubic light node outside supported domain.
    • Combined-only releases: the separate frontier-v* workflow is gone; the matching Frontiers JAR ships inside this release's asset set.

    Verification

    • Focused gates: Mc3ConfigTest + CubeDiskStoreTest 23/23 (including a real write-only-directory test — the Linux shape of the Windows denial).
    • Aggregate: root + Frontiers 899/902 (3 by-design diagnostics skips).
    • GPU client rig with the shipped profile (Fabric API, Sodium, Iris, Voxy) plus ScalableLux and an owner-shaped pre-0.3.6 config: legacy derivation logged; world-creation click-to-join ≈25 s (vs ~10 minutes on 0.3.8); join rendered full terrain with zero black/ghost cubes; delivery converged expected=sent=delivered=11109 pending=0; Save and Quit flushed 11,103 cubes cleanly; a fresh client rejoined the saved world with identical terrain and state.
    • Clean-runner CI: prepare (aggregate + per-cube acceptance + mixin load test + packaging) and publish green; release is immutable with a self-consistent checksum manifest.

    Upgrade note: drop mc3-0.3.10.jar into your mods folder (requires Fabric API ~0.155.2+26.2). If you hit the 0.3.8 exit/save failures, this release fixes both; the matching Frontiers JAR is attached for stack users.

  13. 28 Aug 2026

    MC³ 0.3.9

    MC³ 0.3.9 — world-creation stall and Windows save hotfix

    Fixes both #149 failures reported against the published 0.3.8 Windows test profile.

    Summary of changes since 0.3.8

    • World creation no longer stalls for minutes on upgraded installs. Configs written before the generationMode key existed were silently mapped to the slow unified pipeline by the legacy migration (the pre-0.3.6 default unifiedGeneration: true), which is what produced the ~51 s Selecting global world spawn… pause plus the ~256 s spawn preparation (about ten minutes end to end) and the broken first join. The legacy flag now maps to the shipped per-cube pipeline; explicit generationMode values (including deliberate unified) are untouched, and the derivation is logged at startup. Existing worlds are unaffected (cross-pipeline cubes load as compatible priors).
    • Cube saving, autosave and Save and Quit now work on Windows. Every cube save failed because CubeDiskStore.forceDirectory opens a read channel on the directory and Windows denies directory handles (AccessDeniedException), leaving cubes dirty and blocking Save and Quit with data-loss risk. The denial now falls back to platform directory-durability semantics (matching NTFS journalling), so saves, batch flushes and deletes complete.
    • Harness/test hygiene: the teleport-storm.sh lock pin follows the shipped bounded shared lock (--wait 7200), new regression tests for both fixes, and release/status documentation updates.

    Verification

    • Focused: Mc3ConfigTest + CubeDiskStoreTest 23/23 including a real write-only-directory test (the Linux shape of the Windows denial).
    • Aggregate: root + Frontiers 888/891 (3 by-design diagnostics skips).
    • GPU client rig, exact shipped profile (Fabric API, Sodium, Iris, Voxy) + ScalableLux, with an owner-shaped pre-0.3.6 config: legacy derivation logged; world-creation click-to-join ≈25 s (spawn preparation 16 s); join rendered full terrain, zero black/ghost cubes; /mc3 status delivery converged expected=sent=delivered=11109 pending=0 terminalFailures=0; Save and Quit flushed 11,103 cubes and returned to title; a fresh client rejoined the saved world (9.6 s) with identical terrain and state.
    • Clean-runner CI: prepare (aggregate + harness gates + packaging) and publish all green; the release is immutable with a self-consistent checksum manifest.

    Upgrade note: drop mc3-0.3.9.jar into your mods folder (requires Fabric API ~0.155.2+26.2). The companion MC³ Frontiers 0.1.3 build is attached for stack users.

  14. 28 Aug 2026

    MC³ 0.3.8

    MC³ 0.3.8 — world-creation hotfix + unified spawn-search fix

    0.3.8 fixes two world-creation problems reported against 0.3.7. Minecraft 26.2, Fabric Loader 0.19.3+, Fabric API 0.155.2+26.2, Java 25. The mc3-0.3.8-test.mrpack profile bundles MC³ with Sodium, Iris and Voxy.

    What changed
    • Fix: singleplayer world creation dies with ScalableLux installed (#138). ScalableLux (Starlight-derived lighting mod) nulls vanilla's per-chunk sky-light source list when its engine takes over. MC³'s server-side cube-write light hook dereferenced it unconditionally, so the first light-changing block write — typically a spreading fluid within the first minute — killed the integrated server thread and the window went Not Responding. The hook is now guarded; whichever light engine is active still receives its update notifications, and vanilla behaviour is unchanged (vanilla never nulls the field). Verified on a live client with the full mod profile: pre-fix the server died at tick 122; post-fix a fresh world plus a 4-minute forced fluid-spread soak ran clean.
    • Perf: unified-mode world creation 3× faster (#135). A measured bisect pinned the 0.3.5-era spawn-search slowdown (33 s → 271 s on the reference seed) to the closure-decoration rework, which re-ran the full decoration session about 9× per column. Closure span passes now compute concurrently — content-identical output, no worldgen-format change — taking the unified spawn phase from 278 s to 95 s. The shipped default per-cube mode was never affected.
    • Metadata: MC³ Frontiers now requires MC³ ~0.3.8; the test profile's embedded setup notes track 0.3.8.
    Verification

    Full test aggregate green at the tagged commit: 874 root JUnit tests (871 pass, 3 intentional diagnostic skips), 15/15 Frontier tests, 5,050-marker mixin load gauntlet (Sodium/Iris/Voxy) with zero failures, release tooling suites 25/25 + 10/10 + 19/19, and a live client soak with the shipped mod profile. SHA-256 for every asset is in sha256sums.txt.

    Full changelog: CHANGELOG.md and STATUS.md in the repository.

  15. 28 Aug 2026

    MC³ 0.3.7

    MC³ 0.3.7 — world-creation and sky-edge fixes

    MC³ 0.3.7 fixes the fresh-world creation stall reported against 0.3.6 and closes a sky-light failure at the shipped cubic world's upper edge. It targets Minecraft 26.2, Fabric Loader 0.19.3+, Fabric API 0.155.2+26.2 and Java 25. The mc3-0.3.7-test.mrpack profile bundles MC³ with Sodium, Iris and Voxy.

    What changed
    • Fresh worlds reach the server quickly. Vanilla probes up to 121 candidate chunks while choosing a spawn. MC³ previously generated every candidate at full multi-band depth; pre-ready spawn columns now latch only the primary band. In the reference live test, a fresh cubic server reached Done in 3.574 seconds instead of 36.9 seconds on the 0.3.6 JAR.
    • Sky-light updates stay inside the supported domain. Vanilla keeps sky storage one section above the logical world top. MC³ now lets those edge probes follow vanilla's harmless no-op path instead of packing an out-of-domain cubic light node and wedging boot.
    • Smoke probes match the shipped world envelope. The boundary checks now use the preset's legal −32,768 to 32,767 Y range rather than the broader sparse-coordinate contract.
    • GitHub-only immutable publication. The release pipeline verifies the exact tag commit, checks every candidate checksum, publishes through a draft, and proves the final immutable release without replacing existing assets.
    Verification

    Focused spawn-scoping tests passed 5/5; the live fixed JAR reached Done (3.574s); the mixin load gate passed; and the two-boot per-cube smoke passed writes at both Y edges, fluids, deep item survival, decoration, 9/9 pre-generation and reload fidelity. SHA-256 values for every downloadable asset are in sha256sums.txt.

    Full changelog: v0.3.6…v0.3.7

  16. 26 Aug 2026

    MC³ 0.3.6

    MC³ 0.3.6 — deterministic generation and automated releases

    MC³ 0.3.6 packages the determinism, tall-column persistence, compatibility and release-automation work completed after 0.3.5. It targets Minecraft 26.2, Fabric Loader 0.19.3+, Fabric API 0.155.2+26.2 and Java 25. The mc3-0.3.6-test.mrpack profile bundles MC³ with Sodium, Iris and Voxy.

    What changed
    • Deterministic unified decoration. Unified FULL columns now use the same canonical 3×3-origin decoration closure as per-cube generation. Contested blocks and block entities are derived from the seed, position and feature content instead of task scheduling order.
    • Exact tall-column saves. Sections whose full Y coordinate cannot fit vanilla's signed-byte field now carry an mc3:section_y marker, preventing deep sections from being truncated or reloaded into colliding slots.
    • C2ME conflict fails fast. MC³ detects the incompatible C2ME aquifer optimisation and gives a precise configuration error instead of leaving singleplayer on ‘Loading terrain’. The supported profile itself does not include C2ME.
    • Corrected test profile and CI/CD. The profile contains the genuine 0.3.6 JAR and corrected 12 GiB guidance. The new self-hosted release workflow builds, tests, packages, verifies and uploads checksum-bound GitHub Release assets.
    Important upgrade note

    Fresh-world spawn search in 0.3.6 can make world creation appear frozen because it generates full-depth candidate columns before the server is ready. This was fixed in 0.3.7; use 0.3.8 or later for the subsequent ScalableLux hotfix as well.

    Verification

    The tagged release line passed 792 JUnit tests, the mixin load gate and all 13 true-cubic smoke content checks. SHA-256 values for the downloadable assets are recorded in sha256sums.txt.

    Full changelog: commits through v0.3.6

04 / Manual

Straight
from the repo.

Baked from the MC3 README at release time: status, compatibility tables and architecture notes without request-time API calls.

MC³: Minecraft Cubed

MC³ is an experimental Fabric mod for Minecraft 26.2. It replaces full-height streaming with independently addressed 16 x 16 x 16 cubes and provides a layered world generator for vertically stacked terrain profiles.

Published release: 0.3.8 technical preview. The sparse storage, persistence, custom network protocol and three-dimensional tracking foundations are in place, and cube-native light now covers both generation and runtime edits. This release is not acceptance-complete. The remaining blockers include independently convergent Voxy far terrain, cube-native live tick ownership, and configured world generation outside finite level metadata. See STATUS.md and the true-cubic boundary. TASKS.md records the remaining runtime acceptance gates for this release line.

Implemented foundations

  • Independent CubePos addressing, sparse resident storage, custom cube payloads and per-cube persistence.
  • Buffered view tracking: a square prism — a vanilla-parity Chebyshev square on X/Z with an independent verticalViewDistance Y radius at full depth (default -1: follows the horizontal distance) — so the streamed shape always covers the whole client render grid.
  • Shipped per-cube configured-layer generation through bounded scratch: each 16³ cube receives terrain, structures, decoration and light before first delivery. The older unified FULL-column path remains for comparison.
  • Direct all-air gap generation at legal extreme cube coordinates without allocating a finite compatibility column. Gap biomes are sampled at their absolute quart coordinates.
  • A layered generator and world-creation editor for caves, nether, overworld, floating-island and custom profiles.
  • Incremental block and block-entity updates, compact per-cube light fields, durable terrain provenance and fail-closed schema-2 compatibility checks.
  • Built-in status, pre-generation and profiling commands under /mc3.

The complete [-30,000,000, 30,000,000) block-coordinate range is valid for cube addressing, sparse ownership and unconfigured gaps. That does not mean every runtime subsystem is already full-range. Configured generation still depends on Minecraft's finite level metadata and bounded compatibility scratch. Several interaction, light and scheduling paths also retain vanilla packed coordinate or column boundaries.

Compatibility

Current mod-support boundaries and tested versions are maintained in COMPATIBILITY.md. Release and runtime evidence remains in STATUS.md.

Requirements

  • Minecraft 26.2
  • Fabric Loader 0.19.3 or later
  • Fabric API 0.155.2+26.2 or a later 0.155.x build for Minecraft 26.2
  • Java 25

The archived 0.3.6 JAR's Fabric metadata used a wildcard for Fabric API even though this is the validated range. The 0.3.7 source enforces ~0.155.2+26.2; its final packaged load proof remains part of the release gate.

Build

Replace your-session with one unique, shell-safe identifier. First save this as /tmp/mc3-your-session.init.gradle so every project's build output is kept off the unreliable checkout mount:

def mc3BuildRoot = new File(System.getProperty('mc3.buildRoot'))
gradle.beforeProject { project ->
    def relative = project.path == ':' ? 'root' : project.path.substring(1).replace(':', '/')
    project.layout.buildDirectory.set(new File(mc3BuildRoot, relative))
}
flock --wait 7200 /tmp/mc3-build.lock \
  ./gradlew clean build --project-cache-dir /tmp/mc3-pcache-your-session \
  --init-script /tmp/mc3-your-session.init.gradle \
  -Dmc3.buildRoot=/tmp/mc3-build-your-session \
  --no-build-cache --no-daemon --console=plain

That local command writes the mod jar to /tmp/mc3-build-your-session/root/libs/mc3-<version>.jar; CI's default output remains build/libs/. The wrapper pins Gradle 9.5.1 by SHA-256 and the build uses the stable Fabric Loom 1.17.18 plugin. GitHub Actions runs the clean build on Java 25.

Useful local verification commands are:

export MC3_GRADLE_EXTRA_ARGS='--project-cache-dir /tmp/mc3-pcache-your-session --init-script /tmp/mc3-your-session.init.gradle -Dmc3.buildRoot=/tmp/mc3-build-your-session --no-build-cache'
flock --wait 7200 /tmp/mc3-build.lock \
  ./gradlew clean build --project-cache-dir /tmp/mc3-pcache-your-session \
  --init-script /tmp/mc3-your-session.init.gradle \
  -Dmc3.buildRoot=/tmp/mc3-build-your-session \
  --no-build-cache --no-daemon --console=plain
tools/mixin-loadtest.sh
MC3_SMOKE_MODE=per_cube tools/true-cubic-smoke.sh
MC3_SMOKE_MODE=unified tools/true-cubic-smoke.sh
MC3_SMOKE_MODE=deferred tools/true-cubic-smoke.sh

tools/smoke-server.sh is a destructive regression harness for its own run/world fixture. Read the script and STATUS.md before invoking it.

Run

For a dedicated server, set this in server.properties:

level-type=mc3\:cubic

For single-player, choose MC³ Cubic on the World screen. The Customise screen edits the overworld layer stack; JSON import/export covers the complete dimension set. See docs/WORLDGEN_PRESETS.md.

The default config/mc3.json is:

{
  "verticalViewDistance": -1,
  "voxyViewDistance": 64,
  "debugCubeTraffic": false,
  "maxCubeUpdatesPerTick": 4096,
  "maxQueuedLayerGenerations": 32768,
  "maxActiveLayerGenerations": 48,
  "maxLayerGenerationStartsPerTick": 48,
  "suppressHaloColumnGeneration": true,
  "windowedColumnSections": true,
  "haloColumnsPrimaryBandOnly": true,
  "elideCanonicalAirSections": true,
  "stubCoveredColumnSaves": true,
  "generationMode": "per_cube"
}

verticalViewDistance defaults to -1, which follows the horizontal distance so the streamed prism covers the whole client render grid; an explicit value is clamped to 2..64. voxyViewDistance (default 64 cubes, clamped to 0..128, 0 disables) is the Voxy far-LOD feed radius: resident cubes inside that square prism but outside the streamed view are pushed to the client's Voxy LOD database, decoupled from the near view. It never starts far generation — deliberate far pre-fill is /mc3 pregen's job. This setting is not Voxy's own render distance: Voxy 0.2.18's packed LOD identity represents section Y -128..127 only. maxCubeUpdatesPerTick is clamped to 1..4096. Deferred generation limits are clamped to a queue of 1..65536, active work of 1..64, and starts of 1..active.

generationMode="per_cube" is the shipped path: one 16³ cube at a time, decorated and lit before first delivery, with no full-depth column held resident for delivered content. unified (the pre-0.3.0 shipped path) and deferred_band remain selectable for comparative testing; both require decoration to be part of the result before the first payload, and deferred delivery fails closed until its decoration result is ready. The legacy unifiedGeneration boolean still maps onto these modes for old configs.

The 0.3.7 source contains additional terrain/closure parity, full-domain light-node identity, C2ME and Voxy capacity work, but none of it is a released 0.3.6 guarantee. Fresh same-seed cross-path parity, repeat determinism, the current performance baseline, the top/bottom runtime-light warning census, the C2ME three-way runtime matrix and Voxy's radius-63 GPU run remain acceptance work.

Five memory behaviours ship default-on, each decodable to false for comparative debugging: suppressHaloColumnGeneration (the vanilla 47×47 player-ticket column halo is never materialised for cubic levels — rig-measured ~3 GB of full-depth columns; streamed columns stay entity-ticking via MC³'s own residency tickets), windowedColumnSections (persisted, non-referenced content sections of FULL columns become biome-exact placeholders until their cube is demanded again), haloColumnsPrimaryBandOnly (in per-cube mode, columns driven purely by vanilla ticket propagation generate only the primary surface band rather than every configured layer at full depth), elideCanonicalAirSections (canonical all-air sections are elided from region saves with a marker-driven exact restore), and stubCoveredColumnSaves (cube-covered column slots are saved as metadata-only stubs — air states plus the real biome container — with content served by the cube store; fail-closed, so placeholder air never reaches disk over real content).

Test profile

The stable mc3-test.mrpack is published on the project's GitHub Releases. Release 0.3.8-test.1 contains MC³, Fabric API, Sodium, Iris and Voxy for Minecraft 26.2. Shaders start disabled. Set the launcher's maximum memory to 12288 MiB (12 GiB) after import because the Modrinth pack format does not carry a JVM memory setting; 8 GiB is workable for settled play and 6 GiB is tight during roam transients.

The immutable 0.3.6 profile's embedded MC3-PROFILE-SETUP.txt predates the memory correction and incorrectly says 64 GiB and a 32-cube MC³ far feed. Do not follow those two lines: the current guidance is 12 GiB and voxyViewDistance=64. The archive is not rewritten; 0.3.7 and later embed the corrected setup prose.

Voxy's inclusion is intentional. A release cannot pass by excluding a broken mandatory compatibility path. The profile is therefore a review and correctness-testing surface, not evidence that all current blockers are fixed.

To capture a performance problem in a world:

/mc3 profile start 60

MC³ writes a JFR recording and JSON summary under the instance's debug/ directory.

Validation boundaries

  • The isolated build command above proves compilation and automated tests. It does not prove a join, renderer, save/reload or full-range runtime path.
  • tools/mixin-loadtest.sh boots the real Fabric client loader without a display and transforms the packaged Sodium, Iris and Voxy profile. It does not prove graphical correctness.
  • tools/true-cubic-smoke.sh uses an isolated temporary world and checks generation classification, sparse ownership and persistence at coordinate edges. Its default per_cube mode gates the shipped path; unified and deferred remain available as comparative modes.
  • The GPU-backed client rig is required for join flow, movement, input, rendering and visual first-delivery checks. Current evidence and any omissions are recorded in STATUS.md.

Release acceptance still requires authoritative cube-native ticks, entities and points of interest; independently convergent Voxy far terrain; stable Sodium behaviour over travel; and no dependence on lossy vanilla packed Y coordinates in the accepted paths.

Licence

MIT