GALLO

02 / NATIVE CHARACTER COMPANION

JOI MOBILE — WITH YOU

The same relationship, carried with you.

Joi Mobile brings the companion relationship to iPhone: a native character stage, conversation, user-confirmed memory, and a local library for characters the person already owns.

Joi Mobile 把陪伴关系带到 iPhone:原生角色舞台、持续对话、由用户确认的记忆,以及存放用户自有角色文件的本地角色库。

PERIOD
JULY — AUGUST 2026
ROLE
PRODUCT / DESIGN / SWIFTUI
STATUS
WORKING NATIVE PROTOTYPE
STACK
SWIFTUI / LIVE2D / VRM / LOCAL MEMORY
01 / PROBLEM

How can the same companion move to a phone without turning character files and memory into somebody else's cloud account?

02 / RESPONSIBILITY

PRODUCT / DESIGN / SWIFTUI

03 / KEY DECISION

Design the phone around a character-first stage, local character ownership, and memory that only becomes durable after explicit confirmation.

04 / OUTCOME

A working SwiftUI prototype with full- and half-body stages, conversation controls, a consented memory flow, and local character import.

JOI MOBILE / GENERATED PRODUCT FILM

The restored Joi Mobile product film moves through conversation, character, place, and explicit memory states.

THE PRODUCT LOOP

A companion should survive the change of screen.

换了一块屏幕,关系也不该重置。

  1. 01ARRIVE

    Begin with the character, not a dashboard.

    The app opens on a native stage where presence, conversation, and the current character remain one continuous surface.

  2. 02TALK

    Keep conversation close to the body.

    Text, push-to-talk, session controls, and full- or half-body presentation stay reachable without covering the character.

  3. 03REMEMBER

    Make durable memory a choice.

    A proposed memory becomes persistent only after the person reviews and confirms it; an empty state remains honest when nothing is saved.

  4. 04BRING

    Let people bring characters they own.

    The local library accepts Joi character packages, VRM files, and Live2D ZIP archives without presenting upload as the default path.

Companion, Not Mini Desktop

不是桌面版的缩小

Joi Mobile does not copy the Windows shell onto a narrow screen. It starts from the moment that matters on a phone: opening the app and finding the same character already there.

Conversation, character presentation, memory, and the library stay close enough to feel like one relationship instead of four product tabs.

Joi Mobile 不是把 Windows 外壳缩小塞进手机,而是从手机上最重要的时刻出发:打开应用时,同一个角色已经在那里。

对话、角色呈现、记忆与角色库彼此保持靠近,让它们像同一段关系,而不是四个相互割裂的功能标签。

The Character Stays Yours

角色仍然属于用户

The current library is built around local import. Joi character packages, VRM files, and Live2D ZIP archives can enter the app from files the person controls.

This is an ownership decision before it is a format decision: a character should not become inaccessible just because an account, marketplace, or server changes.

当前角色库围绕本地导入设计,用户可以从自己控制的文件中导入 Joi 角色包、VRM 与 Live2D ZIP。

这首先是所有权选择,其次才是格式选择:角色不应该因为账号、市场或服务器变化而突然失去访问权。

Memory By Consent

经确认才成为记忆

Continuity on a phone can easily become surveillance by convenience. The prototype instead treats durable memory as a proposal the person can inspect, accept, or leave empty.

The empty state is a product state, not missing content. It makes the boundary visible before the system asks to cross it.

手机上的连续性很容易以便利之名滑向监视。当前原型把长期记忆视为一项提议:用户可以检查、确认,也可以让它保持为空。

空状态不是缺失内容,而是一种正式的产品状态;系统在请求跨越边界之前,先让边界可见。

What Is Real Now

当前真实完成的部分

The portfolio now shows the current SwiftUI build: native conversation stage, full- and half-body framing, session controls, memory empty state, and local character library.

The character used during testing is a third-party sample. It validates rendering and interaction, but is not presented as original Joi artwork.

作品集现在展示的是当前 SwiftUI 版本:原生对话舞台、全身与半身构图、会话控制、记忆空状态以及本地角色库。

测试中使用的角色是第三方样例,用于验证渲染和交互,不会被表述为 Joi 的原创角色资产。

Where It Goes

下一步

The next milestone is a reliable daily loop across character import, conversation, explicit memory review, and handoff between desktop and phone—without reviving the retired Joi Map product.

下一阶段是把角色导入、对话、明确的记忆复核,以及桌面与手机之间的连续体验做成可靠的日常循环,而不是重新启用已经废止的 Joi Map。

NEXT PROJECTJOI — PRESENCE