EkaiiVision 4 — fully-offline build of VoxelVision (Erasers45-Studios): every outbound path neutralized, every local feature kept. Reproducible single-file patcher + full audit.
Find a file
admin_ekaii 4b5fc5bc24 Cross-platform NodeTree fix (os.path.join), multi-OS tutorial, refresh SHA
Convert now works on Windows + macOS + Linux (verified on macOS Blender 5.1.2).
Tutorial covers all three OSes (jar paths, offline-verify commands).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 23:09:12 +02:00
.forgejo/workflows EkaiiVision 4 — offline build of VoxelVision: patcher + full audit + pipeline 2026-05-27 22:52:34 +02:00
reports Cross-platform NodeTree fix (os.path.join), multi-OS tutorial, refresh SHA 2026-05-27 23:09:12 +02:00
.gitignore EkaiiVision 4 — offline build of VoxelVision: patcher + full audit + pipeline 2026-05-27 22:52:34 +02:00
patch_ekaiivision.py Cross-platform NodeTree fix (os.path.join), multi-OS tutorial, refresh SHA 2026-05-27 23:09:12 +02:00
README.md Cross-platform NodeTree fix (os.path.join), multi-OS tutorial, refresh SHA 2026-05-27 23:09:12 +02:00

EkaiiVision 4

A fully-offline build of VoxelVision 4 — Erasers45-Studios' Blender→Minecraft add-on — with its only outbound path removed. Same modeling, same converters, same exporters. One difference: it can make zero network requests.

VoxelVision 4 is already remarkably clean (no telemetry, no license server, no phone-home — see reports/AUDIT.md). EkaiiVision applies one surgical change on top:

  • Zero outbound. The 3 wm.url_open buttons (FAQ / BakeLab / Discord) — the add-on's only network-touching code — are replaced with an inert label. Nothing can leave the host.

Everything else is kept byte-for-byte: the geometry-nodes engine, the .blend asset library, the vendored mcschematic / nbtlib / mc_import modules, all 43 .pyc.

Why it's safe (the short version)

A full audit (static AST + bytecode disassembly + .blend script extraction) found:

  • No network capability at all — no socket/urllib/requests/http import anywhere.
  • No license/activation/DRM — VoxelVision is content-gated (paid = a bigger asset .blend), not server-gated. Nothing checks anything online. This is why it runs offline.
  • No phone-home, no kill switch, no telemetry, no out-of-add-on writes.
  • The one scary-looking artifact — a persistent timer + auto-register script embedded in the .blend — is a geometry-nodes UI refresher + a local texture-bake pipeline. Zero network.
  • 43/43 .pyc reconciled with source: 42 byte-identical, 1 differs only by a stale leftover import (from nbtlib.tag import File) — benign, and inert (timestamp .pyc, recompiled from .py on extraction anyway).

Read the audit. Trust the patch.

How it works

patch_ekaiivision.py is a single-file, deterministic patcher. It takes the official VoxelVision .zip, rewrites exactly one block in voxelvision/__init__.py (the 3 wm.url_open buttons → one inert label), and writes a hardened .zip. It refuses to ship a partial patch if upstream's layout changes (asserts exactly one match, asserts no url_open survives).

File Change Why
voxelvision/__init__.py 3× wm.url_open buttons (FAQ/BakeLab/Discord) → 1 inert label privacy: the only outbound path
voxelvision/__init__.py GN append path … + r'\NodeTree'os.path.join(…, 'NodeTree') bugfix: hardcoded Windows separator broke Convert on macOS/Linux; os.path.join uses the native separator on every OS (identical to stock on Windows, fixed on macOS/Linux — convert verified on Blender 5.1.2/macOS)
everything else untouched

Feature impact: you lose 3 help/credit link buttons. Nothing functional breaks — convert, .schem/.bp/.mcstructure export, palettes, and .jar texture import (the local child-Blender bake) all work. The /NodeTree fix actually makes Convert work on macOS/Linux, which the stock build does not.

Behavioral proof (run on Blender 5.1.2, macOS)

