Skip to content

About

burn parametric 3d human morphable model 🔥🧍

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Repository files navigation

burn_human 🔥🧍

test crates.io

parametric 3d human (anny) model, view the demo.

Alt text

features

  • parametric 3dmm forward
  • bevy plugin
  • morphs, skeleton, skinning
  • ARDY motion generation and local Llama text conditioning
  • SOMA identity, rig, correctives and GPU skinning
  • GEM-X image-to-pose inference
  • native / WebGPU studio with text, image and trajectory controls
  • single-image fitting (GEM-X)

compatibility

This release uses Bevy 0.20, Burn 0.22 and WGPU 30, from crates.io without dependency patches. Use Rust 1.97.1 or newer for the Bevy integration (the model crates require Rust 1.95). The repository and CI pin the tested nightly-2026-08-31 toolchain; newer nightly builds currently break the transitive branches dependency used by Burn.

Burn tensors and model types no longer take a backend type parameter. Select execution with burn::tensor::Device::wgpu(...) or Device::flex(); native CPU inference uses Burn Flex. Browser initialization is asynchronous through Device::wgpu_options().init_async().await. Model loading retains the existing authenticated CDN catalog, including its Burn 0.21 block-Q4 packs.

The studio uses Bevy’s Feathers UI and built-in pan-orbit camera controller.

The upgrade qualification records native/WebGPU numerical checks, batch consistency, CDN cache recovery and measured cold/warm behavior.

usage

use bevy::{prelude::*, ecs::schedule::common_conditions::run_once};
use bevy_burn_human::{BurnHumanAssets, BurnHumanInput, BurnHumanPlugin};

fn main() {
    bevy_burn_human::initialize_browser_runtime();
    App::new()
        .add_plugins((DefaultPlugins, BurnHumanPlugin::default()))
        .add_systems(Startup, setup_view)
        .add_systems(Update, setup_body.run_if(resource_exists::<BurnHumanAssets>.and_then(run_once)))
        .run();
}

fn setup_view(mut commands: Commands) {
    commands.spawn((
        Camera3d::default(),
        Transform::from_xyz(0.0, 1.5, 4.0).looking_at(Vec3::Y, Vec3::Y),
    ));
    commands.spawn((
        DirectionalLight::default(),
        Transform::from_xyz(2.0, 4.0, 2.0).looking_at(Vec3::Y, Vec3::Y),
    ));

}

fn setup_body(
    mut commands: Commands,
    mut mats: ResMut<Assets<StandardMaterial>>,
    assets: Res<BurnHumanAssets>,
) {
    let n = assets.body.metadata().metadata.phenotype_labels.len();
    commands.spawn((
        BurnHumanInput {
            phenotype_inputs: Some(vec![0.5; n]),
            ..default()
        },
        MeshMaterial3d(mats.add(StandardMaterial::default())),
    ));
}

generate reference data

python tool/scripts/export_reference.py --output assets/model/fullbody_default.safetensors --seed 1234

The exporter now writes a lighter neutral bundle (fullbody_default.safetensors + fullbody_default.meta.json) with the heavy blendshape tensors quantized to float16 and unused reference cases removed. Output is deterministic (seeded) and cached assets live under .cache/anny/.

Bevy loads the model through the asset server (native and wasm). Keep the files under assets/model/ so the asset path model/fullbody_default.meta.json resolves at runtime.

run the demo

cargo run --locked -p bevy_burn_human

license

mit or apache-2.0 (anny stays under its original license). Model crates and converted weights retain their upstream licenses.

Motion generation

Portable Llama text encoding, ARDY motion generation, Anny retargeting, SOMA body evaluation, and GEM-X image-to-pose inference run locally in Rust/Burn on native WGPU and browser WebGPU. See Motion inference and rigging for model packing, world-space waypoint controls, SOMA controls, image input, and numerical/performance evidence.

The published model crates are burn_ardy, burn_llama, burn_soma and burn_gemx. Each owns its pinned aberration CDN catalog and cached loading API. See CDN bundles and loading; the older burn_ardy_text and burn_gem 0.1.0 packages remain available under their original names.

The studio guide covers text prompts, SOMA controls, world-space waypoints, PanOrbit navigation and GEM-X image input on native and WebGPU.

About

burn parametric 3d human morphable model 🔥🧍

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages