
Vextris is a lightweight mesh loading and rendering library for Minecraft mods.
It loads and validates triangle and quad meshes, provides immutable geometry and a resource-reload cache, and renders through Minecraft's vertex consumers. Static meshes work without GeckoLib. An optional bridge lets GeckoLib animate bones while Vextris draws the mesh.
I use Vextris for the mesh rendering in the mods I'm developing, and publish it on its own so they can depend on it as a separate library.



Left: a D20 mesh loaded from a resource pack. Right: the same die built as 20 solid pieces with MeshModel.builder() and moved apart by a per-bone transform. Faces at any angle, not just cubes.


.vxmesh.jsonmeshes, standalone or paired with a GeckoLib/Bedrock.geo.jsonof the same path for its bones.- Triangles and planar convex quads, with flat face normals.
- Strict validation: 4 MiB per file, 128 parts, 65,536 vertices, 16,384 triangle-equivalents. Degenerate or non-planar faces and bad indices are rejected.
- Every file is rejected on its own with a clear message; the other files still load.

- Vertices are submitted through Minecraft's vertex consumers, in cutout and translucent layers.
- Baked once per resource reload into an immutable snapshot; F3+T is safe.
- Safe on dedicated servers: the data API is common code, rendering is client-only.

- Bone hierarchies with pivots and bind rotations.
- Bind-pose rendering without GeckoLib.
- A per-bone
BonePoserhook for your own transforms: spin, hover, part separation. - Code-built meshes through
MeshModel.builder(), with the same validation as files.

- Draws Vextris meshes on bones that GeckoLib animates. GeckoLib owns skeletal animation.
- Active only with the verified GeckoLib 4.7.4. Without GeckoLib, Vextris Core works normally.

In detail:
- No skeletal animation engine, keyframes or animation state.
- No OBJ/FBX/glTF importer or converter yet.
- No dynamic UVs, per-frame vertex streaming, skinning or morph targets.
- No shader pipeline and no GPU buffers (VBOs).
- No blocks, items, block entities, collision shapes or networking.

Installation
- Install Minecraft 1.20.1 with Forge 47.4.22 and Java 17.
- Put
vextris-forge-1.20.1-0.1.0.jarin the instance'smodsfolder and remove any previous Vextris JAR. - Install GeckoLib 4.7.4 only when a mod you use needs the animation bridge.
- Forge 47.4.22 (Minecraft 1.20.1) (required) - Declared range [47.4.22,48); verified on 47.4.22 only.
- GeckoLib 4.7.4 (optional) - Only for the optional animation bridge. Not required for Vextris Core.
Oculus, Iris, Embeddium and Sundial are not required. Shader-pack compatibility has not been certified.

Vextris 0.1.0 is published on Maven Central as io.github.dwom10912:vextris:0.1.0. No token or local Maven repository is needed. Do not bundle Vextris into your own mod.
repositories { mavenCentral() }
dependencies {
compileOnly fg.deobf("io.github.dwom10912:vextris:0.1.0")
runtimeOnly fg.deobf("io.github.dwom10912:vextris:0.1.0")
}
In your mods.toml:
[[dependencies.yourmod]]
modId="vextris"
mandatory=true
versionRange="[0.1.0,0.2.0-alpha)"
ordering="AFTER"
side="BOTH"
Existing [0.1.0-alpha.1,0.2.0-alpha) declarations already accept 0.1.0.
Known limits
Geometry uses flat normals, one texture per model draw and CPU vertex submission. There is no GPU mesh cache, skinning, morph-target system or general model importer. The model converter remains separate future tooling. Shader-state reflection is implemented, but shader-pack compatibility is not certified. GeckoLib 4.8.4 Core drawing and reload are verified, but its animation bridging is disabled by default and not certified.
Changelog
0.1.0
- Stabilization release of the existing 0.1.0-alpha.1 mesh library baseline.
- Preserves the Java API, resource format, Mod ID and rendering implementation.
- Publishes
io.github.dwom10912:vextris:0.1.0on Maven Central, with POM metadata and Javadoc. - Updates installation, integration and release documentation.

Code, binaries, documentation and examples use the Apache License 2.0. The Vextris name and logo have separate terms.
Development disclosure
Vextris was developed with substantial AI coding assistance. The page text and changelog were drafted with AI help. The logo and page images are drawn by code (SVG and HTML templates) written with AI help; no image-generation models were used. The D20 showcase is a real in-game screenshot. All releases are built, tested and reviewed by the author.

