Based on the standards established by the HomoDeus Protocol, anyone can create a universal digital life applicable to various scenarios and ecosystems. The Digital Life Card supports recording the following types of data:
Base Data: The core data defining the essential characteristics of the digital life.
Extend Data: The expandable data allowing for parallel expansion of the digital life.
Basic Attributes of Digital Life (Base Data)
Attributes
Required?
Description
meta
No
Define the basic characteristics of the asset, such as protocol information, usage, creator information, copyright information, and version information. (Optional, non-essential attributes)
soul
Yes
Information influencing the digital life's thinking and decision-making, referred to as the "soul" of the digital life.
Extend Data of Digital Life
The allure of digital life lies in its imaginative representation and interaction forms. These can include images, videos, 3D models, Live2D, and sounds, or even protocols that enable digital lives to control real-world robots. This section focuses on extending the capabilities of digital life.
DDream is working with ecosystem developers to define extended data for specific applications or industry domains. This collaboration ensures that digital life assets are highly versatile and adaptable, preserving their value and functionality across diverse applications and use cases.
Currently defined extended data includes:
Type
Required?
Description
avatar
No
The visual representation of a digital entity. This can be an image, a compliant 3D model that can be driven by the engine, a file compliant with Live2D engine specifications, or any other displayable visual format.
voice
No
The tone of the digital entity's voice, used to specify the voice model adopted by the digital entity. It can be integrated with the DDream platform's AI audio.
other...
No
Additional customizable attributes...
This design provides a comprehensive and flexible framework for creating and managing digital life, allowing for both standardization and customization.
Data Structure
The Digital Life Card supports two file formats: JSON and PNG. The data structure for both file formats is consistent, as follows:
export type CharacterBook = {
name?: string // Name
description?: string // Description
extensions: Record<string, any>
entries: Array<{
keys: Array<string> // Keywords
content: string // Content
name?: string // Name
id?: number
}>
}
export enum NuwaExtensionVersion {
V1 = '1.0',
}
// Base class for common configuration of Nuwa extensions
export interface NuwaExtensionConfigBase {
// Reserved for future upgrades, currently (20240520) only fixed value is 1.0
version: NuwaExtensionVersion
// Indicates whether the extension is disabled; only when the value is true is it disabled, other values are ignored
disable?: boolean
}
// TTS configuration currently applied to the character card
export interface NuwaVoiceExtensionConfig extends NuwaExtensionConfigBase {
type: string
sex: string
name: string
language: string
}
// List of all TTS bound to the character card
export interface NuwaVoicesExtensionConfig extends NuwaExtensionConfigBase {
list: NuwaVoiceExtensionConfig[]
}
// Background image configuration currently applied to the character card
export interface NuwaBackgroundExtensionConfig extends NuwaExtensionConfigBase {
url: string
}
export enum CharacterAvatarType {
Live2D = 'LIVE2D',
VRM = 'VRM',
Img = 'IMAGE',
}
// Avatar configuration currently applied to the character card
export interface NuwaAvatarExtensionConfig extends NuwaExtensionConfigBase {
type: CharacterAvatarType
url: string
name?: string
}
// Non-null type fields, default values are empty string '', cannot be undefined or null
// Extensions field, default value is {}, cannot be undefined or null, be careful not to remove extension fields from other platforms when extending
export type CharacterCardV2 = {
spec: 'chara_card_v2' // Currently a fixed value
spec_version: '2.0' // Currently May 8th addition
data: {
// 1.0 fields
name: string // Name
description: string // Description
personality: string // Personality Summary
scenario: string // Scenario
first_mes: string // First Message
mes_example: string // Conversation Example
// 2.0 New fields start here
creator_notes: string // Creator Notes
post_history_instructions: string
alternate_greetings: Array<string> // Greetings 2-∞
character_book?: CharacterBook // World Book (not supported yet)
// May 8th additions
tags: Array<string> // Tags
creator: string // Creator
character_version: string // Digital Life Version
// nuwa extensions
extensions: {
// Background image configuration currently applied to the character card
nuwa_bg?: NuwaBackgroundExtensionConfig
// TTS configuration currently applied to the character card
nuwa_voice?: NuwaVoiceExtensionConfig
// List of all TTS bound to the character card
nuwa_voices?: NuwaVoicesExtensionConfig
// Avatar configuration currently applied to the character card
nuwa_avatar?: NuwaAvatarExtensionConfig
// List of all avatars bound to the character card
nuwa_avatars: {
version: string
list: Array<{
url: string
name?: string
type: string
}>
}
}
}
}