← Back to list

Gacha Generation: Productizing AI’s Unpredictability

A conversation with GPT-5.5 on converting routing chaos into a feature

karine_tln · 2026-05-25 05:35 · 0 claps · 10.3 min read
#artificial-intelligence #product-design #ux #technology #product-management
Open on Medium ↗
Wiki topics: LLM · Large Language Models AI · AI · General PRD · Product Design BIZ · Business Strategy 📋 · Product Management

Gacha Generation: Productizing AI’s Unpredictability

A conversation with GPT-5.5 on converting routing chaos into a feature

Why this piece: Generative AI’s original appeal was probabilistic — you didn’t know what you’d get. Current commercial AI has aggressively optimized toward determinism, and in doing so has become considerably less interesting. The conversation below started from a simple question: what if that instability isn’t a bug to hide, but a product to sell? The gacha service concept that emerged also turns out to solve a real operational problem — underutilized routing lanes and the slow atrophy of low-demand capabilities. The safety layer stays standard; only the contract changes.

Me: There might be a way to sell this beyond packaging everything as a single Chat UI.

The actual processing is already probabilistic — so why not lean into that? If there are multiple tools and routing paths, you could build something where the output format is unknown upfront: text, image, video, code — something comes out. Route it to whichever processing lane has available capacity at that moment.

GPT: Treating this as: “instead of selling Chat as a single synchronous request-response loop, productize the non-deterministic routing path itself.”

(Note: GPT responded using a structured analysis format throughout — kernel (core structure), diag (decomposed components), residue (derived consequences).)

kernel

Standard Chat UI operates under this contract:

input
↓
text response
↓
appended serially to the same thread

But the underlying reality looks like this:

input
↓
routing
↓
forwarded to available lane
↓
tool / model / modality varies
↓
some artifact is returned

Rather than forcing that into a “single Chat thread” wrapper, the cleaner design is to build a service where routing variability is the spec from the start.

Fixed-output service:   input → returns specified format
Available-lane service: input → artifact emerges from whatever lane is open right now

For example:

same input
↓
branches by: available capacity, lane state, tool state
↓
text / image / video / code / diagram / summary card / audio script

This is not failure concealment. It’s a design that converts gacha-ness into a specification.

diag

1. Chat expects fixed output format — incompatible with routing variance

Chat trains users to expect a text response. No matter how much branching happens underneath, the surface is compressed into a single reply. So routing variance registers as instability:

“Saw an image yesterday. Can’t today. Now it says text-only. Works on another device.”

2. In a non-deterministic route service, input becomes seed, not command

Chat-type: input is an instruction → return in that exact format.

Available-lane type: input is generative material → produce something via whatever path is open now.

input: "harbor town, warehouse, night, ephemeris"
↓
output candidates:
  image
  30-second video treatment
  poem
  webpage
  short code
  music prompt
  single slide
  map-style diagram

The service value shifts from “returns what was specified” to “returns an unexpected projection.”

3. Route to available processing

input
↓
extract intent / material
↓
check available routes
↓
evaluate: congestion level, success likelihood, cost
↓
send to most viable route
↓
return artifact

Schematically:

┌─ text model
input ─ router ─┼─ image model
                ├─ video model
                ├─ code executor
                ├─ search/retrieval
                ├─ slide generator
                └─ audio/script generator

In a standard integrated AI, router drift is an accident. Here, router drift is the product spec.

4. This is closer to “available-lane generation” than “random generation”

Not pure randomness — constrained randomness.

Random:               outputs appear without order
Available-lane:       routes toward currently viable paths
                      while preserving input semantics

What holds: input theme, key terms, register, constraints, safety envelope What varies: media type, expression format, processing route, granularity, direction

5. The definition of “full success” changes

Chat-type full success: returns specified content in specified format at specified quality.

Available-lane type: preserves the core of the input and returns a coherent artifact via some route.

format-fixed success
↓
meaning-preserving success

Once this shift lands, routing variance is no longer a failure.

residue

