harbor-01 World point (x, y, z) maps to screen with the true 2:1 isometric projection used here:
screenX = (x - y) * scale screenY = ((x + y) - z) * scale / 2
With a cell size of 32 units the tile diamond is 64 by 32 (2:1). The three axes (x, y, z) project to equal-length vectors, so the foreshortening is true isometric.
Every generated building is sorted by the screen height of its footprint base and drawn back-to-front (painter's algorithm).
A hand written mulberry32 PRNG plus value noise drives the district layout, block types, building sizes, roof pitches and window lighting. The seed comes from the URL hash.
nodes: ...