Skip to main content

Genies Web SDK v0.1.74

Updated: July 7, 2026

What's New

  • API Changes
    • Runtime extension configs on AvatarAnimationController: dynamics chains via appendDynamicsGroup(config) (+ clearDynamics(), resetSimulation(), setDynamicsEnabled(), setDynamicsWeight() / getDynamicsWeight()) and rig recipes via setRigRecipeConfig(config). Errors are readable with getLastDynamicsGroupError() / getLastRigRecipeConfigError().
    • Exported DynamicsConfigLoader and RigRecipeConfigLoader for loading those configs from a URL, local file, or object.
    • ShaderManager.setRgbaMaskColors({ r?, g?, b?, a?, strength?, useAlpha? }) — tint the authored RGBA/RGBX mask channels over the diffuse. Also accepted in shader presets under an rgbaMask key.
    • Outline silhouette gatingsetSilhouetteGate(), setGateGeomMix(), setGateStrictness(). Preset support is global and per-mesh. Disabled at 0.
    • Global, per-mesh, and per-material Mega Shader presets. multiMaterial (keyed by source material name) takes precedence over multiMesh and the global values.
    • glTF ORM-alpha via the continuous useOrmAlpha preset field (global or multiMaterial). Forced to 0 for legacy Unity-URP materials.
    • Surface-state preset overrides: alphaMode, alphaCutoff, doubleSided, opacity, depthWrite. Missing fields restore the canonical source state; outlines inherit coverage.
    • toon.getMaterialModels() — reports gltf, legacy, unknown, or a mix on the active avatar.
    • material.userData.materialModel'gltf' (current pipeline) or 'legacy' (deprecated Unity-URP export).
  • Changed
    • Coordinate-space conversion is now fully native. The SDK declares the Three.js coordinate space at initialize(); meshes and animation clips arrive already converted.
    • Overlapping native ColorEditor attributes at the same authored priority now apply in edit order.
    • WebGL procedural materials pick precompiled glsl-es flavors when Slang is disabled; Slang builds pick slang-ir (transcoded via SPIR-V / SPIRV-Cross).
    • material.nafTextures.rgbaMask is still exposed while the JS shader path is being migrated to the native procedural input.
    • MegaShader aoAlbedoDarken switched to a stylized dark-layer formula; ORM/AO samples are reused across the shader; neutral normal/cartoon/specular paths skip unnecessary work.
    • MegaShader caches lit / hybrid / toon programs at cartoonMix = 0, in-between, and 1. Endpoints compile out inactive branches; the control and preset contract are unchanged.