Genies iOS SDK v0.1.14
Updated: May 7, 2026
What's New
- Public surface tightened.
NAFAvatarLoaderandNAFAvatarBuilderBridgeare nowNS_REFINED_FOR_SWIFT— they appear to Swift consumers as__NAFAvatarLoader/__NAFAvatarBuilderBridge. UseNAFView/NAFAvatarSessioninstead.NAFKitConfig.defaultShaderPresetURLandNAFKitConfig.textureSettingsURLare nowinternal(no public callers). Override viashaderPresetsDirectoryOverride/textureSettingsURLOverride.
NAFAvatarController.isBlinkEnabled. New Obj-C property gating the procedural blink node. DefaultYES..staticPoseloads now disable it automatically so a static avatar holds its eyes open instead of blinking.- Load API consolidated.
loadAvatar,loadAvatarProgressive, andattachAnimationcollapse into oneloadAvatar(_:mode:lods:)method on bothNAFViewandNAFAvatarSession. The newNAFLoadModeenum picks the pipeline:.staticPose— T-pose, no animation, no behavior, no silhouette. Caller manages visibility..animated(silhouette:)— Default idle fromNAFDefaultAssets.idle. SDK gates first frame on idle bound. Avatar slug ignored..behavior(silhouette:)— Full smart-avatar pipeline. Default idle / talking / breathing + behavior graph keyed onavatar.slug. Default mode whenmode:is omitted.
- Custom idle / talking / breathing clips are configured once via
NAFDefaultAssets.*static properties — no longer threaded through every load call. NAFAvatarDefinition→NAFAvatar. Renamed throughout. JSON parser is nowNAFAvatar.avatarFromJSON:(wasNAFAvatarDefinition.definitionFromJSON:).- LOD removed from per-asset entries.
NAFAssetEntry.lodand the"lod"field in each asset JSON are gone — LOD is supplied at the loader call (lods: [Int]). Strip"lod": "..."from existing definition JSONs. - Renamed every
correlationIDparameter / userInfo key totrackingID. Affects the optionaltrackingID:arg onloadAvatar/equip, plus the exportedNAFErrorTrackingIDKey(wasNAFErrorCorrelationIDKey).