isicad.ru :: портал САПР, PLM и ERP :: версия для печати

Статьи

5 мая 2016

«Геометрических ядер мало, а параметрических решателей ещё меньше. Вот почему C3D — это круто!»

История одного ядра от Александра Алахвердянца

В этом году геометрическому ядру C3D исполняется 20 лет. Ровно столько лет назад основатели компании АСКОН пришли к единому мнению о необходимости создания собственной системы трехмерного моделирования КОМПАС-3D. В 1996 году была создана группа, которой было поручено написание программного обеспечения для работы с точной 3D-геометрией – инструмента, который бы не уступал по удобству использования и функциональности зарубежным аналогам. С этих дней начинается отсчёт истории «коломенского» геометрического ядра. На протяжении многих лет ядро постоянно развивалось и дорабатывалось – появлялись новые методы моделирования, разрабатывались алгоритмы вычислений, создавались дополнительные модули: параметрический решатель, конвертор данных, модуль визуализации. И за всеми этими изменениями всегда стояли конкретные люди — разработчики геометрического ядра, обретшего со временем собственное имя – C3D.

Сегодня всё больше людей интересуются геометрическим моделированием, многие из них активно следят за тем, кто и как разрабатывает российское коммерческое 3D-ядро. Поэтому мы решили подготовить серию «юбилейных» интервью с нашей командой разработки. В первом выпуске мы общались с Анной Ладиловой, поэтому, чтобы мужской части коллектива C3D Labs не было обидно, второе интервью мы решили взять у Александра Алахвердянца. Голос «за кадром» принадлежит менеджеру по продукту C3D, Аркадию Камневу.

C3D Алахвердянц

Александр Алахвердянц, математик-программист в C3D Labs

Саш, откуда ты родом?
Я вырос в Кабардино-Балкарии, в городе Нальчике.
Как ты оказался в Коломне?
Я поступил в Московский государственный университет имени М.В. Ломоносова на Физический факультет. Моя базовая кафедра находилась в городе Дубне. Я занимался физикой элементарных частиц и после окончания университета остался в Подмосковье - пошёл учиться в аспирантуру, а заодно начал работать в Объединённом институте ядерных исследований. Уже оттуда, неожиданно для себя, я перебрался в Коломну работать программистом.
Я слышал, что ты стажировался за границей по линии науки. Это правда?
В Дубне я работал в составе научной группы по поиску кварк-глюонной плазмы в эксперименте STAR. Solenoidal Tracker At RHIC - это крупнейшая экспериментальная установка ускорительного комплекса RHIC (коллайдер релятивистских тяжелых ионов), который располагается в Брукхейвенской Национальной лаборатории в Лонг-Айленде, США. Участники эксперимента разбросаны по всему миру, всего около 40 институтов. Это крупнейший эксперимент по физике элементарных частиц в БНЛ, куда я дважды летал в служебные командировки по набору данных. Обе командировки длились по 3-4 месяца.
C3D Алахвердянц

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

Интересно, как организована работа в лаборатории?
Сперва все готовятся к запуску коллайдера, потому что он потребляет очень много энергии и не может работать круглый год. Руководители Лаборатории договариваются с Департаментом энергетики, чтобы ведомство обеспечило работу электростанции, питающей коллайдер. Затем производится запуск, и коллайдер работает без остановки 4-5 месяцев. Круглые сутки собираются данные, нужно сидеть за компьютером и следить за множеством графиков для того, чтобы контролировать корректность записи экспериментальных данных. Важно, чтобы процессы протекали нормально: детекторы были исправны, давление газа в проекционной камере было на нужной отметке и т. д. Для этого приезжают ученые, сдают экзамены, получают различные допуски и заступают на свою смену, которая длится неделю. Работа заключается в том, что 4-6 человек сидят 8-ми часовую смену на рабочих местах, управляют записью экспериментальных данных и контролируют протекающие в детекторе процессы. По истечении этого срока формируется новая смена. За командировку приходилось отработать 10-12 смен, поэтому удавалось познакомиться с большим числом коллег. Непосредственно наука заключается в анализе полученных данных, который делается уже после в своём родном институте.
C3D Алахвердянц

Рабочее место А. Алахвердянца в лаборатории BNL

