COOLJAPAN
← All posts

OxiHuman 0.1.2 Released — Portable, Path-Free Test Fixtures for the Client-Side Human Generator

A maintenance release for OxiHuman, the privacy-first pure Rust parametric human body generator that runs entirely client-side via WASM/WebGPU. 0.1.2 makes the MakeHuman-backed test suite fully portable — dataset and asset roots now resolve through MAKEHUMAN_DATA_DIR and OXIHUMAN_ASSETS_DIR, and fixtures skip gracefully when unset. ~943,000 lines of Rust, 32,791 passing tests, zero hard-coded paths.

release oxihuman 3d-human parametric-modeling wasm webgpu privacy makehuman pure-rust

The privacy-first, client-side human body generator just got easier to build and test anywhere — with zero hard-coded paths.

Today we released OxiHuman 0.1.2 — a focused maintenance release that makes the entire test suite portable across machines, CI runners, and contributor laptops.

No cloud. No Python. No server ever receives your body parameters. No data leakage. No network calls by default. Just clean, memory-safe, deterministic 3D human mesh synthesis that runs in the browser via WASM + WebGPU or natively anywhere — and now builds and tests cleanly on any machine, with no developer-specific paths baked into the repo.

Why 0.1.2 matters

OxiHuman ships a large, serious test suite: 32,791 passing tests across eight workspace crates and roughly 943,000 lines of pure Rust. Some of those tests exercise the real MakeHuman base mesh and the OxiHuman asset packs — and until now, a handful of fixtures reached for dataset roots via absolute paths. That is exactly the kind of thing that works on one machine and quietly breaks on every other.

0.1.2 fixes that the right way:

It’s a small release by line count, but it removes real friction: reproducible builds shouldn’t depend on where you happened to clone the project.

Technical Deep Dive: where the fixtures live

OxiHuman is a clean, layered workspace. The 0.1.2 change touches how tests locate external data, not the synthesis pipeline itself — so the architecture is unchanged:

  1. Core Layer (oxihuman-core) Arena allocator, graph algorithms, asset cache, spatial index, codecs, and the event bus — the no-network foundation everything else builds on.

  2. Morph Engine (oxihuman-morph) Target-based parametric morphing over thousands of vertices, FACS facial action units, age and body-composition models, the pose graph and constraint system.

  3. Mesh Pipeline (oxihuman-mesh) Halfedge topology, dual contouring with sharp-feature preservation, UV mapping/packing, LOD generation, LBS and DQS skinning.

  4. Export & Viewer (oxihuman-export + oxihuman-viewer) glTF/GLB, COLLADA, OBJ, STL, USD, VRM, 3MF export, plus a wgpu/WebGPU renderer with a large set of debug views.

  5. WASM Bindings (oxihuman-wasm) The 68-method browser API via wasm-bindgen — zero network, fully client-side, with optional WebGPU rendering.

The fixture resolution now flows through environment variables read at test time, so the same binaries run identically whether the data sits in your home directory, a CI cache, or a mounted volume.

Getting Started

cargo add oxihuman

Generate a mesh from a few slider parameters and export it to a binary glTF:

use oxihuman_morph::engine::MorphEngine;
use oxihuman_export::gltf::GltfExporter;

fn main() -> anyhow::Result<()> {
    let mut engine = MorphEngine::default();
    engine.set_param("height", 0.6);
    engine.set_param("weight", 0.4);
    engine.set_param("age", 0.35);
    let mesh = engine.build_mesh();

    let exporter = GltfExporter::new();
    let glb_bytes = exporter.export_glb(&mesh)?;
    std::fs::write("human.glb", glb_bytes)?;
    Ok(())
}

To run the fixture-backed tests, point OxiHuman at your local data and asset roots:

export MAKEHUMAN_DATA_DIR=/path/to/makehuman/data
export OXIHUMAN_ASSETS_DIR=/path/to/oxihuman/assets
cargo nextest run --all-features

Leave them unset and the suite still passes — the data-dependent tests simply skip.

What’s New in 0.1.2

Tips

This is the foundation

OxiHuman is the privacy-first, client-side human modeling layer for the COOLJAPAN ecosystem. As of this release it sits alongside siblings like SciRS2 and NumRS2 for the numerical and scientific-computing groundwork, OxiMedia for media and video pipelines that can consume generated avatars, OxiBLAS and Oxicode for the low-level Pure Rust building blocks, and OxiGDAL for geospatial workflows. Everything stays C-, C++-, and Fortran-free, compiling to a single static binary or to WASM.

Repository: https://github.com/cool-japan/oxihuman

Star the repo if you want privacy-first, server-free 3D human generation that builds and tests cleanly on every machine.

Pure Rust client-side human modeling is here — fast, private, and sovereign.

KitaSan at COOLJAPAN OÜ May 5, 2026

↑ Back to all posts