Home▸Geometry▸Penrose Impossible Triangle (2D)

Penrose Impossible Triangle (2D)

A flat-canvas projection lab: drag to orbit or dial azimuth/elevation to find the exact "magic angle" that makes three separate L-beams read as one continuous impossible triangle, then rotate off it and watch the trick fall apart.

Geometry2DModerate60 FPS📱 Mobile-adapted⇄ 3D version
2d-penrose-impossible-triangle ↗ Open standalone

The illusion depends entirely on projection: three identical L-shaped beams sit in real 3D space with a deliberate vertical stacking offset, and only from one precise camera angle — elevation atan(1/√2) ≈ 35.26°, the same "magic angle" used by the 3D original — do their ends align into a single continuous triangle. This 2D build implements that projection directly on canvas so the math driving the trick is visible and adjustable rather than hidden inside a 3D engine.

⚙ Under the hood

Custom orthographic-style projection (yaw + pitch matrix, painter's-algorithm depth sort, flat shading) of the same three-beam geometry as the 3D version, with live azimuth/elevation/gap controls and a numeric illusion-status readout.

penrose triangleimpossible objectorthographic projectionoptical illusion

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)