A single-shot
See the codeA three.js atlas of the fifty-five cities Marco Polo describes to Kublai Khan in Italo Calvino’s Invisible Cities (1972). Every city is a procedurally generated miniature diorama standing on the Khan’s endless chessboard.
pnpm install
pnpm dev # http://127.0.0.1:5199
pnpm build # static site in dist/
src/cities/<city>.js, src/kit.js). Most are animated.Keys: ←/→ previous/next city, ↑/↓ same kind, 1/2/3 layouts, T tour, C contents, N night,
M sound, H hide the interface, Esc back.
Deep links: /#octavia opens a city. /?solo=octavia&view=side renders one diorama alone (used by
scripts/shot.mjs for screenshots).
The city texts and dialogues are paraphrases written for this atlas, not quotations from the book (except for a few short phrases). Read the book itself (trans. William Weaver, 1974).
A single-shot
See the codeA three.js atlas of the fifty-five cities Marco Polo describes to Kublai Khan in Italo Calvino’s Invisible Cities (1972). Every city is a procedurally generated miniature diorama standing on the Khan’s endless chessboard.
pnpm install
pnpm dev # http://127.0.0.1:5199
pnpm build # static site in dist/
src/cities/<city>.js, src/kit.js). Most are animated.Keys: ←/→ previous/next city, ↑/↓ same kind, 1/2/3 layouts, T tour, C contents, N night,
M sound, H hide the interface, Esc back.
Deep links: /#octavia opens a city. /?solo=octavia&view=side renders one diorama alone (used by
scripts/shot.mjs for screenshots).
The city texts and dialogues are paraphrases written for this atlas, not quotations from the book (except for a few short phrases). Read the book itself (trans. William Weaver, 1974).