Тебе понравилось работать над экспериментом STAR?
Конечно! К сожалению, в России не проводятся эксперименты по моей специальности, поэтому для ознакомления с современной физикой элементарных частиц от университета нас возили на Большой адронный коллайдер в Швейцарию в Европейский центр ядерных исследований CERN (фр. Conseil Européen pour la Recherche Nucléaire).
Писал ли ты какие-то научные работы?
Я входил в список соавторов научной коллаборации эксперимента STAR. Все статьи, которые публиковались от коллабораций на протяжении 5-6 лет, что я участвовал в эксперименте, выходили с моим соавторством. Публикации можно встретить в таких изданиях, как Physical Review, Physical Letters и др. Также у меня было несколько личных публикаций.
Что больше всего понравилось в США в профессиональном плане и чего больше всего не хватало в России?
Главное отличие в том, что американцы изучают фундаментальную науку у себя дома, а нам для этого приходилось ездить далеко за границу. Все, кто участвовал в более или менее серьёзных научных проектах в Дубне, так или иначе работали на разные зарубежные страны - США, Швейцарию, Германию, Италию, Японию, Китай. То есть мы работали практически по всему миру. Хотя, конечно, в России тоже проводились эксперименты, но они были небольшие и очень специфичные.
Обычно ученые, которые работают за рубежом, на Родину не возвращаются. Как так случилось, что ты снова оказался в России?
Я никогда не хотел жить за границей. Скорее всего, именно из-за этого и ушёл из науки, потому что выбор такой, если ты занимаешься физикой элементарных частиц: либо ты уезжаешь за границу, либо уходишь из науки. Но это далеко не общее правило. В той же Дубне есть люди, занимающиеся физикой элементарных частиц, про которых я могу говорить только в восторженных тонах. Просто для себя я именно таким образом сделал выбор.
C3D Алахвердянц

Шахта Большого адронного коллайдера на глубине 100 м под землей

C3D Алахвердянц

Александр Алахвердянц на фоне детекторной установки ATLAS в ЦЕРН

