Создание станции метро в 3ds max

Обновлено: 05.07.2024

Масштаб * : в 1 см — 12.3 км (по горизонтали), 8 м (в глубину)

О модели

Трехмерная модель метро построена на основе общедоступных координат станций метро и глубин их заложения. Широта и долгота станций преобразованы в местные координаты относительно точки «нулевого километра». Глубины заложения отсчитываются от локальной высоты поверхности земли над уровнем моря. Таким образом, модель показывает действительное положение станций в пространстве с учетом рельефа местности. Масштаб глубин увеличен в раз по сравнению с масштабом координат.

Реализация

Модель создана на JavaScript с использованием CSS3. Она работает в новейших версиях браузеров Chrome, Firefox * , Internet Explorer ** начиная с IE9, Opera *** , Safari. Вращайте левой кнопкой мыши, масштабируйте правой кнопкой. Выбирайте ветки мышью (можно с Ctrl).

История

Существуют более ранние программы-справочники под Windows, отображающие схемы метро различных городов мира и рассчитывающие маршруты между станциями: pMetro (Борис Мурадов, 2003–2011) — есть 3D-модели станций и схемы с глубинами, схемы регулярно обновляются; MMetro (Константин Штенников, 1999–2008); другие проекты можно найти здесь и здесь. Однако они не показывают трехмерную модель метро в том виде, в котором мне хотелось увидеть.

Источники

Обсудить

О проекте говорят


РУДН 30.11.2018
Евгений Варфоломеев: «3D модель метро – проект для души»


Москва 24 07.09.2018 09:36
Московская подземка появилась в формате 3D


Москва 24 10.11.2017
3D-карта, шутки студентов и защита от пандемии. Самые необычные схемы метро


Московский транспорт 19.02.2021
Учёные из РУДН сделали портал с 3D моделями каждой станции метро


MAXIM Online 03.09.2018
Схема московского метро в правдивом 3D

UPD: По просьбам в комментах добавляю ссылку на вращабельную схему на Javascript
К сожалению, код javascript вставить в тело поста не удалось
Добрый день! Недавно я читал блог одного урбаниста, который рассуждал о том, какая должна быть идеальная схема метро.Схему метро можно рисовать исходя из двух принципов:

  • Схема должна быть удобной и простой для запоминания и ориентирования
  • Схема должна соответствовать географии города

image

Достаточно вспомнить, как выглядит схема Московского метро с красивыми кольцами и прямыми линиями:

и сравнить с географически точным планом:

image

На плане видно что кольца вовсе не являются идеально ровными и концентрическими, линии изгибаются гораздо сильнее, чем в схеме, а плотность станций в центре города настолько велика, что в плане практически невозможно разобраться.

И хотя второе изображение гораздо точнее отображает реальность, видно, что пользоваться для планирования маршрута в метро удобнее первой схемой.

И тут мне в голову пришла следующая мысль: «Как выглядело бы метро, если бы критерием для построения схемы являлось время, требуемое для перемещения от одной станции к другой?». То есть если от одной станции до другой добраться быстро, то пространственно они на схеме располагались бы недалеко.

Очевидно, что в двумерном пространстве невозможно нарисовать такую схему, в которой расстояние между двумя станциями равнялось бы времени путешествия от одной к другой из-за сложной топологии графа метро.

Также есть догадка, что такое точно возможно при построении схемы в пространстве с высокой размерностью (верхняя оценка n-1, где n- число станций). Для пространства с небольшим количеством измерений такую схему можно построить лишь приближенно.

Задача построения карты метро по времени путешествия выглядит типичной задачей оптимизации.
Пусть у нас есть начальный набор координат всех станций (X,Y,Z) и целевая матрица попарных времен (расстояний). Можно сконструировать метрику «неправильность» данного набора координат и далее минимизировать ее методом градиентного спуска по каждой из координат каждой станции. В качестве метрики можно взять простую функцию среднеквадратичного отклонения расстояний.

Что же, осталось дело за малым — нужно получить данные о том, сколько времени следует затратить на путешествие от любой станции московского метро к любой другой.

