В этом году геометрическому ядру C3D исполняется 20 лет. Ровно столько лет назад основатели компании АСКОН пришли к единому мнению о необходимости создания собственной системы трехмерного моделирования КОМПАС-3D. В 1996 году была создана группа, которой было поручено написание программного обеспечения для работы с точной 3D-геометрией – инструмента, который бы не уступал по удобству использования и функциональности зарубежным аналогам. С этих дней начинается отсчёт истории «коломенского» геометрического ядра. На протяжении многих лет ядро постоянно развивалось и дорабатывалось: появлялись новые методы моделирования, разрабатывались алгоритмы вычислений, создавались дополнительные модули – параметрический решатель, конвертер данных, модуль визуализации. И за всеми этими изменениями всегда стояли конкретные люди - разработчики геометрического ядра, обретшего со временем имя – C3D.
Сегодня всё больше людей интересуются геометрическим моделированием, многие следят за тем, кто и как разрабатывает российское коммерческое 3D-ядро. Поэтому мы решили подготовить серию юбилейных интервью с нашей командой разработки. В первых выпусках мы общались с сотрудниками C3D Labs – Анной Ладиловой и Александром Алахвердянцем. Затем мы взяли интервью у Андрея Пенкина. В новом же, четвёртом, интервью мы решили осветить разработку конвертеров в ядре C3D и поэтому вывели на откровенную беседу Александра Спивакова, отвечающего за разработку C3D Converter в коломенском офисе компании. Голос «за кадром» принадлежит маркетинг-менеджеру Аркадию Камневу.
- Александр, откуда ты родом? Где учился и вырос?
- Я родом из города Горького. Жил там до 26 лет, учился в Нижегородском государственном университете им. Н.И. Лобачевского на факультете с зубодробительным названием ВШОПФ – Высшая школа общей и прикладной физики. Это такой факультет для «маньяков» с набором всего 25 человек. Обычно оттуда активно выгоняют разгильдяев, но вот меня почему-то оставили. После шести лет основного обучения было ещё три года аспирантуры в Институте физики микроструктур Российской академии наук (ИФМ РАН), но защиты не произошло. Итого я покинул стены вуза в 2007 году, а уже в 2010 году переехал жить и работать в Коломну.
- На какой специальности ты обучался в университете?
- Мое первое направление обучения – это спектроскопия газоразрядной плазмы. Вторая специальность связана с твёрдым телом, с полупроводниками. Получение сразу двух специальностей обусловлено спецификой нашего факультета, где после 4 курса ты обязан менять тему исследований. Эта практика уходит корнями в историю факультета как кузницы кадров для Института прикладной физики РАН (ИПФ РАН) и его дочерней организации ИФМ РАН. Образовательный процесс на ВШОПФе так устроен, что на 3 курсе обучения студент выбирает себе научного руководителя, который постепенно включает его в реальный научно-практический процесс. Затем студент точно также меняет тему, приходит в новую лабораторию и начинает заниматься конкретными задачами, не забывая при этом о процессе обучения: лекциях, практических занятиях, экзаменах.
- Что ты можешь рассказать о своём трудовом опыте до устройства в АСКОН?
- В школьные годы я подрабатывал на Горьковском автомобильном заводе благодаря тому, что предприятие организовывало летом трудовое времяпрепровождение для детей сотрудников. Обычно ребята поливали цветы, следили за клумбами, пропалывали землю и т.д. Но мне повезло, и после 9 класса школы я попал в отдел, где заводские специалисты работали на компьютерах в системе AutoCAD. Тогда я в первые узнал, что такое «САПР». Два лета подряд я выполнял черновую работу по созданию планов цехов и обучению практикантов основам работы в CAD-системе. Уже в студенческие времена я работал летом на стройках разнорабочим, электромонтажником. Ну, а первая запись в трудовой книжке у меня появилась только после 3 курса института, когда я подрабатывал системным администратором на велозаводе.
- Было бы интересно узнать о твоей первой работе по специальности. Где и чем приходилось заниматься?
- Моим первым местом работы стал ИПФ РАН. Так уж совпало, что там я занимался и своими первыми научными исследованиями, общей тематикой которых была визуализация СВЧ-излучения в газоразрядной плазме. Что это такое? С помощью электрического разряда в газе создаётся плазма с заданными характеристиками, а затем на неё светят СВЧ-излучением. В результате получается визуальный образ, который можно запечатлеть на камеру оптического или инфракрасного диапазона. Преимущество данного подхода состоит в том, что при помощи достаточно простых средств можно решать задачи, для которых обычно требуются гораздо более серьёзные приборы. Например, можно экспериментировать с нагревом какого-нибудь материала, но тогда вряд ли получится отследить динамику процесса, так как нагрев протекает слишком медленно. Другой вариант – поставить дорогие СВЧ-диоды, но тогда появляются дополнительные риски: такие диоды легко спалить. В нашем же случае использование газоразрядной плазмы как своеобразного преобразователя позволяло проводить исследования с помощью такого сравнительно дешёвого инструмента, как камера. Надо сказать, что она была изготовлена по специальному заказу, так как нам требовался особый режим работы фотоприёмной матрицы. В моих экспериментах в качестве регистратора излучения применялся фотоэлектронный умножитель.
Исследуемый образец и модуль экспериментальной установки, предназначенный для спектральных исследований
- Где это может быть применено на практике?
- Первое, что приходит на ум – это проблема зрения в различных диапазонах, в данном случае – сантиметровом и миллиметровом. То есть берём непрозрачный для глаз материал и при помощи СВЧ-излучения просвечиваем его, благодаря чему детектируем металлические предметы или любой другой материал, который для микроволнового излучения непрозрачен. В этом месте стоит сказать дежурную фразу про поиск оружия, взрывчатки, наркотиков и диагностику заболеваний. Но вы итак догадались, я думаю. Ещё одно применение – это изучение выходных характеристик мощных СВЧ-приборов, например, с целью их настройки. ИПФ РАН ведёт и другие научные исследования. К ним относится создание генераторов диапазона СВЧ. И вот здесь вырисовывается заманчивая перспектива: в числе «know how» иметь собственный уникальный диагностический стенд!
- Расскажи о своей учёбе в аспирантуре.
- С аспирантурой связан мой первый опыт практического программирования. В те годы ИФМ РАН закупил много экспериментального оборудования: из разных блоков как из конструктора собирались установки для исследования фемто- и наносекундных процессов. Одна из установок в базовом варианте состояла из настраиваемого по длине волны лазера и кристалла-поляризатора, который позволял регулировать мощность излучения. Вдобавок к ним прилагался очень навороченный осциллограф, который работал под управлением операционной системы. Осциллограммы сохранялись в файлы на диске. Отдельный компьютер управлял работой спектрального прибора, а впоследствии также лазера и поляризатора. Изначально процесс измерения выглядел следующим образом: при помощи кнопок на пульте мы выставляли значение поляризатора и записывали значение в журнал (длина волны лазера обычно оставалась неизменной), запускали осциллограф и с клавиатуры вводили в него имя файла для сохранения спектрограммы. В журнале измерений получались такие длинные «простыни», время записи которых иногда превышало время работы оператора. С одобрения коллег я решил автоматизировать этот процесс. Программа была написана на C++. Она позволяла увязать все действия в единый контур измерения, чтобы по истечении заданного промежутка времени автоматически сохранялся файл, но не на осциллографе, а на управляющем компьютере. При этом продолжал крутиться поляризатор и всё работало синхронно. Другая моя инициатива, которую старшие товарищи восприняли поначалу со скепсисом – это наглядное отображение результатов в виде трёхмерной картинки, по сути поверхности, с которой дальше уже можно было проводить различные операции, например, строить сечения. В итоге получались либо мгновенные спектры, либо осциллограммы на заданной длине волны. Для обработки данных это оказалось очень удобно, а время предварительного анализа сократилось с суток до минут.
- Что было потом?
- После окончания аспирантуры у меня появилась альтернатива: идти работать программистом в компанию МЕРА, где я впервые познакомился с многопоточными вычислениями в Windows во время студенческой стажировки на 5 курсе вуза, или попробовать себя ещё где-нибудь. Поскольку я уже черпнул немного работы с железом, то я захотел пойти куда-нибудь поближе к инженерному делу. Но так уж вышло, что в Нижнем Новгороде в основном занимаются телекоммуникациями, не считая подразделения Intel, где пишут компиляторы и различные средства ускорения, поэтому ближе всего по моим запросам оказалась работа в Коломне.
- Чем ты занимался в АСКОН, когда только пришёл в компанию?
- Изначально мне приглянулась работа над проектом «КОМПАС-3D», но почти сразу мне посоветовали пойти в математическое подразделение, и я согласился. На испытательном сроке я разрабатывал функции построения поверхностей по 4 кривым и по сети кривых. Моих будущих коллег интересовало, насколько хорошо я справлюсь с этим заданием. Уже после испытательного срока мне поручили работу над конвертерами, чем я до сих пор и занимаюсь.
- Какие можно выделить особенности при работе с конвертерами?
- Главная особенность заключается в том, что в конвертерах нельзя отклонить входные данные. Что пришло из файла – нужно как-то обработать, потому что часто возникают синтаксические ошибки, ошибки и особенности топологии, а также много других случаев, специфичных для разных моделеров и процессоров файлов обменных форматов. Всё это нужно определённым образом анализировать и выдавать конечный результат, либо принимать решение, что результата достичь невозможно и уведомлять об этом. Мне кажется, это и есть основная специфика при работе с конвертерами, потому что при работе с операциями всегда есть возможность вывести пользователю предупреждающее или информирующее сообщение. В случае с конвертерами сообщение вряд ли изменит входные данные. Ещё одна особенность состоит в том, что при пересчёте 3D-модели в архитектуру формата *.c3d стандартные алгоритмы геометрического ядра C3D не всегда работают, поэтому некоторые из них, в частности проецирование, написаны специально для конвертеров. Это была одна из первых проблем, с которой я столкнулся при работе с ядром и над решением которой работал мой коллега Владимир Латышев (прим. математик-программист в C3D Labs).
- Чем тебе чаще всего приходится заниматься в C3D Labs?
- Интересный вопрос! В первую очередь – думать. Значительная часть рабочего времени у меня уходит на чтение документации и различных пользовательских руководств. Это связано с тем, что при импорте и экспорте данных из форматов STEP, IGES, Parasolid (X_T, X_B), ACIS (SAT), VRML и STL необходимо строго следовать существующим стандартам, в первую очередь ISO. Эти форматы являются общедоступными, документация на них представлена на английском языке с большим количеством иллюстративного материала, и при работе с ней проблем, как правило, не возникает. Остальное время у меня уходит на исправление ошибок и написание нового функционала в C3D Converter.
- Как много запросов приходит в техническую поддержку C3D Labs по линии конвертеров?
- Обычно это несколько запросов в месяц. Раньше они приходили в базу ошибок, а теперь запросы сразу попадают в Service Desk. Если говорить о тестировании нового функционала, то в предыдущие годы нам сильно помогал КОМПАС-3D, но сейчас это всё чаще наши собственные инициативные разработки. Поэтому и тестировать новые функции конвертеров приходится тоже нам самим.
- Совсем скоро в C3D Converter появятся новые обменные форматы JT и STEP 242. Что в них такого привлекательного?
- Обменные форматы постоянно развиваются, отвечая на запросы времени. При появлении программных продуктов с новым функционалом возникают и новые форматы. Старые форматы, соответственно, забываются и уходят в прошлое. В результате такой естественной эволюции обменные форматы STEP и JT научились хранить информацию о производстве изделия (PMI). Поэтому мы решили научить C3D Converter работать с этими данными. Причем, ранее уже в конвертерах был реализован формат STEP с поддержкой PMI. Но разработчики данного формата решили, что PMI недостаточно хорошо поддерживается протоколами 203 и 214, и поэтому разработали новый протокол 242. Его основная задача – гармонизировать предыдущие два протокола так, чтобы не было разночтений, а программистам было проще обмениваться данными. Мне показалась наиболее интересной такая фича STEP 242, как возможность работы с композитными материалами. Протокол умеет записывать и считывать особенности укладки слоёв, компаунда и т.д. Также STEP 242 позволяет записывать типы соединения: резьбовое, клеевое, сварное, паяное, заклепочное. На сегодняшний день часть этого протокола, касающаяся передачи информации о форме 3D-модели, уже реализована в C3D Converter.
Что же касается формата JT, то это – бинарный формат, поэтому он должен читаться быстро. JT поддерживает компрессию и послойную загрузку, что позволяет отдельно посчитать триангуляцию 3D-модели, какие-то другие характеристики и быстро показать их на экране. Если не требуется вносить изменения в 3D-модель, то такая схема записи файла оказывается очень удобной. Но если приходится что-то менять, то тогда заново пересчитываются триангуляция и B-Rep представление 3D-модели, а также связи между ними. Видимо, разработчики формата JT определили, что это не настолько частая операция, как просмотр данных, и решили сэкономить на этом вычислительный ресурс. Если сравнивать с другими форматами, то они обычно передают чистый B-Rep, по которому затем вычисляется вторичное представление 3D-модели для её отображения на экране, расчёта МЦХ и т.д. При открытии таких файлов каждый раз тратятся большие ресурсы операционной системы.
- Сравним два бинарных формата X_B и JT. В чём их сходство и различие?
- X_B является B-Rep форматом, а JT содержит как триангуляцию с уровнями детализации (Levels of Detail, LOD), так и B-Rep данные, которые могут быть представлены в формате X_T или в собственном сплайновом представлении.
- Некоторые форматы геометрических ядер не умеют хранить параметризацию. Можешь объяснить, почему?
- Параметризация – это понятие из математики, а с точки зрения САПР лучше давать терминологию именно в инженерных терминах, тогда разработчики смогут точно реализовать задуманное. Другое дело, что параметрические ядра не всегда совпадают с геометрическими и поэтому неудивительно, что для геометрических ядер та или иная параметризация может попусту отсутствовать в обменном файле.
- И всё-таки сейчас имеется проблема: геометрию 3D-модели мы не можем хранить в обменных форматах вместе с историей её построения. С чем это связано?
- История построения 3D-модели – это слишком «сапрозависимое» понятие. Граничное представление (B-Rep) в этом смысле передаёт информацию о 3D-модели гораздо более стабильно от версии к версии программного обеспечения, в котором эта модель была создана. Но историю передать, в принципе, тоже можно. Было бы желание! Хотя по факту оказывается, что это – не панацея. Давайте просто попробуем представить: мы передаём B-Rep представление 3D-модели с историей её построения, наложенным плоскогранным вторичным представлением, да ещё и с рассчитанными уровнями детализации – всё это нужно каким-то образом синхронизировать. Получается сложнейшая вычислительная задача с очень непростой системой для отслеживания обратных связей. Обслуживать такую махину готов далеко не каждый разработчик программного обеспечения. Я думаю, что это и есть ответ на поставленный вопрос.
- С кем из коллег чаще всего приходится взаимодействовать по рабочим вопросам?
- Больше всего я общаюсь с Юрием Козулиным. Он ведёт Service Desk, к которому я был недавно подключен, и ещё курирует вопросы общего характера по C3D Modeler. Юра поясняет мне, что из функционала геометрического ядра C3D я могу использовать в своей работе над конвертерами и какие при этом ограничения будут наложены. Что касается новых функций и документации, то здесь я очень часто контактирую с Николаем Николаевичем Головановым как с руководителем разработки C3D Labs. Будущий облик API C3D – это очень ответственный вопрос, как ни крути.
- Что тебе больше всего нравится в рабочем процессе?
- Мне очень нравится наличие нескольких горизонтов работ. С одной стороны, всегда видно, куда идти и как будет выглядеть система в будущем. Для меня это такая своеобразная программа максимум – то, к чему я должен стремиться. А уже в среднесрочной перспективе идёт самостоятельное планирование работ. Из того, чем я буду заниматься в ближайшее время – это многопоточность. Ведь чем в этой области хороши конвертеры? Они представляют собой отличный полигон для распараллеливания кода! Именно поэтому самые первые результаты в ядре C3D по многопоточным вычислениям были достигнуты именно на конвертерах. Максимальный эффект от ускорения здесь достигается при большом количестве крупных блоков. Например, когда приходит большая и сложная многокомпонентная деталь, то чаще всего оказывается, что каждый компонент – это изолированный набор данных. При обработке таких наборов и получается эффективное распараллеливание.
Ускорение импорта данных из форматов STEP и Parasolid за счёт использования многопоточности в C3D Converter (столбцы = тестовые модели, на которых производилось сравнение)
- Откуда ты черпаешь идеи при разработке C3D Converter?
- Мне помогает своеобразное представление о красоте: где-то нужно унифицировать код, в другом месте – создать свои объекты; что-то можно взять под полный контроль или же отдать пользователю на откуп. Так формируется облик системы, который напоминает тебе, как конвертеры должны выглядеть в идеале. Ещё очень важно иметь широкий кругозор. Его грамотное применение сильно помогает в любой работе.
- Какие навыки ты уже успел приобрести в АСКОН?
- Когда я только пришёл в компанию, мне пришлось по-новому взглянуть на организацию рабочего процесса при программировании реальных сложных систем. Ведь если в ИФМ РАН я сам придумывал архитектуру, отказывался от предыдущих версий и переписывал блоки старого кода, то в программном обеспечении C3D Labs существовала уже готовая система, в которой не должно было накапливаться большого числа ошибок. Поначалу мне доставалось от всех и от Николая Николаевича в первую очередь. Но потом я исправился.
- Расскажи о своих хобби.
- В свободное время я занимаюсь туризмом и веду блог в ЖЖ. Поводом его начать послужило желание разобраться с таким явлением, как авторская песня. Меня давно интересовал вопрос, что же мы поём у костра, как сложилась такая традиция, кто это всё придумал, поддерживает и развивает? Мне очень нравится авторская песня, но это не значит, что я поддерживаю всё, что с ней связано. Поэтому я пытаюсь разобраться с некоторыми неоднозначными моментами. Например, у Булата Окуджавы непростое творчество, но нужно отдать ему должное за то, что он не оскоромился привнесением элементов блатной романтики в формирующийся жанр. В отличие, например, от Александра Галича, Александра Городницкого, и, давайте будем откровенны, Владимира Высоцкого. С другой стороны, в песнях Окуджавы подчёркнуто нет героя, и мне это не сильно нравится. В этом плане Высоцкий, который хотя и называет Окуджаву своим духовным отцом, но являет собой его полную противоположность, мне гораздо ближе с его героичностью в песнях, революционным настроем и мятежным духом. По большому счёту, вместо того, чтобы говорить, что хорошо и что плохо, уместнее признать соответствие песен тем или иным ситуациям и настроению. И уже от этого отталкиваться при выборе исполнителя.
- Ты сказал, что увлекаешься туризмом. Каким именно?
- С 2009 года я начал заниматься байдарочным туризмом на базе профкома ИФМ. Уже в Коломне я вступил в туристический клуб «Ковчег» и начал посещать Школу спортивного туризма. Я пришёл в этот клуб с хорошим байдарочным опытом, а многие ребята видели средства сплава впервые. Поэтому в течение осени и зимы нас натаскивали, периодически мы ходили в походы выходного дня, а в качестве зачёта нам устроили контрольный поход II категории сложности на катамаранах по Кавказу. В этот тур я ходил писателем. Художественный дневник похода выложен у меня в блоге и на клубном сайте. Вообще, у катамаранов есть своя специфика при походах по бурным рекам, в отличие от экспедиционного байдарочного туризма. Если по более или менее равнинным рекам Карелии или средней полосы России легко можно набрать 200 км маршрута, то по Кавказу приходится идти связками с постоянными переездами между реками. Ощущения совсем иные. На спокойной воде человек использует собственные силы для достижения цели, а на бурной воде нужно уметь использовать силу природы для решения поставленных задач, в частности энергию потока. Это очень трудно и интересно! А ещё можно проложить маршрут так, чтобы он включал в себя разные участки.
- Недавно ты женился на сотруднице коломенского офиса АСКОН. Как вы познакомились?
- Татьяна переехала в Коломну из курганского офиса АСКОН. Мы познакомились в офисе: я зашёл на кухню и увидел её, завязался разговор. Потом мы несколько раз случайно встречались вне рабочей атмосферы и оказалось, что у нас имеется общее увлечение велосипедами и ещё много других совместных интересов. В 2014 году мы сыграли с Таней свадьбу, это было за день до моего тридцатилетнего юбилея. А в прошлом году у нас родилась дочь Варвара.
- Тебе нравится жить в Коломне?
- Мне нравится, что в Коломне нет суеты большого города. С другой стороны, если вдруг захотелось какой-то активности, то Москва всегда рядом. Два часа на электричке или на авто, и ты уже окунаешься в городской ритм жизни с головой. Соседняя с нами Рязань тоже по-своему интересна: это хоть и большой, но всё-таки малоэтажный город. Одним из неоспоримых плюсов Коломны, на мой взгляд, является то, что здесь гораздо проще решить свои житейские задачи.
- Где ты проводишь свободное время?
- Пока была возможность, мы выбирались в театр или на концерт. Сейчас наиболее доступный вариант - выехать с семьей на природу, если получается, то с палатками. Хорошо, когда выезжаем с друзьями. Красивые места есть под Луховицами на Голубых озёрах, в Моногарово под Зарайском, недалеко от усадьбы Ф.М. Достоевского, а также в Константиново под Рязанью на малой Родине Сергея Есинина. Местные реки в плане сплава мне не особо нравятся. Та же Москва зимой совершенно не замерзает. Наверное, в ней течёт незамерзайка.
- Недавно мы открыли офис в Нижнем Новгороде. Как думаешь, какие перспективы у C3D Labs есть в родном для тебя городе?
- Это зависит от того, как компания расставит приоритеты. Если заниматься тем же, что Intel и МЕРА, то, наверное, перспективы будут не особо красочные. А вот если род деятельности будет ближе к инженерному делу, то имеются хорошие шансы преуспеть в данном направлении. Для переезжающих Нижний Новгород может быть интересен тем, что в этом городе имеется большое число вузов и школ, много культурных заведений и молодёжных «тусовочных» мест.
- Вернёмся к серии завершающих вопросов. Может ли C3D Toolkit конкурировать с западными решениями?
- Я считаю, что конвертеры – это тот продукт, который следует использовать как фичу ядра C3D. Модуль C3D Converter предоставляет разработчику приложений на ядре C3D более широкие возможности по обмену данными, чем любые другие ядра. В очень дальней перспективе я вижу появление на рынке сложных гибридных систем, когда делается некая заготовка 3D-модели с низким уровнем детализации. В последствии эта модель отдаётся на специализированные расчёты (динамику, электрику, прочность, усталость, собираемость и т.д.), при этом результаты оперативно прогоняются по различным инженерным системам. Как раз здесь конвертеры будут являться ключевыми элементами, обеспечивающими легкость интеграции различного ПО друг с другом.
Что же касается в целом ядра C3D, то большой вклад в нашу привлекательность вносит возможность разработчиков софта общаться с разработчиками решений, на котором этот софт пишется. Если для кого-то это важно при выборе ядра, то здесь компания C3D Labs готова предложить оптимальные условия. Чувствовать нужды каждого разработчика и быть с ним в плотном контакте – это то, что нам вполне по силам!
- Следишь ли ты за новостями в области САПР? Какие тренды можешь отметить?
- В мировой промышленности в последние годы невооружённым глазом наблюдается сильное движение в сторону 3D-прототипирования, кастомизации готовых изделий, оптимизации их структуры с целью экономии материала без ущерба прочности и другим характеристикам. Есть области производства, в которых критически важным показателем для изделия при заданных характеристиках является вес. Полагаю, что такие изделия будет непросто изготовить привычными на сегодняшний день методами. В эти направления развития САПР сейчас вкладываются очень большие средства, что свидетельствует о большой заинтересованности глобальных вендоров в подобных технологиях. Будем надеяться, что в скором времени часть проектов в данной сфере выстрелят и дадут большой стимул для развития рынка!
Если говорить о развитии конвертеров, то я бы отметил материаловедческое направление, так как оно ближе всего к производству. В частности, будут передаваться характеристики различных материалов, что позволит обеспечить данными гибридные инженерно-производные системы. А вот то, что касается сложных сборок – это отправится в область долгосрочного хранения. На сегодняшний день при помощи инженерного ПО мы можем создавать изделия в 3D, проводить для них конструкторскую документацию и спецификации, анализировать результаты сканирования, истории построения и сборки. Однажды мы сможем хранить всю эту информацию в одном файле, при этом использование открытых обменных форматов представляется мне наиболее предпочтительным.
- Чего в функциональном плане не хватает всем 3D-технологиям?
- Они слишком зависят от области приложения технологий. В машиностроении имеются одни проблемы, в строительстве – другие, у электриков – третьи, у биологов – четвёртые, и так далее. Прогнозирую появление в ближайшем будущем качественно новых технологических процессов, например, в области биотехнологий, когда соединяется живое тело с неживой 3D-моделью. Возможно даже появится «биологический САПР». Фантастика!
- Скажи пару напутственных слов математикам и программистам, которые ещё только собираются стать частью дружной команды разработки C3D Labs.
- Давайте покажем всем класс!
ЧТО ТАКОЕ C3D?
Подробнее о технологиях C3D читайте в специальном разделе на нашем сайте: