Let the whole building decay together.
Sixteen materials are baked across three realities into texture arrays. A shared stage value blends between them: wallpaper, brass and wood age together. The room changes while its layout remains recognisable.
Engine-rendered key artPark-Suite 420 / first-person horror
The hotel looks familiar. That is how it gets away with it.
A prompt and a hotel walk-through video supplied the starting point: cream walls, cherry panelling, patterned carpet and afternoon light. Iteration turned that recognisable place into a small horror game—six movements in a hotel that will not stay the same.
Check in▶About 7 minutes · keyboard + mouse or touch · WebGL 2 · headphones recommended
Sustained dread, a pursuing figure, sudden sounds and flashing images.
Behind the experience
The source records revisions to geometry, reflections, sound and movement. These are findings from the evolved build, not a claim that the first prompt produced the finished slice.
Sixteen materials are baked across three realities into texture arrays. A shared stage value blends between them: wallpaper, brass and wood age together. The room changes while its layout remains recognisable.
Rebuilding a camera from a reflected eye and forward vector negates the right vector and flips the result. The fix reflects the world transform and reverses face culling. That pass can then use a different material stage, sun and set of objects. Mirrors not selected for the live pass still draw as dark glass, rather than leaving holes in the wall.
← Back to NotesFor each fragment, the shader traces back toward the sun to the window plane and tests the opening and glazing bars. That shapes the architectural sunlight analytically. A separate shadow map handles the furniture.
The first two movements use room tone rather than a score. A sixteen-note music-box melody arrives only when the place begins to drift, then returns slower, inverted, detuned or on another timbre. Synthesized footsteps, plant noise and generated convolution reverb keep the sound rooted in the room.
The early pursuer closed its distance once per rendered frame. The revision gives it an absolute corridor position and speeds measured against elapsed time. The loop carries the figure through its seam with the player, so crossing the join cannot become a free escape.
The figure began as lofted primitives, but improved lighting exposed the geometry's limits. A Meshy-generated rig replaced it. Conversion drops the unused texture, quantizes geometry and weights, and bakes the walk into twenty matrix frames: roughly 5.5 MB of GLB becomes 474 kB of embedded data. Rooms, materials and sound still come from code.

What this version is
A short authored slice, not a full hotel exploration game. Reloading starts a new visit; there is no save system. Touch controls and adaptive resolution are included, but performance varies by device. The walk-through video was a reference, not a runtime asset; it is not included in this release. The character is Meshy-generated and embedded in the build, so this is not a zero-external-assets experiment.
Controls
WASD or arrows to walk · mouse to look · Shift to hurry · E to interact · M to mute · Esc to release the pointer. Drag-look is available when pointer lock is refused. On touch: left thumb to walk, drag elsewhere to look, tap to interact; push the stick to its rim to hurry.
The return link above the player unloads the experience and its sound.