← На главную

Antimony: CAD с графом узлов и Python вместо чертёжной доски

02.11.2026 08:29 · hackernews

Antimony — экспериментальная CAD-система Мэтта Китера, представляющая альтернативу привычному чертёжному интерфейсу. Автор описывает её как инструмент из параллельной истории, где системы автоматизированного проектирования развивались из Lisp-машин, а не чертёжных досок. Проект вырос из работы над персональными CAD/CAM-процессами в MIT Center for Bits and Atoms.

Архитектура состоит из трёх частей: механизма потоков данных на направленных ациклических графах, геометрического движка для конструктивной сплошной геометрии CSG и стандартной библиотеки фигур и преобразований. Модель собирается соединением узлов. Каждый узел обычно представляет примитив или операцию и определяется настраиваемым сценарием на Python 3 с дополнительными ключевыми словами для входных и выходных портов.

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

Геометрический движок использует функциональное представление твёрдых тел. Такое описание хорошо подходит объединению, пересечению и вычитанию фигур. Внутри приложения формы отображаются как затенённые растровые изображения, которые затем помещаются в трёхмерное окно. Для производства поддерживаются экспорт heightmap для 2.5D-обработки и STL для 3D-изготовления; при выгрузке STL предусмотрено распознавание элементов, чтобы сохранять острые углы и рёбра.

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

Исходный код Antimony опубликован на GitHub, доступны сборка для Mac и инструкции по сборке на Mac и Linux. Стабильность соответствует бета-версии, поэтому автор не рекомендует применять инструмент в критически важных задачах. Проект остаётся открытым для новых узлов и более серьёзных улучшений рендеринга, интерфейса и производительности.

Читать оригинал →