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

Статьи

23 мая 2013

Российское 3D-ядро захабрено

Николай СнытниковНиколай Снытников

От редакции isicad.ru: Николай Снытников — один из ведущих технологических специалистов и руководителей компании ЛЕДАС. В течение семи лет, в качестве разработчика и менеджера, принимал участие в выполнении крупных наукоемких проектов по заказу компании Dassault Systèmes. Руководитель ЛЕДАС-части проекта RGK. Специалист в области параллельных вычислений и геометрического моделирования, кандидат физико-математических наук. Активный автор портала isicad.ru.
Статья о Российском 3D-ядре (см. часть 1 и часть 2) исходно предназначалась для публикации в качестве сугубо технического материала для isicad.ru/isicad.net. Авторам было приятно узнать, что реферат статьи, благодаря одному из активных читателей, был опубликован на популярном Интернет-ресурсе habrahabr.ru, аудитория которого (по характеристике самого издания) — «прогрессивно мыслящие люди, интересующиеся будущим IT-рынка в целом и Интернет-экономики, в частности». Участники проекта RGK весьма заинтересованы в профессиональной дискуссии на тему обсуждаемой статьи, поэтому мы постараемся ответить на некоторые вопросы, поднятые на habrahabr, и хотели бы это обсуждение продолжить.

Изучив содержание дискуссии и сопоставив ее с данными Google Analytics относительно isicad.ru, мы обнаружили, что читатели habrahabr.ru (с которого на обсуждаемые статьи вышло несколько тысяч человек) смогли уделить чтению 25-ти страничной технологической статьи в среднем не более 2 минут — наверняка, из-за чрезвычайной занятости в своих проектах. Вероятно, этим объясняется, что часть вопросов и комментариев сформулирована в остро модном сегодня стиле безапелляционного и не вполне по-русски сформулированного анонимного выкрика из зала. Поэтому ниже вопросы были аккуратно переформулированы так, чтобы их смысл остался не искаженным, но при этом они стали бы удовлетворять требованиям цивилизованной дискуссии, принятой среди профессионалов.

Думаю, есть смысл еще раз в двух словах обозначить, что же такое ядро геометрического моделирования.

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

Является ли ядро графической прикладной программой? Можно ли популярные графические движки для отображения трехмерных объектов считать «Российским 3D ядром»?
Геометрическое ядро не является графической программой, в его функции не входит задача визуализации модели. Одна из многочисленных функций ядра — это тесселляция, построение полигонального сеточного представления модели, которое затем передается компоненте, ответственной за визуализацию. С точки зрения набора математических методов эти задачи имеют много общего. Поэтому неудивительно, что сторонний наблюдатель их путает.

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

Почему на скриншоте, демонстрирующим работу ядра в ОС Linux, кнопка закрытия окна очень напоминает стандартную кнопку Windows? Это что, Wine? Действительно ли ядро является кроссплатформенным?
Все скриншоты, которые показаны в статье, сделаны в специальном тестовом демо-приложении, сконструированном на основе геометрического ядра, библиотеки Qt и сторонней графической подсистемы (на скриншоте можно увидеть стандартный многодокументный интерфейс Qt, запущенный на Linux).

Кроссплатформенность самого ядра (написанного на С++) обеспечивается использованием соответствующих библиотек (OpenMP и OpenCL), правильной работой с системными функциями (прежде всего — с файловой системой) и грамотным кодированием.

Обязательно ли в России для реализации крупного программного проекта прибегать к помощи государства?
Совершенно не обязательно: об этом свидетельствует успешный опыт ряда отечественных вендоров САПР, прежде всего АСКОНа и Топ Систем. Можно упомянуть и компанию ЛЕДАС, с 1999 года работающую на рынке математических компонент для САПР. За это время она выполнила ряд ключевых проектов по заказу ведущих поставщиков CAD/CAM, в том числе французской компании Dassault Systèmes (входит в десятку крупнейших мировых поставщиков ПО). Кроме того, компании ЛЕДАС удалось вывести на мировой рынок собственные продукты LGS2D и LGS3D (геометрический решатель ограничений), которые составили конкуренцию продуктам легендарной британской компании D-Cubed (в данный момент D-Cubed является подразделением Siemens PLM Software).

Другое дело, что разработка геометрического ядра в предельно сжатые сроки требует огромных инвестиций, которые могут позволить себе только очень крупные корпорации или государство. Например, общая трудоемкость разработки Parasolid оценивается в 850 человеко-лет (ядро начали разрабатывать в Кембридже в 1985 году). Аналогичные оценки, скорее всего, верны и для других геометрических ядер — C3D, ACIS, CGM, разрабатываемых с середины 90-х годов.

Какова будет судьба RGK? Связана ли она с применениями в каких-то определенных отраслях промышленности? Будет ли открыт исходный код геометрического ядра, какая лицензия будет при этом использоваться?
На все подобные вопросы, естественным образом, может ответить только заказчик — государство. Естественно, нам небезразлично дальнейшее развитие проекта, и мы сделаем всё возможное, чтобы он получил достойное продолжение и применение.

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

Почему государство не заинтересовалось ядром C3D (производства российской компании АСКОН), которое доступно для лицензирования сторонними разработчиками? Не выгодней ли было заказать проект компании АСКОН?
Мы — исполнители проекта и не беремся отвечать от имени заказчика — государства. Но два замечания сделать можем.

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

Во-вторых, в проекте RGK могли принять участие все желающие (не претендующие на право собственности на разрабатываемый продукт). На уровне исполнителей проекта никаких напряжений и, тем более, конфликтов, не существует. В частности, компания ЛЕДАС, один из разработчиков RGK, является также VAR-реселлером ядра C3D. Все заинтересованные контрагенты не усматривают каких-либо проблем в этой ситуации.

Вообще, мы считаем, что оба проекта C3D и RGK вносят важный вклад в развитие отечественных технологий и рынка инженерного ПО, и привлекают большое и растущее внимание глобального рынка. На начинающемся через неделю форуме COFES Россия будут подробно представлены обе разработки. Важно, что это будет сделано в присутствии ряда крупнейших международных авторитетов как раз в области геометрических ядер, например, Кена Версприлла (Изобретатель NURBS: о прошлом, настоящем и будущем САПР ), Эвана Яреса («SPATIAL, ACIS, CGM и будущее геометрических ядер» ) и др., а также — заинтересованных представителей компании DS Spatial (разработчика геометрического ядра ACIS).

Зачем изобретать очередной, 620-й, велосипед? В чём преимущества данной системы перед известными аналогами (ACIS, Parasolid, CGM и др.)?
«Велосипедов», представляющих коммерческую и технологическую ценность, за последние 30 лет было изобретено не так много — около 10.

Наивно полагать, что существующие ядра (сложные наукоемкие программные продукты, разрабатывавшиеся в течение 15-30 лет и активно использующиеся в индустрии), могут быть легко улучшены. Для них характерно множество проблем — от устаревшей архитектуры, не соответствующей текущим потребностям, и необходимости поддерживать обратную совместимость с созданными цифровыми моделями (возрастом в десятки лет), вплоть до отсутствия разработчиков, обладающих знаниями о том, как работают реализованные много лет назад алгоритмы.

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

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

Поддержка трехмерных сеток (meshes) в новом движке подразумевает геометрические элементы с кривыми границами (полиномы высоких порядков)?
Представление трехмерной модели в ядре основано на B-Rep (граничном представлении), где геометрическими элементами являются канонические объекты или NURBS. Полиномы высоких порядков — это один из частных случаев NURBS.

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


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

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