Inspiration

  • CodeParade's Non-Euclidean Worlds Engine & M.C. Escher's Relativity: Proved that rendering impossible geometries in real-time is possible and visually striking.
  • Valve's Portal: Inspired our companion cube puzzles, tactile cause-and-effect mechanics, and environmental signposting.
  • Surreal Architecture: Artwork featuring impossible twisting corridors pushed us to turn visual illusions into physical, interactive puzzle mechanics.

What it does

Impossible Motions is a first-person puzzle-platformer built across three non-Euclidean chambers:

  • Room A (Distance Compression): A physical 20-meter chasm traversed via a long walkway, which is then unlocked as an impossible 4-step shortcut tunnel.
  • Room B (Gravity Shift): A 90° curved elbow conduit that smoothly rotates gravity onto vertical walls, requiring players to navigate sideways and place a cube on a wall-mounted magnetic plate.
  • Room C (Continuous Scaling): A 5-meter tapering tunnel that continuously scales the player down to 0.32x (while feeling completely static from the inside), allowing entry into miniature ducts to retrieve a tiny cube, grow it back, and unlock the exit.

How we built it

  • Engine & Graphics: Unity 6 (6000.0.6f1) and Universal Render Pipeline (URP 17).
  • Oblique Portal Math: Dynamic virtual camera mapping using affine transform matrices paired with portalCamera.CalculateObliqueMatrix() to clip occluded geometry at doorway thresholds.
  • Conformal Metric Scaling: Real-time runtime driver synchronizing normalized tunnel depth $t \in [0, 1]$ with player scale ($1.0\times \leftrightarrow 0.32\times$), collider bounds, and camera near-clip planes.
  • Arbitrary Gravity Kinematics: Decoupled CharacterController from global $+Y$, implementing continuous $SO(3)$ gravity rotation and local-frame jumping.

Challenges we ran into

  • Oblique Projection Artifacts: Skewing the near-clip plane to match portal quads altered depth buffer precision, requiring calibration to prevent z-fighting and shadow acne.
  • Continuous Scaling Invariance: Matching the rate of tunnel mesh taper precisely with eye-height decay so the corridor appeared static rather than warping.
  • Non-Vertical Physics: Rewriting character ground checks and jumping to operate along arbitrary -gravityDirection vectors without physics glitches or axis lock.

Accomplishments that we're proud of

  • Seamless Visual Continuity: Zero screen-tearing, seam popping, or camera hitching across all portal transitions at 60+ FPS.
  • The "Static Tunnel" Illusion: Perfectly synchronizing scale decay so the player doesn't realize they've shrunk until stepping outside.
  • Unified Companion Cube: An interactive object that handles portals, dynamic scaling, throwing, and vertical magnetic locking without breaking physics.

What we learned

  • Deriving custom projection frustums and homogeneous transformation matrices in URP.
  • Decoupling character kinematics and raycasts from global coordinate axes.
  • Designing spatial puzzles that visually prove their impossibility to the player before demanding a solution.

What's next for ImpossibleMotions

  • Reverse-Tapering Corridors: Hallways that expand into massive spaces while shrinking obstacles around you.
  • Compound Anomaly Stacking: Multi-mechanic puzzles combining scaling tunnels with shifting gravity spirals.
  • Momentum-Preserving Portals: Kinetic energy redirection for high-velocity traversal.

Built With

  • 3d-math
  • c#
  • directx
  • game-development
  • geometry
  • github
  • hlsl
  • mathematics
  • non-euclidean
  • shaders
  • unity
  • universal-render-pipeline
  • urp
Share this project:

Updates

Submission history