Depth inversion and research tooling

Hollow Face Lab

The hollow-face and hollow-mask illusion exposes a difficult boundary between bottom-up depth cues and top-down face interpretation. Hollow Face Lab treats that boundary as an instrument problem: a concave face stimulus has to run flat in a browser, enter WebXR where supported, and later connect with Rusty XR / OpenXR lab runtimes while preserving source-traceable variables. The goal is to make the hollow-face illusion testable in browser and XR settings, not merely to show a convincing illusion. The hosted V0 starts with concavity, lighting, local probes, stereo/XR status, response timing, procedural texture/noise controls, and local user-supplied texture upload (Gregory, 1997; Hill and Johnston, 2007; W3C WebXR).

Instrument problem

From illusion demo to instrument

The hollow-face illusion is useful because a concave face can be experienced as convex even when some depth cues point the other way. The app is therefore being built around logged variables rather than a single polished visual trick: mesh identity, concavity, texture/noise, lighting, material, stereo/XR status, local probes, response timing, and runtime quality all need to survive export (Gregory, 1997; Grosjean et al., 2012; Five Illusions).

Published sources and implementation choices have to stay separate: evidence can support variables and caveats without turning every design idea into an established finding (MediaPipe canonical face model; OpenXR Registry).

Source-backed variables

Open design variables

  • Triangle-particle surfaces and mesh oversampling as gestalt manipulations.
  • Feature apertures around eyes, mouth, and nostrils.
  • Shadow-factorial and specular-reflection conditions.
  • Rights-reviewed face-mesh families beyond the V0 baseline mesh.

Implementation stack

Flat web, WebXR, and Rusty XR

V0 is a Three.js/WebGL browser app with WebXR session detection and flat-web fallback, hosted as a Mesmer Prism microsite at /projects/hollow-face-lab/app/. It currently uses the Apache-2.0 MediaPipe canonical face OBJ as a neutral runtime baseline. That asset is useful for topology, UVs, and coordinate mapping, but it is not being presented as an accepted hollow-face research mesh (MediaPipe canonical face model; MDN WebXR).

The longer-term stack keeps three evidence tiers separate: flat browser use for public/low-control tasks, WebXR for browser-based immersive sessions where supported, and a later lab-native Rusty XR / OpenXR lane for controlled HMD studies, action endpoints, eye tracking, and timing-sensitive instrumentation (W3C WebXR; OpenXR Registry).

Current V0 controls

  • Concave/convex face mode and concavity depth scale.
  • Matte, procedural face, procedural noise, blend-F, and local uploaded texture modes.
  • Lighting presets with explicit key, fill, ambient, and reflectance values.
  • Feature aperture modes for eyes, mouth, and nostrils.
  • Native and oversampled mesh resolutions.
  • Continuous mesh and triangle-particle rendering.
  • Global and local response logging with confidence and timing.

Study scope

  • No diagnostic, therapeutic, or psychosis-prediction claim.
  • No unsupervised strobe or physiology module in V0.
  • No third-party asset import without a license and provenance note.
  • No silent pooling of flat-web, WebXR, and lab-native data.

References

Current references

These links anchor the current implementation map. Some sources support scientific variables; others support asset provenance or runtime standards.

Hollow-face research

Implementation and provenance

Page exports