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
CharacterControllerfrom 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
-gravityDirectionvectors 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.
Log in or sign up for Devpost to join the conversation.