01.02.2016

История одного ядра от Анны Ладиловой

«Разработка C3D на порядок интереснее, чем написание кода известных алгоритмов»

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

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

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

— Анна, я знаю, что ты родом из Нижнего Новгорода. Скажи, как ты попала в Коломну?

— Я искала работу, и единственной вакансией, которая мне подходила на тот момент, оказалась работа в Коломне над геометрическим ядром. Я с радостью согласилась на предложение от АСКОН.

— Чем приходилось занималась до этого?

— После окончания механико-математического факультета Нижегородского государственного университета им. Н.И. Лобачевского в 2007 году и получения степени магистра математики, я защитила кандидатскую диссертацию в 2010 году. Учась на последнем курсе магистратуры, я начала работать преподавателем на мех-мате ННГУ, затем — на кафедре информационных технологий Архитектурно-строительного университета, откуда после защиты диссертации перешла в Нижегородский государственный технический университет им. Р.Е. Алексеева на кафедру Прикладной математики.

— В разработку ядра ты попала в 2012 году. Набор сотрудников осуществлялся в команду C3D Labs или всё-таки изначально речь шла об АСКОН?

— Я устраивалась в математическое подразделение АСКОН-Коломна. Мне сообщили, что нужно будет заниматься поддержкой функциональности геометрического ядра.

— Это стало основным аргументом, который тебя заинтересовал при трудоустройстве?

— Конечно, меня интересовала работа в той сфере, которая была бы непосредственно связана с математикой. Найти работу в Нижнем (прим. авт. Нижнем Новгороде), связанную именно с программированием — это не проблема, но, если не считать образовательные учреждения, математикой там не занимаются.

— И вот ты переехала в Коломну. Поделись впечатлениями от города. Скучаешь по Нижнему Новгороду?

— Практически нет. В Коломне мне очень нравится! Это маленький и спокойный город. До работы идти 20 минут пешком, в отличие от Нижнего, где, понятно, пробки и т.д.

— Поговорим немного о работе. С какими задачами чаще всего приходится сталкиваться?

— Сперва мне пришлось заниматься моделированием поверхностей. Это так называемая «поверхность по сети кривых». Была проблема в том, что не удовлетворялись для неё некоторые сопряжения. Точнее, они работали не совсем правильно. В итоге мне удалось это исправить. Второй ключевой момент — это операция скругления ребер и граней тел. Там задач достаточно, и над их решением я сейчас работаю.


Из-за некорректного выполнения сопряжений в предыдущих версиях C3D ручка была угловатой

— Расскажи немного о проекте на C Sharp.

— Ядро C3D представляет собой библиотеку, написанную на C++. В определённый момент компании потребовалась аналогичная библиотека на C#, поэтому встала задача адаптировать ее под платформу .NET Framework. В результате было принято решение написать обертку библиотеки на языке C++/CLI — расширении C++ под .NET. Учитывая, что оба языка: C# и C++/CLI — разработаны под .NET, то в коде на языке C# можно без проблем использовать объекты и методы библиотеки, поддерживаемые оберткой. Сама обертка представляет собой набор объектов и их методов, которые внутри себя содержат вызовы библиотечных методов и объекты библиотеки. Ясно, что задача могла быть реализована в более-менее короткие сроки, только в случае автоматического создания кода обертки. Поэтому было принято решение написать специальный генератор кода. В качестве языка программирования был выбран Python.

— Раньше тебе приходилось работать с Python?

— Мне пришлось оперативно его изучить.

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

— На самом деле нам преподавали С и C++ на первых двух курсах. Предполагалось, что мы должны знать численные методы в некотором объёме. Уже на 4 курсе моего обучения факультет начал сотрудничать с Нижегородским институтом информационных технологий (НИИТ), на базе которого большинству заинтересованных студентов мех-мата позволяли бесплатно пройти курсы по программированию на C++ и изучить основы UNIX. Разумеется, я оказалась в числе слушателей, и через год получила соответствующий сертификат. Вообще, если человек знает хотя бы один язык программирования, то другой изучить ему будет уже гораздо проще. Другое дело, что в каждом языке имеются свои нюансы. Поэтому я пока не могу сказать, что уже стала хорошим программистом на Python. Но нашим шведским заказчикам работать с обёрткой нравится.

— Вот интересный момент — что больше всего нравится в рабочем процессе?

— Мне нравится, когда задача начинает получаться. Ведь не всегда всё сразу получается с первого раза. Иногда длительный период времени задача никак не идёт и приходится пробовать несколько разных вариантов. Когда ни один из них не подходит, то это начинает угнетать. Но вот ты находишь решение, и оно работает хорошо. Сразу появляется энтузиазм, процесс разработки начинает идти ещё быстрей, да и просто приятно увидеть результат своего труда.

— Кто помогает с идеями, когда своих мыслей для реализации уже не остаётся?

— Приходится искать источники из интернета, какие-то статьи, в том числе иностранных авторов, в открытом доступе, чтобы с ними можно было ознакомиться. Англоязычных текстов в C3D Labs мы не боимся. Положение обязывает.

— Общаться напрямую с иностранными заказчиками тоже приходится?

— Не слишком часто, но приходится. Вроде бы меня понимают.


Разработанный Анной Ладиловой абсолютно новый тип скругления в C3D (скругление граней)

— Вернёмся к научной деятельности. Ты — кандидат физико-математических наук и в 2010 году получила ученую степень. На какую тему была написана твоя работа?

— Кандидатскую я писала по специальности «Математическая логика, алгебра и теория чисел», а название диссертации: «Деформации исключительных простых алгебр Ли» — чисто теоретическая работа, которая связана с некоторыми математическими объектами, изучением их свойств и построением новых. Сейчас большинство решаемых задач в математике — это задачи классификации. Классификационные результаты об алгебрах Ли используются в физике, например, в квантовой теории поля. Вообще, на мой взгляд, вся физика сводится к построению некоторых математических моделей и их изучению. Поэтому, когда физики в своей модели обнаруживают какой-то новый математический объект, для них важно знать, что это за объект, чтобы определить его свойства.

— Продолжаешь ли ты заниматься наукой и планируешь ли писать докторскую диссертацию?

— Посмотрим. Последняя моя статья вышла в 2015 году, и она также была связана с алгебрами Ли.

— Довольно часто, приезжая в коломенский офис АСКОН, я вижу тебя «в рыцарских доспехах верхом на железном коне». Давно передвигаешься по городу на велосипеде?

— С тех пор, как приехала в Коломну.

— Почему не выберешь личный автомобиль или общественный транспорт?

— Автомобиль в маленьком городе, когда до работы идти 20 минут пешком, — это несерьезно, а общественный транспорт в Коломне не совсем удобный, на мой взгляд. Получается, что пешком идти немногим дольше, чем ехать на трамвае. Остается велосипед.

— Зимой тоже катаешься?

— Да, у меня шипованная резина. Стараюсь ездить аккуратно.


Анна Ладилова по пути на работу в C3D Labs

— Какое твое любимое увлечение? Чем обычно занимаешься в свободное время?

— У меня практически нет свободного времени. Часто после работы занимаюсь со школьниками и студентами математикой, регулярно участвую в специализированных научных семинарах на базе коломенского педагогического университета: скучать не приходится. Со студенческих лет мне нравится заниматься задачами системного администрирования, как следствие, являюсь поклонником операционной системы FreeBSD, слежу за ее развитием, новинками, технологиями. Вообще, почти все мои увлечения связаны с компьютерами, математикой и чтением книг.

— Читаешь преимущественно научную и техническую литературу или художественную тоже?

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

— А что насчёт твоего увлечения городецкой росписью?

— Это известный промысел Нижегородской области. У меня отец хорошо рисует, и я ещё в школьные времена закончила курсы по росписи. В основном работаю с разделочными досками, хлебницами и т.д.

— Есть выпускники вузов, которые ещё только приглядываются к профессии. Чем их может заинтересовать разработка геометрического ядра?

— Если говорить о выпускниках технических и естественно-научных специальностей, которые не хотят через год после выпуска забыть то, чему их учили, которые не боятся трудностей, то эта работа должна заинтересовать. Разработка ядра — это процесс на порядок интереснее, чем просто написание известного кода известных алгоритмов. Очень часто, несмотря на кажущуюся простоту, здесь возникают сложные и нестандартные математические задачи. Есть направление для развития, полета мысли, самореализации. Хотя очень важен интерес к процессу и способность нестандартно мыслить, когда это нужно.

— На твой взгляд, российское геометрическое ядро C3D может конкурировать с западными ядрами?

— Конечно, перспективы есть! Наше преимущество в том, что знания, которые даёт отечественная математическая школа, позволяют создавать более быстрые и продвинутые алгоритмы.

ЧТО ТАКОЕ C3D?

Подробнее о геометрическом ядре C3D читайте в специальном разделе на нашем сайте: c3dlabs.com/ru/products/c3d-kernel/


Google+