Isometric to Cartesian Coordinate Converter
Convert between isometric and Cartesian coordinates instantly. Visual grid preview, bidirectional conversion, and batch mode for game dev workflows.
About
Isometric projection maps three-dimensional space onto a two-dimensional plane using a fixed viewing angle. The standard 2:1 ratio projects a Cartesian point (x, y) into isometric space by rotating the axes 45ยฐ and scaling the vertical axis by a factor of 0.5. Getting this transform wrong means tile misalignment, click-target drift, and broken pathfinding in any isometric game engine. This tool computes the exact forward and inverse projection so you can validate coordinates without debugging render loops.
The conversion assumes a true 2:1 isometric ratio where the tile width is twice the tile height. This matches the convention used by most 2D game frameworks (Phaser, LibGDX, Tiled). Note: this tool operates in screen-space coordinates. If your engine applies a camera offset or viewport scaling, you must subtract those before feeding values here. Pro tip: batch-convert your tilemap origin points first, then spot-check edge tiles to catch off-by-one errors early.
Formulas
The isometric projection used here follows the standard 2:1 diamond (staggered) convention. The forward transform converts Cartesian coordinates into isometric screen space:
The inverse transform recovers Cartesian coordinates from isometric screen positions:
In matrix form, the forward projection is:
Where cartx and carty are the original Cartesian coordinates, isox is the horizontal screen offset, and isoy is the vertical screen offset. The matrix has determinant โ1, confirming it is invertible. The factor of 12 on the second row produces the characteristic 2:1 width-to-height diamond ratio.
Reference Data
| Property | Cartesian System | Isometric System (2:1) |
|---|---|---|
| Axis Orientation | Orthogonal (90ยฐ) | Rotated 45ยฐ, scaled vertically |
| Tile Shape | Square | Diamond (rhombus) |
| Width : Height Ratio | 1 : 1 | 2 : 1 |
| x-axis direction | Right โ | Down-right ↘ |
| y-axis direction | Up โ | Down-left ↙ |
| Forward Transform: isox | - | cartx โ carty |
| Forward Transform: isoy | - | (cartx + carty) รท 2 |
| Inverse Transform: cartx | (2 โ isoy + isox) รท 2 | - |
| Inverse Transform: carty | (2 โ isoy โ isox) รท 2 | - |
| Common Tile Sizes | 32ร32, 64ร64 px | 64ร32, 128ร64 px |
| Use Case: RPGs | Top-down view | Pseudo-3D depth illusion |
| Use Case: Strategy | Grid-based movement | SimCity / Civilization style |
| Use Case: Architecture | Floor plans | Technical axonometric drawings |
| Rotation Matrix Angle | 0ยฐ | 45ยฐ |
| Vertical Scale Factor | 1.0 | 0.5 |
| Determinant of Transform | 1 | โ1 (reflection + scale) |
| Invertible? | Yes (identity) | Yes (non-singular matrix) |
| Pixel-Perfect at | Any integer | Even x + y sums |
| Mouse Hit Detection | Simple AABB | Point-in-diamond test required |
| Scrolling Complexity | Linear offset | Diamond-shaped viewport culling |
| Z-Order Sorting | By y coordinate | By cartx + carty |
| Origin Convention | Bottom-left or top-left | Top center of map diamond |