Поговорим о работе в C3D Labs. В каком году ты присоединился к команде разработки C3D?
В 2011 году я пришел на работу в математическое подразделение АСКОН.
Изначально ты занимался геометрией или тебе сразу начали ставить задачи по параметризации в ядре?
Раньше мы не имели каких-либо подразделений, и был только один отдел математики. Затем уже создали группу конверторов и солвера. Когда нам сообщили, что нас разделяют на группы, то будущий начальник, Саша Максименко, подошёл и спросил, хотел бы я работать вместе. Я сразу согласился.
Чем разработка геометрического ядра C3D Modeler отличается от разработки параметрического ядра C3D Solver?
Группа разработки геометрического ядра намного больше, чем группа, занимающаяся параметризацией. Поэтому там может сложиться такая ситуация, когда ты не до конца знаешь, что происходит с разными участками программного кода ядра. А в нашем случае, мы вдвоём с Сашей разрабатываем код, и поэтому достаточно хорошо оба знаем весь новый функционал, который появляется в C3D Solver.
Провокационный вопрос. Чем параметрическое ядро круче геометрического?
Тем, что решателей намного меньше, чем геометрических ядер. Точнее даже вот так: ядер мало, а параметрических решателей ещё меньше! Будем считать, что они сложнее, раз их меньше. Значит, этим и круче.
Теперь ты живёшь в Коломне между Москвой и Рязанью. Тебе нравится этот город?
Нравится, с точки зрения исторических достопримечательностей. У Коломны есть свои красоты и свой древний дух. А с точки зрения бытовых удобств, Коломну всё-таки сложно сравнивать с малыми городами Швейцарии и Америки.
Чем занимаешься в свободное время?
Я часто программирую дома, много читаю и занимаюсь самообучением. Я же всё-таки не программист по образованию, а физик. Поэтому есть области информатики, которых я не знаю, и мне приходится восполнять эти пробелы в образовании.
Выходит, что численные методы вам не преподавали в институте?
Конечно преподавали. Но одними численными методами программирование не исчерпывается. На первом курсе университета мы проходили программирование, и был даже практикум по C++, где нас научили писать простые функции. Этого было явно недостаточно. Потом уже, когда работал ученым, я довольно много программировал, но делал это на таком уровне, что не вдавался в понятия об архитектуре или, скажем, о сложных языковых концепциях. Главное было – это топорно написать работающий алгоритм и построить графики после обработки данных. Вот и всё.
На каких языках ты программируешь? Как изучаешь новые языки?
Программирую на C++ и Python. Изучаю по книгам, смотрю видео лекции, многое коллеги подсказывают. Без них никуда! В C3D Labs работают большие профессионалы своего дела. Особенно в первое время я очень многому у них научился, потому что ни в каких книгах нет того огромного опыта, который есть у коллег. Они мне очень много дали! Теперь ещё и собственный опыт, «сын ошибок трудных», помогает мне самосовершенствоваться.
Хобби, спорт, увлечения?
Спорту я всегда уделял очень много времени, и в школьные годы, и в университете. До 6 класса школы я занимался футболом и круглые сутки пропадал на улице с мячом. Родителям это не нравилось. Мама мне говорила: «Саша, ты должен стать человеком, а не футболистом», – и мне пришлось перейти на баскетбол. Родители посчитали, что двухметровым я всё равно не вырасту, а значит, можно не переживать за мою дальнейшую судьбу. В Дубне мы тоже занимались с коллегами мини-футболом в секции от института и даже участвовали с командой в городских соревнованиях. Но когда я переехал в Коломну, то забросил спорт. Сперва я никого не знал, с кем можно было бы заниматься вместе, а сейчас уже банально не хватает на это времени.
Я знаю, что ты – фанат ЦСКА. А за какие европейские футбольные клубы ты болеешь?
Очень люблю итальянские клубы! С детства болею за Ювентус и за сборную Италии по футболу. Мой самый счастливый день – это когда в 2006 году итальянцы стали чемпионами мира. Я тогда был в командировке в Швейцарии и жил в Женеве в итальянском квартале. Поэтому я до самого утра отмечал победу с итальянцами.
В соцсетях ты часто постишь котиков. Это у тебя хобби такое?
Да, без них как-то не программируется  Я и на этот раз подготовил фото, где моя кошка проводит ревизию кода.
C3D Алахвердянц

Любимый питомец А. Алахвердянца редактирует только что написанный им программный код

Давай снова поговорим о работе. Какими задачами чаще всего приходится заниматься в C3D Labs?
С тех пор, как из команды выделили группу C3D Solver, я стал заниматься 2D-решателем, в частности функционалом для параметризации NURBS кривых. Мною были доработаны или созданы с нуля ограничения, вроде касаний или инцидентностей, добавлена возможность фиксации производных вплоть до 3-го порядка в любой точке сплайна, чтобы можно было гладко сопрягать кривые, например, по G2. Вообще сплайн – это довольно сложный объект. Работая с ним, очень легко ошибиться, поэтому была большая головоломка – как сделать так, чтобы всё это работало хорошо и было реализовано просто и понятно для окружающих. Отдельная тема – драггинг сплайнов. При разработке данной функции пришлось пересмотреть модель поведения сплайна, настроить и согласовать поведение большого числа объектов, из которых состоит сплайн и с которыми он взаимодействует. В настоящее время мы переместили фокус на 3D-решатель. Последняя моя работа – это создание паттернов.
Насколько я понимаю, паттерны – это массивы компонентов. Как они могут быть использованы?
Я и сам не знаю! Когда мы их создавали, я для себя выработал требование, чтобы API паттернов предоставлял разработчикам ПО как можно больше свободы, и каждый пользователь C3D Solver мог использовать их не только по прямому назначению (создание массивов однотипных компонент), но и как-то по-своему: создавать массивы из объектов разной природы, крутить-вертеть каждый элемент массива по отдельности, настраивая его индивидуальное поведение, или просто использовать паттерн, например, для создания средней точки на дуге. Ещё когда мы обсуждали паттерны с моим руководителем Сашей Максименко, я сказал ему, что не хочу ограничивать использование массивов. Пусть пользователи сами решают, для какой задачи им будет удобно их применить, а мы только предоставим для этого соответствующий инструментарий. Хочется, чтобы у нас это получилось.
C3D Алахвердянц