Первой мыслью было проверить api яндекс метро и вытащить оттуда эти данные. К сожалению, описания api и найти не удалось. Смотреть времена вручную в приложении долго (в метро 268 станций и размер матрицы времен 268*268=71824). Поэтому я решил разобраться в исходных данных Яндекс Метро. Так как доступа к серверу нет, был скачан apk файл с приложением и обнаружены необходимые данные. Вся информация о метро замечательно структурирована и хранится в формате JSON в папке assets/metrokit/ apk-архива приложения. Все данные хранятся в self-explanotary структурах. Meta.json содержит информацию о городах, схемы которых присутствуют в приложении, а также id данных схем.


По id схемы находим папку с JSON, относящиеся и к Москве.

Файл data.json содержит основную информацию о графе метро, включая названия узлов графа, id узлов, географические координаты узлов, информацию о переходах с одной станции на другую (id, время перехода, тип перехода — перегон или пешком, по улицу или нет, время интересующее нас в секундах) а также много дополнительной информации о входах и выходах со станции. С этим достаточно легко разобраться. Начнем писать код для построения нашей схемы.

Импортируем необходимые библиотеки:


Структура словарей и списков python полностью соответствует структуре формата json, поэтому читаем иннформацию о метро и создаем объекты, соответствующие json объектам.


Создаем словарь, ставящий в соответствие узлы графа и станции (это необходима для так как к именам привязаны именно станции, а не узлы графа)

Также на всякий случай сохраним координаты узлов для возможности построения географической карты (нормированы на диапазон 0-1)


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


Определим к какой ветке (к какому id ветки) относится каждый узел (это понадобится позже для раскрашивания линий метро на схеме)


библиотека networkx позволяет найти длину кратчайшего пути от одного узла к другому при помощи функции nx.shortest_path_length(G, id1, id2, weight='length'), поэтому можно считать что с подготовкой данных закончили. Следующее, что необходимо сделать — подготовить модель, которая будет оптимизировать координаты станций.

Для этого разберемяся, что будет даваться на вход, на выход и как будем оптимизировать матрицу координат станций.

Предположим, у нас есть матрица всех координат (3x268). Умножение one-hot вектора (вектора, где везде 0, кроме одной единичной координаты на месте n) размерности 268 на данную матрицу координат даст 3 координаты, соответствующие станции n. Если мы возьмем пару one-hot векторов и умножим их на необходимую матрицу, то получим две тройки координат. Из пары координат можно расчитать евклидово расстояние между станциями. Таким образом, можно определить архитектуру нашей модели:


на вход мы подаем пару станций, на выходе получаем расстояние между ними.

После того, как мы определились с форматом данных для обучения модели, подготовим данные с использованием поиска расстояний на графе:


Оптимизируем методом градиентного спуска матрицу координат станций.

Если мы будем использовать фреймворк keras для машинного обучения, то получим следующее:


заметим, что в качестве начальных координат в слое layer1 мы используем реальные географические координаты -это необходимо для того, чтобы не попасть в локальный минимум функции СКО. Третью координату инициализируем ненулевой для получения ненулевого градиента (если в начале карта будет абсолютно плоской, смещение любой станции вверх или вниз будет равнозначно, следовательно градиент равен 0 и оптимизации z не произойдет). Последний элемент нашей модели (Dense(1)) влияет на масштабирование схемы для соответствия временной шкале.

Расстояние будем измерять в часах, а не секундах, так как порядки расстояний — около 1 часа, а для более эффективного обучении модели важно, чтобы все величины (входные данные, веса, targetы) были примерно одного порядка по величине. Если эти значения близки к 1, то можно использовать стандартные значения шага при оптимизации (0.001-0.01).

Строка model.layers[2].trainable=False замораживает координаты станций и на первом этапе варьируется один параметр — масштаб. После подбора масштаба нашей схемы размораживаем координаты и оптимизируем уже их:


