Продолжение разработки Cursor для графики
Прошло уже по меньшей мере месяца два с моего прошлого поста, с того момента много чего произошло, как минимум у меня закончились деньги на продления хостинга и мой сайт перестал работать, но сейчас не об этом, в этой статье я собираюсь рассказать подробнее про нововведения в своем проекте, с чего хотелось бы начать, ладно, обо всем по порядку.
1. Переезд на OCCT ядро и подвязка его к Three.js
Наверное самое правильное решение за последние два месяца, я ушел от CSG движка и перешел на более стабильное ядро, не сказал бы, что переезд был плавным, особенно последние недели две я только и занимался исправлением багов, а ведь они все ещё остались, но тем не менее, сейчас в какой-то степени я перевел все на OCCT и выглядит это примерно вот так:
Сама по себе мысль о переезде пришла во время реализации extrude т.к CSG давал слишком много артефактов, я перешел на более стабильный вариант работы с математикой и геометрией.
2. Добавление модульности(подобие микроплагинов для AI pipeline).
Здесь ситуация уже интересно, визуальная часть находится ещё в разработке, но тем не менее я ушел от попыток как-то научить ИИ считать и рисовать "красивые" элементы и дал ему набор инструментов, которые позволяют ему делать это более эффективно, начнем с панельки
Я добавил две новые панели, одна панель для пресетов готовой геометрии(аналог CAD-овских блоков) и соседнюю панель для вывода расчетов\выполнения функций завязанных на модуле, к сожалению подписка на одну из моделей у меня закончилась, а новой нету, поэтому показать tab с SVG превьюшками не получиться, возможно в следующей статье. В чате зеленая плашка означает переход на так называем модуль, в модуле есть отдельные секции под текущие стадии рабочего профиля, инструменты для расчетов, алиасы на существующие геометрические команды и подвязка данных к геометрии. Чуть больше станет понятно по следующей части моих модулей, а именно их редактору:
здесь собственно говоря будет реализован дополнительный рабочий контур для создания тех самых модулей, причем я стараюсь поддерживать варианты рабочего + автоматического создания и специально для этого перевез туда вот этот редактор прессетов:
это упрощенный вариант стандартного Canvas2D с главного окна приложения, остальные части редактора я ещё доделываю, но самое главное на мой взгляд sandbox для модулей, с возможность проверить функции без вызова и траты LLM токенов, вот как это выглядит примерно:
я еще работаю над визуальной частью, но как минимум там помимо тестов модульных функций есть вызовы стандартных команд доступных в приложение, поэтому можно тыкать всё и вся. В целом работы ещё много т.к мне нужно закончить оформительскую часть + некоторые редакторы и в целом базовый функционал готов, но писать методичку по нему все равно придется.
3. Всякие мелочи.
Здесь если честно говорить особо не о чем, добавил мультидокументные состояния, синхронизировал 2D\3D, поправил мелкие баги, немного переделал ToolBar и сделал более явное разделение по рабочим пространствам.
Небольшие итоги.
В целом и общем я продолжаю работу над своим проектом, мне он нравится, мне нравится заниматься этим и я если честно всегда хотел делать что-то интересное и делиться этим с людьми, просто так, без всяких причин, если у кого-то есть какие-то вопросы, можете писать мне в ТГ:@levoarq, прикладывать само приложение сейчас не буду, как минимум есть несколько дыр, о которых я знаю, но если кому-то нужно будет могу залить ссылку на диски и кинуть в коменты, в остальном спасибо всем за ваше время, особенно если дочитали до конца, ждите ещё статей по данному проекту.