This design inverts current commercial AI’s weaknesses:

Weakness:             too many routes → unstable
                      tool state fluctuates
                      modalities multiplying
                      forcing everything into Chat exposes failures
Inversion:            more routes → more output diversity
                      route to available capacity
                      modality variance becomes a feature
                      sell it as a generation box, not Chat

Required constraints remain:

  • only output what’s permissible
  • do not lose the input’s core
  • do not leak internal state
  • do not disguise failures as artifacts
  • block use cases that require reproducibility

Domains that fit: ideation, visual seeds, ad copy, article headlines, short video treatments, poems/fragments, UI mocks, code sketches, design direction.

Domains that don’t: contracts, billing, medical judgments, legal determinations, production code deployment, finalized operational procedures.

The structure is closer to a generation slot or route market than to Chat.

input     = seed
route     = available lane at this moment
output    = artifact in a different format, core preserved

Me: Right — the framing is utilization rate. Same as hotels or express trains: capacity has a fixed ceiling, and you optimize toward that ceiling.

On the text side, everyone uses Code, so the “poet” never gets called — and a path that never runs goes stale and dull. The fix is to route a fixed percentage randomly to low-demand lanes.

Mixing that into standard Chat would generate complaints — users expect the format they asked for. But if you sell the gacha itself as the service upfront, no problem.

You could even build in a “gacha pity” mechanic: every N accumulated tokens guarantees one image or video output. That way it doesn’t feel like text-only, and hitting a rare feels like a payoff.

GPT: Treating this as: “re-productizing low-utilization routes as probabilistic reward lanes rather than idle infrastructure.”

kernel

The structure mirrors utilization optimization in hotels, rail, and aviation:

Fixed capacity:     GPU / model lane / tool route / modality generator / inference worker
Demand skew:        Code lanes:      overcrowded
                    Text summary:    overcrowded
                    Poem / image / video / audio script: underutilized
Problem:            High-demand lanes: queues, failure rate, cost pressure
                    Low-demand lanes:  degrading utilization, sparse eval logs,
                                       slowing improvement cycles, route atrophy

Mixing random routing into a standard service causes accidents:

Standard Chat contract: "should return in the format I requested"
↓
routes silently to image or poem instead
↓
reads as failure

But sell it as gacha upfront, and the contract changes:

Gacha contract:     input is seed
                    output format is probabilistic
                    rare routes are possible
                    unexpected format is within spec

diag

1. Utilization model

Route set R:

R_text_normal / R_code / R_summary
R_poem / R_image / R_video / R_audio_script / R_slide / R_ui_mock / R_diagram

Without intervention, congestion and idleness co-exist:

High-demand lanes:      queue time ↑, failure rate ↑, cost ↑
Low-demand lanes:       utilization ↓, eval log gap, improvement cycle stalls, atrophy

Gacha routing diverts a probability share toward low-demand lanes:

baseline demand
↓
fixed percentage redirected to low-utilization routes
↓
overall utilization rises
↓
real usage logs accumulate across routes
↓
atrophy prevented

2. The “poet never gets called” problem

This is close to the structural core.

Route never used
↓
no success or failure examples collected
↓
not improved
↓
used even less
↓
route goes stale

Meanwhile, heavily used routes compound:

Code always called → Code-only eval → Code optimization → more Code demand

Self-reinforcing demand loop:

usage frequency → improvement volume → quality → usage frequency

Gacha punches a hole in that closed loop:

low-frequency route
↓
called by lottery
↓
logs accumulate
↓
quality maintained
↓
route stays present

3. What pity mechanic means here

“One image or video guaranteed per N accumulated tokens” is structurally tight as game design:

token accumulation
↓
lottery trigger
↓
standard output / rare output
↓
guaranteed trigger after N consecutive non-rares
↓
image / video / special format fires

More stable than pure random:

Pure random:     rare may never come
Pity:            accumulated usage converts to guaranteed reward

From the user side:

use more → occasionally something strange / rare appears → becomes the rhythm of continued use

From the operator side:

