Так что полноценный автомобильный автопилот может появиться в серийных автомобилях только тогда, когда будет гарантироваться его абсолютная надёжность, и он будет оснащён эффективными и избыточными системами для безопасной — для всех участников движения! — остановки в уникальных случаях сбоев. Пока же самое разумное решение — продолжать совершенствование временных автопилотов, отключающихся сразу после того, как водитель кладёт руки на руль.
StructureSynth: сыграйте мне про архитектуру
Радий Фиш
Опубликовано 26 июля 2011 года
Ещё за школьной партой мы узнаём, что любое изображение можно представить в виде множества точек. Сегодня, право, никого не удивить уже фрактальными генераторами ландшафтов или растительности, которые автоматически «отрисовывают» фотографического уровня изображения, опираясь, по сути, на математические формулы, и не более.
Использование формальных грамматик в качестве метода описания изображений впервые появилось в конце 60-х в работах венгерского биолога Аристида Линдермайера, который исследовал микроскопические грибы и бактерии и позднее распространил этот метод и на описание макрообъектов, в частности растений и деревьев. Его метод получил название L-системы (сокращение от Lindermayer-system).
Вслед за его исследованиями последовало большое количество практических приложений и научных публикаций, часть из которых удачно совпала с бумом на фракталы, теорию хаоса и динамические системы в начале 90-х, благо генерация сложной графики стала доступна не только на специализированных мейнфреймах, а любому кодеру-энтузиасту с Amiga или PC. (Интересующимся можно посоветовать прочитать некоторые из его, весьма наглядных и интересных трудов, переводами которых занимаются, к примеру на Хабрахабре).
Основной интерес к L-системам вызван тем, что, как несложно уже догадаться, они представляют собой один из самых простых и наглядных вариантов фракталов (вместе с треугольником Серпинского и кривой Коха). Для понимания принципов подобных изображений не требуется погружаться в бездны комплексного анализа и топологии, достаточно разве что вспомнить школьную геометрию.
Методы L-систем нашли множество как художественных, так и практических применений. Например для создания высокореалистичных текстур, ландшафтов и растений, практически неотличимых на изображении от реальных.
Из числа арт-программ 2000-х одной из самых известных и канонических де-факто стал открытый проект ContextFreeArt:
Неудивительно, что после столь эффектных изображений в 2d, энтузиасты обратились к третьему измерению, благо современные мощности позволяют визуализировать сложнейшие сцены почти в реальном времени. Собственно проект Structure Synth и стал первой известной программой такого рода.
Единственный его автор — Микаель Хвидтфельд Кристенсен (Mikael Hvidtfeld Christensen) в одиночку развивает проект в течение нескольких последних лет (с 2007 г.).
Кликните по изображению чтобы перейти на галерею изображений, полученных с помощью Structure Synth.
Проект распространяется по GPL и написан на C++ под OpenGL и QT, что позволяет портировать приложение на любые платформы (кроме разве что мобильных, для которых поддержка этих фреймворков если и появилась, то совсем недавно).
В числе свежайших нововведений — поддержка javascript и встроенный рендерер, позволяющий обходиться без дополнительного экспорта в другую среду моделирования или рейтрейсинга.
Идеи, лежащие в основе формальных грамматик одновременно и очень просты и очень мощны. Объем теории по машинным языкам очень велик и изучается на многих специальностях, но в первом приближении нам понадобятся только аксиомы.
Для определения “языка” — то есть всех возможных цепочек символов — требуется задать:
1. Множество конечных символов
Множество самых базовых объектов, из которых строится структура или язык. Для естественного или машинного языка это символы, буквы, цифры, для двумерной фигуры это точки на плоскости, прямые, кривые, для трехмерной — соответственно точки в трехмерном пространстве, полигоны, векторы, поверхности.