Исследование доступных опенсорсных ядер САПР и их применимости для данного проекта. В результате должен быть составлен документ, в рамках которого должны быть описаны наиболее подходящие для проекта движки, с обоснованием их ценности.
Критерий готовности
Получение от владельца проекта утверждения движка(ов) после ознакомления с документом.
Требования
движок должен быть легковесный и оптимизированный.
желаемый стек движка - rust, или доступное для rust апи.
движок должен иметь базовый набор редактирования трёхмерных объектов (аналог plasticity).
поддержка nurbs.
поддержка стандартных параметрических и полигональных форматов.
# Определение задачи
Исследование доступных опенсорсных ядер САПР и их применимости для данного проекта. В результате должен быть составлен документ, в рамках которого должны быть описаны наиболее подходящие для проекта движки, с обоснованием их ценности.
# Критерий готовности
Получение от владельца проекта утверждения движка(ов) после ознакомления с документом.
# Требования
1) движок должен быть легковесный и оптимизированный.
2) желаемый стек движка - rust, или доступное для rust апи.
3) движок должен иметь базовый набор редактирования трёхмерных объектов (аналог plasticity).
4) поддержка nurbs.
5) поддержка стандартных параметрических и полигональных форматов.
NotBigGhost
added this to the 2. Создание базового интерфейса и функционала САПР milestone 2026-09-10 15:26:13 +03:00
Результат — документ docs/cad_kernels.md (русский, стиль docs/rust_vs_cpp.md: разложенные факты и измеренные числа).
Длинный список и отсев. Открытые: Open CASCADE (OCCT), truck, Fornjot, SolveSpace, BRL-CAD, Rust-обвязки opencascade-rs/occt-sys; отдельно геометрия без моделирования (openNURBS, curvo, Manifold, CGAL) — с явной причиной отсева.
Закрытые ядра с бесплатной или некоммерческой лицензией — по уточнению владельца рамка шире, чем «опенсорс» в теле задачи: C3D Modeler, Parasolid (на нём построена названная в задаче Plasticity), 3D ACIS, CGM Modeler, Zoo Design API (проприетарное ядро на Rust с бесплатным тарифом). Обмен форматами (CAD Exchanger SDK, HOOPS Exchange, ODA) — только как дополнение к требованию 5.
Лицензионный фильтр отдельным разделом: бесплатно сейчас ≠ бесплатно в продукте. По каждому кандидату — что разрешает лицензия и что происходит при коммерциализации.
Практическая проверка финалистов: сборка в песочнице вне репозитория, замеры времени холодной сборки, веса зависимостей и артефакта. Таймбокс на OCCT — 40 минут; превышение само по себе результат («стоимость входа»).
Документ: требования → кандидаты двумя группами → сводная таблица «кандидат × требование» с колонкой лицензионного риска → измерения → рекомендация с запасным вариантом → риски и что придётся писать самим → источники.
Критерии готовности
Все пять требований задачи разобраны по каждому кандидату короткого списка.
По каждому закрытому ядру сказано, что разрешает бесплатная лицензия и что будет при коммерциализации.
Каждое утверждение о лицензии, статусе и возможностях — со ссылкой на источник.
Числа по финалистам измерены на этой машине; взятое из чужих источников помечено как таковое.
Однозначная рекомендация с обоснованием и названный запасной вариант.
Закрытие задачи — за владельцем: критерий готовности в теле задачи требует утверждения движка после ознакомления с документом, PR лишь доставляет документ.
Ветка:issue-5-cad-kernels от dev
Оговорка по процессу: получение лицензионных файлов для закрытых ядер (C3D, ACIS, Parasolid) требует регистрации от имени владельца — эти шаги будут выписаны в документе отдельным списком, а не выполнены мной.
## План выполнения
Результат — документ `docs/cad_kernels.md` (русский, стиль `docs/rust_vs_cpp.md`: разложенные факты и измеренные числа).
1. **Длинный список и отсев.** Открытые: Open CASCADE (OCCT), truck, Fornjot, SolveSpace, BRL-CAD, Rust-обвязки `opencascade-rs`/`occt-sys`; отдельно геометрия без моделирования (openNURBS, `curvo`, Manifold, CGAL) — с явной причиной отсева.
2. **Закрытые ядра с бесплатной или некоммерческой лицензией** — по уточнению владельца рамка шире, чем «опенсорс» в теле задачи: C3D Modeler, Parasolid (на нём построена названная в задаче Plasticity), 3D ACIS, CGM Modeler, Zoo Design API (проприетарное ядро на Rust с бесплатным тарифом). Обмен форматами (CAD Exchanger SDK, HOOPS Exchange, ODA) — только как дополнение к требованию 5.
3. **Лицензионный фильтр отдельным разделом:** бесплатно сейчас ≠ бесплатно в продукте. По каждому кандидату — что разрешает лицензия и что происходит при коммерциализации.
4. **Практическая проверка финалистов:** сборка в песочнице вне репозитория, замеры времени холодной сборки, веса зависимостей и артефакта. Таймбокс на OCCT — 40 минут; превышение само по себе результат («стоимость входа»).
5. **Документ:** требования → кандидаты двумя группами → сводная таблица «кандидат × требование» с колонкой лицензионного риска → измерения → рекомендация с запасным вариантом → риски и что придётся писать самим → источники.
**Критерии готовности**
- Все пять требований задачи разобраны по каждому кандидату короткого списка.
- По каждому закрытому ядру сказано, что разрешает бесплатная лицензия и что будет при коммерциализации.
- Каждое утверждение о лицензии, статусе и возможностях — со ссылкой на источник.
- Числа по финалистам измерены на этой машине; взятое из чужих источников помечено как таковое.
- Однозначная рекомендация с обоснованием и названный запасной вариант.
- Закрытие задачи — за владельцем: критерий готовности в теле задачи требует утверждения движка после ознакомления с документом, PR лишь доставляет документ.
**Ветка:** `issue-5-cad-kernels` от `dev`
Оговорка по процессу: получение лицензионных файлов для закрытых ядер (C3D, ACIS, Parasolid) требует регистрации от имени владельца — эти шаги будут выписаны в документе отдельным списком, а не выполнены мной.
Итог: рекомендую Open CASCADE Technology через opencascade-rs, запасной вариант — truck. Документ docs/cad_kernels.md разбирает 13 кандидатов в двух группах (открытые и закрытые с бесплатными лицензиями) по пяти требованиям задачи плюс лицензионный риск шестым.
Проверки: truck и OCCT не просто изучены по документации, а собраны и прогнаны зондами на одной задаче. truck — сборка 98,6 с, зонды отработали. OCCT — собрался только после трёх настроек окружения, патча из невлитого PR и четырёх строк правки build.rs; после этого зонд отработал целиком. Все 18 ссылок документа проверены (200). Сборка проекта не затрагивается: docs/ не упоминается в CMake.
Что определило выбор: OCCT на одном цилиндре пишет CYLINDRICAL_SURFACE в 5 652 байта, truck — девять сплайновых заплаток в 13 281 байт; булевы у OCCT в 4–6 раз быстрее. Fornjot, главный чисто-растовый претендент, архивирован в июне 2026. Бесплатного входа в промышленное ядро нет ни у C3D, ни у Parasolid, ни у ACIS.
Статус: метки Status/In Review в этом репозитории нет (набор — 18 меток), поэтому состояние «ушло на утверждение» осталось без метки. Reviewed/Confirmed стоит.
Осталось за вами:
Утвердить ядро — это и есть критерий готовности из тела задачи; PR лишь доставляет документ.
Решить вопрос линковки, если продукт проприетарный: удобный путь даёт статический OCCT, а исключение к LGPL покрывает только заголовки.
Решить про форк opencascade-rs — без него сборку на Windows каждый разработчик будет чинить заново.
Ревью и мёрж PR — задача закроется автоматически.
Работа выполнена, открыт PR: https://gitea.arseniev.info/NotBigGhost/CFDManager/pulls/7
**Итог:** рекомендую **Open CASCADE Technology через `opencascade-rs`**, запасной вариант — **truck**. Документ `docs/cad_kernels.md` разбирает 13 кандидатов в двух группах (открытые и закрытые с бесплатными лицензиями) по пяти требованиям задачи плюс лицензионный риск шестым.
**Проверки:** truck и OCCT не просто изучены по документации, а собраны и прогнаны зондами на одной задаче. truck — сборка 98,6 с, зонды отработали. OCCT — собрался только после трёх настроек окружения, патча из невлитого PR и четырёх строк правки `build.rs`; после этого зонд отработал целиком. Все 18 ссылок документа проверены (200). Сборка проекта не затрагивается: `docs/` не упоминается в CMake.
**Что определило выбор:** OCCT на одном цилиндре пишет `CYLINDRICAL_SURFACE` в 5 652 байта, truck — девять сплайновых заплаток в 13 281 байт; булевы у OCCT в 4–6 раз быстрее. Fornjot, главный чисто-растовый претендент, архивирован в июне 2026. Бесплатного входа в промышленное ядро нет ни у C3D, ни у Parasolid, ни у ACIS.
**Статус:** метки `Status/In Review` в этом репозитории нет (набор — 18 меток), поэтому состояние «ушло на утверждение» осталось без метки. `Reviewed/Confirmed` стоит.
**Осталось за вами:**
1. Утвердить ядро — это и есть критерий готовности из тела задачи; PR лишь доставляет документ.
2. Решить вопрос линковки, если продукт проприетарный: удобный путь даёт статический OCCT, а исключение к LGPL покрывает только заголовки.
3. Решить про форк `opencascade-rs` — без него сборку на Windows каждый разработчик будет чинить заново.
4. Ревью и мёрж PR — задача закроется автоматически.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Определение задачи
Исследование доступных опенсорсных ядер САПР и их применимости для данного проекта. В результате должен быть составлен документ, в рамках которого должны быть описаны наиболее подходящие для проекта движки, с обоснованием их ценности.
Критерий готовности
Получение от владельца проекта утверждения движка(ов) после ознакомления с документом.
Требования
План выполнения
Результат — документ
docs/cad_kernels.md(русский, стильdocs/rust_vs_cpp.md: разложенные факты и измеренные числа).opencascade-rs/occt-sys; отдельно геометрия без моделирования (openNURBS,curvo, Manifold, CGAL) — с явной причиной отсева.Критерии готовности
Ветка:
issue-5-cad-kernelsотdevОговорка по процессу: получение лицензионных файлов для закрытых ядер (C3D, ACIS, Parasolid) требует регистрации от имени владельца — эти шаги будут выписаны в документе отдельным списком, а не выполнены мной.
Работа выполнена, открыт PR: #7
Итог: рекомендую Open CASCADE Technology через
opencascade-rs, запасной вариант — truck. Документdocs/cad_kernels.mdразбирает 13 кандидатов в двух группах (открытые и закрытые с бесплатными лицензиями) по пяти требованиям задачи плюс лицензионный риск шестым.Проверки: truck и OCCT не просто изучены по документации, а собраны и прогнаны зондами на одной задаче. truck — сборка 98,6 с, зонды отработали. OCCT — собрался только после трёх настроек окружения, патча из невлитого PR и четырёх строк правки
build.rs; после этого зонд отработал целиком. Все 18 ссылок документа проверены (200). Сборка проекта не затрагивается:docs/не упоминается в CMake.Что определило выбор: OCCT на одном цилиндре пишет
CYLINDRICAL_SURFACEв 5 652 байта, truck — девять сплайновых заплаток в 13 281 байт; булевы у OCCT в 4–6 раз быстрее. Fornjot, главный чисто-растовый претендент, архивирован в июне 2026. Бесплатного входа в промышленное ядро нет ни у C3D, ни у Parasolid, ни у ACIS.Статус: метки
Status/In Reviewв этом репозитории нет (набор — 18 меток), поэтому состояние «ушло на утверждение» осталось без метки.Reviewed/Confirmedстоит.Осталось за вами:
opencascade-rs— без него сборку на Windows каждый разработчик будет чинить заново.