DAZAI CHEN
← All Weeks

Week 5: Demo Day Prep

March 2, 2026

Overview

Major conceptual shift this week: the project is no longer framed as a single artistic VR experience, but as a demonstration of a new format for preserving spatial memory. The VR experience becomes a “Spatial Memory Album” where viewers enter an archive, select a space, and step into the memories stored there.


Goals This Week

  • Reframe thesis direction: from installation to spatial memory archive
  • Design and implement archive carousel interface (Phase 1-5 complete)
  • Integrate Nankunshen Temple 3DGS as second space
  • Identify and scan a third space
  • Continue Niagara particle system development

Concept Evolution (2/27)

From Experience to Format

The project is not just an artistic experience or installation. It is exploring how this new medium (3DGS + VR) can preserve and share spatial memory, and demonstrating that possibility to others.

Spatial Memory Album

The viewer enters VR and first encounters an archive interface containing different spatial memories. Selecting one takes the viewer into that space. This shifts the work from a single “experience” to a “format demonstration.” Viewers intuitively understand: any space can be preserved this way.

Three Spaces, Three Memory Types

  1. Brooklyn Apartment - Full experience with memory fragments, gaze interaction, space breathing. Represents intimate daily-life memory (meals, window light, repetition at a fixed point).
  2. Nankunshen Temple (南鯤鯓廟) - Existing 3DGS scan. Cultural memory from a deeper past. Can be pure spatial exploration without memory interaction; the preserved space itself carries meaning.
  3. Third space (TBD) - A simpler scan to round out the archive. Different scale and character from the other two.

This structure strengthens the thesis argument: the medium can preserve spatial memory across different scales, cultures, and types of personal significance.


Archive Interface - Technical Research (2/27)

SDK & Plugin Setup

PluginVersionEngine
Meta XRv1.113.0UE 5.6
Meta XR Interaction SDKv1.81.0 (experimental)UE 5.6

All required features are available in v81 (Microgestures supported since v69+, Enhanced Input integration since v74).

Interface Design

Carousel concept: User enters VR, archive entries surround them in a curved/arc arrangement. User stands in place, facing one direction, and uses hand gestures to spin the carousel around them.

Interaction flow:

  1. Swipe to browse - Microgestures (SwipeLeft/SwipeRight) rotate the carousel ring around the user
  2. Select to enter - Poke (finger touch) or Pinch to select an entry, then the space expands/unfolds around the viewer

Implementation Breakdown

1. Microgesture Detection (Low difficulty)

  • Use Unreal Enhanced Input system
  • Create Input Actions (e.g. IA_Microgesture_SwipeLeft)
  • Map to Oculus Hand (L/R) Microgesture - Swipe Left/Right
  • Connect to carousel rotation logic in Blueprint
  • Docs: Microgestures in UE

2. Carousel Interface (Medium difficulty)

  • Custom BP_Carousel Actor with child entries arranged via sin/cos positioning
  • Each BP_ArchiveEntry contains: preview image/thumbnail, location text, time text, IsdkPokeInteractable or IsdkRayInteractable
  • Microgesture input drives parent Actor Yaw rotation
  • Add IsdkHandRigComponentLeft/Right to Pawn for automatic poke + ray interactors
  • No pre-built carousel component in ISDK; must be custom Blueprint
  • Docs: ISDK Getting Started
  • Docs: Poke Interactions

3. Space Transition on Select (Medium-high difficulty)

  • On click/pinch: trigger Level Streaming or Open Level to load selected space
  • Transition effect: Niagara particles expanding from selection point, or post-process fade
  • Design consideration: the “world unfolding” moment is the most impactful part of the UX

Concept Art Prompts

Image (third-person view of archive interface):

A person wearing a Meta Quest VR headset stands in the center of a minimal, dark ambient space with soft volumetric fog. They are seen from a slightly elevated three-quarter angle. Surrounding them at eye level is a curved arc of translucent floating panels arranged in a gentle semicircle carousel. Each panel displays a faintly glowing preview of a different 3D-scanned space — one shows a small apartment interior, another shows an ancient Asian temple, another a dimly lit room. The panels have soft rounded edges, subtle glass-like transparency, with small text labels beneath each. The closest panel in front of the person is slightly larger and brighter, indicating selection. The person's right hand is raised, fingers reaching toward the selected panel. Soft blue and warm amber accent lighting reflects off the headset and panels. The overall mood is calm and contemplative, like standing inside a personal memory archive. Cinematic composition, concept art style, photorealistic lighting. 16:9 aspect ratio.

Video (transition from archive to memory space):

The person touches the glowing selected panel with their fingertips. The panel's image begins to ripple and expand outward, enveloping the entire space around them. Particles of light scatter as the small preview grows into a full immersive 3D environment — the walls of a Brooklyn apartment materialize around the person. The other carousel panels dissolve into soft particles and fade away. The person slowly lowers their hand and begins to look around the newly formed space. Smooth cinematic camera orbits gently around the person during the transition. 4 seconds.

Documentation

Niagara Particle System Test

Testing the Unreal Engine Niagara system for particle conversion with different movement behaviors (Attraction, etc.).


Built the full archive carousel interface in UE5 Blueprints over one session:

What was built

  • S_ArchiveEntry struct, WBP_CarouselCard widget, BP_ArchiveCarousel manager actor
  • Cards spawn in arc around player, rotate smoothly via microgesture swipes (left/right)
  • Hover detection: cards float forward with smooth interpolation when hand approaches
  • Selection: Pinch (native IsdkInteractableWidget) and Thumb Tap (via HoveredCard tracking)
  • Carousel follows HMD position every tick, cards face player using Find Look at Rotation

Key technical solutions

  • IsdkInteractableWidget stuck at origin: Solved by creating BP_Carousel (regular Actor with IsdkInteractableWidget as child component) instead of spawning IsdkInteractableWidget directly
  • Enhanced Input in non-Pawn Actors: Must call Enable Input(self, PlayerController) in BeginPlay
  • Thumb Tap selection: Can’t map to IA_HandPinchSelect (float strength vs boolean). Used HoveredCard variable approach instead

Remaining

  • Phase 6 polish: opacity falloff, sound, BTN_Card hover white flash fix
  • Space transition on card select (level streaming + particle effect)

Open Questions

  • Archive interface: spatial design (a room with doors/portals?) vs. flat UI?
  • Third space: what location? What memory type does it represent?
  • How much interaction does the temple space need? Is pure navigation enough?
  • Does the archive framing change the thesis statement?

Next Week

  • Phase 6 carousel polish (opacity, sound)
  • Space transition effect (Niagara particles + level streaming)
  • Integrate Nankunshen Temple 3DGS as second space
  • Identify and scan third space
  • Demo Day prep (March 11)

Week 5 | 2026-02-24 ~ 2026-03-02