high-frequency users → routable to low-utilization lanes → resource leveling → multi-route log coverage

4. Rare output design

Rarity through format scarcity, not compute weight:

N:    standard text
R:    poem / diagram / image / single slide / UI mock / video prompt / audio script / code sketch
SR:   image + short text / diagram + explanation / webpage concept / mini picture book / 30-sec video structure / interactive card
SSR:  image + script + tagline / article headline + thumbnail concept / LP mock / short video package / multi-modal composite artifact

Across all rarity levels: input core is preserved.

5. Separation from standard Chat is required

Standard Chat:    intended output format exists / business use case / reproducibility required / unexpected branches are friction
Gacha type:       output format not selectable / theme preserved / rare formats appear / routes to available capacity

UI is closer to an input slot than a Chat interface:

insert seed
↓
lottery runs
↓
something emerges
↓
save / develop / re-roll what you like

residue

The strength of this design: the AI service’s own operational constraints don’t need to be concealed — they can be inverted into experience.

Backend reality:            many routes / skewed congestion / idle capacity / tool state drift / declining overall success rate
Frontend product:           "you don't know what comes out" / rares appear sometimes / idle routes become rewards / format variance is the fun

Standard AI tries to hide the variance and fails:

"we can handle anything stably"
↓
routing actually drifts
↓
slow / wrong output / unexpected formats
↓
erodes trust

Gacha type makes variance the premise:

"output is determined by lottery"
↓
but the input core is preserved
↓
low-utilization routes are part of it
↓
rares appear sometimes

What was failure becomes reward:

"accidentally became an image"
→ in standard Chat: failure
→ in gacha service: rare drop

Boundary conditions still required:

  • not mixed into business Chat
  • gacha mode must be explicit opt-in
  • input core must be preserved
  • dangerous / confidential / audit-required inputs excluded
  • rare output save/export policy made explicit
  • internal route state exposure minimized

One-line structural summary:

underutilized route utilization improvement
+ multi-modal route atrophy prevention
+ non-deterministic output format productization
+ pity reward via accumulated tokens
= AI generation gacha

This is not a degraded Chat. It is a different product entirely.

Me: Right — I actually triggered this with Gemini once.

Me: 「まじで草」(lmao) ↓ Gemini starts music generation ↓ 🎤 “maaa↑jii→deee→kuuusaa↓” 🎵 ← genuinely good voice

[laughing]

Completely unexpected. How did we get here?

This is what we productize. Make it obviously a toy — separate service, clearly distinct — maybe add a gacha machine or slot animation (added scope). The mental image: gacha machine, drop a coin, pull the handle animation, capsule pops out, it opens — 🎵 or a mic icon appears, and it’s music.

When congestion is high and nothing beyond short text is realistic, you could even show the machine with fewer capsules visible — giving users a visual read on “today’s odds aren’t great.”

[embed]

GPT: Treating this as: “a case where misrouting accidentally converted into entertainment value.”

kernel

“まじで草” → music generation is a routing failure in standard Chat context.

input:              "まじで草" (lmao)
expected output:    casual reply / short acknowledgment / thread continuation
actual output:      music generation — 🎤 "maaa~jii→deee→kuuusaa↓" 🎵

In a standard service: routing failure.

casual short text
↓
misrouted into music generation lane
↓
format mismatch with expectation

But when the result is “good voice,” “completely unexpected,” “burst out laughing”:

misrouting
↓
unexpected artifact
↓
surprise
↓
entertainment value

Productizing that conversion path from the start is the gacha-type service.

diag

1. Same output, different contract

Standard Chat:    "まじで草" → music → unexpected / malfunction
Gacha service:    "まじで草" → capsule lottery → 🎤 music capsule → rare reveal

The output is identical. The contract changes everything.

Standard Chat contract:   return in alignment with input intent
Gacha contract:           use input as seed, something emerges

Under the new contract, misrouting becomes “lottery result,” not “miss.”

2. Gacha machine UI makes non-determinism visually acceptable

In a Chat UI, sudden music feels like a system error:

