All work

Case 05 · Product design & art direction · original VR IP

Wrong Room
an interface read under pressure — now running on the headset.

Tools · Unity · Claude Code · BlenderStatus · In development · playable build
Wrong Room key art: the motel room, the table, the two collectors

112

dev sessions logged

790

automated tests, green

90

fps on Quest 3 hardware

20,000

simulated matches per balance finalist

The short version

  • An original VR game for Quest 3 — design, art direction and code all mine.
  • You wake in a motel room with two debt collectors and a half-loaded revolver, and the room itself is the interface: no tutorial, no HUD.
  • The hard problem was comfort. A motorised wheelchair became the only locomotion, which fixed the ergonomics and wrote backstory at once.
  • It runs on hardware at 90 fps, under 790 automated tests, with 112 dated sessions behind it.

01 · The product

A 1v1 psychological-tension game read instantly, under stress, with no tutorial and no HUD.

The question the game asks slowly flips from “what did they do to me?” to “what did I do to them?”

Premise
Wake amnesiac in a motel room. Two collectors. One revolver.
Loop
Explore the room → duel at the table → a memory unlocks.
Ending
Ten memories. The tenth turns the TVs on.

Tension must stay usable

Fear is the product; confusion is a bug.

The room is the interface

Game state lives in the world — never in an overlay.

02 · Product decisions

The senior work was not adding features — it was deciding what the game protects, teaches and refuses. The best decisions weren’t in the original plan.

Concept sheet of the motorised wheelchair

Decision 01 · Not in the original design

Locomotion became character

Standing to explore and seated to duel broke reach and comfort at every switch. A motorised wheelchair became the only locomotion — comfort, controls and backstory in one object.

Seated first-person view, feet strapped to the chair

Decision 02

An honest comfort rating

Snap-turn ships as an option; the game keeps a ‘Moderate’ rating it can defend instead of gaming the label.

Cert review · decision 2026-07-16

The bullet language: live, blank, and the red round

Decision 03

The core move nobody understood

Self-aim on a blank earns the extra turn — taught by watching Él do it first. The third cold tester finally explained the rule back.

Five fixes across code, feedback and staging

Diegetic world-space UI showing the score

Decision 04

The story rewrote the economy

A lore decision killed the loot, so debt was resignified as score: same arithmetic reversed, zero balance code touched.

No test went red

03 · The visual system, documented

Grotesque-domestic art direction, inspired by Dorohedoro.

Palette · 6 core, dirty but legible

Pitch

#1A1C14

Base dark, never pure black

Soot

#2E2F22

Cel-shade shadow band

Mold

#4A5235

Walls, floor, room props

Decay

#7A8A52

Raking highlight on Mold

Bone

#C4AA6B

Light, UI accent, the coin

Ash

#E8E0CC

Text, toon outlines, never pure white

Tints · ≤ 10% of the frame · colour carries the story

Lamp

warm = yours

Cold

cold = from outside

Blood

red = damage only

Signal

the traffic light through the window

Never told, always learned.

Type · brutal display vs. cold mono

ÉL NO HABLA.
ELLA NO CALLA.

● 200 · turno: oponente · cargas: 2 reales · 4 fogueo

Bebas Neue · Share Tech Mono

The cast, as brand voices

Silhouette, palette role and staging carry the personality — same job as a brand voice: say who you are before you say a word.

The motel room before the assault: warm, lived-in light
State 1 · before — warm, lived-in, yours
The same room after the assault: one hard light over the table
State 2 · after — the warmth dies, one hard light

Light does the storytelling — and the interface has to read in both.

Mood tile 01 · Environment
Mood tile 02 · Characters (Él / Ella)
Mood tile 03 · UI / props

Mood tiles · environment / characters / UI · directed in Claude Design from the locked system

04 · What got cut

The screen-movie look died on contact with the real interface.

“Amber = active danger”

Replaced by the three-way colour semantic.

Aesthetic vignette

Fights comfort, eats the frame. Functional feedback only.

Film grain in post

Shimmers in-headset; the texture carries the grain instead.

Chromatic aberration

Cinematic in a still, discomfort in use.

Rule zero: no visual decision is final until it's seen in the real interface.

05 · Product keyframes → build

Key moments designed as stills first — each frame a spec the build now has to live up to.

Product keyframe · gameplay mode: the table as interface, seated first-person view

Gameplay mode

The table is the interface

Revolver as game state, items in reach. Everything reads seated — there is no HUD to fall back on.

0 overlays · game state lives in the world

Product keyframe · the stethoscope moment: listening to the revolver cylinder

The stethoscope

The peek that powers the strategy

Hear the next chamber, then choose: pass, or point it at yourself for the extra turn.

Product keyframe · the marking: the IP's glyph sprayed on the wall

The marking

Identity that survives inside the scene

The IP's glyph sprayed in-world, not overlaid. If it can't exist inside the room, it doesn't exist.

Product keyframes directed in Claude Design from the locked visual system · the corresponding scenes are built in Unity

06 · Directing the production

One designer, one AI production team: I own the design and how it feels in VR; the AI proves its work before it lands.

May ’26

S1 · first brief

Jul 12

Design frozen · gate passed

Now

Art phase · full cast and player body in scene

Next

Horizon Store + Steam

Ella pose sheet — the locked gothic direction

The rig that exploded

AI rigs threw meshes 80–280 m off their marks. Now the AI authors geometry only; every skeleton is rebuilt by script in Blender — hands from 30 cm off to 0.9 cm.

A minor · 3/4 · 72 bpm · bar 8 lands on the dominant — no cadence, no exit

A song that never resolves

Ella's line — “if I sing it, it never ends” — made literal: her waltz, composed in-house, never cadences. The loop has no exit.

Black-and-white values test of the room

Playtesting without a headset

Synthetic pre-triage photographs every art change in batch, so what reaches the headset is only what can't be judged flat.

07 · Problems met on the way

The project's worst enemy has a name: the failure that produces no error.

The simulator lied

When the model is wrong, retire the metric, re-argue the decision

The motion sickness that wasn’t the game

Read the platform’s log before touching yours

The fix that would have overruled my own eye

Correct the math underneath, respect what the eye approved

08 · How it's validated

“In development” doesn't mean “on faith” — and what's still open is listed, not hidden.

400 full campaigns simulated to measure progression pacing — the napkin math said 10 matches; the real number is ~23.

Three blind testers — no lore briefing, tension measured cold.

Re-measure fps after the added shadow work — the budget is a contract, not a memory.

Human voice acting — three voices, cast not chosen.

The full memory-loop campaign, end-to-end in-headset.

09 · What this proves

An original IP taken from a one-line premise to a playable build on hardware — every product and art decision mine.
brand thinking, product judgment and art direction, proven on the hardest brief: one I set myself.

112

dev sessions logged

790

automated tests, green

90

fps on Quest 3 hardware

20,000

simulated matches per balance finalist

The practice behind my AI Fluency certification (Anthropic): AI compresses exploration and execution; judgment directs it