Genies Web SDK v0.1.74
Updated: July 7, 2026
What's New
- API Changes
- Runtime extension configs on
AvatarAnimationController: dynamics chains viaappendDynamicsGroup(config)(+clearDynamics(),resetSimulation(),setDynamicsEnabled(),setDynamicsWeight()/getDynamicsWeight()) and rig recipes viasetRigRecipeConfig(config). Errors are readable withgetLastDynamicsGroupError()/getLastRigRecipeConfigError(). - Exported
DynamicsConfigLoaderandRigRecipeConfigLoaderfor 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 anrgbaMaskkey.- Outline silhouette gating —
setSilhouetteGate(),setGateGeomMix(),setGateStrictness(). Preset support is global and per-mesh. Disabled at0. - Global, per-mesh, and per-material Mega Shader presets.
multiMaterial(keyed by source material name) takes precedence overmultiMeshand the global values. - glTF ORM-alpha via the continuous
useOrmAlphapreset field (global ormultiMaterial). Forced to0for 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()— reportsgltf,legacy,unknown, or a mix on the active avatar.material.userData.materialModel—'gltf'(current pipeline) or'legacy'(deprecated Unity-URP export).
- Runtime extension configs on
- 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
ColorEditorattributes at the same authored priority now apply in edit order. - WebGL procedural materials pick precompiled
glsl-esflavors when Slang is disabled; Slang builds pickslang-ir(transcoded via SPIR-V / SPIRV-Cross). material.nafTextures.rgbaMaskis still exposed while the JS shader path is being migrated to the native procedural input.- MegaShader
aoAlbedoDarkenswitched 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, and1. Endpoints compile out inactive branches; the control and preset contract are unchanged.
- Coordinate-space conversion is now fully native. The SDK declares the Three.js coordinate space at