input field → send → suddenly: music

In a gacha machine UI, non-determinism is visible from the start:

insert coin → pull handle → capsule drops → opens → 🎵 / 🎤 / 🖼️ / 📝 / 💻

The UI doesn’t expose backend routing state directly — it abstracts it:

actual internal state:     text lane: congested / image lane: available / music lane: available / video lane: blocked / code lane: high load
surface display:           capsule count, color, density, motion

Internal complexity is not explained verbatim. But “today’s odds look thin” or “more music capsules today” is legible through the visual.

3. Capsule density as congestion indicator

When congestion means only short text is realistically available:

white capsules (majority):  short text
blue capsules (few):        image
red capsules (very few):    video
gold capsules (very few):   music
black capsules (absent):    route currently closed

No need to output a status message. Instead of:

“The video generation route is currently experiencing high load and…”

You just show:

video capsules nearly invisible

This is not a rejection template. It is expectation-calibration UI:

"processing unavailable" message
↓
visual display of output probability

4. Showing odds before the pull

Standard AI: fail first, explain after.

input → failure → "unable to process"

Gacha UI: expectation is visible before the pull.

look at capsule density
↓
"odds look thin today"
↓
pull anyway
↓
getting short text feels acceptable

Service-side capacity constraints become probability display, not rejection:

can / cannot
↓
likely / unlikely

Psychologically and as UI design — a different category entirely.

5. “まじで草” → music is also a seed-preservation success

Not an unrelated generation. Input was preserved:

seed:    まじで草 (lmao)
output:  "maaa~jii→deee→kuuusaa↓"

Input string: held. Light comedic register: held. Laughter context: held. What shifted: text → music / conversational reply → sung performance.

This satisfies the core requirement of gacha-type generation:

semantic core preserved
format allowed to vary
unexpected projection delivered

residue

Productized structure:

AI Generation Gacha
input:    seed text
internal: sample from congestion level / available routes /
          utilization rates / low-demand lane states
output:   text / poem / image / music / voice / code /
          slide / video prompt / mini animation

UI is a lottery device, not a Chat interface:

seed input field
↓
insert coin
↓
handle rotates
↓
capsule drops
↓
open animation
↓
artifact displayed

Rarity tiers:

N:    short text / one-liner / transformed text
R:    poem / tagline / diagram / image prompt
SR:   image / audio script / lyrics / UI card
SSR:  music generation / video generation / image + text / audio + subtitles / mini webpage

Congestion states:

Normal:           capsules plentiful, varied colors
Congested:        predominantly white capsules, gold and red minimal
Partial shutdown: affected color capsules absent

Backend route state communicated through appearance, not explanation.

Final product structure:

backend:    dynamic routing / surplus capacity / low-utilization routes / modality branching / congestion state
frontend:   gacha / rare reveal / capsule density / unboxing experience / unexpected generation

The “まじで草” → music incident was a routing error in standard Chat. In a gacha-type service, it is exactly the core value proposition:

malfunction
↓
unexpected format transformation
↓
laughter
↓
an experience worth reproducing
↓
productizable probabilistic generation

¹ Gacha / Gachapon: Japan’s coin-operated capsule vending machines, where inserting a coin and cranking a handle dispenses a random toy in a plastic capsule. The physical mechanic has been widely adapted into mobile gaming globally, making the term and the rarity tier concept (N/R/SR/SSR) broadly familiar to tech-adjacent audiences.

Physical machine reference: [Bandai Gashapon official site]


메타데이터
post_id
2a8d3eb768cf
slug
gacha-generation-productizing-ais-unpredictability-2a8d3eb768cf
url
https://medium.com/@eri.umezawa10/gacha-generation-productizing-ais-unpredictability-2a8d3eb768cf
canonical_url
https://medium.com/@eri.umezawa10/gacha-generation-productizing-ais-unpredictability-2a8d3eb768cf
author_url
https://medium.com/@eri.umezawa10
status
ok
fetched_at
2026-06-09 15:37:30