Пример использования линейных и угловых паттернов в новой версии C3D Solver 2016

Да, кстати, как тебе работается под руководством Александра Максименко?
Отлично! Я думаю, что мы друг друга довольно хорошо понимаем. Саша – профессионал очень высокого уровня, очень многому меня научивший. Вообще, люблю людей, у которых постоянно можно учиться чему-то новому. И Саша именно такой человек!
Ребята мне сказали, что ты – поклонник продукции Apple. У тебя даже ПО Visual Studio 2015 на днях отказалось устанавливаться под Windows. Скажи, как ты согласился компилировать ядро под Android?
Меня никто не заставлял. Можно сказать, что я сам на себя перетянул обязанность по сборке C3D под Linux и Android. Просто потому, что мне это нравится. Я даже, наверное, не столько поклонник Mac, сколько любитель Linux. Для интереса я сперва начал собирать ядро, затем написал систему автосборки на Python, чтобы не мучиться. Вот так на прикладной задаче я решил изучить Python. Получилось извлечь пользу не только для себя лично, но и для C3D Labs тоже. А учитывая, что у меня техпроцесс уже был налажен, то было не сложно написать скрипт, чтобы ядро собиралось и для Android.
Не пробовал запускать тестовое приложение C3D на Android?
Когда SolidEng (корейский заказчик C3D Labs) испытывали наши технологии, они обращались с вопросами о том, как лучше организовать взаимодействие, потому что под Android обычно программируют на Java. Так мне пришлось изучить азы Java, чтобы показать наглядно, как можно связать с этим языком программирования наше ядро, написанное на C++. Позже они попросили продемонстрировать, как прорисовывать графику, используя нашу триангуляционную сетку, и я написал простенькое приложение под Android, демонстрирующее выполнение булевых операций и разные трансформации с получившимся телом. Хоть приложение и элементарное, но пришлось попотеть: я ведь раньше никогда не программировал ни на Java, ни, тем более, ничего не писал под Android. Кроме того, работать надо было быстро, потому что у SolidEng истекал срок тестирования и близилось время принятия решения о лицензировании или не лицензировании нашего ядра. Но всё получилось! И теперь этот пример доступен всем заказчикам, которые решат написать приложение под Android с использованием C3D.
При общении с корейцами не было проблем с коммуникацией?
Всё было довольно понятно. Корейцы – предельно корректные люди, они всегда очень вежливо общаются. Когда у них шёл активный этап тестирования, то почти каждый день мы с ними переписывались на английском. Они просили меня что-нибудь объяснить, я отвечал, и они снова задавали мне вопросы. Уже после того, как SolidEng лицензировал ядро, последовал только один вопрос по графическому отображению геометрии. Наверное, они довольно хорошо изучили C3D за время тестирования и теперь полностью самостоятельно разрабатывают свой софт на C3D.
Что тебе больше всего нравится в рабочем процессе?
Как и все, наверное, кто занимается наукой и математикой, я очень ценю моменты прозрения. Вот ты решаешь какую-то трудную задачу, мучаешься, не спишь ночами, всё время думаешь о ней... Вдруг в голове что-то щёлкает, и ты неожиданно понимаешь, что нашёл решение. В такие моменты я ощущаю себя самым счастливым человеком в мире! Надо мною даже жена иногда смеётся. Говорит, что Саша отключился от мира, а потом поздравляет с возвращением на Землю.
Откуда ты черпаешь вдохновение, новые идеи? «Ньютоновские яблоки» ведь не всё время с неба падают?
Я не знаю, как относиться к вдохновению. Благодаря университету, хорошим преподавателям и научным руководителям я был обучен различным методам решения задач. Поэтому я всегда стараюсь, в первую очередь, решать задачу самостоятельно. Конечно, читаю и специализированные статьи. Если говорить об идеях, то есть вещь, которая меня не перестаёт удивлять: ты какое-то время решаешь задачу, а потом вдруг узнаёшь, что где-то ещё в мире совершенно другие люди пришли к примерно такому же решению. С одной стороны, это всегда повышает самооценку – умные люди додумались, и ты тоже смог. А с другой стороны, думаешь, что все эти знания бренны и ничтожны, раз уж так много людей приходят к ним независимо друг от друга.
Ты очень много занимался наукой раньше. Откуда такая тяга к знаниям?
Мама с детства говорила мне, что главное – это знания, поэтому нужно много учиться. Со временем я полюбил учёбу. Особую роль в привитии мне любви к знаниям сыграла моя любимая учительница по русскому языку и литературе Валентина Николаевна Самохвалова. Она научила меня одному золотому правилу: «Когда не знаешь, с чего начать – начинай с вопроса». Тогда она так учила нас писать сочинения, а сегодня - это мой главный принцип решения задач. Если я не знаю, что делать и с чего начинать, то я записываю в тетради вопрос и начинаю методично на него отвечать. Я считаю, что правильно поставленный вопрос или сформулированная проблема – это уже половина решения сложной задачи. Вот так преподаватель по русскому языку поучаствовала в моём становлении как математика.
Какая твоя любимая литература? Читаешь художественные произведения?
Сейчас я уже гораздо меньше читаю, а было время в школьные годы, когда я читал без остановки какими-то страшными запоями. Люблю русскую классическую литературу. Многие произведения любимых Достоевского и Гоголя я перечитывал по многу раз. Если говорить о произведениях, то я обожаю «Братьев Карамазовых», которые мне дались только с 3 раза, и «Доктор Живаго» Пастернака за удивительно красивый русский язык!
Какие передачи смотришь?
Я постоянно смотрю футбол. Ещё люблю посмотреть видео про науку с сайта http://postnauka.ru/
Есть выпускники вузов, которые ещё только приглядываются к различным профессиям. Чем их может привлечь разработка ядра C3D?
Думаю, что у всех есть свои интересы. Лично меня всегда привлекала возможность решения сложных математических задач.
Ядро C3D может конкурировать с зарубежными ядрами?
Не «может», а «обязано». В рабочем процессе должны присутствовать здоровые амбиции. Мне всегда хочется делать что-то лучше всех в мире, ну или хотя бы на уровне лучших. Не вижу никакого смысла делать поделки.
Почему разработчикам инженерного софтвера следует использовать C3D?
Мне хочется верить, что ядро C3D быстрое, имеет разнообразный функционал, удобно в использовании, имеет очень хорошую поддержку, т.е. стоит в одном ряду с лучшими ядрами в мире. А дальше уже дело вкуса каждого. Но я абсолютно точно уверен, что те, кто использует C3D в своей работе – не прогадали в своём выборе.
Как параметризация может изменить облик современной трёхмерной системы моделирования?
Она его уже изменила. Как и всё, что делается в области САПР, параметризация упростила выполнение ряда задач для проектировщиков и инженеров, избавила их от ненужной рутины, а также увеличила ряд возможностей. Мне хочется, чтобы в будущем функционал параметризации различных поверхностей и кривых в 3D стал столь же богат и разнообразен, как функционал параметризации кривых в 2D. Это может дать много новых возможностей инженерам.
Какие тренды наметились в области САПР?
Судя по публикациям, сейчас очень много пишут о прямом вариационном моделировании и гибридном моделировании. То есть речь идёт о более глубокой связи моделирования, основанного на истории построения 3D-модели, с моделированием без истории построения. Но пока, насколько я понимаю, «серебряной пули» нет, так как ещё не нашли такого решения, которое бы позволило идеально скрестить эти две методологии проектирования. Но это задача уровня САПР, и над её решением должны думать люди, которые занимаются CAD-системами. Уже от них к «ядерщикам» должны приходить задачи, которые требуется решить, чтобы в CAD-системе можно было осуществить задуманное. Ну, а наш собственные тренд – это как можно больше общаться с заказчиками и узнавать, что им конкретно нужно, чтобы облегчить творческий процесс моделирования и уменьшить долю труда, уходящую на написание кода.


***

ЧТО ТАКОЕ C3D?
Подробнее о технологиях C3D читайте в специальном разделе на сайте C3D Labs

Все права защищены. © 2004-2024 Группа компаний «ЛЕДАС»

Перепечатка материалов сайта допускается с согласия редакции, ссылка на isicad.ru обязательна.
Вы можете обратиться к нам по адресу info@isicad.ru.