видим, что на вход подаем сразу все пары станций, на выходе — все расстояния и наша оптимизация- full batch gradient descent (один шаг на всех данных). Функция loss в данном случае — среднеквадратичное отклонение и можно видеть, что оно составило 0.015 в конце обучения, что значит среднеквадратичное отклонение менее чем в 1 минуты для любой пары станций. Иными словами, полученная схема позволяет точно узнать расстояние, которое требуется, чтобы добраться от одной станции к другой по расстоянию по прямой между станциями сточностью +-1 минута!

Но давайте посмотрим, как выглядит наша схема!

получим координаты станций, возьмем цветовую кодировку линий и построим 3d изображение с подписями (код для красивого отображения подписей взят отсюда):


Так как возникли трудности с конвертацией в интерактивный 3d формат для браузера, выкладываю гифки:

более красиво и узнаваемо выглядит версия без текста:


UPD: Добавим линии метро нужного цвета и создадим гифку. Черные линии — переходы между станциями:


Из данной схемы можно сделать некоторые интересные выводы, которые не столь очевидны из других схем. Для некоторых веток, например зеленой, синей или фиолетовой МЦК (розовое кольцо) практически бесполезно из-за неудобных пересадок, что видно в удалении кольца от этих веток. Самые длинные по времени маршруты — от коммунарки до щелкого или пятницкого шоссе (коней красной и розовая/синяя линии) длинные маршруты так же алмаатинская-рассказовка и бунинская аллея-некрасовка. На севере Москвы, судя по плану, происходит частичное дублирование серой и салатовой ветками — они находятся рядом на схеме. Было бы итересно посмотреть на то, как новые линии (МЦД, БКЛ) и кто чаще будет пользоваться ими. В любом случае, надеюсь, подобные схемы могут быть интересным инструментам анализа, вдохновения и планирования поездок.

3D модели станций метро Москвы Метро, Москва, Интернет

Всегда хотел посмотреть на переплетения переходов между станциями. Как оказалось кто-то создал такие модели в 3D.

Иллюстрация к комментарию

Это программа pMetro, существует уже лет 10-15. В ней много интересного. Помню как изучал ее вдоль и поперек, я даже до сих пор помню что её создателя зовут Борис Мурадов.

просто сногсшибательный проект, я когда наткнулся на него был просто поражен!! там ведь всё двигается, поезда ездят, время тикает, ступеньки на эскалаторе ползут.. ппц

Скачал.
Жму в меню 3D. Отображает всю карту метрополитена. А вот так , чтоб как на картинке у автора поста - такого не нашёл.
ЧТО Я ДЕЛАЮ НЕ ТАК ??

Очень круто, заморочился же человек. Столько информации собрано в одной программе, яндекс позавидует :)

выглядит как карта к cs 1.6

В Сеуле такие схемы висят на всех станциях, которые я видел. Показывают все этажи (включая землю), лифты, эскалаторы, куда какие поезда отправляются, номера выходов.

Блин. я думал тут расскажут как эти модели выцепить с программы. сами файлы то я нашел, а чем открыть и конвертнуть. увы

Вот ещё хороший сайт по московскому метро - показывает расположение переходов и выходов на поверхность, жаль что не обновляется.

Так, на wine самое интересное не пашет (это на случай если сюда забредут те кому это интересно). Сама прога пашет, а макеты - падают. Надо будет дома под виндой заценить. На маке выглядет как какашка.

да, помню эту программу. Я в ней ещё считал сколько времени от станции до станции ездить.

Интереснее было бы взглянуть на всякие служебные проходы и прочие скрытые от глаз обывателей зоны. Но, работа, конечно колоссальная. Возможно. Качать я ее, конечно, не буду.

Огромное тебе спасибо, всегда мечтал поглядеть на 3D модель метро.

@admin, и вам спасибо за то, что внизу под комментариями есть похожие посты, без этого я бы не увидел этого поста.

я чувствую себя идиотом, но не могу найти где скачать нормальную версию программы, а не пустую

Не только Москвы, там и Питер и другие города России, да и вообще вроде все города мира где есть метро.

