Прокатиться по переулку памяти

Обновление №1: на основе этого сообщения в блоге я построил очень ранний прототип инструмента, который позволяет вам создавать карту метро своей собственной памяти здесь: http://memoryunderground.com/. Вы также можете найти исходный код здесь.

Мне всегда нравилась эстетика карты метро. Есть что-то в паутине разноцветных линий, соединенных точками, которые так отчаянно пытаются навести порядок в хаотических системах, таких как Метро Нью-Йорка или Метро Лондона. В качестве эксперимента я подумал, что было бы забавно попытаться автоматически создать транспортную карту по некоторому набору произвольных данных.

Затем я подумал, что одной интересной темой, которую можно попытаться преобразовать в карту транспорта, будут воспоминания, которые у меня были с другими людьми. В этом случае каждый человек будет рассматриваться как определенный маршрут поезда, каждое воспоминание с этим человеком будет остановкой на этой железнодорожной линии, а воспоминания с более чем одним человеком будет точкой пересадки с одного поезда на другой. Я также мог бы добавить правило, согласно которому расстояние и направление будут эквивалентны времени, где север относится к прошлому, юг - к настоящему, а самое раннее воспоминание (станция) начинается в верхней части карты.

Итак, я начал с хронологического перечисления воспоминаний очень простым и структурированным образом: (1) что это было за воспоминание и (2) кто был задействован в этом воспоминании, за исключением меня.

Затем я выбрал инструмент визуализации, который интерпретировал бы эти данные и позволил мне построить визуальные эффекты карты метро. Я выбрал популярную библиотеку Javascript D3.js, в которой используются высокодоступные веб-технологии HTML, CSS и SVG. Затем я написал некий пользовательский Javascript, который взял данные и преобразовал их в серию путей (железнодорожных линий), форм (остановок) и меток, которые передавались в библиотеку D3 для создания SVG (масштабируемой векторной графики). Вот миниатюрная демонстрация с использованием небольшого набора образцов данных для создания небольшой карты общественного транспорта ниже:

Основная задача здесь - определить, где должна быть размещена каждая линия и остановка, чтобы они были эстетически приятными, а также правильно интерпретировать и отображать данные. Я выполнил этот процесс, используя список из примерно 100 личных воспоминаний, каждое из которых состояло из 1–10 человек. Вот результат. Вы также можете просмотреть увеличенную интерактивную версию карты здесь. Исходный код открыт.