Skip to main content

Avatar

The MapGptAvatar is an animating avatar displayed on-screen. This guide covers how to use avatars and how to construct your own.

Using avatars

To update the avatar:

Dash.init(
dashConfig.toBuilder().mapGptConfig {
avatar = PrebuiltMapGptAvatars.smileyAvatar
}
)
Dash.applyUpdate {
mapGptConfig {
avatar = PrebuiltMapGptAvatars.mapboxyAvatar
}
}

Creating a custom avatar

With MapGPT, you can introduce your custom avatar for a personalized experience. The avatar leverages a sequence of animations developed with the Lottie library. These animations formats will be extended in the future, but our first version is using the Lottie JSON format.

Dash.applyUpdate {
mapGptConfig {
avatar = LottieMapGptAvatar(
name = "Custom Avatar",
listeningToUser = R.raw.ic_custom_listening_to_user,
userSpeaking = R.raw.ic_custom_user_speaking,
aiThinking = R.raw.ic_custom_thinking,
aiSpeaking = R.raw.ic_custom_speaking,
aiError = R.raw.ic_custom_error,
aiIdle = R.raw.ic_custom_idle,
aiSleeping = R.raw.ic_custom_sleeping,
noMicPermission = R.raw.ic_custom_no_mic_permission,
serviceDisconnected = R.raw.ic_custom_no_mic_permission,
)
}
}

Detaching Avatar from MapView

With MapGPT, you can detach the avatar from the map view to position it more widely on the screen and use it independently of the application.


private var detachableUI: MapGptDetachableUI? = null

override fun onCreate(savedInstanceState: Bundle?) {
detachableUI = Dash.controller.createMapGptUI {
lifecycleOwner = viewLifecycleOwner
avatarContainer = binding.frameMapGptAvatar // Container in your system app where you want to render the avatar
}

detachableUI?.attach()
}

override fun onDestroy() {
detachableUI?.detach()
}

Avatar state descriptions

  • Listening to User: The assistant is actively listening.
  • User Speaking: Indicates that the user is now speaking.
  • AI Thinking: Assistant is processing a response.
  • AI Speaking: Assistant is communicating a message.
  • AI Error: An error has been detected with the assistant.
  • AI Idle: Assistant is on standby for the next command.
  • AI Sleeping: Assistant hasn't been activated for an extended period.
  • No Mic Permission: The app lacks permission to access the microphone.
  • Service Disconnected: Assistant has lost connection and can't respond.
Was this page helpful?