Blender driven headless with this offline build installed, under continuous lsof capture of the whole Blender process tree (5 Hz):

  • Generate Block Database (the child-Blender bake / subprocess path) → Database.blend created → 0 internet sockets.
  • Enable add-on + Export Schematic → a real Sponge .schem written by the bundled mcschematic0 internet sockets.

Zero outbound, every network-capable path exercised — matching the static + bytecode audit.

Build it yourself

# you supply the official paid zip (Gumroad / Superhive) — it is NOT redistributed here
python3 patch_ekaiivision.py voxelvision_4.0.0.zip EkaiiVision_4.0.0_offline.zip

Install the output in Blender → Extensions → Install from Disk. Keep Blender's Preferences → Save & Load → Auto Run Python Scripts off (default) as defense-in-depth.

Verify (behavioral proof)

Run a full convert → export → .jar import cycle while watching the network:

sudo lsof -i -nP | grep -i [B]lender    # or Little Snitch / tcpdump

Expect 0 outbound connections.

First-time use — start from zero (Windows / macOS / Linux)

Works on all three OSes (the build is pure Python + assets, no native code; the /NodeTree fix uses the native path separator on each platform). New to Blender? Follow this exactly; ~5 min.

0. Install Blender 5.x — from blender.org/download (Windows installer/MSIX · macOS .dmg or brew install --cask blender · Linux from blender.org, your distro, Flatpak flathub org.blender.Blender, or Snap). Open it once, close the splash (click in the empty 3D scene).

1. Install EkaiiVision

  1. Top menu → Edit → Preferences → Get Extensions.
  2. Top-right dropdown (▾) → Install from Disk…
  3. Pick EkaiiVision_4.0.0_offline.zip → it installs and ticks itself on.
  4. (defense-in-depth) Preferences → Save & Load → leave Auto Run Python Scripts OFF.
  5. Close Preferences.

2. Open the panel — in the big 3D view, press N (opens the right sidebar). Click the vertical VoxelVision tab.

3. First run only — build the block library

  • Click Generate Blocks. To get all real Minecraft textures, first add a Minecraft client .jar (any installed version) when asked; without one it uses the bundled blocks. The .jar lives in your versions/<ver>/<ver>.jar under the Minecraft folder:
    • Windows: %APPDATA%\.minecraft\versions\<ver>\<ver>.jar
    • macOS: ~/Library/Application Support/minecraft/versions/<ver>/<ver>.jar
    • Linux: ~/.minecraft/versions/<ver>/<ver>.jar
  • Wait until it finishes (a second Blender window may flash — that's the local texture bake, no network).

4. Pick a model — the default Cube is fine to start. Left-click it to select (it gets an outline). To use your own model: File → Import your .obj/.fbx, then click it.

5. Convert to blocks — with the object selected, click Turn Selected Into Blocks. A VoxelVision GN modifier appears. In the sidebar you can tweak block size / resolution and pick a palette (Load Palette).

6. (optional) Bake — click Bake to lock in the result for large models.

7. Export — click one of:

  • Export Schematic.schem (WorldEdit / Litematica / FAWE)
  • Export Axiom Blueprint.bp (the Axiom mod)
  • Export mcstructure (BETA) → Bedrock Choose where to save.

8. Into Minecraft — load the file with your tool of choice (Litematica/Axiom/WorldEdit).

9. (optional) Verify it's offline — while you convert/export, watch Blender's connections:

  • macOS / Linux: sudo lsof -i -nP | grep -i [B]lender (or ss -tunp | grep -i blender on Linux)
  • Windows (PowerShell): Get-NetTCPConnection | ? OwningProcess -in (Get-Process blender).Id Expect no output / no established connections = zero outbound.

Honest caveats

  • Not a source fork. VoxelVision is GPL-2.0-or-later (so modifying it for local use is fully within license). This repo redistributes the transform, not the upstream paid binary.
  • Auto-update is paywall-limited. Upstream ships behind Gumroad + Cloudflare, so CI cannot auto-download new releases. The pipeline watches for new versions and notifies; you feed the new official zip in manually. See .forgejo/workflows/.
  • Not endorsed by Erasers45-Studios. Support the author — buy the product.

Repo layout: patch_ekaiivision.py (patcher), .forgejo/workflows/ (version-watch + manual rebuild), reports/ (full audit).