класса с 6-го мечтал об этом! В PMETRO есть? помню отец её юзал ещё когда у меня пейджер был

А я всегда мечтал сделтаь набор карты для CS - Moscow Metro. Потом очень интересные разговоры бы были: я за этим эскалатором аж троих завалил из Глока. И такой текст в реальном метро, проходя мимо не менее реального местного "полицейского". =)

Да пригодятся эти изображения братьям на пути Джихада, альхамдулиЛлях!

в чем 3D делали интересно

очень похоже на скетчап

Еще нужны модельки охраны, которая кричит "Съемка запрещена!"

Картинки в моей голове, когда я слышу слово "муфтий"

Ответ на пост «Муфтий Москвы, просит обустроить метро Москвы для мусульман»

Может сначала сделать в метро туалеты и поставить урны?

Ах да, безопасность.

Муфтий Москвы, просит обустроить метро Москвы для мусульман

Намаз очень удобно совершать у себя дома, на родине!

Русские же не просят построить больше православных храмов на Кавказе или в Средней Азии.

Предлагаю тогда обустроить в метро ещё православные храмы, буддийские датсаны и что там ещё требуется, чтобы уважить чувства всех верующих. Места в метро всем хватит!

Подготовка к прибытию 300 тысяч новых мигрантов в Москву — идет полным ходом!

P.S В Исламе допускается совершать меньше молитв и ракатов в каждой молитве, если человек в пути.

Преподаватель из РУДН Евгений Варфоломеев выложил на днях интерактивную трёхмерную карту московского метро .

На самом же деле кольцевая линия — не круг, а метро — не плоское. Вот он и расставил реальные координаты и глубины.

И изменения по годам — тоже.

Сейчас мы видим схему метро как-то так, только спрямлённую. Скриншот с сайта проекта "Модель Московского метро в 3D" Сейчас мы видим схему метро как-то так, только спрямлённую. Скриншот с сайта проекта "Модель Московского метро в 3D"

Что умеет 3D-карта

1. Показывать реальное положение станций друг относительно друга. Можно найти самую глубокую или самую поднятую над уровнем моря. Можно посмотреть информацию по каждой: год постройки, глубина залегания и др. Можно понять, наконец, какой перепад высот надо преодолеть на том эскалаторе, на котором утром успеваете все соцсети прочитать.

Вот "Тёплый стан прямо на возвышенности расположен. Скриншот с сайта проекта "Модель Московского метро в 3D" Вот "Тёплый стан прямо на возвышенности расположен. Скриншот с сайта проекта "Модель Московского метро в 3D"

Можно щёлкнуть на любую линию и покрутить её отдельно.

2. Всё то же самое, но за все прошлые годы. Можно посмотреть на самые первые ветки метро.

Год 1935. Скриншот с сайта проекта "Модель Московского метро в 3D" Год 1935. Скриншот с сайта проекта "Модель Московского метро в 3D"

Например, когда метро только запустили, в 1935 году, оно было совсем небольшим. И, как мы видим, тот самый переход "Библиотека имени Ленина" — "Арбатская" (тогда станции назывались иначе) соединяет платформы с очень большой разницей по глубине заложения. Синяя ветка выше!

Год 1954. Скриншот с сайта проекта "Модель Московского метро в 3D" Год 1954. Скриншот с сайта проекта "Модель Московского метро в 3D"

А вот 1954 год — только замкнули кольцо (на карте можно выключить свет).

Год 2021. Скриншот с сайта проекта "Модель Московского метро в 3D" Год 2021. Скриншот с сайта проекта "Модель Московского метро в 3D"

А вот наши дни. Розовое кольцо МЦК поверху — надписи тоже можно отключить, а то современная схема выглядит совсем уж адово, московское метро и так уже давно невозможно объехать за один день.

Модель Московского метро в 3D

Вот ссылка, поиграйте сами. Волшебная же штука.

Использованы реальные данные

Координаты расположения станций, глубина их заложения и данные о рельефе местности — открытая информация. Автор карты собрал её по разным источникам:

Читайте также: